Jarenlang heb ik campagne gevoerd voor het gebruik van componenten in software; met weinig succes, ben ik bang. Hardware-ingenieurs hebben het concept lang geleden aanvaard, en ontwerpen en bouwen systemen met ic-componenten.
De functionaliteit van deze componenten is bepaald; de ontwerper van hardware werkt met wat beschikbaar is. Hij probeert niet kleine verbeteringen aan te brengen aan de feitelijke componenten, maar wendt zijn vaardigheden daarentegen aan om systemen te ontwerpen. Alleen de chipontwerpers van Intel, IBM, Motorola enzovoort, ontwerpen de componenten van een lager niveau, specifiek toegesneden op de eisen van de massa. Het effect is maar al te duidelijk: de ultrabetrouwbare, ongelooflijk kosteneffectieve pc is beladen met slecht ontworpen, te grote, dure en onbetrouwbare software. Vergeleken met hardware is software erg onbetrouwbaar en het is droevig dat we dit van de it-industrie accepteren en als norm beschouwen
Software-ontwerpen hebben enigszins laat toch vooruitgang geboekt. Met name in het gebruik van componenten voor het ontwikkelen van grafische gebruiksinterfaces. Het merendeel van de betere ontwikkelsystemen die we momenteel hebben, ondersteunt het concept van herbruikbare componenten. Er is echter nog een lange weg te gaan. Met het San Francisco-project heeft IBM geprobeerd het gebruik van componenten voor business-applicaties te vestigen. Enkele activiteiten zijn gericht op het maken van bibliotheken van Java-componenten voor bedrijfsapplicaties. Desalniettemin lijkt de industrie tien jaar achter te lopen.
Het is niet duidelijk waarom hardware-ingenieurs zoveel effectiever zijn dan software-ingenieurs. Misschien geeft software zoveel vrijheid dat het moeilijk is om die op te geven. Software is ook het zijspoor van het objectmodel ingeslagen, een complex concept. In de hardware bestaat geen equivalent voor overerving of polymorfisme. Eenvoudige softwarecomponenten (goed gedefinieerde en zorgvuldig gecodeerde subroutines, niet beschikbaar in de vorm van broncode) zouden de industriestandaard geweest moeten zijn, voordat werd overgestapt op het ambitieuzere objectmodel.
Zoals gewoonlijk blijken internet en daarmee geassocieerde technologieën als katalysatoren te werken. Java en soortgelijke concepten in .Net zijn niet uniek voor internet, maar hun acceptatie is versneld omdat de commerciële banden steeds minder knellen. Het idee van een applicatieserver die functionaliteit levert zoals tekstverwerking, is niet nieuw (vroeger heette dat ’timesharing’). Het biedt functionele componenten van een hoog niveau direct aan de gebruiker, in plaats van aan de ontwikkelaar. Maar met behulp van standaard api’s zijn veel van deze diensten te gebruiken door andere applicaties. Ook dit is niet nieuw, maar we zien nu het grote belang van de acceptatie van standaarden. Dat geldt net zo voor lokale business en kantoorfuncties als voor op het Web gebaseerde diensten.
Internet brengt echter weer nieuwe problemen met zich mee, en lost enkele oudere op. De meeste organisaties hebben een begin gemaakt met e-handel door consument-naar-business (c2b) applicaties te bouwen. Aanvankelijk waren het eenvoudigweg ‘online catalogus’-systemen, maar nu zijn ze geïntegreerd met systemen voor orderverwerking. De meeste organisaties hebben nu ervaring met het integreren van nieuwe web-applicatieservers met legacy-systemen.
Dientengevolge is men zich in toenemende mate bewust van de kansen van b2b e-handel, en beseft men daarnaast dat dit veel moeilijker is. Business-to-business behelst interactie met andere bedrijven die onvermijdelijk hun eigen it-systemen hebben. Die zijn allemaal anders en vaak incompatibel. Vooralsnog is het merendeel van de b2b-pogingen simpel gehouden, door ze te beperken tot twee deelnemers. Maar bij echt b2b gaat het om het samenwerken van meerdere bedrijven en systemen (ondanks wat Sun, IBM en Microsoft zouden willen, dat wil zeggen heterogene systemen), waarvan sommige ver weg zijn.
Deze problemen zijn op te lossen met een speciale set diensten, webservices, in feite een set hoogwaardige componenten die zijn ontworpen voor het leveren van verschillende applicaties met informatie over potentiële deelnemers, onafhankelijk van de gebruikte technologie.
Momenteel werken er twee groepen aan standaarden voor webserviceprotocollen (niet te verwarren met de feitelijke webservice-applicaties): Web Services Interoperability Organisation (WS-I) en de Liberty Alliance. Eerstgenoemde werd geïnitieerd door IBM en Microsoft, en omvat BEA, HP, Intel en Oracle. Laatstgenoemde is gestart door Sun, maar heeft zich nu gevoegde bij WS-I. Ze werken met specifieke standaarden, gedefinieerd door W3C en andere, om onnodige overlap te vermijden.
Martin Healey, pionier ontwikkeling van op Intel gebaseerde computers en c/s-architectuur. Directeur van een aantal it-bedrijven en professor aan de Universiteit van Wales.