universität bonn, seminar softwaretechnologie ws 2003, aleksej palij 1 seminar "component and...
TRANSCRIPT
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 1
Seminar "Component and Aspect Engineering" WS2003
CORBA Component Model
Aleksej Palij, [email protected]
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
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)
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
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
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)
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
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
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
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 10
CORBAComponent
CORBAComponent
CORBAComponent
CORBAComponent
CORBAComponent
CORBAComponentCORBA
ComponentCORBAComponent
Komposition
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
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
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”)
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
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
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
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
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
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
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
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
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
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
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
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>;
};};
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
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:
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)
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
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 30
Component Assembly
PropertiesDeploymen
tTool
AssemblyArchive
.aar (ZIP)
Assembly Tool
ComponentPackage
ComponentPackage
ComponentPackage
PortConnections
InstanceCreation
...
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
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
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 33
Deployment model (2)
Server Activator
Component Server
Container
Instanziierung von Komponenten
Konfiguration von Komponenten
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»
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
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
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
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
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 41
Fragen?
Universität Bonn, Seminar Softwaretechnologie WS 2003, Aleksej Palij 42
Vielen Dank!