1 / 41

ESI Extensions for Web-based Collaboration

ESI Extensions for Web-based Collaboration. Merlin W. Vincent Master’s Thesis Defense. Outline. Characteristics of Collaboration Systems Edge-Side Includes Protocol ESI Extensions for Collaboration Extended Example ESIC Application Performance Evaluation Security Issues. Motivation.

anika
Download Presentation

ESI Extensions for Web-based Collaboration

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. ESI Extensions for Web-based Collaboration Merlin W. Vincent Master’s Thesis Defense Merlin Vincent

  2. Outline • Characteristics of Collaboration Systems • Edge-Side Includes Protocol • ESI Extensions for Collaboration • Extended Example ESIC Application • Performance Evaluation • Security Issues Merlin Vincent

  3. Motivation • Provide an easy-to-use framework for developers • collaboration becoming more popular • Improve performance by offloading I/O • Decrease application complexity • gain multicast distribution services • gain collaboration-specific communications • Utilize existing content delivery network (CDN) Infrastructure • Extend edge cache server function and Edge Side Includes protocol for collaboration • HTTP is ubiquitous and convenient Merlin Vincent

  4. Dynamic Interaction Unrestricted doc types Unrestricted app types Unrestricted messaging Any framework should support: Authentication Access Controls Awareness Transport Security General Collaboration Features Merlin Vincent

  5. Communications for Collaboration • Collaboration application comm can be • asynchronous • synchronous • Synchronous Real-time Communications • operation propagation • Replication of shared objects • something must exist on user’s system Merlin Vincent

  6. Approaches to Object Replication • Collaboration Awareness • Lower bandwidth required • model • view • Collaboration Transparency • Higher bandwidth required • widget • window • screen Merlin Vincent

  7. Cache Server Cache Server Cache Server Cache Server Fewer Requests Host Server Sprint UUnet Server Gloobix QWest MirrorSite Mirror Site Edge Network Cache Servers Fast Response Clients @Home PSINet Client Cache MindSpring Edge Network Cache Server Client Side Cache Server Clients Clients Merlin Vincent

  8. Edge-Side Includes Protocol • Used to generate dynamic web pages • based on HTTP and HTML • Involves only the proxy and server • transparent to clients • Controlled by HTTP headers • proxy sends Surrogate-Capabilities header • server sends Surrogate-Control header • Implemented in markup • in-message XML Merlin Vincent

  9. Edge-Side Includes Markup <table><tr><td colspan=“2”><esi:try> <esi:attempt> <esi:include src=http://www.myxyz.com/news/top.html onerror=“continue” /> </esi:attempt> <esi:except> <!- -esi This spot is reserved for your company’s advertising. For more info <a href=www.myxyz.com> click here </a> - - > </esi:except></esi:try></td></tr></table> Merlin Vincent

  10. ESI for Collaboration (ESIC) • Collaboration framework • sessions • channels • users • addressable messaging • Extends existing ESI standard • uses ESI extension processor • Proxies act as surrogates • DNS returns proxy address Merlin Vincent

  11. ESIC Architecture Merlin Vincent

  12. ESIC Protocol • Controlled by HTTP headers • Control functions • create/update/remove sessions, &c. • via in-message XML markup • involves only proxy and server • Messaging functions • multiple channel types Merlin Vincent

  13. Sessions • An on-going collaboration instance • Consist of: • a set of users • a set of channels • Attributes: • session ID • base path, e.g., http://www.collabr8.com/basePath Merlin Vincent

  14. Users • Collaborators • Attributes: • client ID • channels that may be used • user roles • define channel access rights (rw, ro, wo) • role names defined by the application Merlin Vincent

  15. Channels • A bi-directional communications link • Accessed via URL • Attributes: • access types for user roles • activity timeout • channel type • URL is relative to session base path, e.g., http://www.collabr8.com/basePath/channelPath Merlin Vincent

  16. ESIC Channel Types • Basic • bi-directional link • peer-to-peer, one-to-many • Homed • all requests forwarded to server • Monitored • copy of all requests sent to monitor • Ordered • all requests sent through single proxy Merlin Vincent

  17. Extended Example: drawboard • Modified open source applet & server • converted applet to application • issue: couldn’t simulate DNS lookup • added use of HTTP messages (non-ESIC version) • added use of ESIC framework Merlin Vincent

  18. Initial Client Login • DNS => proxy IP address • Client logs in to application • proxy passes messages not bound for channel URL • Server response contains markup creating the session • Proxy A broadcasts info on new session • Server informs client of collaboration channel URLs Merlin Vincent

  19. Initial Client Login Request • Drawboard login consists of GET request • the /drawServer URL is not a collaboration channel • Msg 4: Proxy adds Surrogate-Capabilities header Merlin Vincent

  20. Initial Client Login Response • Server accepts login, assigns session & client ID • Msg 5: Initial server response creates session Merlin Vincent

  21. Proxy Control: XML Markup • ESIC Proxy controlled by in-message XML • General structure of markup: Merlin Vincent

  22. Server XML creating the session Merlin Vincent

  23. Initial Client Channel Connection • Client must connect to collaboration channel • Msg 8 includes ID headers • Msgs 10, 11 are application specific • Pinger • Archive (latecomer support) Merlin Vincent

  24. Additional Client Logins • New clients may login via another proxy • Client login messaging is identical • server assigns client ID and role • response XML adds client to session • Proxy B broadcasts update to session Merlin Vincent

  25. Server response with XML updating the session Merlin Vincent

  26. Using a Channel • Client receives assigned IDs • Set-Cookie headers in initial response • esicSession=“abc123”, esicClient=“def456” • Client receives channel URLs • mechanism is application-specific (ConxStarter) • Client connects to channels • Client may now send data to the channel • via GET/POST/PUT requests • Sender must provide address information Merlin Vincent

  27. Channel Addressing • Sender provides an address • recipient’s client ID, or ‘*’ for broadcast • homed channel: server is implied • monitored channel: monitor is implied in addition • mechanism differs for client & server • Client addresses in method or header Cookie: esicToList=”def456,ghi789” - or - http://a.b.com/base/ch1?esicToList=def456,ghi789 Merlin Vincent

  28. Server Channel Addressing • Server addresses are in message XML • message body contains address list Merlin Vincent

  29. Proxy Actions • Upon receiving a request to a channel: • ESIC proxy intercepts the message • recognizes client requests to channel URLs • server responses will contain control header • Routes messages appropriately • verifies client role allows write access • extracts address list • channel type considered • forward to other proxies if necessary • proxies comprise multicast group • routing table maps client to proxy connection Merlin Vincent

  30. Sending Collaboration Data 10. Client2 issues POST request 11. Homed channel goes to server with Surrogate-Capability header 12. Response with ‘*’ address in XML and Surrogate-Control header 13. Forwarded to client1 proxy 14,15. Delivery to addressees Merlin Vincent

  31. POST request from client2 Merlin Vincent

  32. Server Broadcasts Data to Users Merlin Vincent

  33. Performance Evaluation • Test configuration • drawboard server on blanca • two ESIC proxies, sanluis & crestone • multiple drawboard instances • running on Windows workstations • evenly distributed between the proxies • repeat the last generated drawing object at rate of 1 msg/sec Merlin Vincent

  34. Non-ESIC Test Rig • blanca: dual 933MHz PIII, 1.5GB RAM, Redhat 9, Java 1.4.1 • Windows PCs: one 933MHz PIII, 512MB RAM, Java 1.4.1 • n clients => n2+n msg/sec • 1640 msg/sec maximum Merlin Vincent

  35. ESIC Test Rig • Crestone: same as Blanca • Sanluis: same except has dual 1.64GHz PIII • n clients => 2n msg/sec • 80 msg/sec maximum • JDOM XML adds a lot of overhead • turnaround time: 4.415 mSec to 11.578 mSec Merlin Vincent

  36. CPU Utilization Merlin Vincent

  37. Message Latency Merlin Vincent

  38. ESIC Security • Complex issue • proxy must have access to msg contents • server response messages • ESI is still allowed • markup may be anywhere within the message • markup controls the proxy • client request messages • addresses are in the HTTP headers Merlin Vincent

  39. ESIC Security, cont. • Proxy is a surrogate for the server • tightly integrated • server is client of Content Delivery Network • Proxy/Server Connection • SSL, with client authentication • Client/Proxy Connection • SSL, proxy uses subscriber’s certificate • similar approach used for virtual hosting Merlin Vincent

  40. Future Work • Improve efficiency • connection pooling to origin server • extend multicast group to clients • Experiment with virtual clusters • avoid the Java applet security issue • Address caching issues • optional channel attribute Merlin Vincent

  41. Conclusion • Presented a design based on analysis of collaboration requirements • Implemented a prototype to demonstrate usability • Evaluated performance Merlin Vincent

More Related