components infrastructures
play

Components Infrastructures Manuel Oriol December 14th, 2005 - PowerPoint PPT Presentation

Components Infrastructures Manuel Oriol December 14th, 2005 Software Engineering Component? A component is a reusable unit of deployment and composition which is accessed through an interface.


  1. Components Infrastructures Manuel Oriol December 14th, 2005 Software Engineering

  2. Component? “A component is a reusable unit of deployment and composition which is accessed through an interface.” http://www.idt.mdh.se/cbse-book/overviews/1Part.htm “In object-oriented programming and distributed object technology, a component is a reusable program building block that can be combined with other components in the same or other computers in a distributed network to form an application.’’ http://searchvb.techtarget.com/sDefinition/0,,sid8_gci211826,00.html 2 Software Engineering

  3. Some Components Infrastructures  Classes  COM, DCOM  Corba  Java Beans, EJB  Agents (not in the sense of Eiffel agents…)  A bunch of custom infrastructures (e.g. LuckyJ) 3 Software Engineering

  4. Classes What we do here since the beginning of the semester. Are components because they answer to a clear interface, is reusable and is used as a building block. Argued by others: “they are not self contained” 4 Software Engineering

  5. Component Object Model, DCOM  Based on RPC  Spec in binary  Interface defined using the Microsoft IDL  By querying the interface: pointer to the interface  Containment: accepts calls and forward them to another object  Aggregation: expose the interface of an object as its own.  DCOM: Distributed COM 5 Software Engineering

  6. Common Object Request Broker Architecture (CORBA)  Encapsulate some binary components and provide the stubs  Based on RPC  Stubs defined by the OMG’s IDL  Method invocations are available and implemented on skeletons  Naturally distributed 6 Software Engineering

  7. JavaBeans  Visual components  Define properties  Event-Based Communication  Can use a Component Assembler Enterprise Java Beans:  Non-visual  Session Beans  Entity Beans  No plumbing issues (security, atomicity…) 7 Software Engineering

  8. Agents  Intelligent?  Resident  Autonomous  Analyze and report  On an agent platform  Mobile 8 Software Engineering

  9. Custom Component infrastructures (e.g. LuckyJ) Sample Presentation http://se.inf.ethz.ch/people/moriol/www/Research/ETAPS2003_USE 9 Software Engineering

  10. Challenge of Modeling the Components  Components are generally less numerous than classes so it is understandable  Explain interactions between components  Possibly, code the interactions between components  Prove things? 10 Software Engineering

  11. UML 2 http://www.agilemodeling.com/artifacts/componentDiagram.htm 11 Software Engineering

  12. Petri Nets http://www.jfsowa.com/figs/clock.gif http://www.fmi.uni-stuttgart.de/szs/research/resources/pom/net.gif 12 Software Engineering

  13. Ad Hoc solution: Reuse Frequency (Bay, 2005) Graph is static Links are fixed 13 Software Engineering

  14. Ad Hoc solution: LuckyJ (Oriol, 2005) 14 Software Engineering

  15. Problems with Graphical Representations http://www.fmi.uni-stuttgart.de/szs/tools/mckit/dekker1_ll_net.gif 15 Software Engineering

  16. Conclusions  A lot of components infrastructures  A lot of ways of modeling components How does this help us to build trust in the component- based application? 16 Software Engineering

Recommend


More recommend