Modularity and Dynamism - The tale of two sisters

846 views
633 views

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
846
On SlideShare
0
From Embeds
0
Number of Embeds
33
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Modularity and Dynamism - The tale of two sisters

  1. 1. Modularity & Dynamism 
 A Tale of Two Sisters Dr. Clement Escoffier
  2. 2. Time Travel
  3. 3. –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.”
  4. 4. –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.”
  5. 5. –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.
  6. 6. Modularity a (not that) simple idea
  7. 7. The trend…
  8. 8. Dependencies
  9. 9. Compatibility
  10. 10. Boot Sequence & Stabilization
  11. 11. Reuse / Generic vs. Performance
  12. 12. Dynamism The forgotten sister
  13. 13. Dynamism (Asynchronous) Update Event in the surrounding environment Change in the application
 context
  14. 14. Very specific and limited to 
 particular domains
  15. 15. Ubiquitous Computing Machine
 to
 Machine Internet
 of
 Things Pervasive Environment
  16. 16. Application Servers Set-top Box Enterprise Server (JavaEE) Custom App Servers
  17. 17. Enterprise Applications Heavily Distributed Managed by many stakeholders Malleable Topology
  18. 18. Cloud, Mobile… Ever-Changing Dynamic Resources Disruptions
  19. 19. Dynamism breaks the simplest assumptions if (service != null) { service.serve(); }
  20. 20. Simplification of the development model All types of dynamism Adaptable , Flexible and Customizable
  21. 21. Components
  22. 22. Interfaces Required Provided
  23. 23. Dependency Injection
  24. 24. Lifecycle
  25. 25. Dynamic Availability
  26. 26. Dynamic Availability X! X!
  27. 27. On the role of the Service Registry Registry 1 - Publication 2 - Lookup, Notifications, Selection 3 - Binding
  28. 28. The new super-powers
  29. 29. Constructor injection public Component ( @Requires ApplicationConfiguration configuration, @Property(name="p",value="d") String prop, 
 @Context BundleContext ctx) { //… }
  30. 30. Temporal => Timeout Hold the line,
 back in a sec
  31. 31. @Configuration @Configuration public class MyConfiguration { ! Instance businessA =
 instance()
 .named("A")
 .of(BusinessImpl.class)
 .with("name").setto("A"); }
  32. 32. Context-Sources filter=
 “(version=${my.version})”
  33. 33. Stereotypes & Manipulator Modules @Controller @Component @Provides @Instantiate
  34. 34. Interceptors
  35. 35. iPOJO 2.x Roadmap
  36. 36. Manip@Runtime
  37. 37. Inheritance
  38. 38. New Manipulation Machine Interceptor Chains Indy ?
  39. 39. Intra-Bundle Injection
  40. 40. End Of File

×