Given by Geoffrey C. Fox at DoD HPC Modernization Users Group Tutorial Monterey California, ACM Java Grande San Francisco, EDMEDIA Seattle on June 7 99, June 14 99, June 20 99. Foils prepared July 9 99
Outside Index
Summary of Material
We describe some use of object web technologies to both author and deliver distance education and training
|
This model will succeed because it will provide more cost effective and higher quality learning environments |
It disassociates dormitory, mentoring and teaching roles of Universities and puts them in competition with for profit training organizations |
It can be done now but there are important business issues concerning issuing certificates that are recognized as valid for credit indicators by "real universities"
|
Outside Index Summary of Material
DoD Modernization Users Group Monterey June 7 1999 |
ACM Java Grande Meeting San Francisco June 14 1999 |
EDMEDIA Tutorial Seattle June 20 1999 |
http://www.npac.syr.edu/users/gcf/distedcookbookjune99 |
http://www.npac.syr.edu/users/gcf/msrcobjectsapril99 |
http://www.npac.syr.edu/tango |
Geoffrey Fox |
Syracuse University |
NPAC |
111 College Place Syracuse NY 13244 4100 |
3154432163 |
We describe some use of object web technologies to both author and deliver distance education and training
|
This model will succeed because it will provide more cost effective and higher quality learning environments |
It disassociates dormitory, mentoring and teaching roles of Universities and puts them in competition with for profit training organizations |
It can be done now but there are important business issues concerning issuing certificates that are recognized as valid for credit indicators by "real universities"
|
Pervasive Communication Infrastructure (The Internet) and powerful new software technologies and concepts
|
Can enable education and training with
|
Can also change/enable businesses, research, electronic societies |
Need to implement so that
|
New and rapidly changing Academic Curriculum suggest the use of distance education as it will allow a few experts to deliver instruction to more students and this addresses both
|
Distance Education is technically sound based on web curricula-- both synchronously and asynchronously -- today with very robust clear implementations available over next 2 years |
Both delivery mechanism and identification of knowledge nuggets (such as Internetics or computational science) that are smaller than a traditional degree suggests different approaches to certification
|
Similar arguments for distance training with relative importance of synchronous and asynchronous learning differing by customer group |
Professors |
Students |
Common Shared Books and Such Resources |
Done separately for each class at each university |
Often |
Low |
Quality |
Professor at AVU |
(AnyTown Virtual University) |
with team of authoring specialists |
Outside |
Students |
(dominant clientele) |
Common Shared Books Web based Lecture Material |
and Similar Resources |
Institutions focussing on particular disciplines, teach a given class |
to Students from Universities which provide beds and mentors |
Possible local Students |
INTERNET |
Classes are |
given by |
AVU |
to students |
around |
the state |
(world) |
Can offer "Certificates in Internetics or Computational Science" (Total of 4-6 or 1-2 semester classes respectively) |
Can offer internally Web and Java classes for K-12 level -- teaching Java Academy to Boston, Houston Syracuse and Starkville every saturday |
All these courses are in form suitable for synchronous/asynchronous delivery |
Taught two semesters from Syracuse over Internet a Senior Undergraduate Class in Java for web applications at Jackson State Mississippi using Tango collaboration system. Next 2 semesters taught graduate computational science and Internetics |
Can combine with local CDROM of curricula material |
Have specialized programming laboratories for both Web and parallel programming -- Jackson students do ALL work from a PC at JSU accessing resources at Syracuse |
Have best delivery and distributed object web linked database |
Taught using Tango since fall 97 over Internet and defense high performance network DREN twice a week from Syracuse
|
Jackson State major HBC University with many computer science graduates |
Do not compete with base courses but offer addon courses with "leading edge" material (Web Technology, modern scientific computing) which give JSU (under)graduates skills that are important in their career
|
Needs guaranteed 30 (audio) to 100 (video) kilobits per second bandwidth
|
Learning is an example of an activity which can be thought of in terms of objects (digital audio streams when you talk, books, homework, science fair exhibits) worked on alone or together -- either between students or students and teacher
|
Collaboration can be synchronous as when individuals talk to each other
|
Or asynchronous when sharing is done at different times |
I post a web page and you look at it later is a basic asynchronous sharing model while writing on a blackboard is hallowed synchronous model in teaching |
All objects can be thought of as web pages as these are rendering of a server side object
|
Assume teachers, students, engineers, shoppers, salespersons, families teach, learn, collaborate, buy, sell, socialize via electronic versions of traditional human interactions combined with shared objects expressed in XML and rendered as web pages
|
Only shared event model (used in Tango) of sharing (collaboration) is capable of necessary efficiency and customization to each user |
Universities "specialize" and deliver courses in areas of expertise
|
JSU is starting HBCU wide deployment |
NPAC is studying use internationally |
Pilot for distance training for DoD |
NPAC Web Server |
JSU Web Server |
Java Tango Server |
....... |
Share URL's |
Audio Video |
Conferencing Chat Rooms |
White Boards etc. |
Address at JSU of Curriculum Page |
Teacher's View of Curriculum Page |
Student's View of Curriculum Page |
Participants at JSU |
Teacher/Lecturer at NPAC |
....... |
Java Sockets |
HTTP |
Java Control Clients |
All Curricula placed on the Web |
Collaboration = Sharing |
Asynchronous = Access to common Web and Database Information sources + simple tools (email, calendar) |
Synchronous = Real time/Interactive sharing of information that can also be accessed asynchronously |
An "object" is a "foil" or "screenful" -- natural unit of information that fits both computer screen and goal of focussed nuggets of knowledge |
Client Side enhancements are a mix of Java applets (GUI), Java Applications (curriculum manager) and JavaScript (control web pages) |
DHTML illustrates potential power of shared JavaScript with XML and HTML web pages but erratically supported by Version 4 browsers. Internet Explorer 5 has new W3C DOM support and will deliver on promise? |
Use Conventional Web Servers and databases (a.k.a object brokers) as information sources |
Server-side enhancements (Collaboration server, XML Curricula object processor) written in Java |
WebWisdom(DB) refers to NPAC database of educational objects including individual Powerpoint foils and multimedia |
Can collaborate with server or client side shared applications:
|
Tango Interactive is a collaboration system that can be applied to several applications
|
Old WebWisdom |
Shared Database |
Chat |
Shared Browser |
Audio Control |
Tango Control App |
Shared Java Educational Objects |
There are many objects to be shared in a Tango distance education session |
Shared JavaScript |
Shared C++ application Supporting multi point communication |
The Object Web Signifies the merger of distributed object and web technologies |
The Pragmatic Object Web (POW) asks us to take the best of CORBA (Industry Standard) COM (Microsoft PC Standard) Java (Web Software Infrastructure) and W3C (XML) |
An "object" is an entity that can be
|
The most common electronic object is a Web Page |
The richest available object model is the Web Document Object Model or DOM |
JavaScript is language to manipulate this DOM |
Web Browsers render this object |
Web Servers broker this object |
XML labels POW objects and is converted with style sheets to HTML as GUI for object |
Contents of (relational) Databases -- give these a web interface and view as an XML (or HTML) stream
|
Computer Programs -- from CGI Scripts to Servlets to CORBA IDL brokered Fortran Programs |
(Large) data resources -- from file systems to archival storage |
Devices -- from toasters, microsensors to surveillance cameras, PC's, Printers, Supercomputers, Telescopes
|
Electronic Mail Messages -- favorite form of collaboration |
Server side Objects are accessed via Web pages and we just need to share the web page |
Define Objects and properties / methods (backend) and define services (frontend) |
Objects (at "backend") can be on client of course |
Broker or Server |
Rendering Engine |
XML |
Result |
XML Query |
User dependent Style Sheets and Rendering engines |
Rendering Engine |
XML result |
HTML |
Objects |
Universal Interfaces |
IDL or Templates |
Design of (possibly new as exploiting new possibilities) curricula |
Decide on development strategy of the curricula material |
Authoring of material in curricula |
Managing the material and students response to it including quizzes, grades and administration |
Delivery of the material in a mix of self-paced (asynchronous), traditional (synchronous) or collaborative (interactive) |
Good answers to all these components are pretty clear and these answers will match the evolution of web over next few years
|
So the architecture is that of a set of web accessible distributed objects which are designed to be as modular as possible
|
Initial design will be traditional -- include
|
Future design will include virtual environments and interactive simulations and these can only improve a situation that is already better than current teaching model because
|
It would be good to use simulations and nifty animations and digital video if available
|
But in most real classes, use PowerPoint or HTML (with various levels of sophistication in editor)
|
At the high end, currently use Macromedia Director or equivalent technology but this is transitory as not the web? |
Only use technologies that support very good web export that respects W3C object model with clear structure (i.e. XML) |
Build educational objects that can be stored in a database and exported as HTML/XML using some template |
Store video and images in multi-resolution format to accommodate different curricula quality/network bandwidth tradeoffs |
Expect authoring tools to improve |
In order of increasing sophistication; cost; preparation time and presumably also in increasing learning value |
"Low-end" typified by simple HTML and PowerPoint. Of course hand written notes and postscript are even less sophisticated but these are getting less important. |
"Enhanced Low-end" typified by audio or video over web pages. Not clear how editing is possible/desirable
|
"Medium End" such as WebCT or Cornell Virtual Workshop where one provides knowledge at different levels of detail, glossaries, quizzes and dynamic instructional nuggets.
|
"Traditional but in my opinion clumsy High End" such as the classic Multimedia CDROM ( or its web equivalent) prepared by sophisticated authoring tools such as Macromedia Director and with possibly professionally produced videos.
|
So as we have stored all our material in a database, managing it is equivalent to building an administrative support system for the database
|
Web export from database should support Educom's IMS standard for metadata to allow convenient webwide searches of repositories |
One needs special modules that accommodate
|
One needs database technology for
|
One needs web-linked seamless computing to support programming assignments Using older NPAC VPL written in JavaScript to allow web access to computer cluster for HPF and MPI (DoD Gateway activity should produce better technology) |
Database must archive lessons with LINKED curricula material and multimedia delivery |
LecCorder is integrated hardware & software system and will record live trainings or digitize taped events & publish on web quickly and easily as "foils over audio/video" |
Minimal human intervention |
Java viewer |
In progress...
|
Note MPEG, H263, Real Video versions..... |
Over the last 2.5 years I have put 715 foilsets and over 28000 foils on the web supported by Perl Scripts and JavaScript Display (including 2000 family photos)
|
WebWisdomDB abstracts lessons to a Oracle database backend and a dynamic HTML front-end (see later) |
Database stores Microsoft (COM) or W3C "Document Object Model Components" including HTML PowerPoint with each slide/page separately stored and editable from database |
Reconstructs dynamic pages using XML templates to view or print or write to CDROM ..... |
Has Java Manager to support play list and arrangement in hierarchical "FoilWorlds" |
Set Metadata for "Presentation" == Lecture |
FoilWorld Tree |
Will replace by new |
dynamic HTML Interface |
WebWisdomDB is accessed via the TESS servlet which processes XML templates allowing general pages to display database contents |
XML embedded as part of HTML "Web Page" |
URL of Web Page invokes Servlet |
e.g. http://witch.npac.syr.edu/servlet/TDLServlet/witch/index.tdl?USID=67 |
Servlet leaves HTML untouched but calls Java Methods to process XML tags |
This Servlet processes <WW_... tags -- others are left for other servers or browser |
Educational Objects i.e. |
Data Defining Curricula Material at all levels from "University" to "foil" |
Server side |
Java(JDBC) |
XML Parser |
Servlet |
Metadata |
WebWisdom XML Template Server |
Conventional XML/HTML Pages |
Dynamically Generated |
(IMS/ADL) Metadata |
Streaming Audio/Video |
Cross Disability Shared Choice of CSS |
Templates Defining in XML How educational data stored in Pages |
Share with TangoInteractive |
JavaScript API |
<!-- WW_CONNECT is a tag that establishes a connection to the database. Connection string may be supplied in the CONNECTION attribute, or if it is omitted (empty string) the default connection string is taken from properties.txt file for current template.--> |
<WW_CONNECT CONNECTION=""/> |
<html> <head> <title> Separate IMAGE for LOCAL foil |
<!-- WW_FOILNUMBER tag takes the position of the current foil in the current presentation. --> |
<WW_FOILNUMBER PARENTID="${PID}" FOILID="${FID}"/> |
<!-- WW_TITLE is a tag that allows to insert title of a presentation or foil. The presentation/foil is identified by an ID supplied in FOILID attribute. PARENTID is not currently used by the WW_TITLE tag, but can be later used, e.g. to check the formatting properties, which can be defined on the presentation level. FID and PID were supplied by the servlet from query attributes of the URL --> |
Yellow is ordinary HTML, Green XML, White Comments |
<WW_TITLE FOILID="${FID}"/> |
</title> </head> |
<!-- WW_BODYIMAGE inserts a 'body' HTML tag with background image typical for foil files. --> |
<WW_BODYIMAGE/> |
<tt><a href="#image">Image</a><a href="#buttons"> Buttons</a> </tt> <b> |
<WW_LINK FILENAME="temphelp.tdl" ATTR="">HELP!</WW_LINK> * GREY=local</b><tt> LOCAL IMAGE version of Foils prepared |
<!-- WW_MODIFICATIONDATE inserts modification date of the current foil --> |
<WW_MODIFICATIONDATE FOILID="${FID}"/> </tt> |
...... And So On! |
So the students need to learn the material and they may need some sort of help from a teacher or mentor |
In self paced or asynchronous learning, student studies material in his or her own time and essence of this is a web site which may of course be generated from a back-end web-linked database
|
In synchronous learning, teacher selects material from website and delivers it in electronic virtual class rooms
|
In collaborative learning, teachers, assistants, students and the web resource interact in an electronic collaboration system
|
Note systems like Lotus Notes are "just web-linked object brokers" from this point of view (and again should be avoided as not built around modern object models) |
All approaches use basic asynchronous tools such as electronic mail, bulletin boards and searchable repositories |
Can record synchronous sessions for later asynchronous replay |
One need not chose any one approach as can support all of them with a (preferably database back ended) web site linked to a suite of collaboration tools |
Note just as we can link asynchronous--synchronous--collaborative, we can also link education and training
|
This implies choosing a rendering method that best suits client user and respects
|
e.g. Visually impaired would prefer audio rich rendering |
e.g. Muscularly limited users would need appropriate interfaces |
New Cascading Style Sheets can express this but need intelligent renderer to make correct decision and allow user to adjust choices |
Further one needs decision at the stage of XML input and not after it has already been rendered into HTML
|
Assume goal is equal and high quality rendering -- do not downgrade material to support cross disability rendering |
One needs to be able to
|
So Web documents are the natural choice but actually this doesn't say so much as they can have
|
And "everything" exports itself to the web including Microsoft Word and Macromedia authoring systems
|
So we expect dominant model to be Web documents constructed according to W3C DOM |
Well there is the battles between Sun Netscape and Microsoft which makes Java on the client less robust than Java on the server |
However Java allows to build totally general users interfaces and there appear to be no rules and nothing equivalent to style sheets in HTML/XML. |
Thus it does not seem practical to build cross disability interfaces for arbitrary Java applet interfaces |
On the other JavaScript and dynamic HTML can do many things that you might have thought one needed Java for |
General Java visual interfaces need languages such as UML to describe interface object model? |
Author Curriculum using NO specialized systems
|
Add pointers and other such "WebWisdom" helpful DHTML capabilities (we will provide a filter) |
HTML Pages can be screenfuls (best?) or scrolled |
Put material on Web Server or CDROM; intersperse with other asynchronous resources |
Give your students URL of system |
If desired use registration database |
Set up necessary infrastructure with collection of individual machines and/or class rooms
|
In a class room, establish proxy server and central machine for audio/video conferencing
|
Test system for
|
Decide on applications e.g. multiple chat rooms (teacher--students, "chitchat", "support") and their control |
One needs to certainly share the basic page URL but also
|
JavaScript in principle allows one to identify relevant DOM components , change the rendering through choice of style attached to each component and so deliver a cross disability shared rendering |
Need good support of Web Document Object Model (in both system and developed curriculum) to support event sharing model, customization of cross disability rendering to document fragments |
Events are Form Data Changes, |
Here is an example of a particular source document encoded in HTML: |
<HTML> |
<TITLE>My Technology home page</TITLE> |
<BODY> |
<H1>My biased technology home page</H1> |
<P>Welcome to my home page! Let me tell you about my favorite technologies: |
<UL> |
<LI> Java/Jini |
<LI> W3C/XML |
<LI> CORBA/IIOP |
</UL> |
</BODY> |
</HTML> |
Component Objects in Web Page |
<student stdid="A1231999"> <name>Bugs</name> <surname>Bunny</surname>
|
</student> |
Collaboration implies sharing of electronic objects and is needed in asynchronous and synchronous modes |
Asynchronous mode is
|
Notification and linkage service
|
Notification mechanism enhances collaboration as enables dynamic federation of relevant objects to be automatically maintained
|
Notification can be used for people so their presence on-line can be made known to those in particular collaborative users |
Users decide if notification causes an active signal (send electronic mail, ring a buzzer) or passively alters a list on a web page. |
Event Model unifies synchronous and asynchronous models of collaboration
|
Collaboration involves federation of event services between different "event domains" |
Note client events can specify a server access |
Shared Pointer added to Internet Assistant PowerPoint on the Web |
Illustrates sharing of W3C Object Model internal to documents |
DHTML "Heartbeat" recording shared events in last 60 seconds on application specific "bar" which is locked above all windows -- addresses window clutter |
More Powerful than Java Shared Browser but currently less reliable |
Partly as software newer and |
Partly as DHTML Browser support fragile |
Shared Multiple List |
Shared Buttons |
Shared Text field |
Shared Checkbox |
Events on client are form data specification and "submit" button to invoke |
Server Side CGI Script |
Null Window Holds All |
Permanent |
Data |
Tango |
Launches and Positions auxiliary windows |
Cannot be signed Cannot do SetTimeout |
(has LiveConnect restrictions) |
Clock and Event Record |
Signed JavaScript Capture Events Control Clock |
and Inspect Shared Page for events |
Shared Page is a frame |
Dummy Page |
Position Control Bar |
Can be Destroyed without restarting Tango Session |
Originally we used in all our teaching WebWisdom which was a specialized JavaScript Shared Browser
|
Pages used by WebWisdom prepared by Perl program which has been generalized to database
|
Thus need to find URL (and other properties) by inspecting document object on master page |
Current Java SB determines URL changes by inspecting URL on Master in a "tight loop" (currently once every half a second one invokes code to inspect web page state including URL) |
New JSSB uses same strategy but adds capabilities by inspecting further document properties such as scrolling position, forms and links
|
Note WebWisdom strategy is natural whenever one can control pages as when made from templates (as in WebWisdomDB) and we will link JS SB to database backend |
Web Pages can access general server side resources which can either be specified by URL (web-linked database) or by data (input in form and/or calculated by JavaScript handlers) and URL.
|
Sharing forms and links and implied JavaScript generalizes to sharing the web page "object properties" |
Thus JSSB becomes (TangoInteractive) synchronous sharing technology for W3C DOM (Document Object Model)
|
There are some "standalone" capabilities of JSSB on a single machine with and without TangoInteractive
|
Pages can change even if URL does not
|
Pages can change due to:
|
Netscape allows no (known to me) rigorous detection of page changes |
One must NEVER access an undefined variable
|
Until page fully formed, any of its properties can be undefined |
Modern JavaScript allows one to test if variables are defined and so avoid these errors |
in a.b.c.d.e type reference, one must first test if a exists, then b, then .... |
WWutility.js includes
|
Signed Scripts to allow one to read data from general web pages
|
Ability to "capture" events and either
|
Most important events are CLICK and CHANGE but also allows one access to others (MOUSEOVER MOUSEOUT ONLOAD ONUNLOAD)
|
With <body onload="signifyload()" > signifyload is called when page is fully loaded and DOM fully constructed
|
for unloading, one can either
|
These heuristics are used to estimate total load time of each page and report this to user or session master
|
JSSB implements the "shared web event model" of collaboration! |
Major Events are page or frame loads |
Minor Events are form button clicks, pointer movement etc. |
Events have properties which are captured archived and passed between machines by JSSB |
JSSB includes functions to print events either to Java console or to a spawned web browser page |
This allows one to specify type (string, integer ..) of properties |
This allows one to allow an event to include arrays of "child" events |
Serialize events as an Ascii string -- used to transmit via TangoInteractive and to archive events as values of hidden fields in History Page
|
Deserialize, Initialize, Clone, Compare .....
|
Should probably be done using XML but currently simple adhoc protocol
|
All major events are generated from minor events
|
Minor events are sent by master via Tango to nonmasters |
Minor events are NOT immediately processed in nonmaster but rather queued
|
Queues processed in two ways
|
Clicks on form/link in layers or frames |
Specialized application dependent events as in shared pointer or games
|
mouseover and mouseout ... |
Can veto default action on clicks or other events on nonmaster side
|
Save Form Contents at any time
|
Resizing so master and nonmaster have same scaling |
Scrolling |
Sharing can be customized from dialog window |
Note JSSB knows where each nonmaster is in event queue and has information on download times
|
JSSB does monitor nonmaster page to detect unwanted page changes (I can capture clicks on Page links but not on "back button" ) |
One can archive a session by "saving from Netscape" the History Page where all events (or a subset) are recorded in serialized fashion in hidden fields |
Session can be restored (or added to existing events) by loading history page from a local file with archived information |
Note events include timing information and so archives should be linkable to LecCorder |
Sessions can be replayed from master or nonmaster either locally or for broadcast |
The original WebWisdom JavaScript Shared Browser used "self-defining" pages which defined lots of useful information including
|
JSSB uses heuristics to determine similar information under user control. It looks at page DOM to find Image URL's which look as though they form a sequence such as
|
This heuristic works for Family Photos supplied by online photo processors, PowerPoint web export, WebWisdom generated pages etc. |
Distance Education is technically sound -- both synchronously and asynchronously -- today with very robust clear implementations available over next 2 years |
Separate teaching mentoring and dormitory role of University |
Teaching and grading naturally performed by centers of excellence which need at least an order of magnitude more customers than a single faculty in order to be able to justify investment in course preparation and maintenance |
Continuing Education of growing importance and natural area to attack first -- corporate training is serious competition here and commercial deliverers have advantage? |
Not obvious that will save large amounts of money as students will need more not less mentoring in today's information-overrich world -- quality of educational experience will become more uniform and better |
We are meant to be short of employees trained in many important areas -- in particular computer science |
Syracuse has a few good course but Courses are incomplete and hard to keep up to date..... |
Nationally there is a complete set of excellent courses but most universities cannot offer quality complete program |
Technology for distance education is proven in concept and improving in robustness and functionality |
Networks are increasing in bandwidth ... |
This will lead to much better learning environments and total happiness for students ........ |
There is one minor problem! Most Existing Universities and K-12 Establishments (Unions ..)will oppose this |
They will accept my courses if given as Syracuse University but not if done through www.webwisdom.org |