CORBA

Fælles Objekt Request Broker Architecture defineres af Object Management Group standard, der gør det muligt for forskellige softwarekomponenter skrevet i flere programmeringssprog og kører på forskellige computere til at arbejde sammen; dvs den fremmer udviklingen af ​​distribuerede applikationer i heterogene miljøer.

Introduktion

CORBA blev først foreslået af OMG produkt. Målet er at hjælpe med at reducere kompleksiteten, reducere omkostningerne og fremskynde indførelsen af ​​nye applikationer, fremme teori og praksis af objekt teknologi i distribuerede systemer.

Det er en teknologi, der skjuler lavt niveau programmering af distribuerede applikationer. Men det giver også mulighed for programmøren at objektorienteret teknologi; funktioner og dataobjekter er grupperet, og disse objekter kan være på forskellige maskiner, men programmøren vil få adgang til dem gennem normale funktioner inden for dit program.

CORBA er en platform specifikation definerer også almindeligt nødvendige tjenester såsom sikkerhed og transaktioner. Og så dette er ikke et operativsystem selv, det er virkelig en middleware.

Historie

Dens første version blev lanceret i 1991.

I 1995 CORBA 2 vises, med nye regler, der gør det muligt: ​​de kan samarbejde implementeringer fra forskellige leverandører, som kan gennemføres over enhver transport lag, der kan operere på internettet via TCP / IP, hvilket skaber en protokol: IIOP.

CORBA 3 er vist i 2002 som et forsøg på at stå op til Microsoft og dets programmering model distribuerede DCOM objekter. Blandt andet han indførte CORBA Component Model, hvormed han gik fra et distribueret model til et distribueret komponent objektorienteret model.

Egenskaber

Blandt de vigtigste elementer i CORBA finder vi:

  • Uafhængighed i programmeringssproget og operativsystem: CORBA er designet til frie ingeniører begrænsninger i design af software. Understøtter i øjeblikket Ada, C, C ++, C ++ 11, Lisp, Ruby, Smalltalk, Java, COBOL, PL / I og Python.
  • Mulighed for samspil mellem forskellige teknologier: en af ​​de vigtigste fordele ved at bruge CORBA er muligheden for at standardisere grænsefladerne mellem de forskellige teknologier for at kombinere dem.
  • Gennemsigtighed i distributionen, hverken kunden eller server har brug for at vide, hvis ansøgningen distribueret eller centraliseret, fordi systemet tager sig af alt dette.
  • Beliggenhed gennemsigtighed: klienten behøver ikke at vide, hvor du kører tjenesten og tjenesten behøver ikke at vide, hvor du kører klienten.
  • Integration af eksisterende software: forrige investering betaler genbruge software med, som du arbejder, selv med ældre systemer.
  • Objekt aktivering: fjerntliggende objekter behøver ikke at være i permanent hukommelse, og er usynlig for kunden så.
  • Andre, såsom den stærke data skrive, høj konfigurerbarhed, valgfrihed detaljerne i dataoverførsel, eller datakomprimering.

Elementer

CORBA arkitektur er objektorienteret. CORBA objekter besidder mange af de samme karakteristika som andre objektorienterede systemer, såsom arve- og polymorfi grænseflader. Men det mest interessante aspekt af dette er muligheden for at levere disse funktioner ikke objekt-orienterede sprog som C eller COBOL, CORBA arbejder endnu mere effektivt med objekt-orienterede sprog som Java eller C ++.

Objekt Request Broker

Object Request Broker, er et centralt element i CORBA arkitektur og dens mission er at lette kommunikationen mellem objekter. Derefter sender anmodninger til objekter og returnere svar på klienter, der påberåber serialisering processen.

Den ORB vigtigste funktion gennemsigtighed. Det letter kommunikationen mellem klient og server gemmer sig:

  • Placeringen af ​​objektet: Klienten behøver ikke at vide, hvor målet objektet er placeret, kan være på din egen maskine eller en proces på en ekstern maskine.
  • Gennemførelsen af ​​objekter: Client ignorerer programmeringssprog, som du har skrevet den fjerne objekt, dens gennemførelse eller det operativsystem, som det er placeret.
  • Kørsel tilstand af objektet: Når du sender en anmodning på en fjern genstand, det ORB er ansvarlig for initialisering objektet hvis det er nødvendigt, før du sender anmodningen.
  • Kommunikation mekanismer poster: Klienten ikke ved, hvad kommunikation mekanismer bruges af ORB at sende anmodninger og returnere resultatet.

Grænseflade Definition Language

Interface Definition Language eller IDL er et sprog, der bruges til at definere grænsefladerne mellem komponenter i et program, og er det element, der understøtter interoperabilitet teknologi. Den IDL kan kun definere grænseflader, ikke implementeringer. Ved at angive grænsefladerne mellem objekter i CORBA IDL er ansvarlig for at sikre uafhængighed programmeringssprog anvendes.

For at dette skal være muligt, er det nødvendigt at sikre, at data er korrekt udveksles mellem to forskellige sprog, for hvilket IDL definerede datatyper på et sprog-uafhængig måde med den nødvendige korrespondance. For eksempel kan en lang type C ++ 32 bit svarer til en Java int. OMG det har defineret mange korrespondancer med populære programmeringssprog som C, C ++, COBOL, Java, Smalltalk eller Ada.

Hovedsageligt har vi to forskellige typer af CORBA IDL:

  • Stub IDL interface er statiske tjenester anmeldt i IDL grænseflader for kunden synes alle lokale opkald. Det vil fungere som en proxy for fjernbetjeningen objekt, hvilket gør remote metode påkaldelse, herunder serialisering, modtager reaktioner og deserialization. Kunden kan have så mange stumper og der findes IDL grænseflader. Det er genereret fra IDL programmeringssprog til klient IDL compiler.
  • IDL Skeleton: den statiske kunde repræsentant på serveren. For serveren vises alle opkald lokal. Det er genereret fra IDL for IDL compiler og udfører serialisering af kald af klienten.

Objekter ved henvisning

Henvisningen objekt opnås gennem en Uniform Resource Identifier felt i snor, en søgning NameServer) eller bestået som argument under et metodekald format.

Objekterne refererede er langt lettere objekter, der implementerer grænsefladen af ​​virkelige objekt, enten ekstern eller lokal. Opkald til referencemetoder består af en række opkald til ORB som er ansvarlig for at blokere trådene og vente på et svar, enten succes eller fiasko. De parametre, feedback og undtagelser er føljeton af ORB internt programmeringssprog og operativsystem.

Dataværdi

Den IDL indeholder en definition sprog kommunikation mellem objekter eller operativsystemer. CORBA objekter er gået som reference, mens dataene forbi værdi. Denne kombination giver os mulighed for at supplere stærkt skrevet på indsamle data klienter og servere, og stadig bevare den fleksibilitet, der gør os i stand til CORBA.

Objekter ved værdi

Ud til fjerntliggende objekter, RMI-IIOP og CORBA definerer begrebet objekter ved værdi eller OBV og valuetypes. Kode ValueType metoder objekter udføres lokalt som standard. Hvis OBV er modtaget af den fjerne side, skal den nødvendige kode være kendt på forhånd af begge parter eller dynamisk hentet af udstederen. For at gøre dette muligt, registrering, som defineret i OBV, indeholder koden base, der indeholder en liste, opdelt i forskellige maskiner, URL, hvor denne kode skal downloades. Udover OBV kan have fjerntliggende metoder.

De obvs kan have felter, der overføres, når obvs overføres. Disse felter kan være obvs sig selv, danner lister, træer eller vilkårlige grafik. De obvs har en klasse hierarki, herunder multipel arv og abstrakte klasser.

CORBA Component Model

CCM CORBA Component Model eller føjes til familien af ​​CORBA definitioner. Det blev indført i CORBA version 3, og beskriver en ramme for CORBA komponenter. Selvom det ikke er afhængige af sprogafhængige Enterprise Java Beans er et mere generelt form deraf, hvilket giver fire forskellige komponenter i stedet for de to, der definerer EJB. Det giver også indvinding af enheder, der kan give og acceptere tjenester gennem en egen veldefinerede grænseflader kaldet porte.

CCM har en komponent beholder, hvor softwarekomponenter kan deponeres. Beholderen indeholder en række tjenester, at komponenter kan bruge. Disse tjenester omfatter anmeldelse, godkendelse, vedholdenhed og behandling af transaktioner. Er bedst brugt nogen distribueret system har brug for ydelser og flytter gennemførelsen af ​​disse tjenester softwarekomponenter til container komponenter, er kompleksiteten af ​​komponenterne drastisk reduceret.

Bærbare tilløbsbassiner

Bærbare tilløbsbassiner er kroge, der bruges af CORBA og RMI-IIOP at levere en af ​​de vigtigste funktioner i CORBA, som definerer følgende typer tilløbsbassiner:

  • Interceptorer Fjernbetjening objektreference tillade skabelsen af ​​nye referencer fjerntliggende objekter i den aktuelle server.
  • Kunder interceptorer giver fjernbetjening metode aktiveringen fra klientsiden. Hvis objektet tjenesten findes på den samme server, hvor metoden kaldes, også tillade lokalopkald.
  • Serveren tilløbsbassiner giver behandlingen af ​​fjerntliggende metodekald på serveren side.

Interceptorer kan omfatte specifikke oplysninger beskeder, der skal sendes, og IORs der skal oprettes. Denne information kan læses senere af den tilsvarende interceptor på fjernbetjeningen side. Interceptorer igen kan kaste undtagelser videresende, omdirigere anmodningen til et andet mål.

Generelt InterOrb Protokol

Den GIOP er en abstrakt protokol, som Orbs kommunikere. Standarder, der er forbundet med protokollen er vedligeholdt af OMG. GIOP arkitektur giver en række protokoller blandt hvilke er:

  • InterOrb Internet Protocol: implementering af GIOP til brug på internettet, der giver en grænseflade mellem GIOP beskeder og TCP / IP-lag.
  • InterOrb SSL-protokollen: SSL IIOP protokol, der giver kryptering og godkendelse.
  • InterOrb HyperText Protokol: IIOP protokol der giver remote gennemsigtighed.
  • Lynlås IOP: en komprimeret version af GIOP der reducerer brugen af ​​båndbredde.

CORBA steder

CORBA steder henvise til en CORBA refereres objekt har en lignende struktur i en URL.

Alle CORBA produkter skal være forsynet to definerede webadresser: corbaloc og corbaname. Formålet med begge er at tilvejebringe en form, som kan læses og redigeres af mennesker for at angive det sted, hvor IOR kan opnås. Et eksempel på corbaloc kan se nedenfor:

CORBA produkt kan eventuelt understøtte brugen af ​​FTP og filformater. Formålet med disse er at give oplysninger om, hvordan du henter IOR felterne.

Sådan virker det

Alle komponenter er CORBA objekter, der hver har en grænseflade og en unik identitet, idet hver af objekterne kan implementeres i et andet programmeringssprog og køre på ethvert operativsystem.

Serveren opretter fjerntliggende objekter, gør henvisningerne til disse fjerntliggende tilgængelige genstande og venter på kunder til at påberåbe sig disse objekter eller deres metoder. Derudover kunden får en henvisning til en eller flere fjerne objekter på serveren og påberåber sig sine metoder.

Sådan udføres påberåbelse af klienten bruger stub, et kommunikationsinterface til serveren genereret fra IDL hjælp dynamisk påkaldelse at få adgang til server objekter formår at slå undtagelser kastet af dit opkald.

Det har brug for en henvisning til den eksterne genstand eller IOR, objekttypen og navn af operationen selv, du ønsker at påberåbe sig. Beskriver de IDL-grænseflader, en ORB automatisk genererer kode i den valgte for integration af distribuerede applikationer sprog. Det er klart, eftersom kun beskriver interfaces, alle komplekse opgaver relateret til programmeringssprog, såsom flow kontrol, hukommelse ledelse, funktionel sammensætning, vises ikke i IDL.

Den ORB, fra anmodningen er gennemførelsen kode og transmitterer de relevante parametre, der styrer gennemførelsen af ​​grænsefladen gennem skelettet IDL og rapportere undtagelser i processen.

For at modtage anmodningen, modtager påberåbelse af en af ​​dens metoder som opkald fra ORB til gennemførelsen af ​​grænsefladen, kan opkaldet kommer fra en kunde, der har brugt IDL stubbe; Skeletter er specifikke for hvert interface og adapter-interface objekter, der eksisterer i forbindelse med gennemførelsen af ​​CORBA. Når afsluttet påkaldelse og kontrol afkast værdier returneres til klienten.

Du kan bruge de tjenester, som adapteren objekter og endda giver ORB, mens den behandlet anmodningen er modtaget klienten til det tilfælde kan du vælge adapter objekter fra et sæt af dem til at træffe den beslutning er baseret på den slags tjenester, du kan kræve at implementere interfacet.

Problemer og kritik

Selvom CORBA lovede meget i forhold til, hvordan man kode og bygge software, har det været genstand for megen kritik.

Nogle af problemerne skyldes gennemførelsen og den proces, hvorved CORBA er designet som en standard, og de problemer, der opstod i forhold til erhvervspolitikken at gennemføre en standardiseret software. Disse resulterede i en afvisning af brugen og vedtagelse af CORBA i nye projekter og områder.

Gennemførelse og uforenelighed

Den oprindelige specifikation af CORBA IDL kun defineret, og ikke interoperabilitet mellem de sprog. Det betyder, at kildekoden kompatibilitet var ikke bedre end det, der var tilgængelige på det tidspunkt. CORBA 2 og senere blev dette problem løst.

Gennemsigtighed på placering

Begrebet CORBA i form af gennemsigtighed har været genstand for kritik, og det er fordi de objekter, der er bosat i samme adresserum og er tilgængelige med en simpel opfordring til en funktion er behandlet som objekter, der bor overalt det distribuerede system. Dette gør lokal adgang ville være så kompliceret som det mest komplekse fjernbetjening scenario. Selvom CORBA kan sige, at ingen begrænsninger på kompleksiteten af ​​opkaldene.

Og mangler i designprocessen

Oprettelsen af ​​CORBA standarden er ofte citeret for sit design proces ved udvalget. Der var ingen voldgift mellem modstridende forslag eller beslutninger truffet af hierarkiet af problemer at løse. Således blev standarden sat under hensyntagen til alle forslag, uanset sammenhængen mellem dem. Dette gjorde specifikationen var meget komplekse, dyre at implementere og ofte tvetydige.

Problemer med implementeringer

Gennem hele sin historie har CORBA været påvirket af svagheder i deres implementeringer. Der har været nogle implementeringer har medtaget alle kritiske elementer i varespecifikationen, og eksisterende implementeringer var ufuldstændige eller utilstrækkelige. I mangel af krav, når den foreslår nye funktioner, herunder ejendomme, som medlemmer aldrig var blevet testet for usability eller gennemførelse. Til gengæld implementeringer blev hæmmet af den generelle tendens til detaljer de regler og almindelig praksis at forpligte sig til at vedtage dem alle, som normalt genereret inkonsekvent og vanskelige at bruge API'er. I øjeblikket dette punkt har ændret sig betydeligt bedre og CORBA implementeringer kan finde bedre kvalitet.

Firewall

CORBA bruger TCP / IP-forbindelser råolie for at overføre data. Men hvis kunden er bag en meget restriktiv firewall eller proxyserver transparent miljø, der kun tillader udgående forbindelser på port 80, kan kommunikation blive umuligt, medmindre proxyserver pågældende tillader metoden CONNECT tilslutninger eller stikkontakter. Der var et øjeblik, hvor det var vanskeligt at tvinge implementeringer at anvende en enkelt standard port, i stedet for dette måtte vælge flere tilfældige porte. I dag er de nuværende Orbs ikke disse mangler. På grund af disse vanskeligheder, har nogle brugere foretrak brug af web services i stedet for CORBA. Disse kommunikerer ved hjælp af XML / SOAP via port 80, der normalt er åben eller filtreres gennem en proxy i organisationen, for web browsing gennem de seneste CORBA implementeringer, men de støtter SSL og kan nemt konfigureret til at arbejde på en enkelt port. Mest populære kugler er TAO og JacORB som open source, også de støtter tovejs GIOP, CORBA, som giver den fordel at kunne bruge kommunikation tilbagekald stedet fokusere funktion implementeringer undersøgelsens tjenester web. Til gengæld stadig firewall støtte markedsført CORBA glat.

Forrige artikel Calorie
Næste artikel Charles Willard Moore