phpbar.de logo

Mailinglisten-Archive

[php] exec vs java

[php] exec vs java

Johann-Peter Hartmann php_(at)_phpcenter.de
Sun, 22 Jul 2001 18:12:02 +0200


Hi Thomas,

Thomas Beckmann schrieb:

> Hmm, aber das heißt doch, daß Java auf dem Server ausgeführt wird -
> oder? Nicht nur über servlets, sondern auch über die Extension (aha -
> *dumm guck* - macht nix, muß ich mir'n andermal ansehen) ...
> Naja, wahrscheinlich gibt's unter Java Dinge, die mit php nich' gut
> geh'n und umgekehrt ...

	Jepp, alle Javaobjekte, die direkt von PHP
	angesprochen werden, laufen natürlich da, wo
	auch das PHP stattfindet - auf dem Server.

	Wenn man Java von PHP aus ansprechen möchte,
	erkauft man sich dass mit einem kräftigen
	Overhead, weil man beide Maschinen im Speicher
	des Servers braucht.

	Es gibt zwei Varianten:
	ext/java - zu benutzen, wenn man ausnahmsweise mal
	ein Java braucht (z.B. zum nächtlichen Datenupdate
	einer Java-Anwendung), weil hier eine Java-Maschine
	durchgestartet wird. IIRC wird diese Maschine danach
	auch weiterhin im Apache-Child vorgehalten, so
	dass nicht mit jedem Zugriff eine komplette JVM
	durchgestartet werden muss - für mehrere Zugriffe
	ist diese Lösung imho trotzdem nicht zu empfehlen.

	sapi/servlet - zu benutzen, wenn man viele Requests
	hat, die viel Java brauchen. Die Servlet-Variante läuft
	genau umgekehrt zur Extension - hier gibt es keinen
	Server mit PHP, sondern nur einen Servlet-Server.

	Ein Servlet-Server kann - wie Java grundsätzlich -
	über das Java Native Interface direkt auf Bibliotheken
	des darunterliegenden Betriebssystmes zugreifen - die in
	zu Maschinencode kompilierten C oder was auch immer
	vorliegen.
	Und genauso wird PHP angefasst - als native Betriebssystem-
	bibliothek, die direkt von Java aus angesprochen werden kann.

	Und das macht der Servlet-Server, indem er Dateien mit
	der Endung PHP von einer Funktion dieser Betriebsystem-
	bibliothek bearbeiten lässt - hinter der sich
	eben nichts anderes verbirgt als die PHP-Engine selbst.

	Damit kommt man in den ganzen Komfort, die Javas JVMs
	mitbringen - Threading, Loadbalancing usw., und damit
	wird es schneller als die ext/java- Variante - zum
	Preis der Probleme, die Threads und PHP mit sich
	bringen, natürlich.

	Btw. - gibt es jemanden, der sapi/servlet unter
	ernsthafter Load einsetzt ?

	Viele Grüße, johann






php::bar PHP Wiki   -   Listenarchive