De meeste IT-toepassingen zijn of interactief-, of batch-georiënteerd. Proces- en productiebesturingssystemen echter werken op basis van gebeurtenissen (events). Hierbij activeert niet een gebruiker of een batchjob, maar een externe gebeurtenis de verwerking. Zulke event-gestuurde technieken zijn inmiddels voor veel meer applicaties toepasbaar.
Een voorbeeld van een belangrijke applicatie dat de kracht van deze technieken illustreert, is een werkstation voor financiële handel. Een dealer raadpleegt op conventionele wijze een database om de details over een aandelenportefeuille op te vragen. Wijzigingen in de koerswaarde van specifieke aandelen komen op willekeurige momenten binnen via een externe informatiebron. Zo’n gebeurtenis activeert een puur event-gestuurde applicatie, die de database onmiddellijk actualiseert – niet interactief, maar ook geen batch. Deze benadering is verder uit te bouwen door ook een real-time actualisatie uit te voeren voor alle werkstations die eerder belangstelling voor het specifieke aandeel hebben getoond. Dat is een grote verbetering ten opzichte van de situatie waarbij de gebruiker periodiek een query moet herhalen. Het ontwikkelen van zulke applicaties is kostbaar, en was vroeger alleen rendabel voor hoogwaardige toepassingen. Echter, nu multitasking PC-besturingssystemen de norm zijn, kan een veel breder scala aan applicaties profiteren van de resulterende lagere kosten.
Voor deze directe benadering moet de nieuwe event-gestuurde applicatie zowel de database als de relevante werkstations actualiseren. De daarvoor benodigde trigger is sinds jaar en dag een algemeen voorkomende functie in rdbms’en. Oorspronkelijk werden triggers gebruikt om automatisch integriteitscontroles binnen de database uit te voeren. Ze zijn echter ook zonder problemen bruikbaar om gebruikerscode uit te voeren. Een event-gestuurd systeem is waarschijnlijk het makkelijkst te ontwikkelen als het uit twee modules bestaat. De een reageert op externe prikkels en actualiseert de database. De ander reageert op veranderingen in de database en zorgt ervoor dat de relevante werkstations worden geactualiseerd. Die tweede module bevindt zich in het database-subsysteem en is een voorbeeld van een software-agent.
Dit principe valt verder uit te breiden. Agents zijn bijvoorbeeld te gebruiken om integratie met andere systemen op basis van wijzigingen in gegevens (triggers) te realiseren. De integratie met kantoorsystemen is een voor de hand liggend voorbeeld. Het vooruitstrevendste voorbeeld is waarschijnlijk de integratie met systemen voor werkstroombeheer. Volgens mij ligt het grootste rendement van IT-investeringen in de werkstroom-sfeer. Persoonlijk zou ik alle upgrades van PC- en kantooromgevingen stil leggen en investeren in het automatiseren van de bedrijfsprocessen.
Nu Windows 95 voorganger Windows 3.1 kan vervangen, is multitasking op alle niveaus beschikbaar, van client tot server. Bij het aanzetten van de PC kan bijvoorbeeld een beheeragent worden opgestart. Naarmate de nieuwe generatie modulaire kantoorsoftware volwassener wordt en de huidige, verouderde PC-kantoorsoftware kan vervangen, zal het concept van de agent die op de achtergrond meedraait steeds verder worden ontwikkeld. Daarbij zal vooral de integratie sterk verbeteren. De singletasking functie van Windows 3.1 dwong ontwikkelaars zich te concentreren op het gebruikersinterface. Dat ging ten koste van nieuwe, geavanceerde functionaliteit. Windows 3.1 leidde tot ’tunnelvisie’, terwijl Windows 95 een bredere kijk stimuleert. Als we vijf jaar geleden hadden gekozen voor OS/2 in plaats van Windows 3.1, zouden we nu niet zo met de kantoorautomatisering zitten. Hoe dan ook, de volgende generatie component-georiënteerde Java-kantoorapplicaties zal zorgen voor de kwantumsprong in functionaliteit die we missen in de huidige aan elkaar geknutselde Windows-applicaties. Besteed uw geld daarom nu aan werkstroom en gegevenspakhuizen, en wacht twee jaar met het installeren van nieuwe kantoorsoftware.
Op de server worden software-agents op dit moment toegepast in gegevenspakhuizen. Ze draaien op de achtergrond en speuren naar trends in het gegevensverkeer. Sommige agents zijn voorgedefinieerd, andere gebruiken intelligente technieken om onbekende gegevenspatronen te ontdekken (datamining). De detailhandel gebruikt die technieken om koopgedrag van klanten te analyseren, de medische wereld om correlaties tussen dossiers te detecteren, en fraude-opsporingsdiensten om inconsistenties te ontdekken.
Een andere klasse van software-agents is op dit moment in ontwikkeling, ondermeer bij Oracle, om de connectiviteit van draadloze (cellulaire) transmissiesystemen te verbeteren. Het probleem van conventionele communicatiesoftware is de toename van verbroken verbindingen. Normaliter moet dan de hele communicatiesessie opnieuw worden opgezet. Agents op de client en op de server in het nieuwe systeem houden de verbinding vast en herstellen deze zelfstandig.
Tot slot: de ultieme software-agents zijn te vinden in de nieuwe generatie bedrijfssoftware: pakketten met herbruikbare objecten voor specifieke bedrijfstakken.