current trends & other topicstddd05/lectures/slides/f12-current-trends.pdf · •no semantic...

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

Upload: others

Post on 30-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Current trends & other topics

TDDD05: Component-based software

fredag 21 mars 14

Page 2: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Agenda

• Current trends

• Dependency management

• Loose coupling and component software

• Enterprise Integration Patterns & Messaging Systems

fredag 21 mars 14

Page 3: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

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

Page 4: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

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

Page 5: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

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

Page 6: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

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

Page 7: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Dependency management

fredag 21 mars 14

Page 8: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

fredag 21 mars 14

Page 9: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

fredag 21 mars 14

Page 10: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

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

Page 11: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

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

Page 12: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Dependency management as

satisfiability

fredag 21 mars 14

Page 13: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Dependency management as

satisfiability (a | b | c) & (d | e | f) ... = TRUE

fredag 21 mars 14

Page 14: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Dependency management as

satisfiability (a | b | c) & (d | e | f) ... = TRUE

(a | b | c) & (-c) & (-b | -a) ... = TRUE

fredag 21 mars 14

Page 15: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

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

Page 16: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

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

Page 17: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

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

Page 18: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

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

Page 19: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

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

Page 20: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Coupling

Loose coupling = weak assumptionsfredag 21 mars 14

Page 21: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

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

Page 22: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

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

Page 23: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

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

Page 24: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Enterprise Integration Patterns

fredag 21 mars 14

Page 25: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Messaging system

Message Channel

Sender Application Receiver Application

fredag 21 mars 14

Page 26: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Aspects of Messaging Systems

Aspect Header Body

Security x x

Routing x

Metadata x x

Subscription x

Policy x x

fredag 21 mars 14

Page 27: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Messaging systems

fredag 21 mars 14

Page 28: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Messaging systems

JSONXMLFormats

fredag 21 mars 14

Page 29: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Messaging systems

JSONXML

AMQPDDSXMPPProtocols

Formats

STOMP

fredag 21 mars 14

Page 30: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Messaging systems

JSONXML

AMQPDDSXMPP

Routing Queueing Transformation

Protocols

Services

Formats

STOMP

fredag 21 mars 14

Page 31: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Messaging systems

JSONXML

AMQPDDSXMPP

Routing Queueing Transformation

Protocols

Services

Formats

Implementations

STOMP

fredag 21 mars 14

Page 32: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Messaging systems

JSONXML

AMQPDDSXMPP

Routing Queueing Transformation

Protocols

Services

Formats

Implementations JMS

STOMP

fredag 21 mars 14

Page 33: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Messaging systems

JSONXML

AMQPDDSXMPP

Routing Queueing Transformation

Protocols

Services

Formats

Implementations JMS

STOMP

Windows Azure Service Bus

fredag 21 mars 14

Page 34: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Messaging systems

JSONXML

AMQPDDSXMPP

Routing Queueing Transformation

Protocols

Services

Formats

Implementations JMS

STOMP

ActiveMQWindows Azure

Service Bus

Just some examples

fredag 21 mars 14

Page 35: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

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

Page 36: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

AMQP Broker

Publisher Exchange Queue Consumerpublishes routes consumes

fredag 21 mars 14

Page 37: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

AMQP Broker

Publisher Exchange Queue Consumerpublishes routes consumes

fredag 21 mars 14

Page 38: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

fredag 21 mars 14

Page 39: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

fredag 21 mars 14

Page 40: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Exchange

~ UDP Unicast

AQMP

Publisher Exchange Queue Consumerpublishes routes consumes

fredag 21 mars 14

Page 41: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

Exchange (2)

~ UDP Broadcast

AQMP

Publisher Exchange Queue Consumerpublishes routes consumes

fredag 21 mars 14

Page 42: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

AMQP Broker

Publisher Exchange Queue Consumerpublishes routes consumes

fredag 21 mars 14

Page 43: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

AMQP Broker

Publisher Exchange Queue Consumerpublishes routes consumes

fredag 21 mars 14

Page 44: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

fredag 21 mars 14

Page 45: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

fredag 21 mars 14

Page 46: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

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

Page 47: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

AMQP Connections

fredag 21 mars 14

Page 48: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

AMQP Connections

TCP Connection

fredag 21 mars 14

Page 49: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

AMQP Connections

TCP Connection

SSL Connection

fredag 21 mars 14

Page 50: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

AMQP Connections

TCP Connection

SSL Connection

AMQP Connection

AMQP Connection

AMQP Connection

n

1

fredag 21 mars 14

Page 51: Current trends & other topicsTDDD05/lectures/slides/F12-Current-Trends.pdf · •No semantic differences between properties in similar classes •No responsibility conflicts (server/client)

AMQP Summary

• Extensible

• Standardized (by OASIS)

• Fairly mature

• Requires asynchronous processing

• A new type of infrastructure

fredag 21 mars 14