Testsetup

Dit document beschrijft een setup waarin de AAAUnit is gebruikt om usage events te transporteren naar een billing server met als doel de toepassing van de AAAUnit te demonstreren. Aan de client-kant is een Apache webserver gebruikt die gegevens over http requests genereert. Aan de billing-kant is een dummy billingprogramma gebruikt dat eenvoudig requests in categorieën verdeelt en een totaalbedrag uitrekent.

Met een dergelijke opzet, waarbij over logginggegevens van een webserver billing wordt uitgevoerd, kan een Service provider webspace aanbieden voor een klant die per 'hit' betaalt. Er kan dan een overzicht worden gemaakt van bijvoorbeeld gebruikte bandbreedte van de requests en gegevens over het verwerken van de request (bijvoorbeeld bij scripts).
Een andere toepassing kan zijn dat de uiteindelijke gebruikers van de website een rekening krijgen voor het raadplegen van bepaalde gegevens of diensten. Er is dan ook authentificatie en autorisatie nodig voor de gebruikers, dat eventueel ook door de AAAUnit kan worden geregeld.

figuur 1.

Om de logginggegevens van de Apache webserver te versturen is in het kader van deze demonstratie een ApacheLogParser geschreven die de gegevens verwerkt en aan de AccountingSender doorgeeft. De Apache webserver heeft de mogelijkheid om logging informatie in plaats van naar een file naar de standaard-invoer van een programma te sturen. Het programma kan de logging gegevens dan vanuit de standaard-invoer lezen. De ApacheLogParser leest deze gegevens en verstuurt accounting berichten via de AAAUnit aan een opgegeven AAA server.
Deze implementatie is niet toereikend als ook authentificatie en autorisatie op de webserver moet worden uitgevoerd via de AAAUnit. Dan moet een dergelijke module worden geïntegreerd in de webserver, om ook berichten van de AAAUnit naar de webserver te kunnen sturen.

Aan de ontvangende kant is een eenvoudige subklasse van de AccountingHandler bij de AAAUnit geregistreerd als ontvanger van binnenkomende berichten. De handler bevestigt de berichten en speelt de gegevens door aan het billing programma. Het billing programma telt requests en verdeelt deze over een aantal categorieën. Elk van deze categorieën heeft een eigen rate en aan de hand hiervan wordt een totaalbedrag uitgerekend.
De biller die momenteel is gebruikt, is een eenvoudig programma dat werkt zonder database of iets dergelijks. Het moet mogelijk zijn om zonder al te veel aanpassingen het framework aan een "echte" biller te hangen, als de biller een dergelijke integratie toestaat.

figuur 2.

De pagina's op de webserver zijn met een webclient (browser) op te vragen. Er is ook een script gebruikt om een aantal requests tegelijk te doen. Hierbij bleek dat ook bij een behoorlijke belasting van de webserver de accounting requests werden verwerkt. De uiteindelijke performace hangt sterk af van de gebruikte protocollen en is niet in deze test gemeten.

In de AAAUnit zijn bij deze test JObjectFormat als recordformat en TCPTransport als transportprotocol gebruikt. Er kunnen eenvoudig andere recordformats en transportprotocollen worden toegevoegd, zonder dat er aan de LogParser en de AccountingHandler iets hoeft te worden veranderd.
Om het hele systeem te laten werken was alleen een nieuwe module die de binnenkomende logginginformatie leest nodig en een module die de gegevens aan de biller doorgeeft. Voor de rest zijn reeds bestaande modulen gebruikt.

Links:


Arthur <arthur@ch.twi.tudelft.nl> http://ch.twi.tudelft.nl/~arthur/
2001-01-21