Current trends & other topics TDDD05: Component-based software fredag 21 mars 14

advertisement
Current trends & other
topics
TDDD05: Component-based software
fredag 21 mars 14
Agenda
• Current trends
• Dependency management
• Loose coupling and component software
• Enterprise Integration Patterns & Messaging
Systems
fredag 21 mars 14
Simplicity
2000
Now
CORBA
Java EE/ICE/Thrift/Protocol
Buffers
Enterprise Java Beans (EJB)
Spring/Tapestry
SOAP
REST
AspectJ
Ruby/Python/Reflection
Components
Systems
fredag 21 mars 14
CBSE over time
Submissions
Citations
800
600
400
200
0
1998
2000
2002
2004
2006
2008
2010
2012
”This can be a sign that CBSE as a research area becomes less interesting either as it has been integrated as a standard
approach in software engineering practice, or that the approach did not succeed to realize its promises.”
J. Maras, L. Lednicki, and I. Crnkovic. 15 years of CBSE symposium: Impact on the research community. In Proceedings of the 15th ACM
SIGSOFT Symposium on Component Based Software Engineering, CBSE ’12, pages 61–70, New York, NY, USA, 2012. ACM.
fredag 21 mars 14
40%!
Not$presented$
0%!
Academic$case$study$
Simple$examples$
Experiments$
Industrial$case$study$
Formal$specifica@on$
39%$
Literature$comparision$
Europe'
N.America'
Asia'
Australia'
S.'America'
USA'
France'
Germany'
Sweden'
Australia'
Italy'
Canada'
Spain'
China'
20%!
16%$
Figure 8. Paper distribution by continents and countries
In addition to these statistics, we also though that it would be
beneficiary to note the top ten research centers contributing in
CBSE events – shown in Figure 9.
of validation CBSE 2004-2011
STATISTICS
l statistics related to the CBSE events
y that was built around these events:
s, authors’ geographical distributions,
h centers.
istic
ors’ affiliation in three categories: !)
d !!!) Private Company, see Figure 7.
ge of industrial contribution could be
ws that there are strong connections
munity and the industry.
No'of'publica?ons'
20!
15!
10!
5!
0!
ä
Figure 9. Top Ten Contributors Research Centers in
CBSE
From J. Maras, L. Lednicki, and I. Crnkovic. 15 years of CBSE symposium: Impact on the research community. In Proceedings of the 15th ACM
SIGSOFT Symposium on Component
Based Software Engineering, CBSE ’12, pages 61–70, New York, NY, USA, 2012. ACM.
69
fredag 21 mars 14
40%!
Not$presented$
0%!
Academic$case$study$
Simple$examples$
Experiments$
Industrial$case$study$
Formal$specifica@on$
39%$
Literature$comparision$
Europe'
N.America'
Asia'
Australia'
S.'America'
USA'
France'
Germany'
Sweden'
Australia'
Italy'
Canada'
Spain'
China'
20%!
16%$
Figure 8. Paper distribution by continents and countries
In addition to these statistics, we also though that it would be
beneficiary to note the top ten research centers contributing in
CBSE events – shown in Figure 9.
of validation CBSE 2004-2011
STATISTICS
l statistics related to the CBSE events
y that was built around these events:
s, authors’ geographical distributions,
h centers.
istic
ors’ affiliation in three categories: !)
d !!!) Private Company, see Figure 7.
ge of industrial contribution could be
ws that there are strong connections
munity and the industry.
No'of'publica?ons'
20!
15!
10!
5!
0!
ä
Figure 9. Top Ten Contributors Research Centers in
CBSE
From J. Maras, L. Lednicki, and I. Crnkovic. 15 years of CBSE symposium: Impact on the research community. In Proceedings of the 15th ACM
SIGSOFT Symposium on Component
Based Software Engineering, CBSE ’12, pages 61–70, New York, NY, USA, 2012. ACM.
69
fredag 21 mars 14
Dependency
management
fredag 21 mars 14
fredag 21 mars 14
fredag 21 mars 14
Dependency
management
• Nodes are concrete or abstract
components (abstract nodes have several
candidate implementations)
• Edges denote relationships such as
dependencies, replacements & conflicts
fredag 21 mars 14
Dependency
management issues
• Is a request to modify the current software
component graph satisfiable?
• Are additions compatible with other
components?
• Are deletions safe with respect to other
dependencies?
• Given a component, determine versions of
other components we can safely rely on
fredag 21 mars 14
Dependency
management as
satisfiability
fredag 21 mars 14
Dependency
management as
satisfiability
(a | b | c) & (d | e | f) ... = TRUE
fredag 21 mars 14
Dependency
management as
satisfiability
(a | b | c) & (d | e | f) ... = TRUE
(a | b | c) & (-c) & (-b | -a) ... = TRUE
fredag 21 mars 14
Dependency
management as
satisfiability
(a | b | c) & (d | e | f) ... = TRUE
(a | b | c) & (-c) & (-b | -a) ... = TRUE
A requires B provided by B1, B2, B3
Rule: (-A | B1 | B2 | B3)
fredag 21 mars 14
Dependency
management as
satisfiability
(a | b | c) & (d | e | f) ... = TRUE
(a | b | c) & (-c) & (-b | -a) ... = TRUE
A requires B provided by B1, B2, B3
Rule: (-A | B1 | B2 | B3)
A conflicts with B provided by B1, B2, B3
3 Rules: (-A | -B1), (-A | -B2), (-A | -B3)
fredag 21 mars 14
Dependency
management as
satisfiability
(a | b | c) & (d | e | f) ... = TRUE
(a | b | c) & (-c) & (-b | -a) ... = TRUE
Rules
A requires B provided by B1, B2, B3
Rule: (-A | B1 | B2 | B3)
A conflicts with B provided by B1, B2, B3
3 Rules: (-A | -B1), (-A | -B2), (-A | -B3)
fredag 21 mars 14
Dependency
management issues
• Y depends on X >= 1.8. X makes binary
incompatible changes from v. 1.9 to v. 2.0...
• Can components be installed from local
sources as well as from remote?
• Should OS-specific dependency
management or language-specific be used?
fredag 21 mars 14
Software package
management systems
Name
NuGet
Environment
.Net CLR
Format
XML
Gradle
JVM
XML
dpkg/APT
Linux
Ar archive
Rubygems
Ruby
Ruby
MSI
Windows
In-file DB
BSD Ports
OS X/Linux/BSD
Makefile
...
fredag 21 mars 14
Coupling
Loose coupling = weak assumptions
fredag 21 mars 14
Coupling
Technique
Assumptions
OO Frameworks
•Base classes are stable
•Same architectural design (layered/blackboard/...)
•No entity overlap occurs
•No semantic differences between properties in
similar classes
•No responsibility conflicts (server/client)
Remote Method
Invocation
•All calls should be synchronous
•All types can be converted transparently
•Object management is transparent
•All method signatures match exactly
Loose coupling = weak assumptions
fredag 21 mars 14
Coupling
Technique
Assumptions
OO Frameworks
•Base classes are stable
•Same architectural design (layered/blackboard/...)
•No entity overlap occurs
•No semantic differences between properties in
similar classes
•No responsibility conflicts (server/client)
Remote Method
Invocation
•All calls should be synchronous
•All types can be converted transparently
•Object management is transparent
•All method signatures match exactly
Loose coupling = weak assumptions
fredag 21 mars 14
Coupling
Technique
Assumptions
OO Frameworks
•Base classes are stable
•Same architectural design (layered/blackboard/...)
•No entity overlap occurs
•No semantic differences between properties in
similar classes
•No responsibility conflicts (server/client)
Remote Method
Invocation
•All calls should be synchronous
•All types can be converted transparently
•Object management is transparent
•All method signatures match exactly
Loose coupling = weak assumptions
fredag 21 mars 14
Enterprise Integration
Patterns
fredag 21 mars 14
Messaging system
Sender Application
Message Channel
fredag 21 mars 14
Receiver Application
Aspects of Messaging
Systems
Aspect
Header
Body
Security
x
x
Routing
x
Metadata
x
Subscription
Policy
fredag 21 mars 14
x
x
x
x
Messaging systems
fredag 21 mars 14
Messaging systems
Formats
fredag 21 mars 14
XML
JSON
Messaging systems
Protocols
Formats
fredag 21 mars 14
XMPP
DDS
XML
STOMP
AMQP
JSON
Messaging systems
Services
Routing
Protocols
XMPP
Formats
fredag 21 mars 14
Queueing
DDS
XML
Transformation
STOMP
AMQP
JSON
Messaging systems
Implementations
Services
Routing
Protocols
XMPP
Formats
fredag 21 mars 14
Queueing
DDS
XML
Transformation
STOMP
AMQP
JSON
Messaging systems
Implementations
JMS
Services
Routing
Protocols
XMPP
Formats
fredag 21 mars 14
Queueing
DDS
XML
Transformation
STOMP
AMQP
JSON
Messaging systems
Implementations
Windows Azure
Service Bus
JMS
Services
Routing
Protocols
XMPP
Formats
fredag 21 mars 14
Queueing
DDS
XML
Transformation
STOMP
AMQP
JSON
Messaging systems
Just some examples
Implementations
JMS
ActiveMQ
Services
Routing
Protocols
XMPP
Formats
fredag 21 mars 14
Queueing
DDS
XML
Windows Azure
Service Bus
Transformation
STOMP
AMQP
JSON
AMQP:
Advanced Message Queueing
Protocol
Publisher
publishes
Exchange
routes
Queue
consumes
Consumer
AMQP Broker
https://www.rabbitmq.com/tutorials/amqp-concepts.html
fredag 21 mars 14
Publisher
publishes
Exchange
routes
AMQP Broker
fredag 21 mars 14
Queue
consumes
Consumer
Publisher
publishes
Exchange
routes
AMQP Broker
fredag 21 mars 14
Queue
consumes
Consumer
fredag 21 mars 14
fredag 21 mars 14
Publisher
publishes
Exchange
routes
Queue
consumes
AQMP
~ UDP Unicast
fredag 21 mars 14
Consumer
Exchange
Publisher
publishes
Exchange
routes
AQMP
Queue
consumes
Consumer
Exchange (2)
~ UDP Broadcast
fredag 21 mars 14
Publisher
publishes
Exchange
routes
AMQP Broker
fredag 21 mars 14
Queue
consumes
Consumer
Publisher
publishes
Exchange
routes
AMQP Broker
fredag 21 mars 14
Queue
consumes
Consumer
fredag 21 mars 14
fredag 21 mars 14
Publisher
publishes
Exchange
routes
Queue
consumes
Consumer
Queue
AQMP
Name
Durability
Auto-deleted
Exclusive
Extra arguments
fredag 21 mars 14
identifier
Should it survive a
broker restart?
Deleted if no consumer
subscribes?
Shared between
connections?
Broker-specific features
AMQP Connections
fredag 21 mars 14
AMQP Connections
TCP
Connection
fredag 21 mars 14
AMQP Connections
SSL
Connection
TCP
Connection
fredag 21 mars 14
AMQP Connections
n
1
fredag 21 mars 14
AMQP
AMQP
AMQP
Connection
Connection
Connection
SSL
Connection
TCP
Connection
AMQP Summary
• Extensible
• Standardized (by OASIS)
• Fairly mature
• Requires asynchronous processing
• A new type of infrastructure
fredag 21 mars 14
Download