Ph.D. student of EECS department, Syracuse University
Research work is performed at Community Grids Lab, Indiana University
[email protected], [email protected]
by Xiaohong Qiu
Background
l
CGL research
– general area is technology support for
Synchronous and Asynchronous Resource Sharing
n e-learning
n e-science
l
Grids
n manage and share (typically asynchronously) resources (people,
computers, data, applications etc.) or distributed services in a centralized fashion.
l
Web Services
n Define loosely coupled software components across internet
interacting with messages.
l
Peer-to-peer Grids
n link services, resources and clients in dynamic decentralized fashion
l The system consists of a sea of message-based Services (e.g. shared SVG as a Web Service)
Current projects of CGL
l
NSF Middleware Initiative (NMI)
n CGL, Extreme Lab of IU, University of Texas, University of
Chicago, Argon National Lab, a suite of grid services including portlets interface for middleware environment
l
NaradaBrokering
n A open source messaging infrastructure/middleware for
collaboration, peer-to-peer, and Grid applications
l
collaboration environments
n GlobalMMCS A open source multimedia collaboration system (multiple video conferencing technology that
supports Java A/V, H323, real player clients; XGSP session control)
Research on a generic model of building applications
l Applications: distributed, Web/Internet, desktop
l motivations
n CPU speed (Moore’s law) and network bandwidth (Gilder’s law)
continue to improve bring fundamental changes
n Internet and Web technologies have evolved into a global information
infrastructure for sharing of resources
n Applications getting increasingly sophisticated, e.g.
l Internet collaboration enabling virtual enterprises; l large-scale distributed computing)
n Requires new application architecture that is adaptable to fast
technology changes with properties
l scalability l Reusability l Interoperability l Reliability
l High performance
Summarization of the situation
l The subsystem of Internet has evolved into stability
n TCP/IP network stack dominating the communication protocol domain; n IP forms the low-level sphere surrounding hardware network core
l Construction of distributed operating system over the Internet has not
completed and keeps adding new functionalities to the general purpose platform
n One current effort focuses on building of messaging infrastructure tailored for disparate
applications
l Evolution of application architectures
n client-server model
n Multi-tier (e.g. three-tier) model
n Peer-to-peer
n A variety of distributed model (e.g. Java RMI, CORBA, COM/DCOM, J2EE, .NET)
n Grids
n Web Services and SOA
l Web application deployment shows diverse directions but have common features
n User interfaces
n Services for the sharing of information and resources (e.g. through unicast and multicast of group
communication)
n In the most general sense, collaboration is the core problem and service of Web applications, although
“collaboration” usually refers to system with real-time synchronous and compelling time constraints
l Next generation of Web client should enable pervasive accessibility
n Ubiquitous availability to clients fro heterogeneous platforms (e.g. Windows, Linux, Unix, and
PalmOS)
Our approach
l
Building applications centered on messages
l
Separation of application architecture from
messaging infrastructure
l
Message-based MVC Paradigm
for
distributed, Web, and desktop applications
n
MMVC and MVC
n
MMVC and Web Services
n
MMVC and collaboration
Related technologies
l
Batik SVG browser
(an open source project from
Apache that supports SVG 1.0)
n A presentation style application is representative and complex in
nature (we experiments with multiplayer-online game with high interactivity and compelling time constraints)
n Similar applications includes Microsoft PowerPoint, Adobe
Illustrator, Macromedia Flash
l
SVG
(W3C specifications for Scalable Vector Graphics)
n A language for describing 2D vector and mixed vector/raster
graphics in XML.
l
DOM
(W3C specifications for Document Object Model)
n Programmatic interfaces for access and manipulate structured
document object
Methodology
l Proposing an “explicit Message-based MVC” paradigm (MMVC) as
the general architecture of Web applications
l Demonstrating an approach of building “collaboration as a Web service” through monolithic SVG experiments.
n As an example, we present architecture for three types of collaboration
─ monolithic, thin client, and interactive client.
l Bridging the gap between desktop and Web application by leveraging the existing desktop application with a Web service interface through “MMVC in a publish/subscribe scheme”.
n As an experiment, we convert a desktop application into a distributed
system by modifying the architecture from method-based MVC into message-based MVC.
l Proposing Multiple Model Multiple View and Single Model Multiple View collaboration as the general architecture of “collaboration as a Web service” model.
l Identifying some of the key factors that influence the performance of message-based Web applications especially those with rich Web
What is message-based MVC?
l
Message-based Model-View-Controller (MMVC)
is a general approach of building applications
with a message-based paradigm
n emphasizes a universal modularized service model with
messaging linkage
n Converges desktop application, Web application, and
Internet collaboration
n MVC and Web Services are fundamental architecture from
desktop to Web applications, MMVC has general importance as a uniform architecture
n MMVC allows automatic collaboration, which simplifies the
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 asmessages
Figure 1 Reformulation of SVG to message based MVC in a Web Service Model
Input port Output port
Monolithic SVG Experiments
l
Collaborative SVG Browser
n
Teacher-Students scenario
n
Static Shared SVG contents
n
Dynamic Share SVG contents
l
Hyperlink
l
Interactivity and animation (JavaScript binding)
l
Collaborative SVG Chess game
n
Two players-multiple observers scenario
Collaborative SVG Chess Game
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
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
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)
Method-based MVC vs. message-based MVC
B
Subscribe
to event class
A
Broker
Setup anevent
class(topic)
publish anevent
class Sendevent
message based A register call back method B
invoke call back method with event
Important principals
l One should split at points where the original method based linkage involved serializable Java objects.
n Serialization is needed before the method arguments can be
transported and this is familiar from Java RMI.
l “Spaghetti” classes implied that additional state information would need to be transmitted if we split at points where classes spanned interfaces from different modules.
n Batik often involved large classes that implemented many different
interfaces. These interfaces often came from different parts of the program and crossed the possible stages mentioned above.
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
The changes bring up issues that
cause a challenge to the system
l
Timing becomes a compelling issue
n
with the separation of client and Web Service server,
original assumption and design principle break since
time scope drastically increases from tens of
microsecond level (e.g. a Java method call) to a few
milliseconds level (network latency plus system
overhead).
l
Object serialization is a must have toolkit
n
messages, as a linkage vehicle, contains component
Performance Testing
T1: A given user event such as a mouse click can generate multiple associated DOM change events transmitted from the Model to the View. T1 is the arrival time at the View of the first of these T2: This is the arrival of the last of these events from the Model and the start of the processing of the
set of events in the GVT tre
Performance Results
Table 1 Timing of Stages in milliseconds
596.0 2556 56.0 597.0 2275 56.0 614.0 2213 ± 57.0 519.0 1490 48.0 Solaris server Test 5 194.0 476 ± 3.0 174.0 190 ± 3.0 136.0 120± 2.0 76.0 76 ± 2.0 IBM Linux cluster node Test 4 78.0 510 5.0 78.0 225 5.0 77.0 212 ± 5.0 54.0 113 ± 3.0 wireless connect. Desktop server Test 3 272.0 485 12.0 194.0 234 8.0 170.0 180 ± 7.0 132.0 108 ± 5.0 direct connect. Desktop server Test 2 238.0 478 13.0 204.0 243 11.0 184.0 180 ± 10.0 95.0 110 ± 5.0 Solaris server Test 1 stddev mean ± error stddev mean ± error stddev mean ± error stddev mean ± error End Rendering T4-T0
Start Rendering T3-T0
Start Process DOM T2-T0
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
WebService
Event (Message) Service
High Level UI Raw UI Display
Input port Output port Events asmessages Rendering asmessages Input port Output port
Collaborative Events and Web Service messages
Collaborative Events and Web Service messages
Summary of message-based MVC
l Provision of a universal paradigm with a service model converging desktop applications, Web applications, and Internet collaboration
l Web applications built on messages can achieve important features such as scalability
l The message-based approach is an indispensable part of the big picture of system design with a separate intermediate messaging layer
n Reduce deployment overhead of applications
n Increase portability of application by decoupling application architecture
with underlying platforms
l It conforms to service oriented architecture with loosely coupled messages linkage, which we expect to have an increasingly
Observations
l The overhead of the Web service decomposition is not directly measured in this table although the changes in T1-T0 in each row reflect the different network transit times as we move the server from local to organization locations.
l This client to server and back transit time is only 20% of the total processing time in the local examples.
l We separately measured the overhead in NaradaBrokering itself which
consisting of forming message objects, serialization and network transit time with four hops (client to broker, broker to server, server to broker, broker to client). This overhead is 5-15 milliseconds depending on the operating
mode of the Broker in simple stand-alone measurements. The contribution of NaradaBrokering to T1-T0 is larger than this (about 30 milliseconds in preliminary measurements) due to the extra thread scheduling inside the operating system and interfacing with complex SVG application.
NaradaBrokering
l
One can bind SOAP to NaradaBrokering and allow use
of any of NaradaBrokering transpor
l
NaradaBrokering is placed in SOAP handler and controls
transport, security and reliable messaging using
WS-Security and WS-Reliable Messagin
Future Work
l
Performance analysis
l
Performance optimization
l
Apply the concept to other applications
References
l Community Grids Lab
n University Web site http://www.communitygrids.iu.edu/
n CGL Web site http://www.infomall.org
l Additional Projects http://grids.ucs.indiana.edu/ptliupages/
l Publications http://grids.ucs.indiana.edu/ptliupages/publications/
l CGL activities summary (2003-2004)
http://grids.ucs.indiana.edu/ptliupages/publications/CGLHandout.pdf
l Current major projects of CGL
l NSF Middleware Initiative (NMI) at www.OGCE.org
l NaradaBrokering at www.NaradaBrokering.org
l Collaboration environments
n GloblaMMCS at http://www.globalmmcs.org/