1 / 33

Development of Collaborative Tools Using Distributed Systems Technology

Development of Collaborative Tools Using Distributed Systems Technology. Talk Outline. Welcome Overview of semester Applications built Technologies used Comparisons Conclusion. Background Information/Research of possible technologies. Sockets RMI Jini JavaSpaces. Project Overview.

Download Presentation

Development of Collaborative Tools Using Distributed Systems Technology

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Development of Collaborative Tools Using Distributed Systems Technology

  2. Talk Outline • Welcome • Overview of semester • Applications built • Technologies used • Comparisons • Conclusion

  3. Background Information/Research of possible technologies • Sockets • RMI • Jini • JavaSpaces

  4. Project Overview • Text Editor • Basic application working • Implemented shared/distributed version • Added additional features • Whiteboard • Shared application from beginning • Added additional features

  5. Initial Prototype • Text Editor • First Step of Jini Design model Stand-Alone Jini JavaSpaces

  6. Our Implementation • Abstract Windowing Tool Kit • Part of the core classes of the Java 2 platform • The Java TextArea • Def: A multi-line region that displays text • Supports creating, opening and saving • But... • High level structure • No access to direct strings

  7. Implementation Problems • What happens when more than one user wishes to write in the same location? • Should we put a locking mechanism on individual lines, on paragraphs, on pages, etc... • Cursor control • Where does the cursor come from? • Should we use the systems cursor? • Should we provide an application cursor?

  8. What is a Whiteboard? • An infinite space on which users can post other objects • An application of Distributed Collaborative Productivity • Uses “Objects” • greater flexibility / scalability • New application of a previous concept

  9. Remote Method Invocation (RMI) • Server binds to RMI name registry • Clients look up the server on the registry • Method calls on server like other objects • Constraints - exception handling, parameter passing • Java implementation of RPC concept

  10. Why RMI? • Mature - relatively bug-free • Well-documented • Flexible - inherently supports multiple clients • Easy to use - more abstract than sockets • Parameter passing constraints can be overcome using “wrapper” objects

  11. The RMI Whiteboard • “Whiteboard” - Java class maintains collection of displayable “WbObjects” • Clients hold local subsets of the collection • Clients Add(), Remove() objects • Client handles interface and display of objects • Objects have unique IDs to avoid duplicates

  12. WbClient Local Collection Add/Remove Global Object collection Display WbClient Local Collection Whiteboard Add/Remove Display

  13. Synchronization • “Database triggers” approach • Whiteboard has information about whether each client needs updating • Info changes when objects added/removed • Client loops constantly, checking for update • If so, gets the new objects from Whiteboard for display purposes

  14. Why this Design Approach? • Local collections • Bandwidth is not wasted sending duplicate objects • Allows independent views of global objects • Efficient Synchronization - Doughnut Shop Theory • High-level abstraction - easy to understand • Straightforward to implement

  15. The Second Prototype • Whiteboard: Needed a new design • The first step to the Jini approach (again) • Another Stand-Alone model • designed with some knowledge of Jini Stand-Alone Jini JavaSpaces

  16. Design Decisions • Working from past experiences • AWT • MouseListeners and KeyListeners • Functionality: • Lines, Rectangles, Ovals, Text and Printing • Keep everything on the Whiteboard

  17. The Object Class • One class to hold all objects • Contains information regarding the type, the string, x-coordinates and y-coordinates • One array contains all of the whiteboard data

  18. The “Jini Vision” • Network-centric Vs Disk-centric model • Embedded systems, plug n play networking • Dynamic Network required for future vision (connection-based technology) • Federation of Services concept • Raise level of abstraction for distributed systems programming

  19. How Jini Works • Devices talk to each other via Java Interfaces (not traditional net protocols) • Jini clients request services via Java Interfaces and Jini Services return code • Services: make themselves available when they join the network • Clients: locate and contact Jini services

  20. Jini Concepts • Normal Programming • Device Drivers and Files • Function and Method Calls • Jini Programming • User Interface (Frame) • Registering A Service (Server) • Finding and Using A Service (Client) • Programming Difficulties

  21. The Jini Server • Security Manager • Attributes Array • JoinManager • Reggie • How many services are available?

  22. The Jini Client • Security Manager • Lookup Locator • Searching for the Service • Call the program method • Note: Each client gets a separate instance of the service

  23. Difficulties • How does Jini work? • Coding the server and client • Setting Up the Environment • Distributed System? • Javaspaces or RMI • Running the Server and Clients • Steep programming curve = “Users and little things”

  24. The Jini Vision of the Future • Bill Joy on Cell Phones and Microphones • “Once you have lots of different kinds of devices combining in different ways, you can’t do monolithic software anymore. Each of these devices has a certain set of functions, and if we have to assume when we build them what they’re going to be used for, it’s not very [flexible].”

  25. JavaSpaces Introduction • New Jini service based on Linda • Very simple implementation: API consists of only a handful of methods • Handles details of concurrent access • Goal: Reduce time/effort to design and implement sophisticated network apps

  26. JavaSpaces Model • No message passing between processes; JavaSpaces use shared memory (space)!

  27. Operations on JavaSpaces • Write, take, read (copy) objects to space • Template object used for associative matching during take, read operations • TakeIfExists and ReadIfExists • Notify - notifies when new entries are added (using Jini’s distributed event model) • Persistence and lease times

  28. Using JavaSpaces • A space holds entries (objects must implement Java’s Entry interface) • Write entry and JavaSpaces app classes • Start a JavaSpaces server (Jini environment) • Compile and Run the code as a client

  29. Implementations • Difficulties: technology still maturing, few examples and little documentation • Problems “listening” for new entries and synchronizing multiple clients • Examples: Chat system and Whiteboard systems developed

  30. Chat and Whiteboard Examples • Exchanges user messages or whiteboard objects as entries in the space • distributed counter for synchronization Clients Reading 1. Read current msg number from status entry 2. Constantly monitor space waiting for next msg to appear 3. When it does, read a copy and update chat display JavaSpace a status/counter b messages Writing 1. Take status entry and increment msg counter 2. Create a new msg with msg number and write it to the space 3. Replace the updated status entry c

  31. Jini/JavaSpaces approach • Future vision should provide easier use • Possible plug n play networking in the future • Young, evolving technology • Not much documentation • Few examples

  32. RMI approach • Mature technology • Well documented • Easy to use • Re-inventing the wheel

  33. Conclusions • Research and use of new technologies • Successful implementations • Basis for future work

More Related