A Common Basis for Modelling Service-Oriented and Event-Driven Architecture
1. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
A Common Basis for Modelling Service-Oriented
and Event-Driven Architecture
Tony Clark and Balbir S. Barn
School of Engineering and Information Sciences, Middlesex University, London,
UK
February 23, 2012
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
2. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Contents
1 Problem and Hypothesis
2 Modelling: A Language Driven Approach
Services
Events
Tooling
3 Case Study
4 Simulation
5 Conclusion
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
3. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Enterprise Architecture
What does a business do?
Why does the business do it?
How does the business operate?
Use Cases: as-is and to-be; IT alignment; governance;
resource planning; compliance; IT management; etc.
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
4. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
It’s a Puzzlement [King of Siam]
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
5. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Architectural Styles: Inversion of Control
Service Oriented Event Driven
Architecture Architecture
Messages drive Events drive
computation. computation.
Interfaces of operations. Interfaces of events.
Synchronous, Always asynchronous.
Asynchronous, Business processes
Broadcast, etc. attached to complex
Business processes events.
attached to services
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
6. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Architectural Styles: Architectural Styles
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
7. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Architectural Styles: Messages
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
8. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Architectural Styles: Messages
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
9. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Architectural Styles: Messages
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
10. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Architectural Styles: Messages
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
11. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Architectural Styles: Messages
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
12. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Architectural Styles: Messages
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
13. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Architectural Styles: Messages
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
14. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Architectural Styles: Messages
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
15. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Architectural Styles: Inversion of Control
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
16. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Architectural Styles: Events
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
17. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Architectural Styles: Events
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
18. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Architectural Styles: Events
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
19. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Architectural Styles: Events
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
20. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Architectural Styles: Events
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
21. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Technologies for EA
ArchiMate
MODAF
TOGAF
UML and SysML
All fairly complex, imprecise, not domain specific, do not support
reasoning, no simulation.
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
22. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
A Language Driven Approach to EA
A Domain Specific Language for Modelling EA:
Component architecture.
Information models.
Invariants.
Pre and post specification of Business Processes.
Events.
A Domain Specific Language for EA Simulation:
As above...
Commands for business process implementation.
Message passing.
Rules for complex event processing.
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
23. Problem and Hypothesis
Modelling: A Language Driven Approach Services
Case Study Events
Simulation Tooling
Conclusion
Contents
1 Problem and Hypothesis
2 Modelling: A Language Driven Approach
Services
Events
Tooling
3 Case Study
4 Simulation
5 Conclusion
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
24. Problem and Hypothesis
Modelling: A Language Driven Approach Services
Case Study Events
Simulation Tooling
Conclusion
EA Modelling Language
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
25. Problem and Hypothesis
Modelling: A Language Driven Approach Services
Case Study Events
Simulation Tooling
Conclusion
EA Simulation Language
component d {
port p[out]:interface {
v():void
}
port q[out]:interface {
z():void
}
operations {
y() {
p <- v();
q <- z()
}
}
}
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
26. Problem and Hypothesis
Modelling: A Language Driven Approach Services
Case Study Events
Simulation Tooling
Conclusion
EA Simulation Language
component d { component b {
port p[out]:interface { port q[in]: interface {
v():void z():void
} }
port q[out]:interface { operations {
z():void z() {
} print(’called z()’)
operations { }
y() { }
p <- v(); }
q <- z()
}
}
}
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
27. Problem and Hypothesis
Modelling: A Language Driven Approach Services
Case Study Events
Simulation Tooling
Conclusion
EA Simulation Language
component d { component b {
port p[out]:interface { port q[in]: interface {
v():void z():void
} }
port q[out]:interface { operations {
z():void z() {
} print(’called z()’)
operations { }
y() { }
p <- v(); }
q <- z() component a {
} port p[in]: interface {
} v():void;
} }
operations {
v() { print(’called v()’) }
}
}
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
28. Problem and Hypothesis
Modelling: A Language Driven Approach Services
Case Study Events
Simulation Tooling
Conclusion
EA Simulation Language
component c { component a {
c = 10 port p[in]: interface {
port events[out]: interface { x(data:int):void;
x(data:int):void y(data:int):void
} }
operations { model {
x() { class X { x:int }
events <- x(c) class Y { y:int }
} class Data { d:int }
} }
} rules {
component d { x_and_y: X(x) Y(y) ?(p(x,y)) {
d = 10 v(x,y)
port events[out]: interface { }
y(data:int):void }
} operations {
operations { x(data) { new X(data) }
y() { y(data) { new Y(data) }
events <- y(d) v(x,y) { new Data(x+y) }
} }
} }
} Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
29. Problem and Hypothesis
Modelling: A Language Driven Approach Services
Case Study Events
Simulation Tooling
Conclusion
Component Connections
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
30. Problem and Hypothesis
Modelling: A Language Driven Approach Services
Case Study Events
Simulation Tooling
Conclusion
Calling Sequence
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
31. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Contents
1 Problem and Hypothesis
2 Modelling: A Language Driven Approach
Services
Events
Tooling
3 Case Study
4 Simulation
5 Conclusion
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
32. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
UK Borders Agency
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
33. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Component Dependencies
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
34. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Registry
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
35. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Student Office
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
36. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Monitor
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
37. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Contents
1 Problem and Hypothesis
2 Modelling: A Language Driven Approach
Services
Events
Tooling
3 Case Study
4 Simulation
5 Conclusion
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
38. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Case Study: Example Component
component registry {
port in[in]: interface {
register(name:str,course:str):void
}
port events[out]: interface {
register(name:str,course:str):void
}
model {
class Student {
name:str;
course:str
}
}
operations {
register(name,course) {
new Student(name,course);
events <- register(name,course)
}
}
}
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
39. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Dynamic, Parametric Components
operations {
make_department(name,courses,academic_names) {
component {
...
school_office = make_student_office(courses)
academics = [ make_academic(name) | name <- academic_names ]
}
}
make_academic(name) {
component { ... }
}
make_student_office(courses) {
component { ... }
}
}
computer_science = make_department(’Business’,[
Course(’Business and IT’,[
Module(’Marketing’,[CW(’BIT_MCW1’,4),CW(’BIT_MCW2’,6)])]),
Course(’Business Informatics’,[
Module(’Finance’,[CW(’BI_MCW1’,4),CW(’BI_MCW2’,6)])]),
],[’Dr Piercemuller’,’Prof. Plumb’])
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
40. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Simulation Architecture
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
41. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Screen Model
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
42. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Simulation: GUI
component gui {
display = jcomponent(’frames.GUI’)
operations {
show() {
let time = find Time(t) in state { t } else 0
in display.in <- display(Table([
[Text(’contacts:’)],
[Table([[Text(r.name),Text(r.contacts)] | r <- monitor.in.contacts()])],
[Text(’ ’)],
[Button(’Tick’+time,fun(e) clock_port <- tick())]
]))
}
tick(time) { delete Time(time-1); new Time(time); show() }
}
port in[in]: interface { show():void; tick(time:int):void }
port clock_port[out]:interface { tick():void }
}
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
43. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Borders Agency Simulation
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
44. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Other Examples
EA Alignment in order to comply with new UK HE
regulation for Key Information Sets.
Architecture for Sense Making using data from social
network sites.
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
45. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Contents
1 Problem and Hypothesis
2 Modelling: A Language Driven Approach
Services
Events
Tooling
3 Case Study
4 Simulation
5 Conclusion
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive
46. Problem and Hypothesis
Modelling: A Language Driven Approach
Case Study
Simulation
Conclusion
Conclusion
EA use-cases require precision to analyse designs.
Domain analysis leads to: components; information models;
messages; events.
Current technologies are very large, complex and imprecise.
A Language Driven Approach leads to a design and simulation
languages.
Design language as UML profile.
Simulation language implemented in Java.
Tested on several case studies.
Future Steps:
Support for Business Goals.
Methods to support approach and integration with existing EA
technologies.
Develop techniques for various EA analysis use-cases.
Integrate simulation language with real architectures.
Tony Clark and Balbir S. Barn A Common Basis for Modelling Service-Oriented and Event-Drive