CORBA Component Model
Download
Report
Transcript CORBA Component Model
Seminar "Component and Aspect Engineering" WS2003
CORBA Component Model
Aleksej Palij, [email protected]
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
1
Inhalt
Motivation
Übersicht des CORBA Komponentenmodels (CCM)
Konzepte
Abstraktes Model
Container Model
Implementationsmodel
Entwicklung
Packaging Model
Deployment Model
Alternativen im Überblick
Zusammenfassung
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
2
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)
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
3
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
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
4
Inhalt
Motivation
Übersicht des CORBA Komponentenmodels (CCM)
Konzepte
Abstraktes Model
Container Model
Implementationsmodel
Entwicklung
Packaging Model
Deployment Model
Alternativen im Überblick
Zusammenfassung
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
5
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)
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
6
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
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
7
Component Features
Attributes
= konfigurierbare Eigenschaften
Facets
= Interfaces der angebotenen Operationen
Receptacles = Interfaces der benötigten Operationen
Event sources = erzeugte events
Event sinks
= konsumierte events
auch „ports“
genannt
Navigation und Introspektion
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
8
Eine CORBA-Komponente
facets
CORBA
Component
event sinks
REQUIRED
OFFERED
Component reference type
receptacles
event sources
attributes
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
9
Komposition
CORBA
Component
CORBA
Component
CORBA
Component
CORBA
Component
CORBA
Component
CORBA
CORBA
Component
CORBA
Component
Component
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
10
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
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
11
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
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
12
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”)
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
13
Events mit „push“-Mechanismus
“named connection points”
Event sources
Publishers (“multicast”)
Emitters (“unicast”)
source
emits
Notification channel
publishes
sink
sink
sink
sink
Event sinks
Akzeptieren events vom bestimmten Typ
Unterscheiden nicht zw. Verbindungen(emits) und
Subscriptions(publishes)
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
14
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
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
15
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
Home
Home
Finder
Container
CORBA
Component
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
16
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);
};
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
PhilosopherHome
left
Philosopher
right
info
Name = X
17
Inhalt
Motivation
Übersicht des CORBA Komponentenmodels (CCM)
Konzepte
Abstraktes Model
Container Model
Implementationsmodel
Entwicklung
Packaging Model
Deployment Model
Alternativen im Überblick
Zusammenfassung
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
18
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
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
19
Container Architecture
Extended
OMG IDL
external
API
CORBA
Component
Callback
API
Internal
Container
API
POA
C
l
i
e
n
t
Home
ORB
Transaction
Security
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
Persistency
Notification
20
Was ist ein Component Container?
Server Runtime Environment
Versorgung und Verwaltung von Resourcen für KomponentenInstanzen
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
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
21
Komponententypen
Component
Category
CORBA usage model
Container Type
EJB type
Service
stateless
Session
-
Session
conversational
Session
Session
Process
durable
Entity
-
Entity
durable
Entity
Entity
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
22
Inhalt
Motivation
Übersicht des CORBA Komponentenmodels (CCM)
Konzepte
Abstraktes Model
Container Model
Implementationsmodel
Entwicklung
Packaging Model
Deployment Model
Alternativen im Überblick
Zusammenfassung
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
23
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
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
24
Component Skeleton
Generierung
composition <category> <composition_name>{
IDL 3
home executor <home_executor_name> {
implements <home_type> ;
manages <executor_name>;
};
CIDL
};
Component executor
Functional
Java / CIF
Compiler
Functional
Non functional
IDL 2
XML
User written
Generated
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
25
Inhalt
Motivation
Übersicht des CORBA Komponentenmodels (CCM)
Konzepte
Abstraktes Model
Container Model
Implementationsmodel
Entwicklung
Packaging Model
Deployment Model
Alternativen im Überblick
Zusammenfassung
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
26
Packaging model
Pakete (ZIP) enthalten:
XML-Descriptor
Andere (Pakete, Libraries)
Softwarepaket
Komponentenpaket
Komponenten-Assembly-Paket
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
Main Elements of
Software Package Descriptor:
<softpkg>
<pkgtype>
<title>
<author>
<description>
<licence>
<idl>
<propertyfile>
<implementation>
</softpkg>
27
XML Descriptors Überblick
Software Package Descriptor (.csd)
CORBA Component Descriptor (.ccd)
Component Assembly Descriptor (.cad)
Component Property File Descriptor (.cpf)
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
28
Component Packaging
IDL
User
Code
Generated
Code
IDL/CIDL
Compiler
Compiler
Shared
Library or
Executable
Component
Descriptor
Default
Properties
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
Packaging
Tool
Component
Package
.zip
29
Component Assembly
Component
Package
Component
Package
Instance
Creation
Port
Connections
Assembly
Tool
Component
Package
Properties
Assembly
Archive
.aar (ZIP)
Deployment
Tool
...
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
30
Inhalt
Motivation
Übersicht des CORBA Komponentenmodels (CCM)
Konzepte
Abstraktes Model
Container Model
Implementationsmodel
Entwicklung
Packaging Model
Deployment Model
Alternativen im Überblick
Zusammenfassung
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
31
Deployment model (1)
Zuordnung – Definierung von „execution sites“
Eine Applikation kann mehrmals instanziiert werden
ComponentInstallation
AssemblyFactory
Assembly
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
32
Deployment model (2)
Server Activator
Component Server
Container
Instanziierung von Komponenten
Konfiguration von Komponenten
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
33
The Component Deployment Process
«instantiates»
AssemblyFactory
Assembly
ServerActivator
«instantiates»
Deployment Tool
ComponentServer
«instantiates»
Container
«instantiates»
CCMHome
«instantiates»
ComponentInstallation
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
CCMObject
34
Inhalt
Motivation
Übersicht des CORBA Komponentenmodels (CCM)
Konzepte
Abstraktes Model
Container Model
Implementationsmodel
Entwicklung
Packaging Model
Deployment Model
Alternativen im Überblick
Zusammenfassung
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
35
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
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
36
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
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
37
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
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
39
Fragen?
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
41
Vielen Dank!
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij
42