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:
|