JMS for Event Queue - Indiana University

Download Report

Transcript JMS for Event Queue - Indiana University

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
Global (distributed)
Event Receptor (Queue)
PDA
with JMS
Publish
Convert Events
to JMS
JavaScript
17 Nov 2000
Java C++
PDA
without JMS
…..
GMS Model for Messages
• Agent based messaging with server (broker) side
intelligence and archiving
Database
Server
Message
Input Queue
Publishers
Agent
combines
Message Properties
Subscriber Requests
to decide on
message recipient
Subscriber
Profiles
Subscribers
Architecture
Database
E-mail
……
Web Server
Database
Archive Adapter
Foreign Adapter
Subscribe
To all
Publish and
Subscribe
Global (distributed) Event Receptor
And Distributor after selection
Publish
JMS
Control
Module
Subscribe
Client
17 Nov 2000
Client
Subscribe
To control events
Publish other events
…… Client
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
Event
Archive
Capabilities
Global Root
Users
Devices
MegaMeeting
Meeting
Documents
Admin
Have a hierarchy of these
Meeting
Meeting
Multimedia
Structure of GXOS For a Collaborative Session
Meeting
Links
Users
Admin
Devices
Links
Sharedlets
Sharedlet1
Capabilities
Sharedlet3
Sharedlet2
VEa
VEb
VE is Virtual
Environment
VEc
VEa
VEa
VEb
VEc
VEb
VEc
GXOS Capabilities
All of these are GXOS
Objects
Global Root
Capabilities
Any Sharedlet
Default
Setup 1
…….
GXOSShell
GXOSShell
Script 1
…….
ObjectWizard
Default
Object 1
…….
WebExport
Default
Setup 1
…….
Structure of GXOS For a Sharedlet
Users
Links
Devices
Documents
Sharedlet1
Profiles
VEa
VEb
VEc
Admin
Stream1a
Stream1b
Events1a: 1,2…
VE is Virtual
Environment
Combination of User/Device
Labeled by a b c … z
Stream1c
Events1c: 1,2…
Events1b: 1,2…
GXOS Schema
See http://aspen.csit.fsu.edu/users/ozgur/docs/gxos/
http://aspen.csit.fsu.edu/project/cctools/jmseventapi.xls
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
e-mail, scientific visualization to digitized Bible
• All actions including object changes are events – all events are
GXOS objects
– e-mail, 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 metaobjects 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