IBM maakt zich sterk voor de ontwikkeling van Java. Waarom begeeft een bedrijf dat het steeds beter doet in de grote computermarkt zich op het gebied van wat sommigen speelgoed-PC’s noemen? Wat is de betekenis van Java voor ontwikkelaars, bedrijven en eindgebruikers? De nieuwe directeur software van IBM Nederland, Milko N. van Duijl, gaat in een interview op deze vragen in.
IBM heeft al heel lang de naam vooral hardwareleverancier te zijn, een leverancier die niet veel succes heeft gehad met software. Hoe belangrijk is software voor IBM? Van Duijl: "Zeer belangrijk, niet in het minst omdat software een bedrijfsoplossing mogelijk maakt en je geen hardware kunt verkopen als daarvoor geen software beschikbaar is. Wil je een oplossing kunnen aanbieden, dan is de software daarin cruciaal. Binnen IBM is inderdaad te weinig nadruk op software gelegd, maar dat is veranderd met de komst van onze nieuwe topman Gerstner."
"Ruim twee jaar geleden is op zijn initiatief een software-organisatie opgericht die alle software-ontwikkeling en -verkoop binnen IBM omvat. De acht pijlers van deze softwaredivisie zijn: toepassingsontwikkeling, databasesystemen, transactionele systemen, netwerksystemen, systeemmanagement (Tivoli), besturingssystemen, Internetsoftware en Lotussystemen. Deze software bieden we niet alleen voor de IBM-omgevingen, maar ook voor ondermeer HP, NT en Sun. De besturingssystemen AIX, OS/400 en OS/390 zijn sterk verbonden met de hardwaresystemen, vandaar dat hun ontwikkeling in de hardwaredivisies plaatsvindt. OS/2 vormt een uitzondering. IBM is al jaren de grootste softwareleverancier!"
Hoe ligt concreet de verhouding tussen hardware en software in termen van omzet? Zijn er aparte verkopers voor software? Van Duijl: "Om met het laatste te beginnen, ja. Dat is een belangrijke zaak, want vroeger verkochten onze verkopers beide, en lag de nadruk vaak op de hardware. Naast hardware en software leveren we overigens ook steeds meer diensten. Van onze omzet wereldwijd, circa 76 miljard dollar in 1996, was ongeveer 28 procent afkomstig van software. De huursoftware voor grote computers blijft redelijk constant, maar die voor gedistribueerde omgevingen kent al enige tijd groeipercentages van 30 tot 35 per jaar. Netwerkcomputing zal de groei alleen nog maar versnellen."
"Bovendien weten we dat software de stimulator is voor het gebruik van hardware, de benzine voor groei in de computermarkt. Het zal de komende tijd vooral gaan om de zogenaamde middleware, de softwarelaag tussen het besturingssysteem en de toepassingen. Middleware omvat netwerksoftware, databasesoftware en al die andere voorzieningen die het ontwikkelen van toepassingen vereenvoudigen of mogelijk maken."
Individualisering
Wat zijn de positie en de rol van Java in de visie van IBM? Van Duijl: "Een uitermate belangrijke. Java zal een omwenteling teweegbrengen die zijn weerga niet kent, zoals de volgende voorbeelden illustreren. Federal Express in de VS heeft zijn callcenter, waar klanten navraag kunnen doen naar de status van verzonden pakjes, vrijwel geheel vervangen door een website met zijn database. Vroeger kostte een navraag 15 dollar, nu 0,15. De Belgische Cera-Bank heeft samen met ons Java-applets ontwikkeld waarmee de klanten zelf online een hypotheek kunnen samenstellen. In tegenstelling tot de diskette die men vroeger op aanvraag verstrekte, is het nu eenvoudig om de toepassing actueel te houden. Bovendien ontstaat een directe relatie tussen bank en cliënt, die zich verder kan ontwikkelen. Java maakt het mogelijk de informatie op grote computers, waar meer dan 75 procent van alle gegevens zijn opgeslagen, via open netwerken platform-onafhankelijk beschikbaar te stellen. Voor ons zijn Java en netwerkcomputing daarom van uitermate groot belang."
Van Duijl legt uit dat IBM zijn lesje wel geleerd heeft wat betreft het doordrukken van eigen ontwikkelingen en normen. De klanten vragen open systemen en netwerken. De explosieve groei van Internet is een voorbeeld van de manier waarop openheid de ontwikkeling van een markt ondersteunt en zakelijke toepassingen binnen handbereik brengt.
In de visie van Michael Porter, een bekende marketing-goeroe, doorlopen markten het traject van beperkt en heel beschermd naar uitgebreid en volledig open. In het begin van de cyclus zijn de oplossingen algemeen en aan het eind aangepast aan individuele wensen. Netwerkcomputing en Java zullen die individuele aanpassing mogelijk maken, waarbij mensen steeds vaker zelf een dienstverlening uitvoeren. De geldautomaten (flappentappers) zijn nog maar een begin daarvan. Niet alleen in de financiële sector zal er een veelheid van nieuwe diensten komen, maar vooral ook op het gebied van elektronisch winkelen (e-handel). Daarbij zullen de banken een intermediaire rol vervullen. De techniek zal individuen in staat stellen te winkelen wanneer en waar ze dat wensen. Met betrekking tot arbeid is dat nu al soms het geval bij telewerken. Dergelijke ontwikkelingen leiden tot individualisering.
Bouwstenen
Hoe gaat IBM Java inpassen in zijn producten? Van Duijl: "Ten eerste bieden we een concept en ondersteuning voor Java-toepassingen aan. Een Java-ontwikkelomgeving en Java Virtual Machine (JVM) zijn ingebouwd in OS/2 Warp release 4, onze client voor een Internet- of intranet-omgeving. Verder bieden we Visualage for Java aan, onze universele ontwikkelomgeving voor de ontwikkeling van toepassingen. Tenslotte zijn we op verzoek van externe ontwikkelaars bezig met het ontwikkelen van een universele server-infrastructuur voor Java, het project San Francisco. (Shareable Framework). Dit toepassingsraamwerk zal uit talrijke bouwstenen bestaan, common business objects, waarmee ontwikkelaars snel nieuwe toepassingen kunnen ontwikkelen: een query op een database, een datumroutine, afdrukken en al dat soort standaard bewerkingen die te gebruiken zijn voor het snel realiseren van nieuwe toepassingen."
"Het grote voordeel van Java is dat het op ieder platform werkt waarop een JVM beschikbaar is. We hebben inmiddels ruime ervaring opgedaan met het bouwen van zo’n raamwerk, mede via Smalltalk en Taligent. De eerste versie van San Francisco zal medio dit jaar beschikbaar komen voor het Windows NT platform, omdat daar de meeste vraag naar is."
Het ontwikkelen van bouwstenen is gecompliceerd. In de programmeertaal APL is dat in de jaren zestig geprobeerd door het definiëren van programma’s als nieuwe functies. In de jaren zeventig volgde een nieuwe poging in het FS-project van IBM. In de jaren tachtig zouden templates het worden, sjabloonprogramma’s die eenvoudig waren aan te passen. Eén van de voordelen van object-georiënteerde programma’s was het hergebruik van objecten, waar volgens zeggen in de praktijk nog weinig van terecht is gekomen. Programmeurs zijn nooit tevreden: als de bouwstenen te eenvoudig zijn, gebruiken ze die niet, en als ze te ingewikkeld zijn ook niet. Waarom zou dit idee nu wel lukken?
"Vroeger deden we alles alleen, nu werken we samen met zo’n zeventig onafhankelijke ontwikkelbedrijven die meehelpen om tot een juiste definitie te komen", vertelt Van Duijl. "Die bedrijven zijn uiterst gemotiveerd, omdat wat zij ontwikkelen straks op alle platformen met een JVM zal kunnen werken – een unicum in de computerwereld. Bovendien kan iedereen meedoen; het is een open omgeving. We zullen deze omgeving ondersteunen op al onze platformen, van OS/2 op PC’s tot en met OS/390 op mainframes."
Veel nieuwe vormen
Hoeveel mensen binnen IBM werken nu direct of indirect aan de inpassing van Java? Waar vinden de ontwikkelingen plaats? "In diverse laboratoria in vele landen zijn nu honderden mensen met Java bezig", aldus Van Duijl. "Het ontwikkelen van Javabeans vindt 24 uur per dag plaats in de VS, Azië en Europa. De ene groep legt zijn werk neer aan het eind van hun dag, de volgende groep pakt dat op en gaat ermee verder enzovoort. IBM is hier bezig een hele bibliotheek van toepassingen aan te leggen. Bedrijven kunnen voortborduren op deze softwarebouwstenen door extra functies toe te voegen."
Wat maakt Java zo uniek als programmeertaal? De indruk is dat vooral de Internet-technologie dit alles mogelijk maakt: eenvoudige netwerkadressering via URL’s (Universal Resource Locator), en universele TCP/IP-protocollen, browsers en servers op vrijwel alle platformen.
In plaats van Java zou toch ook C++ of Smalltalk te gebruiken zijn? "Dat laatste is in principe juist: er zou ook een andere object-georiënteerde taal gebruikt kunnen worden", bevestigt Van Duijl. "Toch biedt Java enkele unieke voordelen. In de eerste plaats de mogelijkheid om toepassingen eenmalig te ontwikkelen en deze daarna in elke omgeving te gebruiken. Daarnaast is het geschikt voor eenvoudige apparaten die niet over de mogelijkheid van opslag beschikken, zoals telefoons en set-top boxen, waarvoor Sun de taal oorspronkelijk ontwikkeld heeft. Het is dus erg universeel. Dat is belangrijk, omdat computers daardoor veel nieuwe vormen kunnen krijgen. Verder is de taal ontworpen voor het werken met multimedia (data, spraak en video) en de ‘nieuwe media’, zodat ook het toepassingsgebied zeer breed is."
"Tot slot is de ondersteuning van de taal zeer breed, en dat is wellicht nog het belangrijkste van alles. Vrijwel alle starters in Silicon Valley zijn gericht op Java. Door de TCP/IP-protocollen werd informatief gebruik van Internet mogelijk. Dankzij Java zal Internet straks ook transactioneel te gebruiken zijn. Java biedt de gebruiker een veelvoud aan mogelijkheden om toepassingen onafhankelijk van het platform te gebruiken."
De facto norm
Voor transactionele systemen is beveiliging het kernpunt. Applets, agents en virussen werken vrijwel identiek. Virussen zijn onuitroeibaar. Hoe zijn transacties en de onderliggende systemen te beschermen? "IBM heeft van oudsher met zijn systemen een goede reputatie opgebouwd wat betref betrouwbaarheid en beveiliging", stelt Van Duijl. "We gebruiken deze methodes en technieken nu voor Java-toepassingen. Samen met Mastercard ontwikkelen we het SET-concept (Secure Electronic Transactions), een beveiligingsmodule die in alle transacties te gebruiken is. De eerste op deze manier beveiligde transacties zijn reeds via Internet afgehandeld. Het klasseconcept maakt het mogelijk om de werking van applets te beperken. Het feit dat ze geen bestanden kunnen schrijven betekent dat ze ook geen bestanden kunnen verminken. Door het klasseconcept mee te nemen in de brandmuur kan deze nog beter beveiligen tegen misbruik. Kortom, goede beveiliging is mogelijk. We hopen dat andere bedrijven onze technieken zullen gaan gebruiken, zodat een de facto norm ontstaat. Daardoor kan dan een echt open en toch veilige netwerk-infrastructuur ontstaan."
Het lijkt de bedoeling dat de JVM het universele stopcontact wordt waardoor straks iedereen met iedereen kan communiceren. Ontwikkelingen op dit gebied vragen om een standpunt over de zich snel uitbreidende PC versus de eenvoudige NC (Network Computer). "IBM heeft beide; onze NC heet alleen Network Station", meldt Van Duijl. "We zijn neutraal in de discussie. We geloven dat dit slechts twee mogelijke vormen van ‘kleine’ computers zijn en dat er nog veel verschillende verschijningsvormen zullen komen. We verkeren in de unieke positie dat we een breed scala aan producten leveren. We hoeven ons dus niet te concentreren op een specifieke deelmarkt. Het maakt ons weinig uit welke kant het opgaat."
"Na de stagnatie in groei van de afgelopen jaren is verruiming van de computermarkt belangrijk, en niet alleen voor ons. Dat zal, mede door Java, op een ongekende manier het geval zijn. Deze universele interface zal het mogelijk maken om allerlei apparaten te koppelen en veel nieuwe toepassingen te maken. Door de JVM zijn alle computers, van mainframe tot en met straks smartcards, met elkaar te gebruiken in een open infrastructuur. Die kans moeten we grijpen; dat is niet alleen in ons belang, maar ook in het belang van andere leveranciers en klanten."
Gezellige winkelstraatjes
Van Duijl stelt dat organisaties de invoering van computers vroeger vaak rechtvaardigden door de behaalde tijdwinst. Vooral in de financiële sector is elk uur geld waard. De laatste tien jaar ligt de nadruk op integratie van het verkoop- en het fabricageproces, waarbij het mogelijk wordt om aan individuele wensen te voldoen. Dankzij Java is nu ook de consument in de totale keten te betrekken: e-handel. Van Duijl: "Op beperkte schaal is dat al mogelijk, denk aan de geldautomaten. Dat valt uit te breiden naar winkelen, waarbij de consument comfortabel, op eenvoudige wijze en op een uniforme manier kan winkelen wanneer het hem uitkomt. Niet alleen voor CD’s, maar ook in een supermarkt. Doordat de bestellingen thuisbezorgd kunnen worden, zal het zakelijke landschap totaal gaan veranderen. Gezellige winkelstraatjes zullen best blijven bestaan, maar andere winkelvoorzieningen gaan sterk veranderen. Dankzij Java kunnen we werkelijk nieuwe oplossingen bieden die direct grote waarde opleveren voor iedereen."
Niet in het minst voor IBM zelf, waar de taal een nieuwe oplossing biedt voor de nu traditionele client/server-systemen. Deze systemen zijn moeilijker te realiseren en vormen geen open infrastructuur. Het gaat niet om NC of PC. Met Java en de JVM denkt IBM een eenvoudiger en opener oplossing te vinden voor het toegankelijk maken van de informatie op grote computersystemen. Het grote belang dat de onderneming daaraan hecht, valt af te meten aan een bericht op haar website na het afsluiten van dit interview. IBM investeert honderd miljoen dollar in het Watson Research Center om een reeks Internet-toepassingen te ontwikkelen voor video, Java en het beheer van websites. Dit is ongeveer een kwart van het totale budget voor IBM-onderzoek.
Hein van Steenis, freelance medewerker van Computable
Java en zijn Virtual Machine
Java is een eenvoudige object-georiënteerde programmeertaal, ontwikkeld door Sun Microsystems, voor een breed scala aan computers en apparaten met computers. Java heeft een eenvoudiger syntax dan C++ en de ‘pointers’ (een bron van veel problemen) zijn vervangen door objectreferenties. Programma’s worden geschreven in Java-instructies. Deze worden gecompileerd naar Java-bytecode. Een Java Virtual Machine (JVM), een specifieke jit-vertaler (just in time) naar machinetaal, interpreteert de Java-bytecode. De Java-bytecode is daardoor universeel bruikbaar op alle platformen met een JVM. De JVM vormt de vertaalslag naar het specifieke besturingssysteem en maakt Java tot een universele programmeertaal. Toepassingen geschreven in Java zijn daarom bruikbaar op alle platformen, dat wil zeggen, alle besturingssystemen met een JVM.
De specificatie van de invoer naar de Java Virtual Machine is te zien als de universele Java-programma-interface. Sun beheert de specificatie hiervan, de Java Language Specification, in overleg met andere leveranciers. Uitbreidingen van Java zullen mogelijk zijn zolang de JVM ongewijzigd blijft. Het is mogelijk dat bronprogramma’s in andere programmeertalen, bijvoorbeeld Cobol, te compileren zijn naar Java-bytecode.
Javascript is een taal van hoger niveau, ontworpen door Netscape, waarmee eenvoudiger dan in Java te programmeren valt en die ook naar Java-bytecode vertaald wordt. Het is ook mogelijk de JVM te verwezenlijken in chips in de terminal die de bytecode direct uitvoeren.
Object-georiënteerde programma’s werken met klassen en klassebibliotheken. Sommige hiervan zullen altijd aanwezig zijn, bijvoorbeeld voor invoer/uitvoer, hulpprogramma’s, TCP/IP-sockets, presentatie en applets. Verder zal Javasoft additionele klassen beschikbaar stellen, bijvoorbeeld Javabeans (api’s, application programming interfaces, om de ontwikkeling van Java-programma’s te vereenvoudigen), Jdbc (Java database connectivity), IDL-Corba (Interface definition language, tussen Java- en Corba-objecten), RMI (Remote method invocation), media en beveiliging. Later zullen zogenaamde facultatieve standaard extensie-klassen zijn toe te voegen, bijvoorbeeld voor multimedia (waaronder telefonie), netwerkbeheer, servers en smartcards. Voorwaarde voor dezelfde werking van de JVM is dat de klassebibliotheken (die of worden meegecompileerd of beschikbaar zijn in de JVM) op de gebruikte platformen op exact dezelfde manier werken.
Applets zijn computerprogramma’s in de vorm van bytecode. Ze zijn in te voegen in webpagina’s en op elke computer met een JVM uit te voeren. De Java-specificatie beperkt de mogelijkheden van applets, ondermeer om te schrijven op schijven, waardoor het niet mogelijk zal zijn om virussen te ontwikkelen in de vorm van applets.
Martin Healey poneerde in zijn columns in Computable de volgende drie stellingen met betrekking tot Java. Allereerst draait de huidige opwinding rond Java om het aanmaken van actieve objecten die kunnen samenwerken met Internet-tools, gekoppeld aan Html-pagina’s op webservers. Deze objecten worden geïnterpreteerd in de browser, onafhankelijk van de processor. Dit bevrijdt de industrie van het juk van Microsoft en Intel. Verder moet Java ook uitgroeien tot een algemene ontwikkeltaal, die C++ in de loop van komende twee jaar gaat vervangen. Tot slot: besef dat alle innovaties op Java gebaseerd zullen zijn. Java is een krachtige uitbreiding van het dynamische concept dat begonnen is met Html-submit en -scripts. Java biedt echter volledige functionaliteit en de mogelijkheid om complete transactiesystemen te bouwen op een client/server-manier.