universität bonn, seminar softwaretechnologie ws 2003, aleksej palij 1 seminar "component and...

40
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej Palij, [email protected]

Upload: lies-heindl

Post on 05-Apr-2015

112 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1

Seminar "Component and Aspect Engineering" WS2003

CORBA Component Model

Aleksej Palij, [email protected]

Page 2: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 2

Inhalt

Motivation Übersicht des CORBA Komponentenmodels (CCM)

Konzepte Abstraktes Model Container Model Implementationsmodel

Entwicklung Packaging Model Deployment Model

Alternativen im Überblick Zusammenfassung

Page 3: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 3

CORBA Component Model (CCM)

Ist: ein verteiltes komponentenorientiertes Model Technologie für den Einsatz von binärem ausführbarem Code, der

in verschiedenen Sprachen implementiert wurde Erster umfassender Komponenten-Standard

Ermöglicht: Definition von Komponenten und ihrer Interaktionen Generische Implementierung von

Komponentenverwaltung: Erzeugung, Aktivierung, Deaktivierung… CORBA Services: Sicherheit, Persistenz, Verteilten Transaktionen, Ereignissen

Interoperabilität mit Enterprise Java Beans (EJB)

Page 4: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 4

Motivation

plug-and-play von CORBA-Objekten

einfache Integration mit anderen objektorientierten Technologien, insbesondere Java und EJB

klare Kommunikationsschnittstellen zwischen CORBA-Objekten

externe Konfiguration der Anwendung (nicht in Objekten versteckt)

Befreiung der Objekten von Nicht-funktionslogik

Berücksichtigung von Installationszeiten

Page 5: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 5

Inhalt

Motivation Übersicht des CORBA Komponentenmodels (CCM)

Konzepte Abstraktes Model Container Model Implementationsmodel

Entwicklung Packaging Model Deployment Model

Alternativen im Überblick Zusammenfassung

Page 6: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 6

Abstraktes Komponentenmodel

Beschreibt:

Was eine Komponente den anderen Komponenten anbietet

Was eine Komponente von den anderen Komponenten braucht

Welche Arten der Zusammenarbeit werden zw. den Komponenten benutzt

Synchronous via operation invocation Asynchronous via event notification

Welche Komponenteneigenschaften konfigurierbar sind

Welche Manager für die Komponenteninstanzenverwaltung verantwortlich sind (z.B. home)

Page 7: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 7

Was ist eine CORBA-Komponente?

“component” ist ein neuer CORBA-meta-typ Interface Definition Language (IDL)

Bietet Features von Komponenten an

Single inheritance

supports multiple interfaces

Jede Komponenteninstanz wird von einem eindeutigen Komponenten-home erzeugt und verwaltet

Page 8: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 8

Component Features

Attributes = konfigurierbare Eigenschaften

Facets = Interfaces der angebotenen Operationen

Receptacles = Interfaces der benötigten Operationen

Event sources = erzeugte events

Event sinks = konsumierte events

Navigation und Introspektion

auch „ports“ genannt

Page 9: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 9

Eine CORBA-Komponente

CORBAComponent

facetsfacets receptaclesreceptacles

event sinksevent sinks

Component reference typeComponent reference type

attributes

event sourcesevent sources

RE

QU

IRE

DOF

FE

RE

D

Page 10: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 10

CORBAComponent

CORBAComponent

CORBAComponent

CORBAComponent

CORBAComponent

CORBAComponentCORBA

ComponentCORBAComponent

Komposition

Page 11: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 11

Attribute

zentraler Schlüssel für die erfolgreiche Wiederverwendbarkeit

sind für die Konfiguration von Komponenten gedacht z.B., optionales Verhalten, Modalität, Ressourcenhinweise, usw.

die Auslösung von Exceptions möglich

Zugreifbar via “accessors” und “mutators”

Konfiguration visuell via Property-Sheet-Mechanismus in Assembly oder

Deployment Umgebung Bei “homes” oder während der Implementationsinitialisierung Danach möglicherweise nur lesbar

Page 12: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 12

Facets

“Distinct named Interfaces” bieten die Funktionalität der komponentenbasierten Anwendung für die Klienten an

Jede “facet” enthält eine Sicht der Komponente, entspricht einer Rolle, bezüglich deren ein Klient die Komponente ansprechen kann

Eine “facet” representiert die Komponente selbst, nicht einen getrennten Teil davon

Facets besitzen unabhängige Objektreferenzen

Page 13: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 13

Receptacles

“Distinct named connection points” für die Operationsaufrufe der anderen Komponenten

Enthalten eine oder mehrere Referenzen

Konfiguration statisch während der Initialisierungs- oder Assembly-Phase Wird dynamisch zur Laufzeit verwaltet um Interaktionen mit

Klienten oder anderen Komponenten anzubieten (z.B. “callback”)

Page 14: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 14

Events mit „push“-Mechanismus

“named connection points” Event sources

Publishers (“multicast”) Emitters (“unicast”)

Event sinks Akzeptieren events vom bestimmten Typ Unterscheiden nicht zw. Verbindungen(emits) und

Subscriptions(publishes)

source Notification channel sink

sinksinksink

emits

publishes

Page 15: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 15

Component Home

Verwaltet einen eindeutigen Typ von Komponenten

“home” ist ein neuer CORBA Meta-Typ

Wird instanziiert wenn die Komponente in Betrieb genommen wird

Ansprechbar via HomeFinder

Page 16: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 16

Container

HomeFinder HomeFinder ermöglicht die Ermittlung der Referenz zum

gewünschten Home Interface eines Komponententyps Alle Homes können hier registriert werden (nicht automatisch) resolve_initial_reference(”ComponentHomeFinder”);

Liefert HomeFinder

HomeHomeFinder

CORBAComponent

Page 17: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 17

PhilosopherHome

CCM – IDL Beispiel

component Philosopher

{

attribute string name;

// The left fork receptacle.

uses Fork left;

// The right fork receptacle.

uses Fork right;

// The status info event source.

publishes StatusInfo info;

};

home PhilosopherHome manages Philosopher {

factory new(in string name);

};

left

right

info

Philosopher

Name = X

Page 18: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 18

Inhalt

Motivation Übersicht des CORBA Komponentenmodels (CCM)

Konzepte Abstraktes Model Container Model Implementationsmodel

Entwicklung Packaging Model Deployment Model

Alternativen im Überblick Zusammenfassung

Page 19: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 19

Container Model

Auch „Execution Model“ genannt

Beschreibt die Execution-Umgebung von Komponenteninstanzen

Basiert hauptsächlich auf Portable Object Adaptor Automatische Aktivierung / Deaktivierung Optimisierung des Resourcenverbrauchs

Bietet vereinfachte Interfaces für CORBA Services Security, transactions, persistence und events

Benutzt callbacks für Instanzenmanagement

Page 20: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 20

ORBORB

Container Architecture

Transaction Security Persistency Notification

Client

ExtendedOMG IDLexternal

API

Home

Container

CORBAComponent

InternalAPI

CallbackAPI

PO

A

Page 21: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 21

Was ist ein Component Container?

Server Runtime Environment Versorgung und Verwaltung von Resourcen für Komponenten-

Instanzen Servant/component life time (memory consumption) CORBA Object Services (COM)

kapselt ein oder mehrere POAs ein

Verwaltet ein Typ von Komponenten entity, process, session, service, EJBsession,

EJBentity, Empty

Page 22: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 22

Komponententypen

CORBA usage modelCORBA usage model

stateless

conversational

durable

durable

Container TypeContainer Type

Session

Session

Entity

Entity

ComponentComponentCategoryCategory

Service

Session

Process

Entity

EJB typeEJB type

-

Session

-

Entity

Page 23: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 23

Inhalt

Motivation Übersicht des CORBA Komponentenmodels (CCM)

Konzepte Abstraktes Model Container Model Implementationsmodel

Entwicklung Packaging Model Deployment Model

Alternativen im Überblick Zusammenfassung

Page 24: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 24

Implementationsmodel

Component Implementation Framework – CIF

Beschreibt die Implementierungsstruktur und Persistenzzustand einer Komponente

Component Implementation Definition Language (CIDL)

Erleichtert die Imlementierung von Komponenten Es muss “nur” Business Logic implementiert werden

– kein port management, navigation, component life cycle etc.

Komposition (von Artefakten) ist das zentrale Konzept

Verwaltet Segmentierung und Persistenz

Generiert Skeletons

Page 25: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 25

Component Skeleton Generierung

CIDLIDL 3

Java / CIF Compiler

Non functional

Component executor

User written

Generated

Functional

Functional

IDL 2 XML

composition <category> <composition_name>{ home executor <home_executor_name> {

implements <home_type> ;manages <executor_name>;

};};

Page 26: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 26

Inhalt

Motivation Übersicht des CORBA Komponentenmodels (CCM)

Konzepte Abstraktes Model Container Model Implementationsmodel

Entwicklung Packaging Model Deployment Model

Alternativen im Überblick Zusammenfassung

Page 27: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 27

Packaging model

Pakete (ZIP) enthalten: XML-Descriptor Andere (Pakete, Libraries)

Softwarepaket

Komponentenpaket

Komponenten-Assembly-Paket

<softpkg> <pkgtype>

<title> <author> <description> <licence> <idl> <propertyfile> <implementation>

</softpkg>

Main Elements of Software Package Descriptor:

Page 28: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 28

XML Descriptors Überblick

Software Package Descriptor (.csd)

CORBA Component Descriptor (.ccd)

Component Assembly Descriptor (.cad)

Component Property File Descriptor (.cpf)

Page 29: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 29

Component Packaging

IDL/CIDL Compiler

UserCode

GeneratedCode

IDL

ComponentDescriptor

DefaultProperties

Compiler

SharedLibrary or

Executable

Packaging Tool

ComponentPackage

.zip

Page 30: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 30

Component Assembly

PropertiesDeploymen

tTool

AssemblyArchive

.aar (ZIP)

Assembly Tool

ComponentPackage

ComponentPackage

ComponentPackage

PortConnections

InstanceCreation

...

Page 31: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 31

Inhalt

Motivation Übersicht des CORBA Komponentenmodels (CCM)

Konzepte Abstraktes Model Container Model Implementationsmodel

Entwicklung Packaging Model Deployment Model

Alternativen im Überblick Zusammenfassung

Page 32: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 32

Deployment model (1)

Zuordnung – Definierung von „execution sites“

Eine Applikation kann mehrmals instanziiert werden

ComponentInstallation

AssemblyFactory

Assembly

Page 33: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 33

Deployment model (2)

Server Activator

Component Server

Container

Instanziierung von Komponenten

Konfiguration von Komponenten

Page 34: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 34

The Component Deployment Process

Deployment Tool

AssemblyFactory Assembly

ServerActivator

ComponentServer

Container

CCMHome

CCMObjectComponentInstallation

«instantiates»

«instantiates»

«instantiates»

«instantiates»

«instantiates»

Page 35: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 35

Inhalt

Motivation Übersicht des CORBA Komponentenmodels (CCM)

Konzepte Abstraktes Model Container Model Implementationsmodel

Entwicklung Packaging Model Deployment Model

Alternativen im Überblick Zusammenfassung

Page 36: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 36

CCM vs. EJB, COM und .NET

Ähnlichkeiten mit EJB

CORBA Komponenten werden von homes erzeugt und verwaltet laufen im Container werden von Komponentenserver-Applikation gehostet

Ähnlichkeiten mit COM Hat mehrere input und output Schnittstellen

Sowohl synchrone Operationen als auch asynchrone Nachrichten

Navigations- und Introspektionsfähigkeiten

Ähnlichkeiten mit .NET Framework Können in verschiedenen Programmiersprachen geschrieben werden Können zum Zweck der Verteilung verpackt werden

Page 37: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 37

Aber mit CCM…

Die CCM Applikationen sind „wirklich“ verteilt

Sie können auf mehreren verteilten Knoten gleichzeitig eingesetzt und ausgeführt werden.

Eine CORBA Komponente kann von mehreren Klassen implementiert werden

Page 38: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 39

Zusammenfassung

component (definiert via IDL) Attribute, Ports, Navigation, Introspektion

home, HomeFinder Container

Typen: Session, Entity

Komponententypen entity, process, session, service, EJBsession,

EJBentity, Empty Implementierung (CIF,CIDL) Verpackung (XML-Descriptors) Verteilung

Page 39: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 41

Fragen?

Page 40: Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1 Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej

Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 42

Vielen Dank!