Title: CSCI578 Team Project
1CSCI578 Team Project
- Using Alfa in modeling SIENA connector
2Team Member
- Sang-Yun, Lee (lee3_at_usc.edu)
- Won-Hyung, Lee (wonhyungl_at_usc.edu)
- Inhwan, Cha (icha_at_usc.edu)
- Dongwoo, Won (dwon_at_usc.edu)
3Motivation (1)
- Check the scalability expressiveness of SIENA
- Classification of Event-Based
Infrastructure
4Motivation (2)
- Validation of the suitability of Alfa
- Is it rich enough to describe the important parts
of SIENA architecture ? - Is it the valid mapping ?
- Is it better than drawing a block-diagram ?
5Approach for Motivation
- Study SIENA
- Study Alfa
- Come up with evaluation criteria
- Compose the important aspects of SIENA using
ViSAC - Analyze the result
- Conclusion
6SIENA
- Scalable Internet Event Notification Architecture
- Publish/Subscribe event-notification service
- Advertisement of Routing Information
- Content-based vs. Channel-based
- Pattern Matching
- Routing/Forwarding
- Covering Relation
7Alfa
- An Assemble Language For software Architecture
- Framework for understanding/constructing
style-based software architectures from
architectural primitives. - DATUM, PARTICLE, OUTPUT, INPUT, INTERFACE,
TWOWAY, DUCT, RELAY, BIRELAY - HOLDS, RELEASES, SEND, RECEIVE, HANDLE, REPLY,
CREATE, CONNECT, DISCONNECT - ViSAC
8SIENA Connector (aspects)
- Publish and Subscribe
- Advertisement
- Pattern Matching
- Forwarding and Routing
- Proxy in Wireless Environment
- Server Interconnection Topology
9Publish and Subscribe (1)
- Follows traditional PS style
- Clients objects of interest, interested parties
- Use access points of clients local server to
publish and subscribe
10Publish and Subscribe in Alfa
11Advertisement
- Traditional publish/subscribe protocol extension
- advertise object of interest inform event of
service of notifications it might publish - unadvertise advertisement remain in effect
until cancelled - Define source address of notifications
- cf.subscription define destination address of
notifications in routing tables
12Advertisement in Content-based Routing Protocol
- Push mechanism based on receiver
advertisement(RA) - Issued by nodes periodically when local
content-based address changes - RA packet carry content-based address issuer id
13Advertisement in Content-based Routing Protocol
(2)
- Combined broadcast and content-based protocol
- Content-based RA ingress filtering
- - If covers, drop. If not goto 2
- 2. Broadcast RA propagation
- 3. Routing table update
14Advertisement in Alfa
15Pattern Matching (1)
- Two main architecture concerns in SIENA
expressiveness vs. scalability - Pattern should be rich enough (expressiveness)
- Processing Patterns should be optimize-able
efficient-able (scalability) - Lets investigate SIENA is able..
16Pattern Matching - Semantics
- Notification, Filter, Pattern
17Pattern Matching Semantics (2)
- The building block is called a attribute filter
- (Type, Name, Operation, Value)- (String,
Software Architecture News, Contains, Alfa) -
- Notification can be - (Type, Name, Value) -
Operation implicitly defined as "- (String,
Software Architecture News, Alfa
comes with visual modeling tool, now.) - Filter is conjunction of attribute filters, that
is - (att-filter AND att-filter AND ..) -
Subscription and Advertisement are basically the
form of filter.- Consumer and Publisher need to
be knowledge about attribute name ahead of
time - Anyone wonders about Pattern ? Let me know we
can explain.
18Pattern Matching Semantics (3)Covering
Relationship
- Processing of Publication match with Filter
should be done reasonably fast. Also, limited
space to store filters.(More on this in
Forwarding part.) - Optimization Strategy Filter/Pattern can cover
another Filter/Pattern - - This covering relationship is used in
optimization of forwarding table by merging
two filters if one covers the other. - Possible Problem Too much merging can cause the
problem Inflation that is when the selection of
pattern widen too much that it doesnt filter and
cause the flooding of notification of the
network. (More on this in Routing part.)
19Pattern Matching Class Diagram of SIENA
Semantics (Implementation Level)
20Pattern Matching aspect in Alfa (1)
Core SIENA Layer
Between SIENA low level Communication layer and
Core SIENA
Communication Mechanisms Layer
21Pattern Matching aspect in Alfa (2)
Covering Relation used in this
Pattern Matching happening here
22Pattern Matching aspect in Alfa (3) - Doubt
- Semantics of SIENA will be used in all of 3
particles. How to show this in Alfa ?? Or is this
not important to show in the architecture level
?? - We can just assume the particle has knowledge of
SIENA Semantics internally ?? - But, in the object oriented programming such as
Java, the Semantics is encapsulated in Class and
to use the instance is created to access. Should
we show this kind of details in Alfa ?? - One of conditions of Alfa primitives is
Primitives should be implemental in a computer
program. So, what approach Alfa will take in
terms of the code generation with previous case ?
23Pattern Matching aspect in Alfa (4) Role Playing
- Scenario 1 We are backtracking from the
implementation to the architecture. We found Java
classes that are the representation of SIENA
Semantics and these classes are used in
everywhere. How does this map to Architecture or
Alfa ? Does it map to many interfaces and many
Input and Output portals corresponding to each
function call to this Java class ? How about the
instance of this Java class ? - Scenario 2 What if the Semantic of SIENA is
changed ? For example, the structure of the
Filter is changed ? Will our architecture (in
terms of Alfa) be able to tell us parts of SIENA
we should pay attention to ?
24Filter class is dependent of 11 other classes
25How about Notification class ?
26Forwarding and Routing (1)
- Subscription-based forwarding- Forwarding table
information is built with subscriptions (filters
from consumers) - Advertisement-based forwarding- Forwarding table
information is built with advertisements (filters
from publisher) - Prototype mainly deals with Subscription-based
forwarding- Possibly one mechanism can be more
efficient over the other depends on the type of
value-in applications you are trying to have on
the top of SIENA. (software administration, stock
market analysis, network management, middleware
technologies, business process, security
monitors, service discovery and etc).
27(No Transcript)
28Forwarding and Routing in Alfa (1)
Again, SIENA Core Layer!
29Forwarding and Routing in Alfa (2)
1) Event comes
Routing aspect
The repository style (blackboard)
Table Information is stored here (Data
component)
Selective Table
Indexed Table
30Routing Protocol
Handles the routing events and act accordingly
31Proxy in Wireless Environment
- To support the movement of clients between access
points of a distributed publish/subscribe system. - Dont want to lose messages/Automated Routing
Info Change. - Implemented by Mobility Proxy and Mobility Proxy
Object
32The Mobility Service
- When a client is connected, just receive messages
directly. - (b) When a client is disconnected, Proxy will
receive messagesinstead of that client.
33Functionality of Mobility Service
- Move-out function
- You move out to somewhere and leave your baggage
in the storage. - It is called right before a client is
disconnected to store its subscription data into
its local mobility proxy. - It will be implemented power management daemon or
a network connectivity daemon level on the
clients side. - Move-in function
- You move in to somewhere and want to take back
your baggage from the storage. - It is called when a client reaches its
destination(storage) to get data to its local
mobility proxy.
34Move-out Function
Proxy Object
Client
Buffer
(2)
(7)
P/S System
(3)
Mobility Service Lib
(5)
(Local)Mobility Proxy
(6)
(4)
Subscription Repository
- How it works
- Right before a client is disconnected( See Red
Arrows ) - Move-out function in Mobility Service Library is
called - It sends all its subscription data to its
Mobility Proxy - Mobility Proxy stores subscription data from the
client - Invoke a proxy object for the client.
- The proxy object in the local Mobility Proxy
subscribe instead of the client( Follow Blue
Arrows) - P/S system will send subscribed messages to the
Mobility Proxy. - All messages from P/S System will be stored into
the mobility proxy objects buffer. - The client is disconnected.
35Move-in Function
Client
.
(8)
(1)
(3)
queue
Mobility Service Lib
Remote Mobility Proxy
(2)
(6)
Move-out Proxy
.
(4)
(5)
(7)
Local Mobility Proxy
Move-in Proxy
- Client finds its last connected Mobility Proxy to
get its last information(messages subscription)
used. - Ping the last connected Mobility Proxy with its
last connected address information - Remote Mobility Proxy responds
- Client request move-in function call
- Newly connected Mobility Proxy(Local Mobility
Proxy) will send a request to receive data from
the remoteMobility Proxy - Messages in the remote Mobility Proxy are
downloaded to the local Mobility Proxy - Client gets messages from the local Mobility
Proxy. - Proxy Object in the remote Mobility Proxy is
removed.
36Wireless Environment in Alfa
37Server Interconnection Topology
- Conceptually, the service can have
- Hierarchical Server Topology
- Acyclic Peer-to-Peer Server Topology
- Generic peer-to-peer server Topology
383 Topologies
39Hierarchical Topology (good side)
- Only one up-stream server and treat him specially
(that is your master) - You can treat other down-stream server as clients
(simplifies your design) - Simpler Forwarding/Routing Protocols can be used
(no cycle means no duplicate packet coming back)
40Hierarchical Topology (bad side)
- Server shut down, (in the prototype)
- before its shutdown, return the master address to
its down-stream servers and clients - Server crashes unexpectedly or link failure
- No mechanism (backup server)
- Bottom line
- Continuing research topic in Content-Based
Networking
41Server Topology in Alfa
Up-stream
Used instances to show the server topology
Deployed at your workstation
Down-stream
42Conclusion
- SIENA is evolving architecture
- Problem with scalability
- Alfa is suitable
- Block diagram as analysis tool
- Helps to refine the architecture
43Conclusion 2
- Alfa is not suitable
- Kind of awkward to express procedure calls
(invocation) with no parameter. When procedure
calls are used to pass the execution control with
no parameter. Input, output and duct need to be
drawn with no actual datum transfer. - Many architectures in distributed computing
carefully present the design of data component
(such as address scheme, semantics and etc),
components, protocol (interaction of components)
and then topology of components. Alfa lacks in
expressing data component and topology aspect of
architecture.
44Future Work
- Source Code comparison
- C2, Prism-MW comparison