Modularity and Dynamism - The tale of two sisters

50
Modularity & Dynamism A Tale of Two Sisters Dr. Clement Escoffier

description

A short history of modularity and dynamism followed by a presentation of the iPOJO latest features.

Transcript of Modularity and Dynamism - The tale of two sisters

Page 1: Modularity and Dynamism - The tale of two sisters

Modularity & Dynamism

A Tale of Two Sisters

Dr. Clement Escoffier

Page 2: Modularity and Dynamism - The tale of two sisters

Time Travel

Page 3: Modularity and Dynamism - The tale of two sisters

–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.”

Page 4: Modularity and Dynamism - The tale of two sisters

–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.”

Page 5: Modularity and Dynamism - The tale of two sisters

–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.

Page 6: Modularity and Dynamism - The tale of two sisters

Modularity a (not that) simple idea

Page 7: Modularity and Dynamism - The tale of two sisters
Page 8: Modularity and Dynamism - The tale of two sisters
Page 9: Modularity and Dynamism - The tale of two sisters
Page 10: Modularity and Dynamism - The tale of two sisters
Page 11: Modularity and Dynamism - The tale of two sisters
Page 12: Modularity and Dynamism - The tale of two sisters

The trend…

Page 13: Modularity and Dynamism - The tale of two sisters
Page 14: Modularity and Dynamism - The tale of two sisters

Dependencies

Page 15: Modularity and Dynamism - The tale of two sisters

Compatibility

Page 16: Modularity and Dynamism - The tale of two sisters

Boot Sequence &

Stabilization

Page 17: Modularity and Dynamism - The tale of two sisters

Reuse / Generic vs.

Performance

Page 18: Modularity and Dynamism - The tale of two sisters

DynamismThe forgotten sister

Page 19: Modularity and Dynamism - The tale of two sisters

Dynamism

(Asynchronous) Update

Event in the surrounding environment

Change in the application

context

Page 20: Modularity and Dynamism - The tale of two sisters

Very specific and limited to

particular domains

Page 21: Modularity and Dynamism - The tale of two sisters
Page 22: Modularity and Dynamism - The tale of two sisters

Ubiquitous Computing

Machineto

Machine

Internetof

Things

Pervasive Environment

Page 23: Modularity and Dynamism - The tale of two sisters

Application Servers

Set-top Box

Enterprise Server

(JavaEE)

Custom App

Servers

Page 24: Modularity and Dynamism - The tale of two sisters

Enterprise Applications

Heavily Distributed

Managed by many

stakeholders

Mal leable Topology

Page 25: Modularity and Dynamism - The tale of two sisters

Cloud, Mobile…

Ever-Changing Dynamic Resources

Disruptions

Page 26: Modularity and Dynamism - The tale of two sisters
Page 27: Modularity and Dynamism - The tale of two sisters

Dynamism breaks the simplest assumptions

if (service != null) {

service.serve();

}

Page 28: Modularity and Dynamism - The tale of two sisters
Page 29: Modularity and Dynamism - The tale of two sisters
Page 30: Modularity and Dynamism - The tale of two sisters

Simplif ication of the development

model

Al l types of dynamism

Adaptable , Flexible and

Customizable

Page 31: Modularity and Dynamism - The tale of two sisters

C omponents

Page 32: Modularity and Dynamism - The tale of two sisters

Interfaces

Required

Provided

Page 33: Modularity and Dynamism - The tale of two sisters

Dependency Injection

Page 34: Modularity and Dynamism - The tale of two sisters

Lifecycle

Page 35: Modularity and Dynamism - The tale of two sisters

Dynamic Availability

Page 36: Modularity and Dynamism - The tale of two sisters

Dynamic Availability

X! X!

Page 37: Modularity and Dynamism - The tale of two sisters

On the role of the Service RegistryRegistry

1 - Publication2 - Lookup,

Notifications, Selection

3 - Binding

Page 38: Modularity and Dynamism - The tale of two sisters

The new super-powers

Page 39: Modularity and Dynamism - The tale of two sisters

Constructor injection

public Component (

@Requires ApplicationConfiguration configuration, @Property(name="p",value="d") String prop, @Context BundleContext ctx) {

//…

}

Page 40: Modularity and Dynamism - The tale of two sisters

Temporal => Timeout

Hold the line,back in a sec

Page 41: Modularity and Dynamism - The tale of two sisters

@Configuration

@Configuration public class MyConfiguration { ! Instance businessA = instance() .named("A") .of(BusinessImpl.class) .with("name").setto("A"); }

Page 42: Modularity and Dynamism - The tale of two sisters

Context-Sources

filter= “(version=${my.version})”

Page 43: Modularity and Dynamism - The tale of two sisters

Stereotypes & Manipulator Modules

@Controller

@Component @Provides @Instantiate

Page 44: Modularity and Dynamism - The tale of two sisters

Interceptors

Page 45: Modularity and Dynamism - The tale of two sisters

iPOJO 2.x Roadmap

Page 46: Modularity and Dynamism - The tale of two sisters

Manip@Runtime

Page 47: Modularity and Dynamism - The tale of two sisters

Inheritance

Page 48: Modularity and Dynamism - The tale of two sisters

New Manipulation Machine

Interceptor Chains Indy ?

Page 49: Modularity and Dynamism - The tale of two sisters

Intra-Bundle Injection

Page 50: Modularity and Dynamism - The tale of two sisters

End Of File