interessiert ist interessant
Montag, 12. Januar 2004
Jserv als Ansatz für Erweiterungen
ein weblog läuft immer in einer spezifizierten umgebung ab. antville ist eine java-basierte entwicklung und benötigt einen servlet-container, der von einem application server zur verfügung bestellt wird.

dieser artikel beschäftigt sich mit der weiterentwicklung dieses java-servlets, ohne diese direkt anzufassen. hierzu dienen skriptsprachen wie php. vorteile dieser variante sind die sauberkeit der eigentlich entwicklung, da keine weiterentwicklung im eigentlichen sinne vorgenommen wird. zu dem ist der quellcode oft nicht mehr vorhanden bzw. durch copyright geschützt.

ausgangspunkt der überlegung ist der ablauf der requests, der generierung der anzeige. ein request an ein servlet durchläuft als erstes den webserver (hier apache-webserver). dort wird er vom modul mod_jk abgefangen und eine socketverbindung zum servlet-container (hier tomcat) aufgebaut. über diesen socket gelangt die anfrage (request) an den servlet-container. die antwort wird über die socketverbindung an mod_jk zurück gesendet und im browser als ergebnis angezeigt.
als protokolle kommen HTTP/1.1 für das erste teilstück zwischen browser und webserver und das AJP (Apache Jserv Protocol) für die socketverbindung von mod_jk und dem servelt-container zu einsatz. letzteres liegt aktuell in den versionen 1.2 und 1.3 vor.

ansatzpunkt für eine weiterentwicklung des java-servlets in php ist das apache-modul mod_jk. ziel ist es die ausgabe (response) des servlet-containers in einem string zu kapseln und einer dynamischen sprache zur verfügung zu stellen, um somit anschließend änderungen an der ausgabe vornehmen zu können.

hierzu wird der offen gelegte quellcode aus dem apache webserver (c-code) in php implementiert. ein aufruf (socketverbindung) des servlet-containers erfolgt über einen genau definierten request. dieser enthält neben argumenten (variablen für das java-servlet) auch browser- und sitzungsspezifische informationen, wie flag zur steuerung des containers.

aufbau eines AJP-request: 1) 25 request-variablen (angeführt von ASCII 1)
2) request-attribute (einzeln getrennt durch trennungsmarke (ASCII 5))
3) request-header (einzeln getrennt durch trennungsmarke (ASCII 3))
4) request-entity (angührt von ASCII 4)

damit ist es jetzt aus einem php-skript möglich, ein servlet über den servlet-container anzusprechen und auszuführen. als antwort erhält man kompakt in einem string (zeichenkette) die seite, die vom servlet erzeugt wurde.

wenn man das ergebnis genauer betrachtet (mittels parsen), so erhält man zu einen headerzeilen, gefolgt von einer leerzeile und anschließend der eigentlichen html-seite. alles nach der leerzeile stellt somit den inhalt dar und kann verändert werden.

anwendungsbereiche für eine solche lösung sind zu beispiel sitzungs- oder benutzerdaten, die aus dem ergebnis des servlets beliebig neu zusammengesetzt werden können.
einer informationsneugewinnung bis hin zur erweiterung durch einbindung von komponenten steht somit nichts im wege.

als vorteilhaft zeigen sich an dieser stelle auch die geringeren einstiegshürden, die skriptsprachen bieten.

... comment

Online for 7700 days
Last update: 2004.01.19, 07:32
status
You're not logged in ... login
menu
... home
... topics
... galleries

... ::collabor:: home
search
 
calendar
Januar 2004
Mo
Di
Mi
Do
Fr
Sa
So
 
 
 
 1 
 2 
 3 
 4 
 5 
 7 
 8 
 9 
10
11
13
14
15
16
17
18
20
21
22
23
24
25
26
27
28
29
30
31
 
 
 
recent updates
--- weblogs und webservices...
nachdem eine menge zu den grundlagen gesagt wurde,...
by andre_neubauer_berlin (2004.01.19, 07:32)
--- implematation eines...
an dieser stelle soll auf eine einfache rudimentäre...
by andre_neubauer_berlin (2004.01.19, 07:28)
vielen dank ...
... für die kritik. ich habe sie versucht bei...
by andre_neubauer_berlin (2004.01.19, 07:27)
etwas praxis kann dein...
ja mal gebrauchen : ich braeuchte unterstuetzung hierbei....
by martin_schaeffler_berlin (2004.01.18, 23:52)
wenn Sie wirklich Kommentare...
.. erwarten, dann sollten Sie in Ihrer Beschreibung...
by Hans.Mittendorfer.Uni-Linz (2004.01.16, 14:01)

xml version of this page

made with antville