CORBA Component Model (CCM) INF5040 Høst 2005 Erlend Birkedal Jan Erik Johnsen Tore Ottersen Løkkeberg
Denne presentasjonen CORBA Svakheter ved CORBA Object Model Komponenter CORBA Component Model Hva er CCM? CCM i praksis CIDL, CIF, Container
CORBA - Motivasjon Distribuerte applikasjoner blir stadig mer utbredt Åpne standarder og spesifikasjoner Proprietære løsninger: Koster ofte mye penger Vanskeligere å integrere med andre løsninger i større systemer Mer tungvindt å lære en ny løsning for hvert utviklingsprosjekt, enn bare en felles standard
CORBA Object Management Group (OMG) Arbeidet startet i 1989 OMG Common Object Request Broker Architecture (CORBA) ferdig i 1991 CORBA 2.0 i 1996 CORBA 3 i 1999 CCM hører til CORBA 3, ferdig i 2001/02
CORBA Object Model
CORBA Object Model (v2.4) Begrensninger Ingen standardisert måte for å deploye objekter CORBA server-programmering var for vanskelig Utvidelse av objektfunksjonalitet kun mulig ved arv CORBA spesifikasjonen definerer ikke hvilke Object Services som er tilgjengelige ved kjøring Eksplisitt programmering av ikke-funksjonelle egenskaper, for eksempel objektenes livssyklus =>Disse begrensningene i CORBA Object Model kan føre til tett koplede, ad-hoc implementeringer av objekter som er vanskeligere å designe, deploye, gjenbruke, vedlikeholde og utvide.
Komponenter En komponent er først og fremst software som er enkapsulert som en egen enhet som: Kun har eksplisitte kontekst-avhengigheter Har klart definerte interface for bruk Kan settes i bruk uavhengig av andre komponenter Kan gjenbrukes Kan brukes sammen med andre komponenter - komposisjon En komponent kan sees på som en Lego-kloss!
Hva er CCM?
Hva er CCM? En utvidelse av CORBA object model. Språkuavhengig komponentmodell for tjenersiden. Understøtter implementasjon, forvaltning, konfigurering og utplassering av CORBA-applikasjoner.
Hva er CCM? Facets Provided interfaces Recepacles Object connections Event sources/sinks Listeners Attributes Configuration values
Hva er CCM? CCM komponenter er byggeklossene i et CCM system Veldig likt EJB, men CCM... bygger på CORBA object model er ikke bundet til et bestemt programmeringsspråk Siden det er så likt EJB har CCM mappinger som gjør at en CCM komponent kan opptre som en EJB bean i et java miljø og at en EJB bean kan opptre som en CCM komponent. CCM komponenter bor i containere som sørger for 1. Aktivere og deaktivere komponent implementasjonene 2. Videre klient forespørsler 3. Tilby tilpasningslag (adaption layers) for tilbakekall 4. Håndtere POA policies CCM spesifikasjonen er omfattende og kompleks.
CCM i praksis
CCM i praksis CCM utvider CORBA IDL for å støtte komponenter Utvikling av komponenter gjøres ved IDL-definisjoner for å spesifisere de operasjoner en komponent støtter CCM definerer flere interfaces for å støtte strukturen og funksjonaliteten til komponenter Mange av disse kan genereres automatisk CORBA Component Implementation Framework (CIF) Automatiserer komponent implementasjon
CCM i praksis
CCM i praksis Implementasjoner generert av CIDL kalles Executors Autogenerert Hook metoder Tillater utviklere å legge til egenutviklet komponent-spesifikk funksjonalitet Executors pakkes i Assembly Files Assembly Files installeres på en Component Server Windows Linux C++ Java
CCM i praksis CIDL er også ansvarlig for å generere Component Descriptors Beskriver komponentens Interfaces Threading policy Transaction policy Type servicer komponenten trenger
CCM i praksis Komponent implementasjoner Avhenger av standard CORBA Portable Object Adapter (POA) Sender innkommende forespørsler fra klienter til korresponderende servant CCM komponent modell implementasjonen Brukes til å lage og konfigurere POAs hierarki automatisk Brukes til å lokalisere de felles tjenestene som er definert av CCM Komponenter kan kreve å få beskjed via Callback når en spesiell hendelse inntreffer For å støtte denne funksjonaliteten brukes containers
CCM i praksis Hver Container styrer en komponent-implementasjon definert av CIF Hver Container lager sin egen POA for alle sine Interfaces
CCM i praksis Stor skala distribuert system Komponent implementasjoner kjøres på mange servere Implementert i forskjellige programmeringspråk Forskjellige operativsystemer Forskjellige kompilatorer Forenkling av komponent pakking, fordeling og kjøring Open Software Description (OSD) XML Document Type Definition (DTD)
CCM SPØRSMÅL