Full HTML for

Basic foilset Overview of Java Shared Data Toolkit

Given by Lukasz Beca at Tango Group Internal Technology Seminars on Spring 99. Foils prepared May 19 99
Outside Index Summary of Material


Collaborative computing
JSDT background
JSDT functionality, components and architecture
JSDT basic concepts
TANGO vs JSDT
JSDT distribution

Table of Contents for full HTML of Overview of Java Shared Data Toolkit

Denote Foils where Image Critical
Denote Foils where HTML is sufficient

1 Java Shared Data Toolkit: Overview
2 Contents
3 Collaborative Computing
4 Background
5 Functionality
6 Environment Components
7 Architecture
8 Basic Concepts
9 Registry
10 Registry
11 Client
12 Client
13 Session
14 Session
15 Session
16 Channel
17 Channel
18 Channel
19 Data
20 Data
21 Byte Array
22 Byte Array
23 Token
24 Token
25 Token
26 Manageable Object
27 Manageable Object
28 Manager
29 Manager
30 Listener and Event
31 Listener and Event
32 Tango vs JSDT
33 Tango vs JSDT
34 JSDT Distribution
35 References

Outside Index Summary of Material



HTML version of Basic Foils prepared May 19 99

Foil 1 Java Shared Data Toolkit: Overview

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Lukasz Beca
NPAC, Syracuse University

HTML version of Basic Foils prepared May 19 99

Foil 2 Contents

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Collaborative computing
JSDT background
JSDT functionality, components and architecture
JSDT basic concepts
TANGO vs JSDT
JSDT distribution

HTML version of Basic Foils prepared May 19 99

Foil 3 Collaborative Computing

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Application Sharing
Multi-User Application Toolkits
Interactive Desktop Conferencing
Distributed Presentations over the Net
People Objects
Awareness
Virtual Worlds
Workflow
Computer-Augmented Meeting Rooms
Group Decision Support System

HTML version of Basic Foils prepared May 19 99

Foil 4 Background

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
JDK1.1 event model
  • System state change notifications
  • Listeners
ITU-T Recommendation T.122
  • Channels
  • Token management
RMI
  • Registry
  • URL-like naming convention
  • Naming services

HTML version of Basic Foils prepared May 19 99

Foil 5 Functionality

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Generic framework for creating synchronous collaboration applications
Support for interactive, collaborative applications
Abstraction of session
Full-duplex multipoint communication among arbitrary number of connected applications
Multicast message communications
Sequenced messages
Token-based distributed synchronization mechanism
Shared byte arrays
Common interface for general multiparty communication; possibly implemented using various technologies

HTML version of Basic Foils prepared May 19 99

Foil 6 Environment Components

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Registry, stores information about:
  • Session objects
  • Client objects
JSDT server application
  • Starts sessions
  • Defines session managers
JSDT application
  • Joins sessions
  • Interacts with other clients

HTML version of Basic Foils prepared May 19 99

Foil 7 Architecture

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Host A
Host B
Registry
JSDT Server
JSDT Application
Communication with other applications
Naming Services
Naming Services

HTML version of Basic Foils prepared May 19 99

Foil 8 Basic Concepts

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Registry
Client
Session
Channel
Data
ByteArray
Token
Manageable Object
Manager
Listener and Event

HTML version of Basic Foils prepared May 19 99

Foil 9 Registry

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Sessions:
jsdt://scarecrow.npac.syr.edu:3355/socket/Session/chatSession
jsdt://scarecrow.npac.syr.edu:3355/socket/Session/audioSession
jsdt://scarecrow.npac.syr.edu:3356/socket/Session/controlSession
Clients:
jsdt://scarecrow.npac.syr.edu:4477/socket/Client/FrankClient
jsdt://scarecrow.npac.syr.edu:4488/socket/Client/SteveClient
Registry

HTML version of Basic Foils prepared May 19 99

Foil 10 Registry

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Storage of information about sessions and clients
Must be installed on the host where JSDT servers run
Uses default port to communicate with JSDT applications
Can be started separately or from the JSDT server
  • command line
  • RegistryFactory
Various implementations
  • socket - TCP/IP sockets
  • lrmp - Light Weight Reliable Multicast Package (LRMP)
  • rmi - Remote Method Invocation (RMI)

HTML version of Basic Foils prepared May 19 99

Foil 11 Client

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
FrankClient1
FrankClient2
FrankClient3
Application

HTML version of Basic Foils prepared May 19 99

Foil 12 Client

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Part of a JSDT application
Participant in an instance of multiparty communications
Related Clients can transfer data in point-to-point or multipoint fashion
Used for authentication, necessary for interaction with Manager objects
Object must implement Client interface to become JSDT Client

HTML version of Basic Foils prepared May 19 99

Foil 13 Session

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
FrankClient1
Application A
SteveClient2
Application B
chatSession
SteveClient1
FrankClient3
FrankClient2

HTML version of Basic Foils prepared May 19 99

Foil 14 Session

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Collection of related Clients which can exchange data via defined communications paths
Session maintains the state that describes Clients participating in Session and associated communication paths
Interacts with Session Manager - object that implements defined session management policy
JSDT application can have multiple Client objects associated with the same Session object

HTML version of Basic Foils prepared May 19 99

Foil 15 Session

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Creating a Session
  • SessionFactory creates specific implementation of the Session
  • URL name of the Session
  • New Session is added the Registry
  • Operation should be always executed by JSDT server
Joining a Session
  • Client must join a Session before it can share data with other Clients
  • Client can be a member of multiple sessions
Leaving a Session
  • terminates association with the Session
  • removes any resources created by the leaving Client
  • closes connection with the server that supported the Session

HTML version of Basic Foils prepared May 19 99

Foil 16 Channel

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
FrankClient1
Application A
SteveClient2
Application B
chatSession
FrankClient2
textChannel
SteveClient1

HTML version of Basic Foils prepared May 19 99

Foil 17 Channel

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Specific instance of a communication path between two or more Clients within a given Session
Channels are created within given Session
  • channel reliability
  • message order
Joining modes
  • Read only
  • Write only
  • Read & Write
All Clients connected to given channel will receive Data objects sent on that Channel
Any Client that possesses an object reference to a Channel can send Data objects on the given Channel

HTML version of Basic Foils prepared May 19 99

Foil 18 Channel

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Channel can be used to:
  • add or remove a Channel listener
  • add or remove a Channel consumer
  • list all the Clients that are consuming this Channel
  • determine if the Channel is ordered and/or reliable
  • allow a Client to join in a specific mode
  • determine if data in available and receive it synchronously
  • send data to all Clients, all other Clients or a single Client
Channel Consumer - Client that registered its interest in receiving Data sent over given Channel, used for asynchronous data receive
Synchronous receive
  • block until there is Data available
  • block until there is Data available or timeout expires

HTML version of Basic Foils prepared May 19 99

Foil 19 Data

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Client name: Steve
Channel: textChannel
Priority: Channel.TOP_PRIORITY
Length value: 40
Array of bytes:
Data Object

HTML version of Basic Foils prepared May 19 99

Foil 20 Data

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Discrete unit of data that is sent by a Client over a Channel to all of the Clients which currently registered an interest in receiving data on the given Channel
Any type of object can be sent using Java serialization capabilities
Sending methods
  • send to all
  • send to others
  • send to a Client
Sequencing of Data sent from one sender on one Channel at one priority is maintained identically at all receivers

HTML version of Basic Foils prepared May 19 99

Foil 21 Byte Array

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
FrankClient2
PeterClient1
AnnClient2
chatSession
textByteArray

HTML version of Basic Foils prepared May 19 99

Foil 22 Byte Array

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Object containing data that is permanently available to Clients within a Session
Global data can be written to a ByteArray object by a Client and new value is immediately available to be read by other Clients
ByteArray objects are created within given Session
ByteArray can be used to:
  • add or remove ByteArray Listener
  • get or set the ByteArray value
Arbitrary objects can be stored in ByteArray using Java serialization capabilities

HTML version of Basic Foils prepared May 19 99

Foil 23 Token

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
FrankClient2
SteveClient1
AnnClient2
whiteboardSession
drawingToken

HTML version of Basic Foils prepared May 19 99

Foil 24 Token

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Synchronization object that provides a unique distributed atomic operations
Can be used to implement various application-level synchronization mechanisms
Provide means to implement exclusive access
Token objects are created within given Session
Token can be used to:
  • add or remove a TokenListener
  • grab a Token (exclusively or non-exclusively)
  • list all the Clients that are holding (grabbing or inhibiting) this Token
  • release a Token
  • test a Token's current status
  • give a Token to another Client
  • request a Token from another Client

HTML version of Basic Foils prepared May 19 99

Foil 25 Token

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Token states
  • not in use - freely available Token
  • grabbed - a Token exclusively held by a Client
  • inhibited - a Token non-exclusively held by one or more Clients
  • giving - a Token in the process of being given to a Client by another Client

HTML version of Basic Foils prepared May 19 99

Foil 26 Manageable Object

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
JSDT Manageable Objects
  • Sessions
  • Channels
  • ByteArrays
  • Tokens
Manager object can be associated to control the operations

HTML version of Basic Foils prepared May 19 99

Foil 27 Manageable Object

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Manageable objects can be used to:
  • get a name of this Manageable object
  • list the names of the Clients who joined to this Manageable object
  • determine if the Manageable object has a manager associated with it
  • join this Manageable object
  • leave this Manageable object
  • enable or disable listener events
  • destroy Manageable object
  • invite a list of Clients to join this Manageable object
  • expel a list of Clients from this Manageable object

HTML version of Basic Foils prepared May 19 99

Foil 28 Manager

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Sequence diagram for session join operation
Client
Session
SessionManager
join
authenticate
sessionRequest

HTML version of Basic Foils prepared May 19 99

Foil 29 Manager

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Object that encapsulates some management policy for a Manageable object
Only one Manager can be associated with a managed object
Access to Session, ByteArray, Channel or Token can be controlled by assigning a Manager to it at creation time
Authentication takes place when:
  • Client tries to create or destroy ByteArray/Channel/Token in a managed Session
  • Client tries to join a managed Session/ByteArray/Channel/Token

HTML version of Basic Foils prepared May 19 99

Foil 30 Listener and Event

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Listener - object that has registered its interest in being notified about changes in state of some other given JSDT object
Session Listener receives notifications about
  • JSDT object creation and destruction in given session
  • operations on Session: destroy, join, leave, invite, expel
Channel Listener receives notifications about operations on Channel: join, leave, invite, expel, add consumer, remove consumer
ByteArray Listener receives notifications about operations on ByteArray: join, leave, invite, expel, change value

HTML version of Basic Foils prepared May 19 99

Foil 31 Listener and Event

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Token Listener receives notifications about operations on Token: join, leave, give, request, grab, release, invite, expel
Client Listener receives notifications about operations on Client: ByteArray/Channel/Session/Token invite and expel

HTML version of Basic Foils prepared May 19 99

Foil 32 Tango vs JSDT

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Mechanisms + policy implementation
Session model:
  • application is a member of the session
  • application can be a member of only one session
  • session membership is restricted (application type)
No shared variables
Synchronization and floor control: master status
TCP/IP sockets
Pure mechanisms, no policy implemented
Session model:
  • Client object is a member of the session
  • Client object can be a member of many sessions
  • session membership is not restricted
Shared variables available
Synchronization and floor control: tokens
Support for various protocols

HTML version of Basic Foils prepared May 19 99

Foil 33 Tango vs JSDT

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Support for Java applets, Java Script and arbitrary standalone applications
Manager built into the system, it is enough to implement the application
Registry distributed and replicated
Bottom line: Complete collaboration system with possibility of adding new components
Support for Java applets and applications
Session management, server and applications must be implemented
Registry centralized
Bottom line: Framework for creating various types of collaboration systems

HTML version of Basic Foils prepared May 19 99

Foil 34 JSDT Distribution

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Version 1.4, Generic Installation - $99.00
http://www.sun.com/software/jsdt/index.html
Evaluation version available with restrictions:
  • allows connections on a single port
  • only a maximum of 5 simultaneous connections at any one time
  • only `socket' implementation
For LRMP implementation additional classes necessary: ftp://ftp.inria.fr/INRIA/Actions/webcanal

HTML version of Basic Foils prepared May 19 99

Foil 35 References

From Overview of Java Shared Data Toolkit Tango Group Internal Technology Seminars -- Spring 99. *
Full HTML Index
Java Shared Toolkit User Guide by Rich Burridge, Sun Microsystems, Inc.
ITU-T Recommendation T.122 - Multipoint Communication Service for Audiographics and Audiovisual Conferencing Service Definition
http://www.sun.com/software/jsdt/index.html
http://tango.npac.syr.edu/tango

© Northeast Parallel Architectures Center, Syracuse University, npac@npac.syr.edu

If you have any comments about this server, send e-mail to webmaster@npac.syr.edu.

Page produced by wwwfoil on Wed May 19 1999