Modularity and Dynamism - The tale of two sisters
-
Upload
clement-escoffier -
Category
Technology
-
view
374 -
download
5
description
Transcript of Modularity and Dynamism - The tale of two sisters
![Page 1: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/1.jpg)
Modularity & Dynamism
A Tale of Two Sisters
Dr. Clement Escoffier
![Page 2: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/2.jpg)
Time Travel
![Page 3: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/3.jpg)
–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](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/4.jpg)
–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](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/5.jpg)
–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](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/6.jpg)
Modularity a (not that) simple idea
![Page 7: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/7.jpg)
![Page 8: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/8.jpg)
![Page 9: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/9.jpg)
![Page 10: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/10.jpg)
![Page 11: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/11.jpg)
![Page 12: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/12.jpg)
The trend…
![Page 13: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/13.jpg)
![Page 14: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/14.jpg)
Dependencies
![Page 15: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/15.jpg)
Compatibility
![Page 16: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/16.jpg)
Boot Sequence &
Stabilization
![Page 17: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/17.jpg)
Reuse / Generic vs.
Performance
![Page 18: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/18.jpg)
DynamismThe forgotten sister
![Page 19: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/19.jpg)
Dynamism
(Asynchronous) Update
Event in the surrounding environment
Change in the application
context
![Page 20: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/20.jpg)
Very specific and limited to
particular domains
![Page 21: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/21.jpg)
![Page 22: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/22.jpg)
Ubiquitous Computing
Machineto
Machine
Internetof
Things
Pervasive Environment
![Page 23: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/23.jpg)
Application Servers
Set-top Box
Enterprise Server
(JavaEE)
Custom App
Servers
![Page 24: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/24.jpg)
Enterprise Applications
Heavily Distributed
Managed by many
stakeholders
Mal leable Topology
![Page 25: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/25.jpg)
Cloud, Mobile…
Ever-Changing Dynamic Resources
Disruptions
![Page 26: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/26.jpg)
![Page 27: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/27.jpg)
Dynamism breaks the simplest assumptions
if (service != null) {
service.serve();
}
![Page 28: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/28.jpg)
![Page 29: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/29.jpg)
![Page 30: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/30.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/31.jpg)
C omponents
![Page 32: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/32.jpg)
Interfaces
Required
Provided
![Page 33: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/33.jpg)
Dependency Injection
![Page 34: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/34.jpg)
Lifecycle
![Page 35: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/35.jpg)
Dynamic Availability
![Page 36: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/36.jpg)
Dynamic Availability
X! X!
![Page 37: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/37.jpg)
On the role of the Service RegistryRegistry
1 - Publication2 - Lookup,
Notifications, Selection
3 - Binding
![Page 38: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/38.jpg)
The new super-powers
![Page 39: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/39.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/40.jpg)
Temporal => Timeout
Hold the line,back in a sec
![Page 41: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/41.jpg)
@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](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/42.jpg)
Context-Sources
filter= “(version=${my.version})”
![Page 43: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/43.jpg)
Stereotypes & Manipulator Modules
@Controller
@Component @Provides @Instantiate
![Page 44: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/44.jpg)
Interceptors
![Page 45: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/45.jpg)
iPOJO 2.x Roadmap
![Page 46: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/46.jpg)
Manip@Runtime
![Page 47: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/47.jpg)
Inheritance
![Page 48: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/48.jpg)
New Manipulation Machine
Interceptor Chains Indy ?
![Page 49: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/49.jpg)
Intra-Bundle Injection
![Page 50: Modularity and Dynamism - The tale of two sisters](https://reader034.fdocuments.in/reader034/viewer/2022042607/554955c8b4c905e94e8b4df7/html5/thumbnails/50.jpg)
End Of File