The document discusses research on applying a message-based model-view-controller (MMVC) paradigm to build web applications centered around messages. Key points include:
- MMVC is proposed as a general approach that converges desktop, web, and collaboration applications using a message-based service model.
- Experiments applying MMVC to collaborative Scalable Vector Graphics (SVG) applications are discussed to demonstrate building "collaboration as a web service".
- Issues addressed include performance optimization when separating applications across client/server with messaging.
1. Ph.D. student of EECS department, Syracuse University Research work is performed at Community Grids Lab, Indiana University [email_address] , [email_address] 501 Morton N. St, Suite 222, Bloomington IN 47404 Community Grids Lab, Indiana University by Xiaohong Qiu Web Service Architecture for e-Learning July 23, 2004
2.
3.
4.
5.
6. Physical network Virtual distributed operating system Messaging infrastructure Application Network system in a layered stack Same layer ?
15. Monolithic collaboration model NaradaBrokering Identical programs receiving identical events master SVG browser client master master SVG browser client other master SVG browser client other master SVG browser client other
16. SVG DOM Model as Web Service NaradaBrokering SMMV collaborative Web Service model Share output port master SVG client master View master SVG client other View master SVG client other View master SVG client other View
17. MMMV collaborative Web Service model Share input port NaradaBrokering master SVG client master View master SVG client other View master SVG client other View master SVG client other View Broker SVG DOM Model as Web Service SVG DOM Model as Web Service SVG DOM Model as Web Service SVG DOM Model as Web Service Broker Broker Broker
18. A comparison of MVC and MMVC model in a case of SVG application Model View Controller a. MVC Model Controller View Display Model Messages contain control information Decomposition of SVG Browser b. Three-stage pipeline High Level UI Raw UI Display Rendering as messages Events as messages Semantic Events as messages Rendering as messages Figure 1 Reformulation of SVG to message based MVC in a Web Service Model Input port Output port
19. Method-based MVC vs. message-based MVC B Subscribe to event class A Broker Set up an event class (topic) publish an event class Send event message based A B register call back method invoke call back method with event method based
21. Three among the different ways of decomposing SVG between client and Web Service component Shared SVG Browser on PDA b. Decomposed WS optimized for thin clients Rendering as messages Events as messages Messages contain control information Semantic High Level UI R F I O U F I O Web Service Event (Message) Service Raw UI Display Shared SVG Browser on PC a. Non-decomposed collaborative SVG requiring minimal changes to the original source code Messages contain control information Event (Message) Service R F I O SVG Browser Semantic High Level UI Raw UI Display Collaborative Events and Web Service messages Internet Game c. Decomposed WS optimized for performance Messages contain control information Semantic R F I O U F I O Web Service Event (Message) Service High Level UI Raw UI Display Figure 2 Three among the different ways of decomposing SVG between client and Web Service component Input port Output port Rendering as messages Events as messages Input port Output port Collaborative Events and Web Service messages Collaborative Events and Web Service messages
24. Collaborative SVG Event processing chart Figure 5 Collaborative SVG Event processing chart Raw UI events (e.g. Mouse and key events) High Level UI events (e.g. SVG/DOM events) Semantic events (e.g. Application events such as “capture” in chess game) Collaborative events (e.g. Master Events which has context information of collaboration and information from previous stages)
25. The general event/listener model Component A (Event Source) Component B (Event Listener) register for event notification issue event occurrence
26. Java delegation event model Event Source register event x listeners Invoke call back method with event x x EventListener 1 x EventListener 2 x EventListener n
27. Topic-based Publish/subscribe model Subscriber 1 Subscriber 2 Subscriber 3 Subscriber 4 Subscriber 5 Publisher 1 Publisher 2 Topic A Topic B Topic C broker broker broker broker Notification Service
28. Subscribe to event class Broker Set up an event class (topic) publish an event class Send event Component A Component B Figure2 Event-driven message-based Publish/Subscribe scheme Figure3 Shared Input Port of Collaborative SVG Broker Input port Output port View GVT Renderer User Port JavaScript SVG DOM Application as Web Service Port Facing Resource Rendering as messages Event as messages Model Master client Set up an event class (topic) Publish an event to collaborative clients Subscribe to the topic Facing Input port Output port View GVT Renderer User Port JavaScript SVG DOM Application as Web Service Port Resource Rendering as messages Model Participating client Facing Facing Facing
29. Architecture of monolithic collaborative SVG Figure 3 Architecture of collaborative SVG browser on PC XGSP Session control Server NaradaBrokering Event (Message) Service Infrastructure • • • Master client SVG browser 1 F I R O Other client SVG browser 2 F I R O Other client SVG browser n F I R O Control to/from all SVG browsers in the collaborative session Data from master client Control to/from XGSP Data to other clients Control to/from XGSP Data from master client Control to/from XGSP
30. Architecture of multiplayer game with SVG Figure 4 Architecture of collaborative Web Services drawn for particular case of Internet multiplayer game with SVG NaradaBrokering Event (Message) Service Infrastructure • • • XGSP Session control Server SVG WS 1 Internet Game SVG WS 2 SVG WS n • • • SVG display 1 SVG display 2 SVG display n Control to/from SVG WS1,2, …, n Control to/from XGSP, SVG display 2 Rendering to SVG display 2 Control to/from SVG WS1,2, …, n Rendering from SVG WS 2 Control to/from SVG display 2
33. Implicit State subscribe A B Broker publish send event Separated component/service model subscribe A View B Broker publish send event Conventional shared state model Shared state A