1 / 40

Inhalt

Seminar "Component and Aspect Engineering" WS2003 CORBA Component Model Aleksej Palij, palij@informatik.uni-bonn.de. Inhalt. Motivation Übersicht des CORBA Komponentenmodels (CCM) Konzepte Abstraktes Model Container Model Implementationsmodel Entwicklung Packaging Model

chipo
Download Presentation

Inhalt

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Seminar "Component and Aspect Engineering" WS2003 CORBA Component ModelAleksej Palij, palij@informatik.uni-bonn.de

  2. Inhalt • Motivation • Übersicht des CORBA Komponentenmodels (CCM) • Konzepte • Abstraktes Model • Container Model • Implementationsmodel • Entwicklung • Packaging Model • Deployment Model • Alternativen im Überblick • Zusammenfassung

  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)

  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

  5. Inhalt • Motivation • Übersicht des CORBA Komponentenmodels (CCM) • Konzepte • Abstraktes Model • Container Model • Implementationsmodel • Entwicklung • Packaging Model • Deployment Model • Alternativen im Überblick • Zusammenfassung

  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)

  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

  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

  9. Eine CORBA-Komponente Component reference type CORBA Component OFFERED facets REQUIRED receptacles event sinks event sources attributes

  10. Komposition CORBA Component CORBA Component CORBA Component CORBA Component CORBA Component CORBA Component CORBA Component CORBA Component

  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

  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

  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”)

  14. Events mit „push“-Mechanismus Notification channel • “named connection points” • Event sources • Publishers (“multicast”) • Emitters (“unicast”) • Event sinks • Akzeptieren events vom bestimmten Typ • Unterscheiden nicht zw. Verbindungen(emits) und Subscriptions(publishes) emits sink source publishes sink sink sink

  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

  16. Home CORBA Component Home Finder 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

  17. PhilosopherHome Philosopher left right info 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); }; Name= X

  18. Inhalt • Motivation • Übersicht des CORBA Komponentenmodels (CCM) • Konzepte • Abstraktes Model • Container Model • Implementationsmodel • Entwicklung • Packaging Model • Deployment Model • Alternativen im Überblick • Zusammenfassung

  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

  20. C l i e n t Callback API Container Container Architecture Home Extended OMG IDL external API CORBA Component Internal API POA ORB Transaction Security Persistency Notification

  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

  22. CORBA usage model Container Type ComponentCategory EJB type stateless Session Service - conversational Session Session Session durable Entity Process - durable Entity Entity Entity Komponententypen

  23. Inhalt • Motivation • Übersicht des CORBA Komponentenmodels (CCM) • Konzepte • Abstraktes Model • Container Model • Implementationsmodel • Entwicklung • Packaging Model • Deployment Model • Alternativen im Überblick • Zusammenfassung

  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

  25. Component executor Component Skeleton Generierung composition <category> <composition_name>{ home executor <home_executor_name> { implements <home_type> ; manages <executor_name>; }; }; IDL 3 CIDL Functional Java / CIF Compiler Functional Non functional IDL 2 XML User written Generated

  26. Inhalt • Motivation • Übersicht des CORBA Komponentenmodels (CCM) • Konzepte • Abstraktes Model • Container Model • Implementationsmodel • Entwicklung • Packaging Model • Deployment Model • Alternativen im Überblick • Zusammenfassung

  27. Main Elements of Software Package Descriptor: <softpkg> <pkgtype> <title> <author> <description> <licence> <idl> <propertyfile> <implementation> </softpkg> Packaging model • Pakete (ZIP) enthalten: • XML-Descriptor • Andere (Pakete, Libraries) • Softwarepaket • Komponentenpaket • Komponenten-Assembly-Paket

  28. XML Descriptors Überblick • Software Package Descriptor (.csd) • CORBA Component Descriptor (.ccd) • Component Assembly Descriptor (.cad) • Component Property File Descriptor (.cpf)

  29. Component Packaging IDL User Code Compiler Generated Code Shared Library or Executable IDL/CIDL Compiler Component Descriptor Component Package .zip Packaging Tool Default Properties

  30. Component Assembly Instance Creation Port Connections Component Package Component Package Assembly Archive .aar (ZIP) Assembly Tool Component Package Properties DeploymentTool ...

  31. Inhalt • Motivation • Übersicht des CORBA Komponentenmodels (CCM) • Konzepte • Abstraktes Model • Container Model • Implementationsmodel • Entwicklung • Packaging Model • Deployment Model • Alternativen im Überblick • Zusammenfassung

  32. Deployment model (1) • Zuordnung – Definierung von „execution sites“ • Eine Applikation kann mehrmals instanziiert werden • ComponentInstallation • AssemblyFactory • Assembly

  33. Deployment model (2) • Server Activator • Component Server • Container • Instanziierung von Komponenten • Konfiguration von Komponenten

  34. The Component Deployment Process «instantiates» AssemblyFactory Assembly ServerActivator «instantiates» Deployment Tool ComponentServer «instantiates» Container «instantiates» CCMHome «instantiates» ComponentInstallation CCMObject

  35. Inhalt • Motivation • Übersicht des CORBA Komponentenmodels (CCM) • Konzepte • Abstraktes Model • Container Model • Implementationsmodel • Entwicklung • Packaging Model • Deployment Model • Alternativen im Überblick • Zusammenfassung

  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

  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

  38. 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

  39. Fragen?

  40. Vielen Dank!

More Related