Web Service Architecture for e-Learning by Xiaohong Qiu

advertisement
Web Service Architecture for e-Learning
by Xiaohong Qiu
July 23, 2004
Ph.D. student of EECS department, Syracuse University
Research work is performed at Community Grids Lab, Indiana University
xiqiu@syr.edu, xqiu@indiana.edu
501 Morton N. St, Suite 222, Bloomington IN 47404
Community Grids Lab, Indiana University
1
Background
CGL research – general area is technology support for
Synchronous and Asynchronous Resource Sharing


e-learning
e-science
Grids

manage and share (typically asynchronously) resources (people,
computers, data, applications etc.) or distributed services in a
centralized fashion.
Web Services

Define loosely coupled software components across internet
interacting with messages.
Peer-to-peer Grids

link services, resources and clients in dynamic decentralized fashion
The system consists of a sea of message-based Services (e.g. shared SVG
as a Web Service)
Services linked by publish-subscribe messaging infrastructure (e.g.
NaradaBrokering)
2
Current projects of CGL
NSF Middleware Initiative (NMI)

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
NaradaBrokering

A open source messaging infrastructure/middleware for
collaboration, peer-to-peer, and Grid applications
collaboration environments


GlobalMMCS A open source multimedia collaboration
system (multiple video conferencing technology that
supports Java A/V, H323, real player clients; XGSP session
control)
Collaborative SVG, PowerPoint, and OpenOffice etc.
3
Research on a generic model of building applications
Applications: distributed, Web/Internet, desktop
motivations

CPU speed (Moore’s law) and network bandwidth (Gilder’s law)
continue to improve bring fundamental changes

Internet and Web technologies have evolved into a global information
infrastructure for sharing of resources

Applications getting increasingly sophisticated, e.g.
Internet collaboration enabling virtual enterprises;
large-scale distributed computing)

Requires new application architecture that is adaptable to fast
technology changes with properties
scalability
Reusability
Interoperability
Reliability
High performance
Low cost
4
Summarization of the situation
The subsystem of Internet has evolved into stability


TCP/IP network stack dominating the communication protocol domain;
IP forms the low-level sphere surrounding hardware network core
Construction of distributed operating system over the Internet has not
completed and keeps adding new functionalities to the general purpose platform

One current effort focuses on building of messaging infrastructure tailored for disparate
applications
Evolution of application architectures






client-server model
Multi-tier (e.g. three-tier) model
Peer-to-peer
A variety of distributed model (e.g. Java RMI, CORBA, COM/DCOM, J2EE, .NET)
Grids
Web Services and SOA
Web application deployment shows diverse directions but have common
features



User interfaces
Services for the sharing of information and resources (e.g. through unicast and multicast of group
communication)
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
Next generation of Web client should enable pervasive accessibility


Ubiquitous availability to clients fro heterogeneous platforms (e.g. Windows, Linux, Unix, and
PalmOS)
Uniform Web interface that provides a platform with aggregation of multiple services
5
Network system in a layered stack
Application
Messaging infrastructure
Same layer ?
Virtual distributed operating system
Physical network
6
NaradaBrokering
• One can bind SOAP to NaradaBrokering and allow use
of any of NaradaBrokering transport
• NaradaBrokering is placed in SOAP handler and controls
transport, security and reliable messaging using WSSecurity and WS-Reliable Messaging
• For a stream, one first uses port 80 and conventional
SOAP over HTTP and then negotiates the transport and
encoding to be used in messages of the stream
7
Notification service
over network
Subscriber 1
broker
broker
subscribe
Publish
broker
deliver
Publisher 1
broker
broker
broker
broker
subscribe
Subscriber 2
deliver
represents a delivery service
node (DSN) that manages a
topic event queue for a broker
Architecture of publish/subscribe model based on
NaradaBrokering event broker notification service
8
Our approach
Building applications centered on messages
Separation of application architecture from
messaging infrastructure
Focus on exploration in design space and
study system composition and interaction.


Event models and Publish/Subscribe scheme
Message-based MVC Paradigm for
distributed, Web, and desktop applications
MMVC and MVC
MMVC and Web Services
MMVC and collaboration
MMVC and messaging infrastructure
9
Related technologies
Batik SVG browser (an open source project from
Apache that supports SVG 1.0)


A presentation style application is representative and complex in
nature (we experiments with multiplayer-online game with high
interactivity and compelling time constraints)
Similar applications includes Microsoft PowerPoint, Adobe
Illustrator, Macromedia Flash
SVG (W3C specifications for Scalable Vector Graphics)

A language for describing 2D vector and mixed vector/raster
graphics in XML.
DOM (W3C specifications for Document Object Model)


Programmatic interfaces for access and manipulate structured
document object
All modern browsers (approximately) support the W3C DOM
10
Methodology
Proposing an “explicit Message-based MVC” paradigm (MMVC) as
the general architecture of Web applications
Demonstrating an approach of building “collaboration as a Web
service” through monolithic SVG experiments.

As an example, we present architecture for three types of collaboration
─ monolithic, thin client, and interactive client.
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”.

As an experiment, we convert a desktop application into a distributed
system by modifying the architecture from method-based MVC into
message-based MVC.
Proposing Multiple Model Multiple View and Single Model Multiple
View collaboration as the general architecture of “collaboration as a
Web service” model.
Identifying some of the key factors that influence the performance of
message-based Web applications especially those with rich Web
content and high client interactivity and complex rendering issues.
11
What is message-based MVC?
Message-based Model-View-Controller (MMVC)
is a general approach of building applications
with a message-based paradigm




emphasizes a universal modularized service model with
messaging linkage
Converges desktop application, Web application, and
Internet collaboration
MVC and Web Services are fundamental architecture from
desktop to Web applications, MMVC has general importance as
a uniform architecture
MMVC allows automatic collaboration, which simplifies the
architecture design
12
MVC paradigm
Model View Controller
Model
Controller
Mouse event
Keyboard events
Figure
View
Display
MVC Model
13
SMMV vs. MMMV as MVC interactive patterns
Model 1
Model 2
Model m-1
Model m
View 1
View 2
View n-1
View n
Model
View 1
View 2
View n-1
a) Single Model Multiple View
View n
b) Multiple Model Multiple View
14
Monolithic collaboration model
NaradaBrokering
SVG
browser
master
client
SVG
browser
master
other
client
SVG
browser
master
other
client
SVG
browser
master
other
client
Identical programs receiving identical events
15
SMMV collaborative Web Service model
Model
SVG DOM
as Web Service
NaradaBrokering
SVG
View
master
master
client
SVG
SVG
SVG
View
View
View
other
master
client
other
master
client
other
master
client
Share output port
16
MMMV collaborative Web Service model
NaradaBrokering
Model
Model
Model
Model
SVG DOM
as Web Service
SVG DOM
as Web Service
SVG DOM
as Web Service
SVG DOM
as Web Service
Broker
Broker
Broker
Broker
SVG
View
master
master
client
SVG
SVG
SVG
View
View
View
other
master
client
other
master
client
other
master
client
Share input port
17
A comparison of MVC and MMVC model in a case
of SVG application
Model View Controller
Decomposition of SVG Browser
Semantic
Model
Events as
messages
Rendering as
messages
Controller
High Level UI
Input port
Output port
View
Events as
messages
Rendering as
messages
Raw UI
Display
Display
a. MVC Model
Messages contain control information
b. Three-stage pipeline
Figure 1 Reformulation of SVG to message based MVC in a Web Service Model
18
Method-based MVC vs. message-based MVC
Broker
register call back method
B
A
A
B
invoke call back method
with event
method based
message based
19
Message-based MVC model
Model
Web Service
Sematic
High Level UI
Input port
Events as
messages
Output port
Rendering as
messages
Raw UI
Display
User Interface
View
Messages contain control information
20
Three among the different ways of decomposing
SVG between client and Web Service component
Shared SVG Browser on PC
Shared SVG Browser on PDA
Event (Message) Service
Collaborative
Web Service
Events and
messages
Event (Message) Service
Collaborative
Web Service
Events and
messages
Internet Game
Event (Message) Service
Collaborative
Web Service
RFIO
RFIO
Web Service
Web Service
RFIO
Semantic
Semantic
High Level UI
SVG Browser
Input port
Events as
messages
UFIO
Input port
UFIO
Semantic
High Level UI
Raw UI
Display
Output port
Rendering as
messages
Events as
messages
Messages contain control information
Output port
Rendering as
messages
High Level UI
Raw UI
Display
Raw UI
Display
Messages contain control information
Events and
messages
Messages contain control information
a. Non-decomposed collaborative SVG
b. Decomposed WS optimized for thin
c. Decomposed WS optimized for
requiring minimal changes to the original
source code
clients
performance
Figure 2 Three among the different ways of decomposing SVG between client and Web Service component
21
Monolithic SVG Experiments
Collaborative SVG Browser



Teacher-Students scenario
Static Shared SVG contents
Dynamic Share SVG contents
Hyperlink
Interactivity and animation (JavaScript binding)
Collaborative SVG Chess game


Two players-multiple observers scenario
Complex interactivity with game intelligence
22
Collaborative SVG Chess Game
Players
Observers
23
Collaborative SVG Event processing chart
Collaborative events
Semantic events
Raw UI events
High Level UI events
(e.g. Mouse and
key events)
(e.g. SVG/DOM
events)
(e.g. Application
events such as
“capture” in chess
game)
(e.g. Master Events
which has context
information of
collaboration and
information from
previous stages)
Figure 5 Collaborative SVG Event processing chart
24
The general event/listener model
register for event notification
Component
A
(Event Source)
Component
B
(Event Listener)
issue event occurrence
25
Java delegation event model
register event x listeners
x EventListener 1
Event
Source
x EventListener 2
Invoke call back method
with event x
x EventListener n
26
Topic-based Publish/subscribe model
Publisher 1
Publisher 2
Notification
Service
broker
broker
Topic A
broker
Topic B
Topic C
broker
Subscriber 1
Subscriber 2
Subscriber 3
Subscriber 4
Subscriber 5
27
Set up an event
class (topic)
Publish
an event
Facing
Model
JavaScript
Component
A
Component
B
Facing
Output port
Event as messages
Facing
Application as Web Service
JavaScript
Input port
Facing
Output port
Rendering as
messages
GVT
GVT
Renderer
Renderer
Figure2 Event-driven message-based Publish/Subscribe scheme
Facing
SVG DOM
SVG DOM
Input port
Rendering as
messages
to collaborative
clients
Model
Application as Web Service
Broker
Subscribe to
the topic
Broker
View
View
Master client
Participating client
Figure3 Shared Input Port of Collaborative SVG
28
Architecture of monolithic collaborative SVG
Data to
other clients
R
Master client
SVG browser 1
Session control
Server
Control to/from
all SVG browsers
in the collaborative
session
Control to/from
XGSP
I
Data from
master client
R
O
Other client
SVG browser 2
F
Control to/from
XGSP
I
Data from
master client
R
O
•••
Event (Message) Service Infrastructure
XGSP
NaradaBrokering
F
Other client
SVG browser n
F
Control to/from
XGSP
I
O
Figure 3 Architecture of collaborative SVG browser on PC
29
Architecture of multiplayer game with SVG
Session control
Server
Control to/from
SVG WS1,2, …, n
Rendering to
SVG display 2
SVG WS 2
SVG WS n
Internet
Game
Control to/from
SVG display 1
Rendering from
SVG WS 2
SVG display 2
Control to/from
SVG display 2
•••
•••
Control to/from XGSP,
SVG display 2
NaradaBrokering
SVG WS 1
Event (Message) Service Infrastructure
XGSP
SVG display n
SVG WS1,2, …, n
Figure 4 Architecture of collaborative Web Services drawn for
particular case of Internet multiplayer game with SVG
30
Decomposition of SVG browser into
stages of pipeline
Decomposition
Point
View
GVT tree’
Output (Renderer)
(GraphicsNode changes )
Model
DOM tree’
(after mutation)
SVG parser
(update image buffer)
JavaScript
GVT tree
Input (UI events)
(GraphicsNode events)
DOM tree
(before mutation)
(DOM events)
(access and
manipulate DOM
element)
(e.g. Mouse and
key events)
Figure 4 Decomposition of SVG browser into stages of pipeline
31
Important principals
One should split at points where the original method based linkage
involved serializable Java objects.

Serialization is needed before the method arguments can be
transported and this is familiar from Java RMI.
“Spaghetti” classes implied that additional state information would
need to be transmitted if we split at points where classes spanned
interfaces from different modules.

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.
message-based paradigm tends to force a more restrictive
programming model where all data is shared explicitly and not
implicitly via interfaces crossing splitting lines.
32
Implicit State
Broker
A
A
Broker
B
View
A
B
Shared state
Conventional shared state model
Separated component/service model
33
The changes bring up issues that
cause a challenge to the system
Timing becomes a compelling issue

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).
Object serialization is a must have toolkit

messages, as a linkage vehicle, contains component
information from both sides and keep context same.
Synchronization is a factor to consider for context
consistency.
34
Summary of message-based MVC
Provision of a universal paradigm with a service model converging
desktop applications, Web applications, and Internet collaboration
Web applications built on messages can achieve important features
such as scalability
The message-based approach is an indispensable part of the big
picture of system design with a separate intermediate messaging
layer


Reduce deployment overhead of applications
Increase portability of application by decoupling application architecture
with underlying platforms
It conforms to service oriented architecture with loosely coupled
messages linkage, which we expect to have an increasingly
important role for reusability, interoperability, and scalability
35
Future Work
Performance analysis
Performance optimization
Apply the concept to other applications
(e.g. OpenOffice)
36
References
Community Grids Lab

University Web site http://www.communitygrids.iu.edu/

CGL Web site http://www.infomall.org
Additional Projects http://grids.ucs.indiana.edu/ptliupages/
Publications http://grids.ucs.indiana.edu/ptliupages/publications/
CGL activities summary (2003-2004)
http://grids.ucs.indiana.edu/ptliupages/publications/CGLHandout.pdf
Current major projects of CGL
NSF Middleware Initiative (NMI) at www.OGCE.org
NaradaBrokering at www.NaradaBrokering.org
Collaboration environments

GloblaMMCS at http://www.globalmmcs.org/

Commercial product: Anabas at www.anabas.com

Collaborative SVG at www.svgarena.org
37
Observations
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.
This client to server and back transit time is only 20% of the total processing
time in the local examples.
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.
We expect the main impact to be the algorithmic effect of breaking the code
into two, the network and broker overhead, thread scheduling from OS.
38
Download