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

components infrastructures
SMART_READER_LITE
LIVE PREVIEW

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.


slide-1
SLIDE 1

Software Engineering

Components Infrastructures

Manuel Oriol December 14th, 2005

slide-2
SLIDE 2

2

Software Engineering

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

slide-3
SLIDE 3

3

Software Engineering

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)
slide-4
SLIDE 4

4

Software Engineering

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”

slide-5
SLIDE 5

5

Software Engineering

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
  • bject
  • Aggregation: expose the interface of an object as its
  • wn.
  • DCOM: Distributed COM
slide-6
SLIDE 6

6

Software Engineering

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
slide-7
SLIDE 7

7

Software Engineering

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…)
slide-8
SLIDE 8

8

Software Engineering

Agents

  • Intelligent?
  • Resident
  • Autonomous
  • Analyze and report
  • On an agent platform
  • Mobile
slide-9
SLIDE 9

9

Software Engineering

Custom Component infrastructures (e.g. LuckyJ)

Sample Presentation

http://se.inf.ethz.ch/people/moriol/www/Research/ETAPS2003_USE

slide-10
SLIDE 10

10

Software Engineering

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?
slide-11
SLIDE 11

11

Software Engineering

UML 2

http://www.agilemodeling.com/artifacts/componentDiagram.htm

slide-12
SLIDE 12

12

Software Engineering

Petri Nets

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

slide-13
SLIDE 13

13

Software Engineering

Ad Hoc solution: Reuse Frequency (Bay, 2005)

Graph is static Links are fixed

slide-14
SLIDE 14

14

Software Engineering

Ad Hoc solution: LuckyJ (Oriol, 2005)

slide-15
SLIDE 15

15

Software Engineering

Problems with Graphical Representations

http://www.fmi.uni-stuttgart.de/szs/tools/mckit/dekker1_ll_net.gif

slide-16
SLIDE 16

16

Software Engineering

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?