Mæglerne
Selv små softwarevirksomheder skal idag forholde sig til en global Internet-verden, hvor deres program skal arbejde sammen med tusinde andre programmer. Systemudviklere og programmører skal forholde sig til, hvordan deres produkt indgår i netopkoblede og integrerede computersystemer. Her præsenterer vi dig for den ambitiøse platform for integration af softwarekomponenter, der kan genbruges på tværs af systemer. Lad os starte med at nævne 4 valgmuligheder.
Fire strategier for integreret systemudvikling
Når vi har hundrede programmører i en eller flere virksomheder, der hver har skrevet et antal softwarekomponenter, får vi spørgsmålet, hvordan disse moduler samles til en helhed? Spørgsmålet gælder den tekniske integration og produktion af det samlede system. Men det er også spørgsmålet, hvordan vi sikrer, at programmørerne arbejder efter samme retningslinier, så det er muligt at samle deres arbejde til en helhed.
Dette spørgsmål om platformen for softwareudvikling er blandt de vigtigste teknologiske diskussioner i softwarebranchen. Microsoft bruger sine egne platforme, der hedder COM: Common Object Model og DCOM: Distributed Component Object Model. Disse modeller udvikler Microsoft videre i deres .Net-strategi til for eksempel COM+.
Et alternativ til Microsofts model er CORBA. CORBA står for Common Object Request Broker Architecture. Det er altså en arkitektur for "mæglere", programmer som leder forhandlingerne mellem programobjekterne, så disse kan fungere som en helhed.
Det tredje alternativ er Java Remote Method Invocation (RMI). Som navnet siger hører den til Java-platformen.
Et sidste alternativ til såvel CORBA som de andre er den simple: Du gør det ikke. Det er realistisk ved små projekter med få og små softwarekomponenterne. Her kan du istedet lade dem kommunikere med hinanden som klienter og servere. Hvor de sender meddelelser og services til hinanden via en af standardprotokollerne som for eksempel HTTP. Men der er ikke nogen integration af programobjekter på tværs af platforme i dette tilfælde.
Vi fortsætter her med at beskrive ideen i CORBA. I en senere artikel kommer vi ind på de andre muligheder DCOM og RMI.
Samling af softwarekomponenter
Vi kan symbolisere softwarekomponenter med Lego-klodser, hvor CORBA's ORB lig med den byggeplade, som holder det hele sammen.
Udbredelsen af objektorienteret programmering gav anledning til, at alle programmer blev opdelt i objekter og klasser. Det giver afgrænsede og veldefinerede moduler. Men det giver også udfordringer til, hvordan man bygger disse softwarekomponenter sammen til store programmer.
Succes?
CORBA's udbredelse
CORBA bliver udviklet af konsortiet Object Management Group (OMG), hvor 700 virksomheder er medlemmer. De udformer specifikationerne, som CORBA består af. Flere virksomheder har lavet produkter efter disse specifikationer, hvor man blandt andet kan købe flere ORB's. Produkter i CORBA sammenhænge varierer fra gratis programmer på Internet til meget dyre professionelle produkter.
I forhold til CORBA's 10-årige levetid er det stadig beskedent med kommerciel succes som produkt. Flere af OMG's CORBA-specifikationer er optaget som industristandarder hos International Organization for Standards, ISO samt IEEE. Mens det på markedspladsen er RMI og DCOM, der kæmper om magten over programmørerne. CORBA kan derfor spille en stærk teoretisk rolle i uddannelser, mens det kommercielle marked domineres af Microsoft og andre aktører med deres kommercielle produktstandarder.
OMG har naturligvis meget materiale om CORBA på deres web-sider: http://www.omg.org/. Desuden findes der en specifik web-side for CORBA med oplysninger om standarder, og hvem der bruger den hvor: http://www.corba.org/.
På den sidstnævnte web-side finder man en liste over virksomheder og produkter, som understøtter CORBA, heriblandt flere ORB-produkter: http://www.corba.org/vc.htm.
Hvad kan CORBA?
Hvad kan CORBA?
CORBA gør det muligt at skrive distribuerede objektorienterede applikationer på tværs af platforme og på tværs af programmeringssprog. Det vil sige, at du i et program, der er skrevet i C og som kører på Windows, direkte kan bruge objekter, som er skrevet i Java og befinder sig på en anden maskine med UNIX.
CORBA er en standard klient/server specifikation, der siger hvordan man udformer programmer, så de kan bruge hinanden på tværs af maskiner, styresystemer og programmeringssprog. CORBA-standarden bliver realiseret med en såkaldt ORB, Object Request Broker. Det er ORB-programmet, som i praksis styrer sammenkobling og kommunikation mellem softwarekomponenterne.
Sprogneutral IDL
CORBA bruger et sprog kaldt Interface Definition Language (IDL) til at definere grænsefladen med softwarekomponenterne. Det CORBA's eget universelle sprog for at beskrive softwarekomponenter, der kan være skrevet i et andet programmeringssprog. Dette er udgangspunktet for, at CORBA understøtter vilkårlige programmeringssprog, hvor programmer i vidt forskellige programmeringssprog kan kombineres i samme system.
Specifikationen af IDL ligger tæt på Java, så der findes et konverteringsprogram, der kan oversætte Java programmer direkte til CORBA objekter. Det giver en genvej for Java-programmører til at lave IDL, uden først at skulle lære det.
CORBA tilbyder transparente objekter. Det betyder, at navne på programobjekterne, deres placering samt deres funktioner bliver kendt i hele udviklingsmiljøet. Ideen kan sammenlignes med det, du oplever med delte diske på et netværk: Du kan se diske på andre maskiner, og hvis du har tilladelse til det, kan du hente og bruge datafiler direkte på disse maskiner. Her går vi dog videre end at genbruge passive data, idet det er funktionelle objekter, der deles over CORBA.
Når et objekt skal samarbejde med tre andre objekter, der ligger på andre maskiner og er produceret af andre programmører, så oplyser ORB'en os om deres navn, og deres specifikationer. Vi får at vide hvilke funktioner de har, hvilke parametre der bruges osv. Dermed kan vi direkt anvende objekter, som er skrevet af andre programmører.