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