Mieren die stukjes voedsel naar hun nest brengen, worden niet centraal aangestuurd. Ook agents voeren decentraal taken uit. Hoewel agent-technologie nog maar aan het begin staat, denken onderzoekers en ontwerpers dat zij de opvolger zal worden van objectoriëntatie. Een sterke bewering, maar oo- en agent-deskundige James Odell weet het geloofwaardig te maken. Odell is niet alleen oo-auteur en consulent maar speelt ook een belangrijke rol in agent-standaardisatie binnen OMG en Fipa. Hans Van Thiel spreekt met hem over technieken, toepassingen, en de toekomst.
Het is ongetwijfeld de nieuwe trend in de vijfjaarlijkse ict-modecyclus: ‘agents’. De activiteiten rondom deze technologie groeien stormachtig. Elke maand komen er wel nieuwe leveranciers en toepassingen bij en ook het aantal academische onderzoeksgroepen neemt snel toe. Is agent-technologie een tijdelijk modeverschijnsel of is het een ontwikkeling die de toekomst gaat bepalen?
James Odell (zie kader) is een wereldwijd erkende expert op het gebied. Volgens Odell is agent-technologie een evolutionaire ontwikkeling van objecttechnologie. Daarmee is meteen de claim gelegd voor een hoofdrol in de software-engineering. Agent-technologie moet de opvolger worden van objectoriëntatie.
In zijn artikel ‘Objects and agents: how do they differ?’ legt Odell het uit. Software-agents zijn te beschouwen als extensies van objecten. In een object zijn identiteit (wie), toestand (wat) en gedrag (hoe) bij elkaar samengebracht. Een actief object regelt ook het ‘wanneer’ door middel van een eigen thread of control en een mobiel object bepaalt daar bovenop nog eens zelf zijn locatie (waar).
Agents zijn actieve objecten en mobiele agents zijn mobiele objecten, maar het kenmerk van agents is dat daar nog iets bijkomt. Zij hebben een zekere autonomie. In een ‘echte’ agent is ook het ‘waarom’ ingekapseld.
Agents zijn belangrijk omdat zij een methodiek bieden om gedistribueerde en samenwerkende (concurrent) systemen te benaderen. Het meest algemene voorbeeld van zo’n systeem is internet met al zijn samenwerkende toepassingen. Plaatselijke netwerken van op elkaar afgestemde apparaten vormen een wat concreter voorbeeld. Ook de automatisering van industriële productie is een belangrijke kandidaat voor ‘multiple agent system’ (mas) benaderingen.
James Odell werkt aan een boek over dit onderwerp, dat dit jaar moet verschijnen.
Autonomie
James Odell licht toe dat het wezenlijke kenmerk van een agent de zelfstandigheid is. Een object kan pas een functie vervullen als het door een van zijn methoden wordt geactiveerd. Elk oo-programma wordt feitelijk centraal aangestuurd. Agents kunnen echter zelf initiatieven nemen (proactive) en hebben meerdere mogelijkheden om te reageren op een boodschap.
"Agents can go and they can say no," zegt Odell. "In agents zijn niet alleen data en operaties, maar data en processen geïntegreerd."
Voor objecten bestaat er de Unified Modeling Language (UML) en binnen de Object Management Group (OMG) wordt er dan ook gewerkt aan een uitbreiding tot AUML (Agent UML).
Agents communiceren met elkaar via protocollen die worden gerepresenteerd in volgordediagrammen (sequence diagrams) en de daarmee vergelijkbare samenwerkingsdiagrammen (collaboration diagrams). Dat een agent nul of meer boodschappen kan versturen wordt in een volgordediagram grafisch aangeduid met een ruit. Een deelnemende agent (participant) kan een oproep van een opstartende agent (initiator) bijvoorbeeld weigeren, beantwoorden met een voorstel, of de agent kan meedelen dat de oproep niet begrepen is. De initiator kan hier weer op verschillende manieren op antwoorden. Hoe een agent op een bepaalde vorm van communicatie reageert, kan afhangen van de toestand van de agent zelf en van de toestand van meerdere agents samen. Deze interne dynamiek van communicatieprotocollen is te modelleren in UML-stroomdiagrammen (activity diagrams) en toestandsdiagrammen (statecharts).
Dat agents gemodelleerd kunnen worden in een extensie van UML, benadrukt nog eens de overeenkomst met objecten. De term ‘message passing ‘uit de oo-literatuur wordt eigenlijk pas echt waargemaakt in agents, bevestigt James Odell desgevraagd. Agent-technologie, zo zal hij nog enkele malen herhalen, is een evolutionaire ontwikkeling van objectoriëntatie, die zelf weer voortkomt uit procedureel programmeren. "De domste agents zijn objecten", zegt hij met een brede grijns.
Toch is agent-technologie een nieuw paradigma. Net zoals objectoriëntatie een andere manier van denken vereist dan procedureel programmeren, zo vergt agent-technologie een andere manier van denken dan oo. Agent-technologie berust op decentralisatie. Als toelichting demonstreert Odell een door hemzelf geschreven simulatie.
Mieren zwermen uit
Een cirkel in het midden van het beeldscherm representeert een mierennest. Rode puntjes, de mieren, zwermen op een willekeurige wijze uit van het nest. Verderop liggen een paar schijven die verzamelingen voedsel voorstellen. Een mier weet altijd waar het nest is, en als hij bij toeval op eten stuit, neemt hij een brokje mee terug naar het nest. Daarbij legt hij een spoor. Als een andere mier een spoor kruist, volgt hij het naar de voedselhoop en neemt op zijn beurt eten mee terug naar het nest. Wanneer een schijf helemaal verwerkt is, hervatten de betrokken mieren hun willekeurige wandeling. De voedselhopen kunnen overal gepositioneerd worden, het kunnen er veel of weinig zijn, en het aantal mieren kan vermeerderd of verminderd worden al naar gelang de situatie vereist.
De simulatie van James Odell ziet er niet alleen leuk uit, maar biedt een schaalbare, robuuste en eenvoudige oplossing voor een vrij complex probleem. Het principe wordt door British Telecom toegepast voor de routering van berichten over een netwerk, vertelt Odell, en het is een duidelijk geval van agents die zonder centrale sturing een taak verrichten.
Dergelijke systemen komen in de praktijk zeer veel voor. Men denke aan handelsmarkten, zoals effectenbeurzen, maar ook aan winkels, kantoren en niet te vergeten fabrieken. In al dergelijke systemen zijn agents te onderscheiden die niet centraal, althans niet volledig centraal, worden aangestuurd bij het uitvoeren van hun taken. Een consequentie van deze zelfstandigheid is ook dat een agent geen software-agent hoeft te zijn. Het kan een slim apparaat zijn in een thuisnetwerk, een productierobot of een personeelslid in een bepaalde rol. Interacties tussen software, mens en machine kunnen in het agent-paradigma op een natuurlijke manier beschreven worden. Implementatieonafhankelijk ontwerpen wordt met agents een stuk makkelijker.
Odell geeft nog een voorbeeld van een gedecentraliseerde aanpak, die ingewikkelder is dan de simulatie die hij zojuist liet zien. Nu gaat het om de constructie van een telefoonlijn door een ploeg ‘agents’. Er moeten gaten gegraven worden, daar moeten telefoonpalen in komen en vervolgens moeten er telefoondraden worden gespannen. Ook dit productieproces wordt niet centraal gestuurd. In plaats daarvan onderhandelen de uitvoerende agents met elkaar en met bemiddelaars (brokers) over wie wat zal gaan doen en hoe.
James Odell vertelt dat hij dit systeem in zijn cursus uitgebreid zal behandelen. Het heeft raakvlakken met een onderzoeksproject waar hij aan heeft gewerkt bij General Motors, in een fabriek in de Amerikaanse staat Michigan.
Daar moesten auto’s die op lopende banden werden aangevoerd, gespoten worden in een vooraf vastgestelde kleur. Maar het patroon van de werkstroom was onregelmatig. Soms moesten zes auto’s achter elkaar rood gespoten worden, soms drie rood, twee blauw, een zwart, dan weer rood, zwart, blauw achter elkaar, enzovoort. Er was een beperkt aantal spuitcabines beschikbaar en de opdracht luidde natuurlijk om de totale capaciteit zo efficiënt mogelijk te benutten.
Ook dit logistieke proces werd nu niet centraal aangestuurd, maar door agent-programmering. Via onderhandelingsprotocollen bepaalden de cabines zelf welke installatie welke auto zou spuiten. Criteria waren onder meer de tijd die nog nodig was om de onder handen zijnde klus af te maken, en of een beschikbare nieuwe opdracht in de zelfde kleur kon worden uitgevoerd als de vorige.
Volgens Odell was het project vrij succesvol, maar ontstonden er problemen met de regels van de vakbonden. In de nabije toekomst hoopt hij meer gehoor te vinden bij enkele Europees georiënteerde bedrijven.
Vooral in gecompliceerde aanbodketens (supply chains) zijn protocollen om vraag en aanbod met elkaar in overeenstemming te brengen zeer belangrijk. De Federation of Intelligent Physical Agents (FIPA) heeft nu al veertien verschillende veilingprotocollen gestandaardiseerd, vertelt Odell.
Science fiction
Het is geen toeval dat de wiskundige speltheorie, die ook in de economische wetenschap toegepast wordt, aandacht krijgt van agent-onderzoekers. Maar ook technieken uit de kunstmatige intelligentie, die in de loop der tijd op de achtergrond waren geraakt, krijgen in agents een tweede jeugd. ‘Constraint logic programming’ (clp) dat zich richt op logistieke processen, zou met agent-technologie een belangrijke impuls kunnen krijgen, maar ook logisch programmeren sluit goed aan bij het paradigma. Neurale netwerken en genetisch programmeren passen bij de volgende stap in agent-technologie: de zelflerende systemen. James Odell is zeer geïnteresseerd in ‘complex adaptive systems’ (cas) en demonstreert met groot enthousiasme een paar simulaties uit deze hoek.
De parallellen met biologische en sociale systemen, die hij trekt, worden vaker uitgelicht, om niet te zeggen bezongen, in de wereld van agent-onderzoekers. Is James Odell niet bang dat de technologie aan geloofwaardigheid zal verliezen, als de voorspelde mogelijkheden zo groots zijn? Zijn er geen overeenkomsten met de AI van een paar decennia geleden?
Hij wimpelt het niet af, bevestigt nog eens dat agent-technologie een degelijke basis moet hebben, en dat er nog veel problemen moeten worden opgelost, maar lijkt toch vooral gefascineerd door wat hij ziet als een mogelijke toekomst.
De animaties van de digitale kunstenaar Karl Sims, die gebruik maakt van zelflerende technieken, zijn duidelijk een bron van inspiratie voor hem. Dit brengt het gesprek als vanzelf op ‘science fiction’-literatuur waarin de culturele effecten van intelligente agents of avatars het thema vormen. De realiteit is echter dat zelfs zoiets aards als een geautomatiseerde reis-agent nog verre van uitvoerbaar is.
"Zeker", zegt Odell, "en daarom is het ook zo belangrijk om het werk aan agents te coördineren en te standaardiseren. We moeten de structuren van toepassingsgebieden (ontologie) in kaart brengen, communicatie standaardiseren in ‘agent communication languages’ (acl) en proberen exacte representaties te formuleren."
Hij vertelt in Nederland nog te zullen praten met Jos Warmer van de ‘object constraint language’ (zie http://www.klasse.nl). Ocl is een omg-standaard voor het formaliseren van UML-diagrammen en zou dus ook geschikt kunnen zijn voor toepassing op agents.
Stand van zaken
Op de avond na het interview stuurt Odell nog een e-mail met informatie over standaardisatie- dan wel onderzoeksgroepen. In de VS heeft Darpa (Defense Advanced Research Projects Agency) verschillende researchprojecten lopen en ook in Europa zijn een aantal samenwerkinggsgroepen actief, onder andere in het kader van Esprit.
Echte standaardisatieorganisaties zijn de OMG (http://www.omg.org) en de Fipa (http://www.fipa.org).
De laatste is met zijn vijftig leden veel kleiner dan de OMG. De vraag rijst waarom er eigenlijk een aparte agent standaardisatieorganisatie is opgericht.
"Het is een kwestie van cultuur," zegt Odell. "De OMG is ontstaan vanuit de oo en de Fipa vanuit het agents-onderzoek. Maar er is veel samenwerking tussen de twee groepen. In standaardisatie worden echter nogal eens bijna religieuze standpunten ingenomen. Dat was ook bij de opvolging van UML in versie 2.0 het geval. Sommigen wilden niets veranderen, sommigen wilden alles veranderen en de derde groep wilde een beetje veranderen."
Met een brede glimlach: "Die groep was in de minderheid."
In de literatuur over agents is een enorme verscheidenheid aan soorten te vinden. Voor niet-specialisten is het onderscheid niet altijd even helder, maar mobiele agents staan in elk geval duidelijk apart. Die komen in beeld, volgens Odell, als er een beperkte bandbreedte beschikbaar is voor de communicatie. Dan wordt het voordeliger om agents ter plaatse te laten opereren. Maar de veiligheid speelt natuurlijk een extra grote rol hier. Odell is niet bekend met het Nederlandse bedrijf Tryllian en hun werk aan mobiele agents voor draadloos internet. Als hij hoort dat Tryllian ook een Agent Development Kit levert, noteert hij de naam.
James Odell blijkt niet erg onder de indruk van de activiteiten van Microsoft op het gebied van agents. "Het gaat allemaal niet veel verder dan Bob, de paperclip assistent," zegt hij.
Veel, hoewel niet alle beschikbare agent implementaties zijn gebaseerd op Java. De Java Agent Services (Sun JSR 000087) is een specificatie die objecten en interfaces definieert om het gebruik van autonome communicerende agents te ondersteunen. Hiermee komt dus een gemeenschappelijke implementatie in zicht. Is Java dan de natuurlijke omgeving voor het programmeren met agents? James Odell aarzelt even. "Het lijkt er wel op," zegt hij voorzichtig. "Misschien dat de nieuwe logische programmeertaal waar Francis McCabe van Fujitsu aan werkt een alternatief kan worden. Maar op het ogenblik zie ik eigenlijk alleen Java…"
Agent-technologie zal objectoriëntatie nooit verdringen, net zo min als oo procedureel programmeren overbodig heeft gemaakt. Maar het is wel een verandering binnen de informatietechnologie die wezenlijk nieuwe mogelijkheden toevoegt. Of, misschien beter gezegd, kán toevoegen. Is de stand van zaken in dat opzicht vergelijkbaar met die van objectoriëntatie tien jaar geleden?
"Voor objecten hadden we toen in elk geval met C++ een geaccepteerde taal. In agent-technologie zijn we nog niet zo ver. Dus zeg maar dat de situatie vergelijkbaar is met oo vijftien jaar geleden," antwoordt James Odell.
Hans Van Thiel Freelance Medewerker
James Odell
In een tijdvak van bijna twintig jaar publiceerde James Odell zo’n vijftig artikelen over objectoriëntatie, agents en Auml (Agent Unified Modeling Language). Samen met co-auteur James Martin schreef hij de boeken: ‘Object-Oriented Analysis and Design (1992), ‘Object-Oriented Methods: Pragmatic Considerations’ (1996) en ‘Object-Oriented Methods: A Foundation, UML Edition (1998).
Als zelfstandig consulent heeft Odell bedrijven geadviseerd als Oracle, British Telecom, Ford, Philips Electronics, Deloitte & Touche, Dupont, Standard Oil, enzovoort. Hij is thans lid van een consultancy-groep, het Cutter Consortium, waar onder meerdere ook Ed Yourdon toe behoort.
Odell is co-chair van de Object Analysis and Design Task Force en van de Agents Special Interest Group binnen de standaardisatieorganisatie OMG (Object Management Group).
Hij is betrokken geweest bij de standaardisatie van alle UML- (Unified Modeling Language) versies tot en met de komende versie 2.0. Odell heeft ook een belangrijke bijdrage geleverd aan de uitbreiding van UML met agent-interactieprotocollen, het Auml (Agent UML).
Behalve in de OMG vervult hij ook een leidende functie in de specifieke agent-standaardisatieorganistie Fipa (Federated Intelligent Physical Agents). Hij is co-chair van de Fipa-sectie voor industriële productie (i-manufacturing).
Voor het Cutter Consortium heeft Odell een serie van twee overzichtsartikelen over agents samengesteld.
Beide rapporten: ‘Agents (Part 1): Technology and Usage’ en ‘Agents (Part 2): Complex Systems’ zijn thans beschikbaar op zijn website http://www.jamesodell.com.