SlideShare a Scribd company logo
1 of 50
Download to read offline
Modularity & Dynamism


A Tale of Two Sisters
Dr. Clement Escoffier
Time Travel
–R. Gauthier and S. Pont, Designing Systems Programs, 1970.
“Each task forms a separate, distinct program
module. At implementation time each module
and its inputs and outputs are well-defined. At
checkout time the integrity of the module is
tested independently. Finally, the system is
maintained in modular fashion.”
–D. Parnas, On the Criteria to Be Used in Decomposing Systems into
Modules, 1972.
“The major advancement in the area of
modular programming has been the
development of coding techniques and
assemblers which
(l) allow one module to be written with
little knowledge of the code in another
module, and
!
(2) allow modules to be reassembled and
replaced without reassembly of the whole
system.”
–R.S. Fabry, How to design a system in which modules can be changed on
the fly, 1976.
If the module does manage permanent
data structures which must be modified
and the system is one which is expected to
continue operation throughout the
change, the problem is more difficult, but
it can be solved. This paper discusses a
solution.
Modularity
a (not that) simple idea
The
trend…
Dependencies
Compatibility
Boot Sequence
&
Stabilization
Reuse / Generic
vs.
Performance
Dynamism
The forgotten sister
Dynamism
(Asynchronous)
Update
Event in the
surrounding
environment
Change in the
application

context
Very specific and
limited to 

particular domains
Ubiquitous
Computing
Machine

to

Machine
Internet

of

Things
Pervasive
Environment
Application
Servers
Set-top
Box
Enterprise
Server
(JavaEE)
Custom
App
Servers
Enterprise
Applications
Heavily
Distributed
Managed
by many
stakeholders
Malleable
Topology
Cloud, Mobile…
Ever-Changing Dynamic Resources
Disruptions
Dynamism breaks the
simplest assumptions
if (service != null) {
service.serve();
}
Simplification
of the development
model
All types
of dynamism
Adaptable ,
Flexible and
Customizable
Components
Interfaces
Required
Provided
Dependency
Injection
Lifecycle
Dynamic Availability
Dynamic Availability
X! X!
On the role of the Service Registry
Registry
1 - Publication
2 - Lookup,
Notifications,
Selection
3 - Binding
The new super-powers
Constructor injection
public Component (
@Requires ApplicationConfiguration configuration,
@Property(name="p",value="d") String prop, 

@Context BundleContext ctx) {
//…
}
Temporal => Timeout
Hold the line,

back in a sec
@Configuration
@Configuration
public class MyConfiguration {
!
Instance businessA =

instance()

.named("A")

.of(BusinessImpl.class)

.with("name").setto("A");
}
Context-Sources
filter=

“(version=${my.version})”
Stereotypes &
Manipulator Modules
@Controller
@Component
@Provides
@Instantiate
Interceptors
iPOJO 2.x
Roadmap
Manip@Runtime
Inheritance
New Manipulation
Machine
Interceptor Chains Indy ?
Intra-Bundle
Injection
End Of
File

More Related Content

Viewers also liked

Urinary System #4
Urinary System #4Urinary System #4
Urinary System #4
avlainich
 
pl_global-powers-cons-products-2015
pl_global-powers-cons-products-2015pl_global-powers-cons-products-2015
pl_global-powers-cons-products-2015
Blossom Out
 
Social Media for Business [public version]
Social Media for Business [public version]Social Media for Business [public version]
Social Media for Business [public version]
Khomeini Mujahid
 

Viewers also liked (18)

Vert.x v3 - high performance polyglot application toolkit
Vert.x v3 - high performance  polyglot application toolkitVert.x v3 - high performance  polyglot application toolkit
Vert.x v3 - high performance polyglot application toolkit
 
Building microservices with vert.x 3.0
Building microservices with vert.x 3.0Building microservices with vert.x 3.0
Building microservices with vert.x 3.0
 
Vert.X: Microservices Were Never So Easy (Clement Escoffier)
Vert.X: Microservices Were Never So Easy (Clement Escoffier)Vert.X: Microservices Were Never So Easy (Clement Escoffier)
Vert.X: Microservices Were Never So Easy (Clement Escoffier)
 
Rscrirg
RscrirgRscrirg
Rscrirg
 
2013 py con awesome big data algorithms
2013 py con awesome big data algorithms2013 py con awesome big data algorithms
2013 py con awesome big data algorithms
 
Project Work
Project WorkProject Work
Project Work
 
2012 XLDB talk
2012 XLDB talk2012 XLDB talk
2012 XLDB talk
 
Allah & Universe
Allah & UniverseAllah & Universe
Allah & Universe
 
It's Time Summit 2012
It's Time Summit 2012It's Time Summit 2012
It's Time Summit 2012
 
Urinary System #4
Urinary System #4Urinary System #4
Urinary System #4
 
Sabela
SabelaSabela
Sabela
 
Social Media Strategies - Blog to Broadcast
Social Media Strategies - Blog to BroadcastSocial Media Strategies - Blog to Broadcast
Social Media Strategies - Blog to Broadcast
 
Social Media Overview
Social Media OverviewSocial Media Overview
Social Media Overview
 
The critical role of the manager in supporting learning at work through coach...
The critical role of the manager in supporting learning at work through coach...The critical role of the manager in supporting learning at work through coach...
The critical role of the manager in supporting learning at work through coach...
 
Cuba's Current Energy Situation, Future Plans + Challenges
Cuba's Current Energy Situation, Future Plans + ChallengesCuba's Current Energy Situation, Future Plans + Challenges
Cuba's Current Energy Situation, Future Plans + Challenges
 
pl_global-powers-cons-products-2015
pl_global-powers-cons-products-2015pl_global-powers-cons-products-2015
pl_global-powers-cons-products-2015
 
2014 mmg-talk
2014 mmg-talk2014 mmg-talk
2014 mmg-talk
 
Social Media for Business [public version]
Social Media for Business [public version]Social Media for Business [public version]
Social Media for Business [public version]
 

Similar to Modularity and Dynamism - The tale of two sisters

London bosc2010
London bosc2010London bosc2010
London bosc2010
BOSC 2010
 
Werfel, j. 2006: extended stigmergy in collective construction.in life intel...
Werfel, j. 2006: extended stigmergy in collective construction.in life  intel...Werfel, j. 2006: extended stigmergy in collective construction.in life  intel...
Werfel, j. 2006: extended stigmergy in collective construction.in life intel...
ArchiLab 7
 
Seminar report on Introduction to OMNeT++
Seminar report on Introduction to OMNeT++ Seminar report on Introduction to OMNeT++
Seminar report on Introduction to OMNeT++
Shivang Bajaniya
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
mukhtarhudaya
 
How effective is modularization
How effective is modularizationHow effective is modularization
How effective is modularization
SyedArsal
 

Similar to Modularity and Dynamism - The tale of two sisters (20)

London bosc2010
London bosc2010London bosc2010
London bosc2010
 
What is Modulation?
What is Modulation?What is Modulation?
What is Modulation?
 
Werfel, j. 2006: extended stigmergy in collective construction.in life intel...
Werfel, j. 2006: extended stigmergy in collective construction.in life  intel...Werfel, j. 2006: extended stigmergy in collective construction.in life  intel...
Werfel, j. 2006: extended stigmergy in collective construction.in life intel...
 
Seminar report on Introduction to OMNeT++
Seminar report on Introduction to OMNeT++ Seminar report on Introduction to OMNeT++
Seminar report on Introduction to OMNeT++
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
 
How effective is modularization
How effective is modularizationHow effective is modularization
How effective is modularization
 
Solid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven DesignSolid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven Design
 
Se 381 - lec 22 - 24 - 12 may15 - modularity - i - coupling
Se 381 - lec 22 - 24  - 12 may15 - modularity - i - couplingSe 381 - lec 22 - 24  - 12 may15 - modularity - i - coupling
Se 381 - lec 22 - 24 - 12 may15 - modularity - i - coupling
 
Applying a new software development paradigm to biology
Applying a new software development paradigm to biologyApplying a new software development paradigm to biology
Applying a new software development paradigm to biology
 
Configurable Robots
Configurable RobotsConfigurable Robots
Configurable Robots
 
93 99
93 9993 99
93 99
 
Develop a mobility model for MANETs networks based on fuzzy Logic
Develop a mobility model for MANETs networks based on fuzzy LogicDevelop a mobility model for MANETs networks based on fuzzy Logic
Develop a mobility model for MANETs networks based on fuzzy Logic
 
A017610111
A017610111A017610111
A017610111
 
Unit 2
Unit 2Unit 2
Unit 2
 
Modules for reusable and collaborative modeling of biological mathematical sy...
Modules for reusable and collaborative modeling of biological mathematical sy...Modules for reusable and collaborative modeling of biological mathematical sy...
Modules for reusable and collaborative modeling of biological mathematical sy...
 
114 425-433
114 425-433114 425-433
114 425-433
 
Ubiquitous computing
Ubiquitous computingUbiquitous computing
Ubiquitous computing
 
ITT Project Information Technology Basic
ITT Project Information Technology BasicITT Project Information Technology Basic
ITT Project Information Technology Basic
 
PMSE pdf
PMSE pdfPMSE pdf
PMSE pdf
 
Modular approach in_space_system
Modular approach in_space_systemModular approach in_space_system
Modular approach in_space_system
 

More from Clément Escoffier

iPOJO 2.x - a tale about dynamism
iPOJO 2.x - a tale about dynamismiPOJO 2.x - a tale about dynamism
iPOJO 2.x - a tale about dynamism
Clément Escoffier
 
Everest - Everything is a resource
Everest - Everything is a resourceEverest - Everything is a resource
Everest - Everything is a resource
Clément Escoffier
 
Linuxtag 2012 - continuous delivery - dream to reality
Linuxtag 2012  - continuous delivery - dream to realityLinuxtag 2012  - continuous delivery - dream to reality
Linuxtag 2012 - continuous delivery - dream to reality
Clément Escoffier
 
Android : a linux-based mobile operating system
Android : a linux-based mobile operating systemAndroid : a linux-based mobile operating system
Android : a linux-based mobile operating system
Clément Escoffier
 
Experimenting with the OSGi platform in the Aspire RFID middleware
Experimenting with the OSGi platform in the Aspire RFID middlewareExperimenting with the OSGi platform in the Aspire RFID middleware
Experimenting with the OSGi platform in the Aspire RFID middleware
Clément Escoffier
 

More from Clément Escoffier (13)

Devoxx France 2023 - 1,2,3 Quarkus.pdf
Devoxx France 2023 - 1,2,3 Quarkus.pdfDevoxx France 2023 - 1,2,3 Quarkus.pdf
Devoxx France 2023 - 1,2,3 Quarkus.pdf
 
OW2 Nanoko
OW2 NanokoOW2 Nanoko
OW2 Nanoko
 
iPOJO 2.x - a tale about dynamism
iPOJO 2.x - a tale about dynamismiPOJO 2.x - a tale about dynamism
iPOJO 2.x - a tale about dynamism
 
Everest - Everything is a resource
Everest - Everything is a resourceEverest - Everything is a resource
Everest - Everything is a resource
 
h-ubu - CDI in JavaScript
h-ubu - CDI in JavaScripth-ubu - CDI in JavaScript
h-ubu - CDI in JavaScript
 
h-ubu : CDI in JavaScript
h-ubu : CDI in JavaScripth-ubu : CDI in JavaScript
h-ubu : CDI in JavaScript
 
Linuxtag 2012 - continuous delivery - dream to reality
Linuxtag 2012  - continuous delivery - dream to realityLinuxtag 2012  - continuous delivery - dream to reality
Linuxtag 2012 - continuous delivery - dream to reality
 
OSGi - beyond the myth
OSGi -  beyond the mythOSGi -  beyond the myth
OSGi - beyond the myth
 
One year-with-chameleon
One year-with-chameleonOne year-with-chameleon
One year-with-chameleon
 
The OSGi Framework Multiplication
The OSGi Framework MultiplicationThe OSGi Framework Multiplication
The OSGi Framework Multiplication
 
Android : a linux-based mobile operating system
Android : a linux-based mobile operating systemAndroid : a linux-based mobile operating system
Android : a linux-based mobile operating system
 
Experimenting with the OSGi platform in the Aspire RFID middleware
Experimenting with the OSGi platform in the Aspire RFID middlewareExperimenting with the OSGi platform in the Aspire RFID middleware
Experimenting with the OSGi platform in the Aspire RFID middleware
 
Transactional OSGi Applications Done Right
Transactional OSGi Applications Done RightTransactional OSGi Applications Done Right
Transactional OSGi Applications Done Right
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

Modularity and Dynamism - The tale of two sisters