Garnet GXOS GMS GNDI JMS MyXoS 23 January 2001
Goals Near Term (May 2001): 1) Build a collaboration system to support distance education 2) Illustrate interesting collaborative computing environment With many long term and some short term requirements –Must support PDA (Short and Long Term) –Must support high quality web pages (Medium Term) Generate electronic communities (One year) –Indian Nation, Florida Mathematics
Partners Anabas Corporation: will build basic infrastructure and cross license it to us HearMe: audio conferencing Argonne: Access Grid (Community room A/V conferencing) –Will go to their “retreat” next week Funding: PET DoD at ANL ASC ERDC Funding: NCSA (NSF) Funding: NSF for Geosciences Maybe Funding for Indigenous Nation Collaboratory
Architecture Underpinnings Unified Event Model – assume all systems communicate with XML based messages -- portalML All entities – computers, users, programs -- defined in XML – resourceML All events archived to enable fault tolerance and replay –Links synchronous and asynchronous collaboration Such a unified messaging natural in Instant Messenger, PDA and our model can support this All software written in Java; all data structures defined in XML
Some Abbreviations Garnet: Overall System JMS: Java Message Service for basic publish/subscribe infrastructure GMS: Garnet Message Service with high level XML messages GNDI: Garnet Naming and Directory Service GXOS: Garnet XML Object Specification MyXoS: XML based OS for the Web Sharedlet: Collaborative application supporting GMS
JMS Structure Publishers send Messages which have –Headers with a set of properties (text) –Body which can be quite interesting: Byte Stream, Serialized Java, XML (in extensions) etc. Messages are delivered to queues on one or more servers Subscribers send requests to servers which request JMS queued messages based on SQL like queries on properties stored in header –Classic example: Header is topic and subtopics such as Sports – NBA – Lakers – Shaq. Select all Sports messages involving Shaq –Synchronous Example: Header is IT2 – Lecture 6 – Chat Room. Select all messages in Chat room for a particular class In GMS Headers are also XML and interpreted on Server
JMS Structure Convert Events to JMS JavaScript JavaC++ ….. Publish 17 Nov 2000 PDA without JMS PDA with JMS Global (distributed) Event Receptor (Queue)
GMS Model for Messages Agent based messaging with server (broker) side intelligence and archiving Publishers Subscribers Server Message Input Queue Subscriber Profiles Agent combines Message Properties Subscriber Requests to decide on message recipient Database
Architecture Control Module Global (distributed) Event Receptor And Distributor after selection Publish Foreign Adapter Client Database Archive Adapter Client Subscribe Client …… Subscribe To all Subscribe To control events Publish other events Web Server Publish and Subscribe …… Database 17 Nov 2000 JMS
GNDI Structure Typically GXOS does NOT hold the object but rather all the metadata for object including where to find it –internalND defines where the metadata is (GNDI Garnet Naming/Directory) –externalND where the object is (JNDI Java Naming/Directory Interface) GXOS uses classic UNIX style directory structure such as //Education/University/FSU/CS/PhD/Course/Lecture –Structure says can handle quadrillion meta-objects The more you know about an object, the easier it is to build a collaborative system –It is hard to share a general program as properties are not explicit All GXOS objects can be containers as well as having full object characteristics –Unlike UNIX where directories (only containers) and files (never explicit containers) are different Events are a special type of GXOS object defined with GMS Extension to basic hierarchical object Can create a link (internalND pointer) with a profile to define special properties of this object in a new context
Overall Structure of GXOS Global Root UsersDevicesDocumentsAdminMultimedia MegaMeeting Meeting Have a hierarchy of these Meeting Event Archive Capabilities
Structure of GXOS For a Collaborative Session Meeting UsersDevices Admin Sharedlets VEaVEbVEc Sharedlet2 Sharedlet3Sharedlet1 VEaVEbVEcVEaVEbVEc VE is Virtual Environment Links Capabilities Links
GXOS Capabilities Global Root Capabilities Any Sharedlet Default Setup 1 ……. All of these are GXOS Objects GXOSShell GXOSShell Script 1 ……. WebExport Default Setup 1 ……. ObjectWizard Default Object 1 …….
Structure of GXOS For a Sharedlet Admin Sharedlet1 VEaVEbVEc VE is Virtual Environment Combination of User/Device Labeled by a b c … z UsersDevicesDocuments Profiles Stream1aStream1bStream1c Events1a: 1,2… Events1b: 1,2… Events1c: 1,2… Links
GXOS Schema See
Important Concepts Support Shared Display, Shared Export and Shared Event Must be able to record and replay all features of session (SMIL) –A/V, Presentation, Annotations, Text Chat Later support mathematics (MathML) How does one link database to XML – what is Entity Relationship for DB and how is it related to GXOS SVG seems very important as –2D Scientific Visualization (Whiteboard) –Future of Macromedia and Adobe Initial source of SVG: Convert PowerPoint VML to SVG –Would give shared export model for PowerPoint with each client able to scale Shared Java Server Pages for Gateway Structure of Web Pages and Templates –What is XSL and what is specialized filter (Note GXOS can define page fragments) “Universal Access” and support of Palm/Windows CE Clients –MyProfessor or MyPET Yahoo Messenger like interface Event Service (Shrideep Pallickara’s Thesis) –JMS done right; MyXoS
MetaObject Event-based Computing Paradigm All entities are MetaObjects defined in universal GXOS XML Syntax – Meta means GXOS doesn’t really want to manage Object, just information required to find, render and share it –Rendering includes Palm devices as well as PC’s –Entities are people, computers, data sources, information from , scientific visualization to digitized Bible All actions including object changes are events – all events are GXOS objects – , paging etc. are all GXOS events uniformly routed/archived etc. All action is instantiated or recorded in messages which are events themselves All events are archived allowing actions to be undone and to be reviewed There is an MetaObject Shell MyXoS with basic Services (copy, create, collaborate etc.)
MetaObjects and Napster / Jini Napster implements Web based NFS (Network File System) for self defining music objects (.mp3 has audio plus metadata) GXOS provides the missing metadata for all the file types (.txt.doc.jpg etc.) which are not self defining Thus MyXoS could implement general Napster like services Jini mechanism could be used to allow distributed meta- objects to federate together –You have lots of instances of MyXoS running on disconnected machines – each in charge of their own set of GXOS MetaObjects –Enabling network connections, these instances would announce themselves and “lease the metadata” under their control What unites Napster Jini Collaboration –They are enabled by exposing properties of distributed objects
Writing a PhD Thesis Choose a research topic – this is NEVER writing software –e.g. Architecture of a Distributed MetaObject Web OS Choose what prototype system you will build to test and refine research topic –e.g. Build XML Interpreter for basic MyXoS implementing Jini federation mechanism Decide what artifacts you need on the way and what it is necessary for group to have built –E.g. you build GXOS Object Creation wizard; XML version of Jini –E.g. Assume somebody builds GXOS and basic management system for GXOS Objects Write up a plan and review with me and group Then you spend 90% of your time writing software