410 likes | 653 Views
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.
E N D
ESI Extensions for Web-based Collaboration Merlin W. Vincent Master’s Thesis Defense Merlin Vincent
Outline • Characteristics of Collaboration Systems • Edge-Side Includes Protocol • ESI Extensions for Collaboration • Extended Example ESIC Application • Performance Evaluation • Security Issues Merlin Vincent
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
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
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
Approaches to Object Replication • Collaboration Awareness • Lower bandwidth required • model • view • Collaboration Transparency • Higher bandwidth required • widget • window • screen Merlin Vincent
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
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
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
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
ESIC Architecture Merlin Vincent
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
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
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
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
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
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
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
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
Initial Client Login Response • Server accepts login, assigns session & client ID • Msg 5: Initial server response creates session Merlin Vincent
Proxy Control: XML Markup • ESIC Proxy controlled by in-message XML • General structure of markup: Merlin Vincent
Server XML creating the session Merlin Vincent
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
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
Server response with XML updating the session Merlin Vincent
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
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
Server Channel Addressing • Server addresses are in message XML • message body contains address list Merlin Vincent
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
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
POST request from client2 Merlin Vincent
Server Broadcasts Data to Users Merlin Vincent
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
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
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
CPU Utilization Merlin Vincent
Message Latency Merlin Vincent
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
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
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
Conclusion • Presented a design based on analysis of collaboration requirements • Implemented a prototype to demonstrate usability • Evaluated performance Merlin Vincent