Technologievergleich PHP - JSP/Servlet

Hallo

Ich habe eine Frage zu einem Technologievergleich zwischen PHP und JSP/Servlet. In beiden Technologien habe ich eine Applikation geschrieben, die es zulässt, dass sich mehrere Benutzer einloggen (MySQL) und dann unabhängig von einander durch das "Programm" durch navigieren.

Nun muss ich im Rahmen einer wissenschaftlichen Ausarbeitung einen fundierten Technologievergleich machen.

Hat jemand von euch gute Adressen, an die man sich wenden könnte (Links etc) um nach Material zu suchen?

Wurde schon mal ein solcher Vergleich gemacht? Wenn ja, wo könnte mal da mal einsicht nehmen?

Ich würde mich freuen, wenn mir jemand bei dieser Aufgabe auf die Sprünge helfen könnte.

Kurz noch zur Applikation:
In der PHP Ausführung habe ich das Servlet durch eine PHP Seite nach gebildet, die nach der Auswertung des Requests ohne Ausgaben durch einen HTTP Header einen redirect macht. Für die Session habe ich eine eigene Klasse für die get/set Modalität geschrieben.

Aber um daraus eine 100 Seitige Ausarbeitung zu machen, gehört wohl noch mehr dazu :)?

Soderli... evtl. hat ja der eine oder ander eine Idee oder nen Tipp
Bis gleich :)

Gruß LinuxVSmicrosoft
 
Original geschrieben von linuxvsmicrosoft
Hallo

Ich habe eine Frage zu einem Technologievergleich zwischen PHP und JSP/Servlet. In beiden Technologien habe ich eine Applikation geschrieben, die es zulässt, dass sich mehrere Benutzer einloggen (MySQL) und dann unabhängig von einander durch das "Programm" durch navigieren.

Nun muss ich im Rahmen einer wissenschaftlichen Ausarbeitung einen fundierten Technologievergleich machen.

Hat jemand von euch gute Adressen, an die man sich wenden könnte (Links etc) um nach Material zu suchen?

Wurde schon mal ein solcher Vergleich gemacht? Wenn ja, wo könnte mal da mal einsicht nehmen?

Ich würde mich freuen, wenn mir jemand bei dieser Aufgabe auf die Sprünge helfen könnte.

Kurz noch zur Applikation:
In der PHP Ausführung habe ich das Servlet durch eine PHP Seite nach gebildet, die nach der Auswertung des Requests ohne Ausgaben durch einen HTTP Header einen redirect macht. Für die Session habe ich eine eigene Klasse für die get/set Modalität geschrieben.

Aber um daraus eine 100 Seitige Ausarbeitung zu machen, gehört wohl noch mehr dazu :)?

Soderli... evtl. hat ja der eine oder ander eine Idee oder nen Tipp
Bis gleich :)

Gruß LinuxVSmicrosoft


PHP und J2EE sind zwei nicht vergleichbare Technologien.
JSP/Servlets sind nur ein Teil von J2EE und allein nicht annähernd so mächtig wie
die J2EE im ganzen.

Für viele Dinge ist J2EE und ein n-tier Modell aber ein overkill. Dort ist die Lücke für
PHP die es perfekt ausnutzt.
Wenn du die beiden Techniken - ernsthaft - miteinander vergleichen willst dann gehört zu J2EE nicht nur JSP/Servlets sondern JDBC JMX EJB JINI SOAP und auch mit Projekten wie jakarta-struts

Ich beschäftige mich jetzt ca 1.5 Jahre mit J2EE und ich würde mich nicht als J2EE Experte bezeichnen, aber soviel weiss ich.
Ein Vergleich mit PHP würde dem nicht gerecht werden was J2EE zu leisten vermarg.
J2EE ist für grosse n-tier Applikationen entwickelt worden und JSP decken nur einen Teil der Schicht ab. Auch Servlets Standalone sind zwar praktikabel, aber entfalten ihre Macht erst in der Verbindung mit EJBs und einem guten Applikationsserver.
Aber gerade diese Geschichte (EjB) ist so komplexx das mann damit allein um sie einigermassen zu verstehen, mehrere Wochen -bzw- Monate lernen muss.

Demnach rate ich dir lieber von solch einem Vergleich ab, da dies 2 Unterschiedliche Welten sind.


PS: Dein nick ist ziemlich dumm


http://java.sun.com/j2ee/index.jsp
 
PHP - JSP/Servlet Technologievergleich

Hallo Christian,

das Hauptproblem an der ganzen Geschichte ist, dass ich es mir nicht aussuchen kann, ob ich die Technologien vergleichen möchte oder nicht.
Diese Aufgabe hat sich aus div. Umständen ergeben und daher habe ich diese aufgetragen bekommen (Diplomarbeit).
Nun ist es wirklich schwierig, derart unterschiedliche Technologien vergleichen zu wollen, wenn man rein Programmiertechnisch nicht der bewandertste ist.
Aber eine Lösung muss zu finden sein!
Zudem wurde im JSP Projekt auch nur JSP/Servlet und Bean Technologie eingesetzt, und nicht mehr. Von daher werde ich auch nur diese "TeilTechnologie" im Bezug des J2EE Spektrums dem PHP gegenüber stellen.

@all:
Trotzdem wäre ich über jede Hilfestellung dankbar.
Gruß
LinuxVSmicrosoft


PS: zum Nick: mein Nick war vergeben, und was besseres ist mir nicht eingefallen :-|
 
Zuletzt bearbeitet:
Re: PHP - JSP/Servlet Technologievergleich

Original geschrieben von linuxvsmicrosoft
Hallo Christian,

das Hauptproblem an der ganzen Geschichte ist, dass ich es mir nicht aussuchen kann, ob ich die Technologien vergleichen möchte oder nicht.
Diese Aufgabe hat sich aus div. Umständen ergeben und daher habe ich diese aufgetragen bekommen (Diplomarbeit).
Nun ist es wirklich schwierig, derart unterschiedliche Technologien vergleichen zu wollen, wenn man rein Programmiertechnisch nicht der bewandertste ist.
Aber eine Lösung muss zu finden sein!
Zudem wurde im JSP Projekt auch nur JSP/Servlet und Bean Technologie eingesetzt, und nicht mehr. Von daher werde ich auch nur diese "TeilTechnologie" im Bezug des J2EE Spektrums dem PHP gegenüber stellen.

In dem Fall würde ich aber bei dieser Diplomarbeit aber herausstellen das JSP/Servlet Programmierung nur ein Teil des ganzen ist ;)

Ok ich könnte dich jetzt mit Links zuballern, aber ich will es mal ein bischne beschränken:
jsp-develope.de
j2ee-develope.de
java.sun.com/j2ee/
jakarta.apache.org/struts <- unbedingt anneignen und erwähnen. Struts zeigt wozu Servlets fähig sind..

JSP sind letztendlich nichts anderes als HTML Seite mit Java Code embedded, ähnlich nach dem PHP Prinzip. JSPs werden letztendlich vom Jasper dem JSP Compiler in Servlets umgewandelt.
Servlets sind Java Klassen die sich von javax.servlet.GenericServlet ableiten, oder HttpServlet welches wiederum ein Erbe von GenericServlet ist.

Ein grosser vorteil von Servlets sind deren Lebenszyclus. Servlets werden mit dem ServletContainer (z.b Tomcat oder Macromedia JRun oder einem Applikationsserver
wie IBM Websphere, JBoss, BEA Weblogic) zusammen initiert, geladen.
Jeder HTTP Request läuft in einem eigenen Thread über das Servlet. Bei Perl CGI
und wenn ich mich nicht täusche auch bei PHP sieht das anders aus, dort gibt es
für jeden Thread eine instanz der Seite (bzw wird für jeden Aufruf neu interpretiert).
Dies gibt Servlets einen entscheidenden Geschwindigkeitsvorteil von PHP und CGI.
Auch eine andere Java Krankheit wird damit umgangen, der normalerweise vergleichsweise
hohe Speicherbedarf einer Java anwendung.

Durch diesen Lebenszyclus eines Servlets ermöglicht zudem eine anpassbare Handhabung
des Servlets. Sprich es ist möglich den kompletten Ablauf andersweitig zu steuern, so
gibt es unter PHP zwar ein include, aber kein Forward welches ohne erneuten Request
die HTTP Daten an ein neues Script übergibt und das alte soweit verwirft.
Der Nachteil von Servlets ist das die Lernkurve nicht so flach ist wie bei PHP. Die
Einfachheit und deshalb auch schnelle benutzbarkeit von PHP ist ein Vorteil für diese
Sprache, der wohl zu einem ganz grossen Teil dafür verantwortlich ist das PHP so
erfolgreich geworden ist.
Die mächtige Freiheit bei der ServletProgrammierung sorgt im Gegenzug dafür leider
allzuoft für Frustrationsphasen. Dies tritt auch bei jenen auf die schon länger damit arbeiten
:rolleyes:

Thema OOP.
PHP macht mit Version 5 ein grossen Schritt in richtung ernsthafte OOP. Dennoch ist auch mit Version 5 PHP keine Object Orientierte Sprache. Es sind zuwenig Pattern ernsthaft möglich mit PHP einzuhalten.
So gibt es keine Kapselung und somit fällt auch der Singleton Pattern flach.
Java ist wohl eine der konsequentesten OOP Sprachen überhaupt, und kann hier ganz klar
Punkten.

Thema Anbindung.
Gerade grosse Datenbank Systeme, von Oracle oder IBM (DB2) werden immer mehr zu
einer Eierlegenden Wollmilchsau. Genauso wie ERP Systeme von SAP usw bieten jene
Programme grundsätzlich eine Schnittstelle in Java an, und sind auf den Zugriff von Java
aus optimiert. Dieser Zugriff geht um einiges Weiter als normale Datenbankoperationen wie
mann sie auch von mysql - php kennt.

Thema Verteilte Applikationen.
J2EE gibt einen durch Applikationsserver ein tolles Werkzeug in die Hand, um Applikationen
über mehrere Rechner zu verteilen, ohne einen riesen Administrationsaufwand zu betreiben.
Applikationsserver sorgen weitestgehend selbst sich seine Komponenten (EjB) zu finden /
anzusteuern.

Thema unterstützung durch OpenSource
Die Apache Group ist einer der hauptlieferanten für Java OpenSource. Nicht nur der Tomcat
sondern gerade so tolle Projekte wie Struts, Cocoon sind unter der PHP Plattform nicht verfügbar. PHP konternet mit ebenso leistungsfähigen OpenSource Projekten wie Zope. Ein Framework wie Struts ist mir aber leider unter PHP nicht bekannt (würde mich über diese Info freuen).


Der grosser und wichtiger Unterschied zwischen JSP/Servlets und PHP ist jener das einem die ganze Mächtigkeit der Java API zur verfügung steht, und Servlets/JSP in Bytecode kompiliert werden. Zudem ist PHP nur "fast" Plattformunabhängig.
Das heisst es ist prinzipiell auf Windows genauso lauffähig wie auf UNIX. Die Probleme fangen aber schon bei sowas wie Dateipfade an.
Java bietet hier aufgrund seiner Plattformunabhängigen Designs hilfen an wie
File.separator welcher auf Windows Systemem "\" darstellt und auf unix Systemen "/".
Sprich mann kann auch ohne Probleme feste Dateipfade nutzen und diese werden plattforumanabhängig gemapped.

Naja das nur so zu anfang ;)
 
PHP - JSP/Servlet Technologievergleich

Hallo Christian,

WOW, das hätte ich nicht erwartet. eine super umfangreiche Antwort, auch wenn ich noch nicht alles realisiert habe, was Du geschrieben hast. Ich werde es wohl noch 2,3 mal lesen müssen, bis ich nur annähernd verstanden habe, was Du mir sagen willst :)

Danke schon mal im Voraus
Ich hoffe blos, dass ich dieses ganze Thema irgendwie unter einen Hut bekomme in der knappen Zeit.

ABER DANKE FÜR DEINE MÜHE
 
JSP - PHP Lasttests

da ist mir doch glatt noch was eingefallen :)

sind jemandem Tests/Unterlagen bezüglich Last- / Geschwindigkeitstests (Vergleiche) im Bezug auf JSP und Php bekannt?

Diese würde ich gerne in die Arbeit einfließen lassen. Solche Werte selbst bestimmen zu wollen (daheim, ohne Server, auf einem Rechner mit einer Mini Application) ist schier unmöglich.
 
Re: JSP - PHP Lasttests

Original geschrieben von linuxvsmicrosoft
da ist mir doch glatt noch was eingefallen :)

sind jemandem Tests/Unterlagen bezüglich Last- / Geschwindigkeitstests (Vergleiche) im Bezug auf JSP und Php bekannt?

Diese würde ich gerne in die Arbeit einfließen lassen. Solche Werte selbst bestimmen zu wollen (daheim, ohne Server, auf einem Rechner mit einer Mini Application) ist schier unmöglich.

Kleiner Tip:

Da gibts nichts zu vergleichen. Servlets liegen in Bytecode vor, der bei 90% der Gechwindigkeit von nativen Appliaktionen (wie in C++) liegt. Laut iX (oder wars c't)
übertrifft die Geschwindigkeit manchmal den nativen Gegner, wenn der javac
wunderbar optimieren kann.
Der javac der bei Applikationsservern dabei ist, ist auf diese Anforderrung spezialisiert,
und sollte um den Faktor 10 schneller sein als PHP.

Ich kann mich da mal an einen Benchmark errinnern, der .net (Der Java Herausforderer)
den Faktor 10 schneller gemessen hat als PHP.
Heise hat auch mal C# und Java verglichen. In diesem Vergleich schnitt Java
ausser in einer Operation immer geringfügig besser als C# ab.

Du wirst aber kaum ein Benchmark finden, der nicht von irgendeiner Seite geschönt wurde.
Und PHP mit Java geschwindigkeitstechnisch, zu vergleichen ist sinnlos, da PHP
eine typunsichere Scriptsprache ist, die aufgrund dessen auch nicht an die
Geschwindigkeit rankommen kann.
 
Lasttest

Hallo Christian,

Falls Du noch irgendwie an den Artikel dran kämest, das wäre super. Dann könnte ich ja aus diesem Artikel zitieren, ne halbe Seite schreiben und gut. Damit wäre ja der Testerei mehr als genüge getan... weil eine fundierte Grundlage zum argumentieren brauch ich da ja schon. Hoffe DU hast die IX oder C´t noch nicht entsorgt...
 
Zurück