Vorige week heb ik geweeklaagd over het feit dat we weinig voortgang hebben geboekt met het automatiseren van softwareontwikkeling, en over de daaruit resulterende problemen bij de overgang van prototype naar productiesystemen.
Het probleem is het grootst bij dikke-clientsystemen, waar rad-tools zijn gebruikt in combinatie met een relationele database. Zoals de term aangeeft, domineren snelheid en ontwikkelingsgemak ten koste van onderhoudbaarheid en schaalbaarheid. Dit is in veel gevallen acceptabel, als de applicatie rechttoe rechtaan is en een specifieke functie dient, maar het wordt een nachtmerrie in sommige bedrijfskritische toepassingen. Als je dit punt hebt bereikt met een Windows/SQL Server oplossing, wat zijn dan de opties voor de toekomst? Geen van alle zijn aantrekkelijk en op de lange duur kan het huidige systeem waarschijnlijk het best als een prototype- of legacysysteem worden behandeld tot aan het moment van een compleet herontwerp. Maar er zijn nog andere mogelijkheden
De eenvoudigste en goedkoopste oplossing is de server-pc te vervangen door een veel sterkere. IBM, Compaq, Dell en andere maken allemaal zware Intel-computers die pc-software draaien. Ze zijn echter ontwikkeld om als server te dienen, hebben snellere multiprocessor-architecturen, grote I/O bandbreedte, fouttolerantie, redundantie, enzovoort. Ze zijn natuurlijk veel duurder dan een conventionele pc. Een gespecialiseerde NT-server van Unisys is de moeite van het overwegen waard.
De zwakte van bovengenoemde aanbeveling is de voortdurende afhankelijkheid van Microsoft-software. Die is hoogstens ‘redelijk’ te noemen, maar is veel meer gericht op kantoortoepassingen dan op business-toepassingen. Windows heeft een weinig benijdenswaardige reputatie betreffende betrouwbaarheid en beveiliging. In dit geval zijn er ook nog vraagtekens over de schaalbaarheid.
Een tweede alternatief is de serverfuncties te scheiden en ze te implementeren op aparte servers. Dit zou enige bescherming bieden in geval van falen van een individuele server. Mogelijk nadeel is dat het moeilijk kan zijn om de serverfunctie te isoleren zonder de applicaties voor een groot deel te herontwerpen. Als herontwerp in ogenschouw wordt genomen, zou een veel belangrijker architectuurverandering richting dunne-client geïntroduceerd moeten worden. Waarschijnlijk valt er enig voordeel te behalen door batchverwerkingsfuncties, zoals het afdrukken van facturen, aan een specifieke server toe te wijzen. Te weinig applicaties maken tegenwoordig gebruik van batchverwerking. Het is niet nodig om alle functies interactief uit te voeren. Weer zal de noodzaak de applicatie te wijzigen een probleem vormen.
Het is wenselijk om zich af te wenden van Microsoft en meer software volgens industriestandaarden te gebruiken. Bij de ontwikkeling van het merendeel van de nieuwe applicaties is gebruikgemaakt van op Java gebaseerde applicatieservers van IBM, Oracle, BEA, Cold Fusion, enzovoort. Deze applicaties kunnen van het ene hardware- en besturingssysteemplatform worden overgebracht naar het andere, inclusief Windows. Het besturingssysteem Unix is echter het best voor de server, maar Windows is nog het gebruikelijkst voor werkstations. OS/400 is een prachtig serverplatform en IBM-mainframes met z/OS zou de keus voor veel grote systemen zijn.
Men zou Linux moeten overwegen voor de client-machines, met name voor specifieke applicaties, maar niet voor de Microsoft Office-applicaties waaronder we zo moeten lijden. Overweeg het, maar blijf toch voorzichtig.
Als een Intel-processorsysteem de voorkeur heeft, dan is een Linux-versie de beste optie. Het is essentieel om slechts een ondersteunde versie te gebruiken, niet een die van internet is gedownload. Caldera (nu weer SCO) of Red Hat zijn toonaangevende voorbeelden, SCO Unix, Unix Ware en BSD zijn andere opties.
Een duurdere optie is het gebruik van een speciale Unix-server van IBM, HP of Sun, IBM RS/6000 (p-Series) met AIX. Dat biedt uitbreidingsmogelijkheden.
De database is een probleemgebied. SQL Server is gericht op Intel/Windows-servers. Oracle is de toonaangevende onafhankelijke databasesoftwareleverancier, maar volgens mij is DB2 van IBM een betere optie. Die is nu beschikbaar op een aantal platformen. Er bestaat ernstige ongerustheid over de richting die Oracle in de toekomst uitgaat; ze kunnen daarmee hun klanten beledigen!
Als men overstapt op Unix en DB2 of Oracle, moeten er veel wijzigingen in de bestaande applicaties worden doorgevoerd. In theorie voldoen alle relationele databases aan de SQL-standaard, maar in de praktijk zijn er significante verschillen in de implementatie, met name in het behandelen van ‘locking’ en opgeslagen procedures. De client/server-api’s neigen bovendien naar specificiteit.
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.