Post on 30-Sep-2020
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
CORBAJava 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
0
200
400
600
800
1998 2000 2002 2004 2006 2008 2010 2012
Submissions Citations
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.
”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.”
fredag 21 mars 14
Figure 5. Types of validation CBSE 1998-2011
In this case, the overall data might be misleading, because it presents that the considerable amount of papers does not provide any validation. However, this is mostly because in the early years of CBSE events (while it was still a workshop), there was a considerable number of position papers, which usually do not present any validation. For this reason, we also present validations obtained by only analyzing papers in a more mature phase of the CBSE events lifecycle (2004-2011). Here we can see that a considerably lower number of the papers do not have any (proper) validation.
Figure 6. Types of validation CBSE 2004-2011
7. ADDITIONAL STATISTICS Here we provide additional statistics related to the CBSE events and the CBSE community that was built around these events: authors’ affiliation statistics, authors’ geographical distributions, and the most active research centers.
7.1 Affiliation statistic We have categorized authors’ affiliation in three categories: !) Univesity, !!) Institute, and !!!) Private Company, see Figure 7. Even though the percentage of industrial contribution could be higher, it nonetheless shows that there are strong connections between this research community and the industry.
Figure 7. Affiliation Statistics
Geographical distribution – based on the authors’ affiliation, we have also categorized the papers according to continents and countries, see Figure 8.
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.
Figure 9. Top Ten Contributors Research Centers in CBSE
38%$
25%$
19%$
12%$
5%$
1%$0%$
Not$presented$
Academic$case$study$
Simple$Example$
Experiments$
Industrial$case$study$
Formal$SpecificaAon$
Literature$comparison$
16%$
39%$18%$
19%$
7%$
1%$
Not$presented$
Academic$case$study$
Simple$examples$
Experiments$
Industrial$case$study$
Formal$specifica@on$
Literature$comparision$
70,40%&
19%&
14,40%&
University&
Company&
Ins8tute&
0%!20%!40%!60%!80%!100%!
Europe
'N.America'
Asia'
Australia'
S.'America'
USA
'France'
Germ
any'
Swed
en'
Australia'
Italy'
Canada'
Spain'
China'
Geographical'distribu?on'
0!5!10!15!20!
No'of'publica?ons'
69From 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
Figure 5. Types of validation CBSE 1998-2011
In this case, the overall data might be misleading, because it presents that the considerable amount of papers does not provide any validation. However, this is mostly because in the early years of CBSE events (while it was still a workshop), there was a considerable number of position papers, which usually do not present any validation. For this reason, we also present validations obtained by only analyzing papers in a more mature phase of the CBSE events lifecycle (2004-2011). Here we can see that a considerably lower number of the papers do not have any (proper) validation.
Figure 6. Types of validation CBSE 2004-2011
7. ADDITIONAL STATISTICS Here we provide additional statistics related to the CBSE events and the CBSE community that was built around these events: authors’ affiliation statistics, authors’ geographical distributions, and the most active research centers.
7.1 Affiliation statistic We have categorized authors’ affiliation in three categories: !) Univesity, !!) Institute, and !!!) Private Company, see Figure 7. Even though the percentage of industrial contribution could be higher, it nonetheless shows that there are strong connections between this research community and the industry.
Figure 7. Affiliation Statistics
Geographical distribution – based on the authors’ affiliation, we have also categorized the papers according to continents and countries, see Figure 8.
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.
Figure 9. Top Ten Contributors Research Centers in CBSE
38%$
25%$
19%$
12%$
5%$
1%$0%$
Not$presented$
Academic$case$study$
Simple$Example$
Experiments$
Industrial$case$study$
Formal$SpecificaAon$
Literature$comparison$
16%$
39%$18%$
19%$
7%$
1%$
Not$presented$
Academic$case$study$
Simple$examples$
Experiments$
Industrial$case$study$
Formal$specifica@on$
Literature$comparision$
70,40%&
19%&
14,40%&
University&
Company&
Ins8tute&
0%!20%!40%!60%!80%!100%!
Europe
'N.America'
Asia'
Australia'
S.'America'
USA
'France'
Germ
any'
Swed
en'
Australia'
Italy'
Canada'
Spain'
China'
Geographical'distribu?on'
0!5!10!15!20!
No'of'publica?ons'
69From 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
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, B3Rule: (-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, B3Rule: (-A | B1 | B2 | B3)
A conflicts with B provided by B1, B2, B33 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
A requires B provided by B1, B2, B3Rule: (-A | B1 | B2 | B3)
A conflicts with B provided by B1, B2, B33 Rules: (-A | -B1), (-A | -B2), (-A | -B3)
Rules
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 Environment Format
NuGet .Net CLR 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 assumptionsfredag 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 assumptionsfredag 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 assumptionsfredag 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 assumptionsfredag 21 mars 14
Enterprise Integration Patterns
fredag 21 mars 14
Messaging system
Message Channel
Sender Application Receiver Application
fredag 21 mars 14
Aspects of Messaging Systems
Aspect Header Body
Security x x
Routing x
Metadata x x
Subscription x
Policy x x
fredag 21 mars 14
Messaging systems
fredag 21 mars 14
Messaging systems
JSONXMLFormats
fredag 21 mars 14
Messaging systems
JSONXML
AMQPDDSXMPPProtocols
Formats
STOMP
fredag 21 mars 14
Messaging systems
JSONXML
AMQPDDSXMPP
Routing Queueing Transformation
Protocols
Services
Formats
STOMP
fredag 21 mars 14
Messaging systems
JSONXML
AMQPDDSXMPP
Routing Queueing Transformation
Protocols
Services
Formats
Implementations
STOMP
fredag 21 mars 14
Messaging systems
JSONXML
AMQPDDSXMPP
Routing Queueing Transformation
Protocols
Services
Formats
Implementations JMS
STOMP
fredag 21 mars 14
Messaging systems
JSONXML
AMQPDDSXMPP
Routing Queueing Transformation
Protocols
Services
Formats
Implementations JMS
STOMP
Windows Azure Service Bus
fredag 21 mars 14
Messaging systems
JSONXML
AMQPDDSXMPP
Routing Queueing Transformation
Protocols
Services
Formats
Implementations JMS
STOMP
ActiveMQWindows Azure
Service Bus
Just some examples
fredag 21 mars 14
AMQP: Advanced Message Queueing
Protocol
https://www.rabbitmq.com/tutorials/amqp-concepts.html
AMQP Broker
Publisher Exchange Queue Consumerpublishes routes consumes
fredag 21 mars 14
AMQP Broker
Publisher Exchange Queue Consumerpublishes routes consumes
fredag 21 mars 14
AMQP Broker
Publisher Exchange Queue Consumerpublishes routes consumes
fredag 21 mars 14
fredag 21 mars 14
fredag 21 mars 14
Exchange
~ UDP Unicast
AQMP
Publisher Exchange Queue Consumerpublishes routes consumes
fredag 21 mars 14
Exchange (2)
~ UDP Broadcast
AQMP
Publisher Exchange Queue Consumerpublishes routes consumes
fredag 21 mars 14
AMQP Broker
Publisher Exchange Queue Consumerpublishes routes consumes
fredag 21 mars 14
AMQP Broker
Publisher Exchange Queue Consumerpublishes routes consumes
fredag 21 mars 14
fredag 21 mars 14
fredag 21 mars 14
QueueAQMP
Publisher Exchange Queue Consumerpublishes routes consumes
Name identifier
Durability Should it survive a broker restart?
Auto-deleted Deleted if no consumer subscribes?
Exclusive Shared between connections?
Extra arguments Broker-specific features
fredag 21 mars 14
AMQP Connections
fredag 21 mars 14
AMQP Connections
TCP Connection
fredag 21 mars 14
AMQP Connections
TCP Connection
SSL Connection
fredag 21 mars 14
AMQP Connections
TCP Connection
SSL Connection
AMQP Connection
AMQP Connection
AMQP Connection
n
1
fredag 21 mars 14
AMQP Summary
• Extensible
• Standardized (by OASIS)
• Fairly mature
• Requires asynchronous processing
• A new type of infrastructure
fredag 21 mars 14