Title: Architecture of Computational Science Education Portals
 1Architecture of Computational Science Education 
Portals
NPACI All Hands MeetingFeb 8 2000Geoffrey Fox
- School of Computational Science andInformation 
 Technology (CSIT)495 Dirac Science
 LibraryFlorida State Universitygcf_at_cs.fsu.edu
2Portals in Computational Science Education
- We are discussing Web-based education or portals 
 to a virtual university or virtual corporate
 training center and relation to portals to
 computing
- Merrill Lynch predicts that Enterprise 
 Information portal market will be 15B by 2002
- So assume that we are building education portals 
 in terms of Distributed Educational Objects --
 this is not really an assumption but a statement
 as to language used
- Portals are built as a customizable set of XML 
 components ( e.g. Display a thumbnail of the next
 web-page in lecture or run a Particular Program )
3Basic Portal Architecture and Inter Relationships 
of Education, Computing and other Portals
EnterpriseInformationPortals fromMerrill Lynch 
 4Hierarchy of Portals and Their Technology
-  Portal Building Tools and Frameworks (XUL, 
 Ninja, iPlanet, E-Speak, Portlets, WebSphere,
 www.desktop.com)
Generic Portals
Collaboration Universal Access Security .
Generic Services
User customization, component libraries,fixed 
channels
Information Services
Databases .
Enterprise Portals
Quizzes Grading ...
www.computingportals.org
Compute Services
Education Services
Grid Services Visualization ...
MathML etc
Education andTraining Portals
Science Portals
K-12
University
Biology
Chem Egy 
 5Portal Assumptions
- Portal will be defined by multiple Web Pages made 
 up of components defined in (better)portalML to
 define objects, parameters, collaborative
 structure, layout etc.
- XML Pages access Portal components which at least 
 today will mainly HTML
Portal Entry
XML
SubPortal1
SubPortal2
SubPortal4
SubPortal3
XML
SubPortal21
SubPortal22
HTML
Page101
Page211
Page212
Page221
Page301
Page401 
 6Computing Portals will build on General Portal 
Standards 
- (better)portalML (XUL) -- define the users 
 customized portal layout and what they can choose
 from
- define available objects and layout (number of 
 columns etc. generalizes ideas in Flow,..,GridBag
 Object layouts in Java AWT)
- e.g. ltportal name gtltcolumns3/gtltportalobject 
 modeforced sourcegtltplaceat layoutflow1
 position1 gt ...
- placement of component objects on pages and 
 specification of their parameters and location
 e.g. access weather object for suchandsuchcity
 with suchandsuch sensor overlay
- choice of nifty JavaScript or Java index 
- rendering preferences such as resolutions and 
 universal access
- borders, backgrounds etc. 
- Portal building tools will exist for developers 
 (architect template for portal i.e.
 differentiate my.NPACI from my.Netscape) and
 users ( specialize portal template )
- Such general tools will be competition for 
 specialized systems like WebCT for education
7A Collection of Shared Portal Components
betterportalML document
Web browser
ltsharedportaldefgt . . . lt/sharedportaldefgt
Web page
Regular content
Document Fragments as Shared objects
In W3C DOM, each Web Page (HTML Page)is defined 
as a set of Nodes -- You choose which nodes (and 
their children) that you wish to share and then 
events are exchanged maintaining state 
consistency with logic defined by XML page 
 8Collaborative Portal Architecture
Content Web Server
XMLContent Pages
Shared Event Service
Style Sheet / User Profile Customization Agent
Events Trapped by Browser and shared by Portal 
 9Each Collaborating Client Receives Events
- Event Stream becomes set of time stamped XML 
 messages
- Pager Cell Phone Email Grid Status Messages 
- Collaboration Control Messages e.g. New 
 Participant Joined
- User Customization specification 
- W3C or Java or Microsoft Client Shared Object 
 Definition/Update Messages (e.g. Page Scrolled by
 such and such amount done as XML serialization of
 JavaScript Event object)
Real-Time or off-line (i.e. synchronous 
or asynchronous)access of events which 
implicitly archive any session 
 10Remarks on Event Subsystem
- Events are messages with typically handlers and 
 time stamps
- Any event subsystem is also a messaging system 
- email, MPI, audio/video streams, W3C Document 
 Object Model, any database updates are built on
 events
- Events are stored in a distributed database (in 
 simple cases a queue) supporting necessary
 robustness and performance
- XML is used to represent all event streams 
- could store in relational tables 
- Must be able to select by key tags such as time, 
 source, destination, priority, subject,
 application (multiple tags)
- body of event must be able to store 
 (serialized) objects
- Must be able both to store permanently, relay 
 synchronously (multicast if needed), replay later
11Distributed Event Subsystem
Java
DistributedServers
DistributedServers
RobustTemporaryActivities
Select/Update
Select/Update
e.g. for routing and caching
e.g. On PC
JavaScript 
 12Multiple Modes of Collaboration
Sharing Functionality
Temporal Structure
- Temporal Structure 
- Synchronous Updates passed on immediately and 
 ignored if client not online (Tango, Habanero)
- Pager Updates passed on immediately if client 
 available otherwise queued for later delivery.
 General late-arrival support
- Push Updates performed at given time interval 
 (New York Times web site is updated every 10
 minutes)
- Asynchronous Client chooses when to access and 
 update shared object (You put up a Web Page. I
 eventually look at it)
- Archive Asynchronous record of one of other 
 temporal models.
- One should integrate support of all models?
13Collaboration Functionality
- What features are shared and what can be 
 customized on each client and how is sharing
 specified and implemented
- Collaboration Unaware No effort needed to make 
 application collaborative -- this is shared
 display model of VNC, NetMeeting
- Share desktop or individual windows 
- Share user generated events as well as pixels 
- Shared text or simple web page 
- Collaboration Aware One must explicitly change 
 application to specify how each event shared
 (Tango)
- One can make this easier in particular 
 application environments such as Javabeans
- Collaboration Semi-aware Shared display plus 
 special menus which can be customized --
 Promising Direction
- Collaborative visualization (share 2D or 3D 
 Image)
- Quizzes (support general questions within a fixed 
 shared infrastructure)
- Whiteboard 
14Some Architectural Issues
- Use the browser mainly for rendering and 
 capturing user-interaction events it is not a
 robust virtual machine (container) in which one
 can build WebWindows applications
- Run an Apache Server on every PC 
- Palm tops are treated as just another browser 
- Where do we need to build new infrastructure and 
 cannot re-use existing technology as in CORBA
 Ninja E-Speak etc. ?
- Event Service 
- Object specification including betterportalML 
 properties
- Collaboration with integrated capabilities 
- Education and Portal Specific Objects/Tools with 
 properties such as special collaboration features
- visualization 
- brainstorming and other learners-teachers 
 interaction tool