This is my presentation at the OTM/CoopIS 2012 conference in Rome, Italy from Sep 10-14, 2012 about the dynamic event-driven actor framework (DERA) for enhancing the flexibility and scalability of service-based integration architecture. The paper can be downloaded at ResearchGate: http://bit.ly/NudGPL.
1. Event-driven Actors for Supporting
Flexibility and Scalability
in
Service-based Integration Architecture
Huy Tran and Uwe Zdun
Software Architecture Group
Faculty of Computer Science
University of Vienna, Austria.
http://cs.univie.ac.at/swa
3. Problem
Service-based integration architecture
Service-based
Applications
Application
Application Application
Component Component
Platform Integration
Service-based
platform integration
Facade
Data
Mapper
Adapter Adapter
Platform
Platform Platform
Service Service
YMS WMS RMS
Service Platforms
Source: http://www.indenica.eu
3
4. Problem (cont’d)
Integration architecture in detail
Integration Framework
(e.g, Apache Tuscany SCA, Fabric3)
• Hard-wired
• Hard to change
• No (or limited) supports for runtime
adaptation and evolution
4
5. Dynamic Event-Driven Actors (DERA)
Summary of DERA approach
Event-driven communication style
+ Loose coupling
Facade
+ Potential for flexibility, scalability and
concurrency
- Not easy to understand (esp. large
?
architecture designs)
Well-defined interfaces
Message
Substitutions of event actors Translator
Support for verifications/analysis
5
8. Dynamic Event-Driven Actors (cont’d)
DERA Primitives: Computational Unit
register unregister
Event Actor
activate
• computational unit (data
deactivate unregister
processing, proxy, adapter, match fire
etc.)
• stateless/immutable notify func
eTruck eFreeDock
Arrived Requested
TruckMonitor
8
9. Dynamic Event-Driven Actors (cont’d)
DERA Primitives: Synchronization Unit
register unregister
Barrier
activate
• synchronization unit deactivate unregister
match fire
¬ got all
match input
got
notify all input
eTruck
eUnloading
Moved
Started
eCamera
Synchronizer
Received
9
10. Dynamic Event-Driven Actors (cont’d)
DERA Primitives: Branching Unit
register unregister
Condition
• branching unit (i.e., deactivate
activate
unregister
if-then-else) match
fire(trueEvents) fire(falseEvents)
notify eval() = true
¬ eval() = true
eStoring
eUnit Finished
Stored
isStoring eStoring
Finished NotFinished
10
11. Dynamic Event-Driven Actors (cont’d)
DERA Primitives: Execution Initiation
register unregister
Trigger
• triggers the execution activate
deactivate
by emitting events unregister
start
fire
eTruck
Arrived
TheTrigger
11
12. Dynamic Event-Driven Actors (cont’d)
DERA Primitives: Domain Bridging Unit
register unregister
EventBridge activate
deactivate unregister
• connect two domains
notify
notify(target)
YardManagementDomain
WarehouseManagementDomain
YMS-to-WMS
12
13. Dynamic Event-Driven Actors (cont’d)
A DERA-based representation of integration architectures
Warehouse Management Domain
13
15. Dynamic Event-Driven Actors (cont’d)
Event Actor Substitution
EventActor CallWarehouseStaff
input[operatorStoreStartedNotified] output[ operatorCallWarehouseStaff]
EventActor StartUnloadingNew
input[operatorCallWarehouseStaff] output[ operatorStartUnloading]
register [CallWarehouseStaff]
register [StartUnloadingNew]
deactivate [StartUnloading]
/* verifications can be performed here to detect anomalies */
activate [StartUnloadingNew]
activate [CallWarehouseStaff]
15
16. Evaluation
DERA scalability
Goal
DERA scalability
DERA overheads vs. a
pure Java impl.
Settings
Intel Quad-core i7
2.0Ghz 8GB memory
Oracle JDK 1.6u31 64bit
-Xms512m -Xmx1024m -
Xss1m
n DERA actors
n Java tasks
Fixed thread pool of size
8 (#CPU cores)
16
17. Future Works
Formal reasoning methods for supporting:
verification of DERA system properties at important
stages: before deploying or substituting event actors, etc.
cross-domain verifications
Assume “reliable event communication channels”
NIÑOS/PADRES: Jacobsen et al.
Reliable pub/sub networks: Costa et al., Kazemzadeh et
al., Malekpour et al., etc.
Reliable message-oriented middleware: Pietzuch et al.
17
18. Many thanks for your attention!
Huy Tran
Software Architecture Group
Faculty of Computer Science
University of Vienna, Austria.
http://cs.univie.ac.at/swa
18