Zakelijke toepassingen op Internet stuitten tot voor kort nog op een aantal problemen. Simpele gebruikersinterfaces bijvoorbeeld waren niet beschikbaar, een mechanisme voor robuuste transacties ontbrak en de integratie met legacy-systemen was nogal lastig. Tot voor kort, want technologieën als Corba, Java en Activex bieden concrete oplossingen, stelt een medewerker van Cap GEMINI.
In de jaren vijftig hield de Rand Corporation zich bezig met het vraagstuk hoe de Amerikaanse overheid kon blijven communiceren na een nucleaire aanval [1]. De oplossing, bedacht door Paul Baran van Rand, werd in 1964 openbaar gemaakt en voorzag in een netwerk zonder centrale autoriteit. Het netwerk zou moeten bestaan uit autonome knooppunten die volgens een standaard protocol op gelijke voet met elkaar zouden communiceren. Zo ontstond Internet, het wereldwijde netwerk van computernetwerken. Communicatie op Internet geschiedde via het TCP/IP-protocol (transmission control protocol/internet protocol).
De eerste generatie toepassingen die op Internet ontstonden, betrof het opvragen en transporteren van statische informatie. Voor de communicatie tussen de webbrowser en de webserver werd het ‘hypertext transfer protocol’ (http) ontwikkeld. Dit protocol draait bovenop het tcp/ip-protocol. De codering van de statische informatie gebeurde met behulp van de ‘hypertext markup language’ (html).
Het grote voordeel dat het gebruik van deze technologie bood, was dat het mogelijk werd om toepassingen eenmalig te ontwikkelen en deze vervolgens middels automatische distributie op verschillende platformen te laten draaien. Doordat de toepassing zich op de webserver bevond, was een bijkomend voordeel dat het onderhoud van deze toepassing centraal kon plaatsvinden.
Naast de voordelen van platform-onafhankelijkheid, automatische distributie en centraal onderhoud kende het ontwikkelen van eerste generatie Internet-toepassingen ook een aantal nadelen. Zo was het niet mogelijk om dynamische toepassingen te ontwikkelen, die op basis van invoer van een eindgebruiker bepaalde uitvoer genereren. Een voorbeeld van een dynamische Internet-toepassing is de zoekmachine Alta Vista die met behulp van een zoekstring de uitvoer, het resultaat van de zoekstring, genereert. Tevens was interactie met de eindgebruiker niet mogelijk doordat de html-standaard geen elementen bevatte om dit te realiseren. Een ander groot nadeel was het ontbreken van de mogelijkheid om Internet-toepassingen te koppelen aan traditionele omgevingen, zoals een relationele database. Hierdoor was men genoodzaakt om bepaalde gegevens op meerdere plaatsen te bewaren.
Twee ontwikkelingen
Op basis van de hierboven genoemde nadelen vonden er twee ontwikkelingen plaats. Allereerst werd de html-standaard uitgebreid met formulieren (forms). Hierdoor was het mogelijk om eenvoudige interactie met de gebruiker middels invulvelden en knoppen te realiseren. Tevens werd het ‘common gateway interface protocol’ (cgi) ontwikkeld. Met dit protocol waren Internet-toepassingen te koppelen aan een traditionele omgeving (legacy integratie) en waren dynamische Internet-toepassingen te creëren.
Naast de webbrowser, webserver, htpp en html uit de eerste generatie kwamen er nu ook formulieren op de webserver beschikbaar. De communicatie tussen applicaties en de webserver vond plaats middels het cgi-protocol.
Ondanks de grote vooruitgang die deze nieuwe technologieën met zich meebrachten, kleefde er toch ook een aantal problemen aan. Deze problemen stonden het gebruik van Internet voor zakelijke toepassingen in de weg. Zo was het niet mogelijk om met behulp van invulvelden en knoppen geavanceerde gebruikersinterfaces te ontwikkelen. Tevens ontstond het stateless probleem, de toestand van de interactie tussen de webbrowser en de webserver werd niet bewaard. Hierdoor konden niet meer geavanceerde Internet-toepassingen ontwikkeld worden.
Een ander probleem was dat de schaalbaarheid van deze generatie Internet-toepassingen gering was. De prestatie werd negatief beïnvloed bij een toename van het aantal webbrowsers. Dit kwam omdat er elke keer een proces op de webserver opgestart moest worden wanneer een webbrowser informatie uit een traditionele omgeving opvroeg. Verder was het definiëren van robuuste transacties niet of nauwelijks mogelijk en bleef het ontsluiten van legacy-systemen lastig. Kortom, in het gebruik van Internet-technologie voor het beschikbaar stellen van zakelijke toepassingen werd niet of nauwelijks voorzien.
De toekomst van Internet
Doordat de combinatie van Internet met een objectbus en objecten deze problemen oplost, zal Internet in de toekomst door zakelijke toepassingen overspoeld worden. Hierbij vormen de objectbus en objecten de toekomst van Internet.
Een objectbus [1,2,3] biedt de infrastructurele voorziening zodat objecten mogelijk onafhankelijk van hardware, besturingssysteem, programmeertaal en netwerkprotocol met elkaar kunnen communiceren. Een objectbus biedt dus een transparante vorm van communicatie tussen objecten.
De objectbus treedt op als een soort makelaar. Hij redigeert vragen van objecten naar andere objecten en verzorgt de terugkoppeling van het antwoord. De objecten bieden diensten aan elkaar aan.
Naast de al bekende elementen uit de eerste en tweede generatie bestaat de toekomstige (derde) generatie Internet-technologie ook uit een objectbus en objecten.
Het opvragen en versturen van de html-code en objecten van de webserver naar de webbrowser vindt plaats met behulp van het http-protocol. De communicatie tussen objecten onderling echter wordt verzorgd door de objectbus. Ondanks deze onderliggende principes zijn er twee duidelijk verschillende uitwerkingen van een objectbus en objecten waarneembaar. Eén uitwerking wordt gevormd door Netscape: Corba als objectbus en Java-applets als objecten. De andere uitwerking door Microsoft: DCom als objectbus en Activex- componenten als objecten.
Netscape, Java en Corba
Java is een krachtige platform-onafhankelijke objectgeoriënteerde programmeertaal voor derde-generatie toepassingen op Internet. Met deze taal worden objecten gecreëerd, zogenaamde Java-applets. Om platform-onafhankelijkheid te creëren, vindt compilatie van zo’n ‘applet’ in uitvoerbare code in twee stappen plaats.
Allereerst wordt de applet gecompileerd tot platform-onafhankelijke Java-bytecode. Deze code bevindt zich op de webserver. Nadat een webbrowser een verzoek doet voor een Java-applet, verstuurt de webserver de bytecode met behulp van het http-protocol. In de webbrowser wordt vervolgens de bytecode geïnterpreteerd door de zogenoemde Java Virtual Machine. De platform-onafhankelijkheid wordt gecreëerd doordat er diverse implementaties beschikbaar zijn van de Java Virtual Machine.
Om met behulp van hergebruik van Java-applets applicaties te bouwen, het zogeheten ‘component based application development’, is een standaard ontwikkeld: Java-beans. Deze standaard geeft aan hoe herbruikbare componenten in Java gebouwd moeten worden, hoe de eigenschappen van een component aan een ontwikkelomgeving beschikbaar gesteld moeten worden en hoe de communicatie tussen componenten onderling plaatsvindt. Bedrijven als JScape (o.a. Java-beans voor de bouw van gui’s), Corel, Enterprise Soft, Gemstone, IBM (o.a. Cics Gateway), K&A Software, KL Group, Lotus Development, Novell, Proto View Development, Rogue Wave, en Stingray Software hebben aangekondigd Java-beans te ontwikkelen.
De programmeertaal Java is een platform-onafhankelijk objectgeoriënteerde programmeertaal. Echter, doordat Java alleen de communicatie tussen Java-applets onderling ondersteunt, is een infrastructuur die alleen gebaseerd is op Java niet open. Door het gebruik van Corba als objectbus voor de communicatie tussen Java-applets en andere objecten wordt een open infrastructuur gecreëerd.
Object Management Group
Corba staat voor ‘common object request broker architecture’. Deze objectbus-standaard voor middleware is ontwikkeld (en wordt nog steeds verder ontwikkeld) door de Object Management Group (OMG). De OMG is in mei 1989 opgericht door acht bedrijven: 3Com, American Airlines, Canon, Data General, Hewlett-Packard, Philips Telecommunications, Sun Microsystems en Unisys. Sinds oktober 1989 opereert de OMG als onafhankelijke non-profit instelling. Medio 1997 zijn meer dan zeshonderd bedrijven en instellingen uit de softwarebranche lid van de OMG [1].
De Object Request Broker (ORB) is de objectbus van Corba. De ORB verzorgt de communicatie tussen objecten. Objecten kunnen tijdens uitvoer aan de ORB vragen welke diensten beschikbaar zijn en er vervolgens gebruik van maken. De common object services zijn een verzameling van elementaire diensten verpakt als objecten. Ze zijn een uitbreiding op de diensten van een ORB. Er zijn services gedefinieerd voor bijvoorbeeld beveiliging, transacties, ‘concurrency’ en persistentie. De application objects zijn de objecten die de organisatie modelleren en de gebruikers bij hun werkzaamheden ondersteunen. Deze objecten worden ook wel aangeduid met de term business objects. De ‘application objects’ maken gebruik van ‘object-services’. Om de ontwikkeling van toepassingen te vereenvoudigen kent Corba de zogenoemde common facilities. Dit zijn standaard raamwerken (frameworks) van samenwerkende objecten die kant-en-klaar ingezet kunnen worden in specifieke situaties. Er zijn twee soorten ‘common facilities’: horizontale en verticale. De horizontale bieden domein-onafhankelijke ondersteuning, zoals bijvoorbeeld werkstroombesturing. De verticale common facilities bevatten objecten voor de ondersteuning van specifieke bedrijfstakken, bijvoorbeeld de sociale zekerheid.
Tegenwoordig zijn er verschillende commerciële Corba-implementaties beschikbaar, zoals: Orbix van Iona Technologies Ltd, Object Broker van Digital, Powerbroker van Expertsoft, ORB Plus van HP, Neo van Sun, Smalltalk Broker V. van DNS, Visibroker van Visigenic Software Inc en CBConnector van IBM (officiële releasedatum: oktober ’97).
Met behulp van de Netscape Navigator als webbrowser en de Netscape Suitespot-server als webserver is het mogelijk om derde generatie Internet-toepassingen met behulp van Java en Corba te realiseren. Zowel de webbrowser als de webserver van Netscape bevatten naast een Java Virtual Machine om Java-applets te kunnen draaien ook een Corba-implementatie voor de communicatie tussen Java-applets onderling en met andere objecten. De Corba-implementatie in zowel de webbrowser als webserver van Netscape wordt gevormd door de Visibroker van het bedrijf Visigenic.
Microsoft, Activex en DCom
Met behulp van Activex is het mogelijk om bestaande componenten geschreven in verschillende programmeertalen te combineren door inkapseling. Zo is het mogelijk om Java-applets hierin in te kapselen. In tegenstelling tot applets of beans van Java worden Activex-componenten niet geïnterpreteerd maar gecompileerd. Door deze compilatie wordt een snelheidsvoordeel ten opzichte van Java verkregen, echter ten kostte van de platform-onafhankelijkheid. Deze componenten draaien uitsluitend onder Windows 95 en Windows NT.
Ook is het mogelijk om met deze componenten ‘component based application development’ te plegen. Bedrijven als Network Imaging Corporation (o.a. gateway voor diverse databases), Wall Data (o.a. gateway naar AS/400), Chart FX (o.a. componenten om grafieken te maken), National Instruments, English Wizard (o.a. vertaling van semi-engels naar SQL), Videosoft, The Digital Foundry en natuurlijk Microsoft zelf leveren standaard Activex-componenten.
DCom (distributed component objectmodel) is een objectbus die de communicatie verzorgt tussen gedistribueerde objecten. DCom is gebaseerd op Com, een standaard die de communicatie verzorgt tussen objecten op één machine. Een object kan tijdens de uitvoering informatie verkrijgen over de interfaces van andere gedistribueerde objecten en vervolgens van deze objecten gebruik maken. DCom kent een aantal simpele voorzieningen, maar complexere zoals transacties worden niet geleverd. Tevens kunnen Windows-diensten als bestandsbeheer en geheugenallocatie worden aangeroepen. Ook hier komt het platform-afhankelijke karakter van de Microsoft-uitwerking naar boven. Een Windows-dienst als bestandsbeheer is namelijk niet beschikbaar op bijvoorbeeld een Apple Macintosh.
Met behulp van Windows 95 en Windows NT is het mogelijk om derde-generatie Internet-toepassingen te realiseren. Microsoft levert hiervoor twee producten voor de Windows 95-kant: DCom voor Windows 95 en Internet Explorer als webbrowser. Aan de Windows NT-kant levert Microsoft de Internet Information Server als de webserver en de Transaction Server om transacties over Activex-componenten heen te definiëren. DCom voor de server-kant zit tegenwoordig standaard in Windows NT.
Legacy-integratie
In de uitwerking van zowel Netscape als Microsoft zijn door het gebruik van standaard-componenten legacy-applicaties te ontsluiten. In die van Netscape kan zo’n standaard-component een Java-applet of Java-bean zijn, of een in elke andere taal geschreven component die met behulp van de Corba ORB aanspreekbaar is. Op deze manier kan een Java-applet via de objectbus communiceren met een legacy-applicatie: bijvoorbeeld een Java-applet middels JDBC met een DB2-database op een AS/400.
In de uitwerking van Microsoft is het mogelijk dat standaard Activex-componenten communiceren met legacy-applicaties middels cgi, ODBC of de SNA Server van Microsoft. Op deze manier kan een Activex-component communiceren met een Oracle-database middels Odbc of met een MVS Mainframe-applicatie middels de SNA Server.
Een andere ontwikkeling van Microsoft (uitgevoerd door het bedrijf Software AG) is de DCom-implementatie voor MVS. Met deze implementatie is het theoretisch mogelijk dat Activex-componenten op Windows NT communiceren met Activex-componenten op een MVS Mainframe.
Vergelijking Netscape/Microsoft
Als de uitwerkingen van Netscape en Microsoft vergeleken worden, dan is in het algemeen te stellen dat Netscape een ‘open en platform-onafhankelijke’ Internet-infrastructuur biedt, gebaseerd op Corba en objecten geschreven in Java, Java-beans en alle andere voor Corba geïmplementeerde implementatietalen. Microsoft daarentegen biedt een ‘gesloten en platform-afhankelijke’ Internet-infrastructuur, gebaseerd op DCom en Activex-componenten.
Bij de keuze voor het volgen van één van de gepresenteerde uitwerkingen is dan ook de bestaande infrastructuur binnen de eigen organisatie van doorslaggevend belang. Grofweg kan gekozen worden voor de oplossing van Microsoft indien de basis van de eigen infrastructuur gevormd wordt door Windows 95 en Windows NT, en er weinig legacy-integratie nodig is. Indien er een diverse infrastructuur aanwezig is en legacy-integratie van groot belang is, ligt de keuze voor de open en platform-onafhankelijk uitwerking van de Netscape voor de hand.
Als we kijken naar het aantal beschikbare componenten valt op dat Microsoft hier voorop loopt, daar de Activex-standaard na een aantal jaren volwassen genoemd mag worden. Het principe van Java-beans daarentegen is een recent ontwikkelde standaard. Doordat Activex voor loopt op Java-beans zijn er op dit moment meer Activex-componenten verkrijgbaar dan Java-beans. De voorsprong van Microsoft in het aantal beschikbare Activex-componenten is echter van minder groot belang, omdat het slechts een kwestie van tijd is tot dit gat door de standaard Java-beans overbrugd is.
Voordelen nieuwe generatie
Het beschikbaar stellen van toepassingen met behulp van derde-generatie Internet-technologie biedt een aantal bijkomende voordelen naast die van de eerste twee generaties: platform-onafhankelijkheid, automatische distributie, centraal onderhoud en integratie met een traditionele omgeving. Doordat objecten zowel op webbrowser als op de webserver uitgevoerd kunnen worden is het mogelijk om geavanceerde interactie met eindgebruikers aan te kunnen, dynamische Internet-toepassingen te creëren en integratie met een traditionele omgeving te realiseren. Omdat een objectbus transparante communicatie verzorgt, gaat het tot de mogelijkheden behoren om objecten te dupliceren over meerdere webservers.
Hierdoor is met ‘load balancing’ een goede prestatie te realiseren. De schaalbaarheid van de toepassing neemt toe. Tevens kent het gebruik van een objectbus geen ‘stateless’ probleem doordat de toestand van de communicatie tussen objecten onderling behouden blijft in Corba en DCom. Ook het definiëren van transacties over objecten heen is mogelijk, doordat Corba standaard ’transaction services’ en Microsoft de Transaction Server levert. Kortom, door gebruik te maken van state-of-the-art Internet-technologie komen zakelijke toepassingen via Internet beschikbaar.
Drs P.J. Koning,
Technology Consulting Group
Cap Gemini Nederland bv
Literatuur
[1] G.M.A. van der Harst: Gedistribueerde Objecten: Corba, OLE en OpenDoc. Personal Computer Gids, 1996.
[2] R. Orfali, D. Harkey en J. Edwards: The Essential Client/Server Survival Guide – Second Edition. John Wiley & Sons, 1996.
[3] R. Orfali, D. Harkey en J. Edwards: The Essential Distributed Objects Survival Guide – Second Edition. John Wiley & Sons, 1996.