SOA-based Collaborative Authoring Andrew Roczniak Multimedia Research Lab University of Ottawa.

Slides:



Advertisements
Similar presentations
Intisar O. Hussien Faculty of Computer Studies Arab Open University
Advertisements

SIP and Instant Messaging. SIP Summit SIP and Instant Messaging What Does Presence Have to Do With SIP? How to Deliver.
CS425 /CSE424/ECE428 – Distributed Systems – Fall 2011 Material derived from slides by I. Gupta, M. Harandi, J. Hou, S. Mitra, K. Nahrstedt, N. Vaidya.
Token-Dased DMX Algorithms n LeLann’s token ring n Suzuki-Kasami’s broadcast n Raymond’s tree.
1 CS 194: Elections, Exclusion and Transactions Scott Shenker and Ion Stoica Computer Science Division Department of Electrical Engineering and Computer.
Jabber and Extensible Messaging and Presence Protocol (XMPP) Presenter: Michael Smith Cisc 856 Dec. 6, 2005.
The BitTorrent Protocol
Socket Layer Security. In this Presentation: need for web security SSL/TLS transport layer security protocols HTTPS secure shell (SSH)
Nummenmaa & Thanish: Practical Distributed Commit in Modern Environments PDCS’01 PRACTICAL DISTRIBUTED COMMIT IN MODERN ENVIRONMENTS by Jyrki Nummenmaa.
Web Services and the Semantic Web: Open Discussion Session Diana Geangalau Ryan Layfield.
CS 582 / CMPE 481 Distributed Systems
Internet Networking Spring 2006 Tutorial 12 Web Caching Protocols ICP, CARP.
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
Computer Science Lecture 12, page 1 CS677: Distributed OS Last Class Distributed Snapshots –Termination detection Election algorithms –Bully –Ring.
Systems of Distributed Systems Module 2 -Distributed algorithms Teaching unit 3 – Advanced algorithms Ernesto Damiani University of Bozen Lesson 6 – Two.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #13 Web Caching Protocols ICP, CARP.
SSH : The Secure Shell By Rachana Maheswari CS265 Spring 2003.
Internet Networking Spring 2002 Tutorial 13 Web Caching Protocols ICP, CARP.
1 More on Distributed Coordination. 2 Who’s in charge? Let’s have an Election. Many algorithms require a coordinator. What happens when the coordinator.
Tcl Agent : A flexible and secure mobile-agent system Paper by Robert S. Gray Dartmouth College Presented by Vipul Sawhney University of Pennsylvania.
POP3 Post Office Protocol v.3. Intro The Post Office Protocol (POP) is currently the most popular TCP/IP access and retrieval protocol. It implements.
Computer Science Lecture 12, page 1 CS677: Distributed OS Last Class Vector timestamps Global state –Distributed Snapshot Election algorithms.
Middleware for P2P architecture Jikai Yin, Shuai Zhang, Ziwen Zhang.
Pay As You Go – Associating Costs with Jini Leases By: Peer Hasselmeyer and Markus Schumacher Presented By: Nathan Balon.
Query Processing in Mobile Databases
FileSecure Implementation Training Patch Management Version 1.1.
TRANSACTIONS AND CONCURRENCY CONTROL Sadhna Kumari.
KaZaA: Behind the Scenes Shreeram Sahasrabudhe Lehigh University
CIS679: RTP and RTCP r Review of Last Lecture r Streaming from Web Server r RTP and RTCP.
Distributed Deadlocks and Transaction Recovery.
Publishing and transporting Web Services over XMPP
DEMIGUISE STORAGE An Anonymous File Storage System VIJAY KUMAR RAVI PRAGATHI SEGIREDDY COMP 512.
XMPP Extensible Messaging and Presence Protocol. Chat In the beginning there was instant messaging and chat. Lots of binary standards: Unix talk, IRC,
BY SAGAR SINHA SAPTARSHI BAKSHI SARTHAK JAIN SHAILZA CHAUDHARY
WXET1143 Lecture7: , Chat and Messaging. Introduction  Electronic mail is everywhere.  Now many people in business, government, and education use.
M i SMob i S Mob i Store - Mobile i nternet File Storage Platform Chetna Kaur.
Instant Messaging for the Workplace A pure collaborative communication tool that does not distract users from their normal activities.
Behzad Akbari Spring 2012 (These slides are based on lecture slides by Lawrie Brown)
What makes a network good? Ch 2.1: Principles of Network Apps 2: Application Layer1.
XMPP – Extensible Messaging and Presence Protocol Vidya Satyanarayanan.
Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.
XMPP Concrete Implementation Updates: 1. Why XMPP 2 »XMPP protocol provides capabilities that allows realization of the NHIN Direct. Simple – Built on.
Jabber Client Jeevan Varma Anga Distributed Systems(CSC8530) Villanova University.
Computer Science Lecture 12, page 1 CS677: Distributed OS Last Class Vector timestamps Global state –Distributed Snapshot Election algorithms –Bully algorithm.
Presenter: Long Ma Advisor: Dr. Zhang 4.5 DISTRIBUTED MUTUAL EXCLUSION.
Introduction to 學校:大同大學 班級: GI1 學號: 姓名:李奕銳 教師:葉慶隆 Jabber 1.
Omar A. Abouabdalla Network Research Group (USM) SIP – Functionality and Structure of the Protocol SIP – Functionality and Structure of the Protocol By.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
Databases Illuminated
 Distributed file systems having transaction facility need to support distributed transaction service.  A distributed transaction service is an extension.
ECEN “Internet Protocols and Modeling”, Spring 2012 Course Materials: Papers, Reference Texts: Bertsekas/Gallager, Stuber, Stallings, etc Class.
World Wide Web “WWW”, "Web" or "W3". World Wide Web “WWW”, "Web" or "W3"
Design of Distributed Collaborative Application through Service Aggregation Andrew Roczniak Multimedia Communications Research Lab University of Ottawa,
Jabber Technical Overview Presenter: Ming-Wei Lin.
Computer Simulation of Networks ECE/CSC 777: Telecommunications Network Design Fall, 2013, Rudra Dutta.
An Analysis of XMPP Security Team “Vision” Chris Nelson Ashwin Kulkarni Nitin Khatri Taulant Haka Yong Chen CMPE 209 Spring 2009.
Voeventnet.caltech.edu Transporting VOEvents Andrew Drake, Matthew Graham, Roy Williams, et al.
15 May 2006 IVOA - Victoria: VOEvent 11 Jabber/XMPP Matthew J. Graham Caltech T HE US N ATIONAL V IRTUAL O BSERVATORY.
Distributed Mutual Exclusion Synchronization in Distributed Systems Synchronization in distributed systems are often more difficult compared to synchronization.
Mutual Exclusion Algorithms. Topics r Defining mutual exclusion r A centralized approach r A distributed approach r An approach assuming an organization.
HighImpactSoft 2010 Organizing a Better Future. Agenda Specify Goals ScopeDefinitions Process Model Preliminary Requirements Issues and solutions TraceabilityPrototype.
CSE 486/586 CSE 486/586 Distributed Systems Leader Election Steve Ko Computer Sciences and Engineering University at Buffalo.
CS3771 Today: Distributed Coordination  Previous class: Distributed File Systems Issues: Naming Strategies: Absolute Names, Mount Points (logical connection.
Copyright, Open Geospatial Consortium Making Location Count Peer-to-Peer File Sharing An Answer to the SDI blues North Carolina GIS Conference February,
CHAPTER 3 Architectures for Distributed Systems
Session Initiation Protocol (SIP)
#01 Client/Server Computing
Fundamentals of Databases
UNIVERSITAS GUNADARMA
#01 Client/Server Computing
Presentation transcript:

SOA-based Collaborative Authoring Andrew Roczniak Multimedia Research Lab University of Ottawa

2May 19th, 2006Andrew Roczniak MCRLab 2006 Intro Our intent is to develop a framework for fast design of collaborative applications For that purpose we have looked at Jabber, originally designed with instant messaging applications in mind, with the goal on building on top of it Very quickly it became apparent that some functionalities required by collaborative applications are missing

3May 19th, 2006Andrew Roczniak MCRLab 2006 Jabber Jabber is a set of streaming XML protocols and technologies that enable any two entities on the Internet to exchange messages, presence, and other structured information in close to real time No specific network architecture required Usually implemented in a client-server architecture over TCP Usually implemented in a client-server architecture over TCP Servers also communicate with each other over TCP connections Servers also communicate with each other over TCP connections

4May 19th, 2006Andrew Roczniak MCRLab 2006 Jabber The Jabber Software Foundation (JSF) contributed the base protocols to the Internet Engineering Task Force (IETF) under the name Extensible Messaging and Presence Protocol (XMPP) Base Protocols (XMPP RFCs) Base Protocols (XMPP RFCs) RFC 3920: Extensible Messaging and Presence Protocol (XMPP): Core. The core XML streaming functionality that powers Jabber applications, including advanced security and internationalization support RFC 3921: Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence. Basic IM and presence functionality, including contact lists, presence subscriptions, and whitelisting/blacklisting In addition, the XMPP Work Group developed the following two RFCs: In addition, the XMPP Work Group developed the following two RFCs: RFC 3922: Mapping the Extensible Messaging and Presence Protocol (XMPP) to Common Presence and Instant Messaging (CPIM) A mapping of XMPP to the IETF's abstract syntax for IM and presence RFC 3923: End-to-End Signing and Object Encryption for the Extensible Messaging and Presence Protocol (XMPP) An extension for interoperable, end-to-end security Various XMPP extensions are defined in the JSF's Jabber Enhancement Proposals (JEPs) series. Various XMPP extensions are defined in the JSF's Jabber Enhancement Proposals (JEPs) series.

5May 19th, 2006Andrew Roczniak MCRLab 2006 Required Functionalities Group Communication Group notification (event notification) Group notification (event notification) Bulk transfer (large files) Bulk transfer (large files) Document consistency Group notification + presence information + distributed lock mechanism Group notification + presence information + distributed lock mechanism

6May 19th, 2006Andrew Roczniak MCRLab 2006 T = 1T = 2 A B C D C requests lockA requests lock C requests lockA requests lock OK B: OK D: OK Deny T=1 < T=2 OK T=1 < T=2 C: OK A: Deny Lock

7May 19th, 2006Andrew Roczniak MCRLab 2006 A B C D Lock HTTP Upload Unlock Download

8May 19th, 2006Andrew Roczniak MCRLab 2006 Approximate time synchronization is required Cooperative, not competitive environment Cooperative, not competitive environment The leader will periodically send a series of “timestamps”, based on System.nanoTime(). All users (leader included) will, upon receiving such timestamp, take note of the difference between the timestamp and their own value of System.nanoTime(). Whenever a timestamp needs to be created for a new request, it will be based on the current System.nanoTime() + the difference with the Leader Getting the time right

9May 19th, 2006Andrew Roczniak MCRLab 2006 Leader Election When a user joins an empty room, it becomes the leader. When a user joins a non-empty room, it waits for a special message from the leader. When the leader leaves the room, the users elect a new one using highest JID hash.

10May 19th, 2006Andrew Roczniak MCRLab 2006 Experiments Ran test scripts that randomly attempt to lock editable areas of the shared document at randomly spaced intervals of time If a lock is achieved, then an image is added and the area is unlocked A separate script randomly executes login, log off and simulates system crashes A separate script randomly executes login, log off and simulates system crashes

11May 19th, 2006Andrew Roczniak MCRLab 2006 Setup

12May 19th, 2006Andrew Roczniak MCRLab 2006 Results

13May 19th, 2006Andrew Roczniak MCRLab 2006 Results Not sent: requests that were canceled either because the area was already locked, or because the activities were paused in order to let a user join the collaboration room. Canceled: requests that were retracted when another user was logging in. Timeout: requests for which not all accept messages were received within 5 seconds; those were re- issued. Denied: those that were withdrawn because another peer attempted to lock the same area a moment before. Successful: those that completed successfully.

14May 19th, 2006Andrew Roczniak MCRLab 2006 Future work Controlled environment Comparison with WS implementations Questions? THANK YOU!

15May 19th, 2006Andrew Roczniak MCRLab 2006 Electing a Leader

16May 19th, 2006Andrew Roczniak MCRLab 2006 locked? NoYes Cancel Sending a request Lock List Pending Send Lock Request This must be completed in active state (no pause) Read Write Action Lock area Wait for Replies

17May 19th, 2006Andrew Roczniak MCRLab 2006 Wait for Replies Yes No Yes Issue lock confirm Upload Issue unlock Matches request? No Yes Deny? All votes? Processing request replies Read Pending Write Vote List Write Delete Done Write Delete This must be completed in uploading state (no pause) Can be preempted by pause Lock accept/deny message Timeout Action Lock area

18May 19th, 2006Andrew Roczniak MCRLab 2006 Vote List Wait for Replies Request received Issue lock confirm Interaction between active objects This can be killed only if the vote list is incomplete These can be killed at any time

19May 19th, 2006Andrew Roczniak MCRLab 2006 Yes No Yes Receiving a request Yes No YesNo Yes No Action Lock request message Done Locked? My request? Pending?My time greater?My time lower?My hash higher? Issue Accept Issue Deny Write Pending Write Delete Pending Read Lock List Read Vote List Can be preempted by pause

20May 19th, 2006Andrew Roczniak MCRLab 2006 Leader? Pending Locks? Set to DENY Ignore replies Specific to that request Yes My Locks > 0 No Upload and Issue Unlock Message Yes Done NoYes Locks > 0 Wait Yes No Issue Leader Declaration Message The new user will send a start message after Downloading the DOM. Otherwise the leader tells participants to start if(lockManager.lock_list.size()==0) {…} else new Timer().schedule(new TimerTask(){public void run(){tryToRestart();}},100); Local locks are taken care of by the protocol. Global number of locks must be 0 to finish. My Locks - - Locks - - For example: New user has joined My locks is not a structure, just used here to highlight ownership of locks. Those two algorithms are running concurrently Pause-and-Restart Assumes there is a leader Assumes nobody crashed and all unlock messages are received

21May 19th, 2006Andrew Roczniak MCRLab 2006 How many peers? 1N Not Leader NoYes Leader election – when Leader leaves (gracefully or crashed) Leader Calculate hash of unique IDs for all peers My hash == max{hash} Leader Assumes all get the same list of peers Could cause problems if leader leaves and a peer joins at the same time: some peers could get different lists from the server? Get internal list Of participants Two events happen: leader leaves and new user joins. The order of events is determined at the server. Since we use a centralized server, message order is the same for all peers, but these can be received at different times. List must be stored at each peer and updated when user leaves and after leader declaration message when user joins. Otherwise, a new user could wait for the declaration when it has been elected leader. Atomic (whenever leader left message is received)

22May 19th, 2006Andrew Roczniak MCRLab 2006 How many peers? 1N Not Leader Leader election – at the beginning Leader Get list of participants from server What if two users join the chat room at the same time? Both could retrieve a list of two participants and thus decide they are not leaders.

23May 19th, 2006Andrew Roczniak MCRLab 2006 Was it the leader? NoYes Participant leaves (gracefully or crashed) Done Elect Leader Assumes all get the same list of peers Could cause problems if leader leaves and a peer joins at the same time: some peers could get different lists from the server? Remove locks owned by the participant Two events happen: leader leaves and new user joins. The order of events is determined at the server. Since we use a centralized server, message order is the same for all peers, but these can be received at different times. List must be stored at each peer and updated when user leaves and after leader declaration message when user joins. Otherwise, a new user could wait for the declaration when it has been elected leader.

24May 19th, 2006Andrew Roczniak MCRLab 2006 PeerOutsideAcquireLeader You can relinquish Leader role only by leaving Superstates

25May 19th, 2006Andrew Roczniak MCRLab 2006 Pause Join, Leave Active Restart Join, Leave Peer After acquire, is the peer in active or pause state? Waiting Join, Leave Active Restart Join, Leave Leader After becoming a leader, is the peer in active or pause state? Waiting for replies Uploading

26May 19th, 2006Andrew Roczniak MCRLab 2006 Area (active peer) Messages received Messages sent Actions Unlocked Locked Lock confirm Unlock Pending Lock request Deny Cancel Lock request Accept - or - Deny Accept Business logic based on timestamp Lock request Accept Deny Lock confirm Unlock

27May 19th, 2006Andrew Roczniak MCRLab 2006 Area (passive peer) Messages received Messages sent Actions Unlocked Locked Lock confirm Lock request Accept Improvement This information could be used to minimize conflicts if this peer decides to lock this area Unlock User left - Remove Deny is never sent since this peer is not trying to lock this area as well Lock request Accept Deny Lock confirm Unlock