1.1 – Modellering framework Basisfunctionaliteit Tele Atlas Rondrijders verzenden afgewerkte update reports (UR) naar de server Voor het binnenrijden van een nieuw gebied, ontvangen de werknemers een UR van het gebied Rondrijders krijgen concrete opdrachten toegestuurd Communicatie van en naar de server moet worden gecontroleerd
1.1 – Modellering framework Functionaliteiten IDEWE Medici verzenden afgewerkte dossiers naar de server Medici kunnen evt. ook allerlei updates toegestuurd krijgen Communicatie van en naar de server moet worden gecontroleerd
1.1 – Modellering framework Framework Tot stand gekomen na gesprekken met TeleAtlas/IDEWE Gebaseerd op de Retsina architectuur: verschillende categorieën: interface-, taak- en informatie-agenten Op vraag van IDEWE verloopt de synchronisatie niet op de DB-server
SYNCHRO AGENT ToestelID|TransactieID|prio|richting|aanvrager|DBactie | 927 |form| -> | get… 002 | 928 |form| <- |hereis… 003 | 929 |form| -> | |hereis… 003 | 930 |form| <- | | get… # actieve transacties prioriteitsdrempel DOWN- LOAD CLIENT AGENT UPLOAD CLIENT AGENT RECEIVING SLAVE AGENT SENDING SLAVE AGENT Belastingsmeteragent SERVER DB AGENT CLIENT DB AGENT POLICY AGENT DB Server (ev. DB server)Server (ev. synchro server)Mobiel toestel INTERFACE AG. TASK AGENTS INFORMATION AGENTS RECEIVING SLAVE AGENT SENDING SLAVE AGENT
SYNCHRO AGENT ToestelID|TransactieID|prio|richting|aanvrager|DBactie | 927 |form| -> | get… 002 | 928 |form| <- |hereis… 003 | 929 |form| -> | |hereis… 003 | 930 |form| <- | | get… # actieve transacties prioriteitsdrempel DOWN- LOAD CLIENT AGENT UPLOAD CLIENT AGENT RECEIVING SLAVE AGENT SENDING SLAVE AGENT Belastingsmeteragent SERVER DB AGENT CLIENT DB AGENT POLICY AGENT DB Server (ev. DB server)Server (ev. synchro server)Mobiel toestel INTERFACE AG. TASK AGENTS INFORMATION AGENTS RECEIVING SLAVE AGENT SENDING SLAVE AGENT Houdt lijst met gegevens en prioriteit bij van aangevraagde transacties. Abstracte klasse waarvan enkel prioriteitsformule dient geïmplementeerd te worden. Indien de prioriteit een drempel overschrijdt, wordt de transactie uitgevoerd. Policy agents volledig zelf te implementeren. Policies worden hier vertaald naar aanvragen bij synchro server. Voorbeelden: specifieke gegevens up-to-date houden, toestellen regelmatig verplichten te zenden, interface om commando’s van de buitenwereld uit te voeren, …. Abstracte klasse moet worden overgeërfd (optioneel) Doel: synchro agent van de toestelbelasting op de hoogte houden. (optioneel) Doel: synchro agent van de serverbelasting op de hoogte houden. RSA’s en SSA’s worden pas gecreëerd wanneer een transactie plaatsvindt. (1 per transactie) DCA en UCA zijn continu op toestel aanwezig. Kunnen elk slechts 1 transactie tegelijk aan. De prioriteiten worden continu berekend op basis van factoren naar keuze: wachttijd, prioriteit opgegeven door aanvrager, toestelbelasting, serverbelasting, # actieve transacties, toestelID, richting, … onClose(): interactie over pending transactions
SYNCHRO AGENT ToestelID|TransactieID|prio|richting|aanvrager|DBactie | 927 |form| -> | get… 002 | 928 |form| <- |hereis… 003 | 929 |form| -> | |hereis… 003 | 930 |form| <- | | get… DOWN- LOAD CLIENT AGENT UPLOAD CLIENT AGENT RECEIVING SLAVE AGENT SENDING SLAVE AGENT Belastingsmeteragent SERVER DB AGENT CLIENT DB AGENT POLICY AGENT DB Server (ev. DB server)Server (ev. synchro server)Mobiel toestel INTERFACE AG. TASK AGENTS INFORMATION AGENTS RECEIVING SLAVE AGENT SENDING SLAVE AGENT TOESTEL WIL ZENDEN 1 – CDA ziet bv. dat aantal dossiers boven een bepaalde drempel uitstijgt 2 – CDA meldt dit aan UCA 3 – UCA zendt aanvraag met nodige gegevens (prio, interactieID, …) naar SyA 4 – SyA plaatst aanvraag in de lijst 5 – Eenmaal dat prio > drempel, creëert SyA een RSA 6 – RSA contacteert UCA 7 – UCA vraagt file aan CDA (van DB) 8 – UCA zendt file naar RSA 9 – RSA zendt file-referentie naar SDA (+ update DB) en vernietigt zichzelf (+ bericht naar SyA om te schrappen) bis: optioneel wordt een estimate voor wachttijd teruggezonden ‘op exponentiële tijdstippen’
SYNCHRO AGENT ToestelID|TransactieID|prio|richting|aanvrager|DBactie | 927 |form| -> | get… 002 | 928 |form| <- |hereis… 003 | 929 |form| -> | |hereis… 003 | 930 |form| <- | | get… DOWN- LOAD CLIENT AGENT UPLOAD CLIENT AGENT RECEIVING SLAVE AGENT SENDING SLAVE AGENT Belastingsmeteragent SERVER DB AGENT CLIENT DB AGENT POLICY AGENT DB Server (ev. DB server)Server (ev. synchro server)Mobiel toestel INTERFACE AG. TASK AGENTS INFORMATION AGENTS RECEIVING SLAVE AGENT SENDING SLAVE AGENT TOESTEL WIL ONTVANGEN 1 – CDA ziet noodzaak aan bep. dossiers (DB is ruim begrip) en meldt dit aan DCA 2 – DCA zendt aanvraag met nodige gegevens (prio, interactieID, …) naar SyA 3 – SyA plaatst aanvraag in de lijst 4 – Eenmaal dat prio > drempel, creëert SyA een SSA 5 – SSA vraagt file aan SDA (van DB) 6 – SSA contacteert DCA en zendt file na goedkeuring 7 – SSA vernietigt zichzelf 8 – DCA zendt file-referentie naar CDA (+ update DB) (+ bericht naar SyA om te schrappen) bis: optioneel wordt een estimate voor wachttijd teruggezonden ‘op exponentiële tijdstippen’
SYNCHRO AGENT ToestelID|TransactieID|prio|richting|aanvrager|DBactie | 927 |form| -> | get… 002 | 928 |form| <- |hereis… 003 | 929 |form| -> | |hereis… 003 | 930 |form| <- | | get… DOWN- LOAD CLIENT AGENT UPLOAD CLIENT AGENT RECEIVING SLAVE AGENT SENDING SLAVE AGENT Belastingsmeteragent SERVER DB AGENT CLIENT DB AGENT POLICY AGENT DB Server (ev. DB server)Server (ev. synchro server)Mobiel toestel INTERFACE AG. TASK AGENTS INFORMATION AGENTS RECEIVING SLAVE AGENT SENDING SLAVE AGENT SERVER WIL ONTVANGEN 1 – PolA ziet noodzaak aan bep. dossiers en zendt aanvraag aan SyA Analoog met toestel wil zenden 4 – SyA plaatst aanvraag in de lijst 5 – Eenmaal dat prio > drempel, creëert SyA een RSA* 6 – RSA contacteert UCA 7 – UCA vraagt file aan CDA (van DB) 8 – UCA zendt file naar RSA 9 – RSA zendt file-referentie naar SDA (+ update DB) en vernietigt zichzelf (+ bericht naar SyA om te schrappen)
SYNCHRO AGENT ToestelID|TransactieID|prio|richting|aanvrager|DBactie | 927 |form| -> | get… 002 | 928 |form| <- |hereis… 003 | 929 |form| -> | |hereis… 003 | 930 |form| <- | | get… DOWN- LOAD CLIENT AGENT UPLOAD CLIENT AGENT RECEIVING SLAVE AGENT SENDING SLAVE AGENT Belastingsmeteragent CLIENT DB AGENT POLICY AGENT DB Server (ev. DB server)Server (ev. synchro server)Mobiel toestel INTERFACE AG. TASK AGENTS INFORMATION AGENTS RECEIVING SLAVE AGENT SENDING SLAVE AGENT SERVER WIL ZENDEN 1 – PolA ziet noodzaak om bepaalde dossiers door te zenden en zendt aanvraag naar SyA Analoog met toestel wil ontvangen 2 – SyA plaatst aanvraag in de lijst 3 – Eenmaal dat prio > drempel, creëert SyA een SSA 4 – SSA vraagt file aan SDA (van DB) 5 – SSA contacteert DCA en zendt file na goedkeuring 6 – SSA vernietigt zichzelf 7 – DCA zendt file-referentie naar CDA (+update DB) (+ bericht naar SyA om te schrappen) SERVER DB AGENT
SYNCHRO AGENT ToestelID|TransactieID|prio|richting|aanvrager|DBactie | 927 |form| -> | get… 002 | 928 |form| <- |hereis… 003 | 929 |form| -> | |hereis… 003 | 930 |form| <- | | get… # actieve transacties prioriteitsdrempel DOWN- LOAD CLIENT AGENT UPLOAD CLIENT AGENT RECEIVING SLAVE AGENT SENDING SLAVE AGENT Belastingsmeteragent SERVER DB AGENT CLIENT DB AGENT POLICY AGENT DB Server (ev. DB server)Server (ev. synchro server)Mobiel toestel INTERFACE AG. TASK AGENTS INFORMATION AGENTS RECEIVING SLAVE AGENT SENDING SLAVE AGENT Case-specifiek
int GetLocalULPriority() CLIENT DB AGENT int GetLocalDLPriority() Vector DLRequestedStatements() boolean addFileToDB(String FilePath) String ProduceFileAndReturnPath (String Request) Abstract methods String ProduceFileAndReturnPath ()
SYNCHRO AGENT ToestelID|TransactieID|prio|richting|aanvrager|DBactie | 927 |form| -> | get… 002 | 928 |form| <- |hereis… 003 | 929 |form| -> | |hereis… 003 | 930 |form| <- | | get… # actieve transacties prioriteitsdrempel DOWN- LOAD CLIENT AGENT UPLOAD CLIENT AGENT RECEIVING SLAVE AGENT SENDING SLAVE AGENT Belastingsmeteragent SERVER DB AGENT CLIENT DB AGENT POLICY AGENT DB Server (ev. DB server)Server (ev. synchro server)Mobiel toestel INTERFACE AG. TASK AGENTS INFORMATION AGENTS RECEIVING SLAVE AGENT SENDING SLAVE AGENT Case-specifiek
boolean addFileToDB(String FilePath) SERVER DB AGENT String ProduceFileAndReturnPath (String Request) Abstract methods
SYNCHRO AGENT ToestelID|TransactieID|prio|richting|aanvrager|DBactie | 927 |form| -> | get… 002 | 928 |form| <- |hereis… 003 | 929 |form| -> | |hereis… 003 | 930 |form| <- | | get… # actieve transacties prioriteitsdrempel DOWN- LOAD CLIENT AGENT UPLOAD CLIENT AGENT RECEIVING SLAVE AGENT SENDING SLAVE AGENT Belastingsmeteragent SERVER DB AGENT CLIENT DB AGENT POLICY AGENT DB Server (ev. DB server)Server (ev. synchro server)Mobiel toestel INTERFACE AG. TASK AGENTS INFORMATION AGENTS RECEIVING SLAVE AGENT SENDING SLAVE AGENT Case-specifiek
int CalculateServerPriority() Abstract methods SYNCHRO AGENT ToestelID|TransactieID|prio|richting|aanvrager|DBactie | 927 |form| -> | get… 002 | 928 |form| <- |hereis… 003 | 929 |form| -> | |hereis… 003 | 930 |form| <- | | get… # actieve transacties prioriteitsdrempel
1.1 – Modellering framework Bemerkingen bij het framework AMobe implementeert ook de case-specifieke gedeelten voor Tele Atlas en IDEWE Voorlopig wordt de te zenden data als 1 geheel beschouwd indien het toestel wil zenden. Huidige principe van data opvragen: –Request via String, return via File Later eventueel: –Request via Object, return via Object
1.1 – Modellering framework Bemerkingen bij het framework Probleem: minimale trafiek over de GPRS link gewenst (zie verder) Bepaalde beslissingen in het software-ontwerp kunnen later genomen worden voor agent- georiënteerde toepassingen dan voor klassieke object-georiënteerde toepassingen
1.2 - Modellering T&I Functionaliteiten T&I Op de PC van de begeleider en op de mobiele toestellen (persoon met NAH en begeleider) worden dagschema’s en opvraagbare items gecreëerd en aangepast De persoon met NAH interageert met ontvangen memo’s; de begeleider krijgt informatie over deze interactie Analyserapporten
1.2 - Modellering T&I De modellering toont veel gelijkenissen met het framework voor Tele Atlas/IDEWE: meerdere mobiele toestellen aanwezig uitwisseling dagschema’s en opvraagbare items zijn terug te brengen tot één van de vier scenario’s (toestel wil zenden/ontvangen, server wil zenden/ontvangen)
SYNCHRO AGENT ToestelID|TransactieID|prio|richting|aanvrager|DBactie | 927 |form| -> | get… 002 | 928 |form| <- |hereis… 003 | 929 |form| -> | |hereis… 003 | 930 |form| <- | | get… # actieve transacties prioriteitsdrempel DOWN- LOAD CLIENT AGENT UPLOAD CLIENT AGENT RECEIVING SLAVE AGENT SENDING SLAVE AGENT Belastingsmeteragent SERVER DB AGENT CLIENT DB AGENT POLICY AGENT DB Server (ev. DB server)Server (ev. synchro server)Mobiel toestel INTERFACE AG. TASK AGENTS INFORMATION AGENTS RECEIVING SLAVE AGENT SENDING SLAVE AGENT Mobiele persoon NAH Mobiele begeleider Begeleider op PC Interface om dagschema en opvraagbare items te bewerken
1.2 - Modellering T&I Creatie memo-agent Een memo-agent kan door de Client DB agent gecreëerd worden om met de persoon met NAH te interageren. De memo-agent kan de reactie van de persoon met NAH op een memo registreren via de Client DB agent en die kan op zijn beurt de reactie doorsturen naar de server. Via een gelijkaardig mechanisme kan de reactie worden doorgestuurd naar het toestel van de begeleider. (creatie memo-agent)
SYNCHRO AGENT ToestelID|TransactieID|prio|richting|aanvrager|DBactie | 927 |form| -> | get… 002 | 928 |form| <- |hereis… 003 | 929 |form| -> | |hereis… 003 | 930 |form| <- | | get… # actieve transacties prioriteitsdrempel DOWN- LOAD CLIENT AGENT UPLOAD CLIENT AGENT RECEIVING SLAVE AGENT SENDING SLAVE AGENT Belastingsmeteragent SERVER DB AGENT CLIENT DB AGENT POLICY AGENT DB Server (ev. DB server)Server (ev. synchro server)Mobiel toestel INTERFACE AG. TASK AGENTS INFORMATION AGENTS RECEIVING SLAVE AGENT SENDING SLAVE AGENT MEMO AGENT
2 - Agents over GPRS Aankoop: Sierra Wireless AirCard 750 (PCMCIA cf. PenPCs Tele Atlas) + Mobistar abonnement voor GPRS Eerste test: JADE agent op laptop (met GPRS - link) laten communiceren met JADE agent op server binnen KaHoSL-LAN (beide Windows XP)
2.1 – Eigenschappen Aircard Sierra Wireless AirCard 750: multislotklasse 12 Multislot class Downlink slots Uplink slots Active slots … ………
2.1 – Eigenschappen Aircard Mogelijke scenario’s multislotklasse12 (4u,4d,5a) : 1 slot = 13.4 kbps CS2 = theoretisch optimum 1 Up, 4 Down (8-12 kbps Send, kbps Receive) 2 Up, 3 Down (16-24 kbps Send, kbps Receive) 3 Up, 2 Down (24-36 kbps Send, kbps Receive) 4 Up, 1 Down (32-48 kbps Send, 8-12 kbps Receive)
2.1 – Eigenschappen Aircard GPRS klasse B: Mobiele toestellen kunnen zowel gebruik maken van GPRS als van GSM diensten, maar niet tegelijkertijd. Tijdens een inkomend gesprek bv. zal de GPRS service tijdelijk worden stopgezet en daarna automatisch weer actief worden.
2.2 – JADE architectuur (herh.) Mogelijke opstellingen: Split Container, Remote Container, Remote Platform
2.2 – JADE architectuur (herh.) Split Container DF en AMS zijn aanwezig op de main-container
2.2 – JADE architectuur (herh.) Remote Container DF en AMS zijn aanwezig op de main-container
2.2 – JADE architectuur (herh.) Remote Platform Op beide platformen is er een DF en AMS aanwezig. MTP naar keuze of zelf te implementeren.
2.3 - Aanspreken poort binnen KaHoSL LAN Agentserver in KaHoSL LAN en agentclient in Mobistar netwerk Probleem: firewall laat slechts communicatie van buitenaf toe via een beperkt aantal standaardpoorten (8080, 22, …) Oplossing 1: via een SSH tunnel, maken we van buitenaf connectie met een host, die zowel een lokaal als een extern IP-adres (IP-forw.) heeft Oplossing 2: we plaatsen een agentserver in de DMZ-zone
Internet KaHoNet AllServ Mondriaan Fire- wall MobistarNet Scampi Opstelling 1 SSH
Internet Fire- wall Port forwarding: L 1090 mondriaan:1099 Als we lokaal op Scampi poort 1090 aanspreken, is het alsof we poort 1099 aanspreken op Mondriaan Opstelling 1 - Tunneling MobistarNet Scampi PuTTY 22
KaHoNet AllServ Mondriaan Fire- wall Opstelling 1 – KaHoSL LAN 22
Internet Fire - wall KaHoNet Mondriaan Scampi DMZ router deus Opstelling 2 MobistarNet
Internet MobistarNet Fire - wall KaHoNet Mondriaan Scampi deus remote monitoring niet secure Merk op: enkel op voorhand gekende poorten zijn aanspreekbaar Opstelling 2 router
2.3 - Aanspreken poort binnen KaHoSL LAN Vergelijking: SSH tunnelling geeft extra overhead, maar de communicatie is beveiligd. Flexibelere server- toewijzing. Agentenserver heeft enkel lokaal IP- adres. De “DMZ-oplossing” geeft minder overhead, maar de communicatie is niet beveiligd (maar kan ingebouwd worden). Remote monitoring. Agentenserver heeft extern IP-adres.
Random poorten probleem: Bij de “Remote Container” en vaak bij de “Remote Platform” opstelling worden er aan de server-zijde (random) poorten open gezet voor communicatie Bij “Split Container” gebeurt alle communicatie via één poort op de server Aanspreken poort binnen KaHoSL LAN
Remote Container Aanspreken poort binnen KaHoSL LAN
Remote Platform over HTTP Aanspreken poort binnen KaHoSL LAN
Besluit random poorten probleem: Beide opstellingen (tunneling, DMZ) vereisen dat op voorhand geweten is welke poorten gebruikt worden aan de serverzijde. De “remote container” mode maakt per definitie meerdere willekeurige poorten aan op de server. Deze mode is dus onbruikbaar. Voor de reeds bestaande MTP’s in de “remote platform” mode geldt hetzelfde. Een eigen implementatie zou kunnen helpen.
2.4 – Minimale trafiek GPRS wordt betaald per data-eenheid. Wat is de gemiddelde trafiek wanneer 2 agents communiceren of wanneer een remote agent bereikbaar wordt voor de server? Zijn er verschillen tussen “split container”, “remote container” en “remote platform”? Hoe kunnen we zelf overhead reduceren? Praktische metingen: gemeten over LAN, monitoring m.b.v. Ethereal en WinPcap, om algemeen beeld te krijgen
2.4 – Minimale trafiek AanloggenStarten agentZenden 358 TCP 324 RMI 554 TCP 174 RMI 585 TCP 174 RMI Split Container (cijfers steeds up+down, message steeds INFORM hallo)
2.4 – Minimale trafiek AanloggenStarten agent Zenden 1937 TCP 2400 RMI 346 TCP 410 RMI 1ste keer: 2471 TCP rm => s 1648 RMI s => rm 680 TCP 406 RMI rm => s 960 TCP 412 RMI Remote Container
2.4 – Minimale trafiek AanloggenStarten agent Zenden HTTP1800 TCP 6683 HTTP 0526 TCP 1881 HTTP Remote Platform
2.4 – Minimale trafiek Split container is de beste keuze (ook wat betreft poorten) (of remote platform met een eigen MTP??) Resultaten bericht zenden (essentieel aspect): 585 bytes (RMI) bytes (TCP) = 759 bytes (totaal) Vanwaar is de overhead net afkomstig? Kunnen we nog verder reduceren? Gelaagd model voor agentencommunicatie in Supporting Nomadic Agent-based Applications in the FIPA Agent Architecture (Heikki Helin)
2.4 – Minimale trafiek syntax (ACLcodec) + semantiek commun. Act + ontologies
2.4 – Minimale trafiek Heikki Helin: reduceer de overhead in elke laag Helin’s uitgangspunten: minimale trafiek, interoperability, encoderen in de lagen kan ACL performance tegenwerken Opmerking: dit model vertegenwoordigt enkel de agent-to-agent communicatie en houdt geen rekening met trafiek veroorzaakt door de architectuur van het platform!
2.4 – Minimale trafiek AC - Split container Not implem. RMI TCP FIPA-ACL vrij
2.4 – Minimale trafiek Split container: 1. architecturale ingreep opdat er geen nodeloze container-platform communicatie plaatsvindt 2. onderste lagen niet vrij te kiezen DUS moeilijk verder te reduceren Remote container biedt geen enkel wireless voordeel t.o.v. split container Remote platform: eigen MTP specificeren, ACL laag biedt nog steeds overhead
2.4 – Minimale trafiek Eigen constructie: Agentenplatform AB X Y transparantie
2.5 - Transparante technologie Voordelen GPRS als transparante technologie: Geen aanpassingen bij nieuwe technologie Gebruik over verschillende technologieën Voordelen GPRS als niet-transparante techn.: Toepassing redeneert over connectie(problem.) Bijkomende functionaliteit (SMS/GSM) geen API voorhanden
Demo + discussie
Planning komende periode Verdere implementatie van het framework (persistentie, noodscenario’s) + minimaliseren trafiek Implementatie toepassing-specifieke gedeelten voor Tele Atlas en IDEWE (toep. voor andere leden?) Ev. herziening van de modellering van de toepassing voor T&I Studie van databanken voor mobiele toestellen Start implementatie voor T&I Aankoop van een PDA uitgerust met GPRS card