Performance Vergleich JAVA/PHP
|
|
- Agnes Baumgartner
- vor 8 Jahren
- Abrufe
Transkript
1 Performance Vergleich JAVA/PHP Walter Jenner B A K K A L A U R E A T S A R B E I T Nr A eingereicht am Fachhochschul-Bakkalaureatsstudiengang Medientechnik und -design in Hagenberg im Jänner 2006
2 Diese Arbeit entstand im Rahmen des Gegenstands Wep Applications im Wintersemester 2005/06 Betreuer: DI Rimbert Rudisch ii
3 Erklärung Hiermit erkläre ich an Eides statt, dass ich die vorliegende Arbeit selbstständig und ohne fremde Hilfe verfasst, andere als die angegebenen Quellen und Hilfsmittel nicht benutzt und die aus anderen Quellen entnommenen Stellen als solche gekennzeichnet habe. Hagenberg, am 2. Februar 2006 Walter Jenner iii
4 Inhaltsverzeichnis Erklärung Kurzfassung Abstract iii vi vii 1 Einleitung 1 2 PHP Geschichte PHP ist eine Scripting Sprache PHP Beschleuniger Zend-Engine JAVA Allgemeines zu JAVA Argumente für JAVA Performance Aspekte der Sprache Servlet Engine Performance Vergleich der Engines Tests Einleitung Test Applikation JAVA Applikation PHP Applikation Server Setup Software Hardware Test Software - JMeter Einleitung Verwendete Funktionen Testfälle INDEX Test: ohne Datenbankzugriff iv
5 INHALTSVERZEICHNIS v Testfall 2: LIST Test Testfall 3: MIXED Test Ergebnisse Einleitung INDEX TEST LIST TEST MIXED TEST eaccelerator JAVA vs. PHP Fazit Jmeter eaccelerator PHP oder JAVA? Schlusswort A PHP - Source Code 21 A.1 PHP-Datei index.php Literaturverzeichnis 23
6 Kurzfassung PHP und JAVA sind zwei grundlegend verschiedene Programmiersprachen, PHP ist eine Script Sprache, JAVA hingegen eine moderne objektorientierte Programmiersprache. Mit beiden kann man dasselbe Ziel verfolgen, das Implementieren einer Web Applikation. Eine bisher noch nicht komplett beantwortete Frage ist, welche der beiden Sprachen dabei nun schneller und performanter ist. Von der Funktionalität nähert sich PHP immer mehr den wirklichen Programmiersprachen an, so unterstützt PHP 5 inzwischen schon eine recht weit entwickelte Objekt - Orientierung mit abstrakten Klassen und Zugriffsmodifizierern; was allerdings bleibt ist der grundlegende Unterschied, dass PHP eine interpretierende Sprache ist, bei der der Code zur Laufzeit kompiliert wird. JAVA hat andere Klötze am Bein, wie zb. den Garbage Kollektor, und zieht in Performance - Vergleichen zu C++ immer wieder den Kürzeren. Beide Sprachen haben also ihre Tücken was die Schnelligkeit betrifft - um herauszufinden, welche der beiden Sprachen nun die performantere ist, sollen im Rahmen dieser Arbeit verschiedene Testfälle mit Hilfe von Test Werkzeugen ausprobiert und analysiert werden. Eine einfache FAQ Applikation wurde dabei einmal in PHP und einmal in JAVA implementiert und mit Hilfe des Open Source Tools Jmeter getestet. Beide Anwendungen greifen auf eine mysql Datenbank zu, damit die Performance bei Datenbankzugriffen getestet werden kann. Natürlich (oder: Es) wird auch getestet welche Technologie bei der Erstellung von dynamischen Inhalten ohne Datenbank Zugriff die schnellere ist. Zusätzlich wird die Wirkung des PHP Beschleunigers eaccelerator beobachtet. [ÄNDERN]Dabei wurde festgestellt, dass die Welt rund ist, dass Lügen kurze Beine haben und dass JAVA im Vergleich zu PHP eindeutig das bessere Reiseziel ist. Vorallem der Vulkan Bromo auf Ost JAVA soll einen Besuch wert sein. vi
7 Abstract PHP and JAVA sind zwei grundlegend verschiedene Programmiersprachen, PHP ist eine Script Sprache, JAVA hingegen eine moderne objektorientierte Programmiersprache. Mit beiden kann man dasselbe Ziel verfolgen, das Implementieren einer Web Applikation. Eine bisher noch nicht komplett beantwortete Frage ist, welche der beiden Sprachen dabei nun schneller und performanter ist. Von der Funktionalität nähert sich PHP immer mehr den wirklichen Programmiersprachen an, so unterstützt PHP 5 inzwischen schon eine recht weit entwickelte Objekt - Orientierung mit abstrakten Klassen und Zugriffsmodifizierern; was allerdings bleibt ist der grundlegende Unterschied, dass PHP eine interpretierende Sprache ist, bei der der Code zur Laufzeit kompiliert wird. JAVA hat andere Klötze am Bein, wie zb. den Garbage Kollektor, und zieht in Performance - Vergleichen zu C++ immer wieder den Kürzeren. Beide Sprachen haben also ihre Tücken was die Schnelligkeit betrifft - um herauszufinden, welche der beiden Sprachen nun die performantere ist, sollen im Rahmen dieser Arbeit verschiedene Testfälle mit Hilfe von Test Werkzeugen ausprobiert und analysiert werden. Eine einfache FAQ Applikation wurde dabei einmal in PHP und einmal in JAVA implementiert und mit Hilfe des Open Source Tools Jmeter getestet. Beide Anwendungen greifen auf eine mysql Datenbank zu, damit die Performance bei Datenbankzugriffen getestet werden kann. Natürlich (oder: Es) wird auch getestet welche Technologie bei der Erstellung von dynamischen Inhalten ohne Datenbank Zugriff die schnellere ist. Zusätzlich wird die Wirkung des PHP Beschleunigers eaccelerator beobachtet. [ÄNDERN]Dabei wurde festgestellt, dass die Welt rund ist, dass Lügen kurze Beine haben und dass JAVA im Vergleich zu PHP eindeutig das bessere Reiseziel ist. Vorallem der Vulkan Bromo auf Ost JAVA soll einen Besuch wert sein. vii
8 Kapitel 1 Einleitung Dynamische Webseiten sind heutzutage alltäglich, nahezu jede Webseite beinhaltet inzwischen schon dynamische Teile. Dabei reicht die Bandbreite von komplexen Applikationen wie Online-Shops zu relativ simplen Seiten wie beispielsweise Gästebüchern. Neben den klassischen Wartezeiten, denen der Internet Surfer durch die beschränkte Netzwerkgeschwindigkeit ausgesetzt ist, kommt bei dynamischen Webseiten noch hinzu, dass der Webserver die Webseite für jede Anfrage erst erstellen muss, bevor sie über das Internet an den Client übertragen werden kann. Speziell bei komplexen Anwendungen und/oder bei Webseiten die sehr viele Anfragen gleichzeitig abarbeiten müssen, ist es wichtig, dass man eine Technik einsetzt, die diesen Anforderungen gerecht wird und dem Betrachter so schnell wie möglich die gewünschten Informationen übermitteln kann. Deswegen spielt bei der Entscheidung welche Technik man einsetzt, die Performance der Programmiersprache eine wichtige Rolle. Bei der Implementierung bieten sich dem Programmierer viele Programmiersprachen an, mit denen das selbe Ziel erreicht werden kann. Zwei bekannte Beispiele sind JAVA Web Applikationen, die mit Hilfe von Servlets 1 und JSP 2 Seiten umgesetzt werden. Eine andere weit verbreitete Programmiersprache ist PHP 3. Daneben gibt es noch eine Reihe weitere Technologien die eingesetzt werden könnten, wie CGI, Microsoft.NET 4, Perl 5 und Ruby 6. Ich möchte in dieser Arbeit die Skriptsprache PHP mit JAVA Web Applikationen anhand von Load-Tests in der Performance vergleichen. Die Arbeit ist so aufgebaut, dass am Anfang Allgemeines über die Performance von PHP und JAVA erläutert wird. Darauf folgt das Hardware und
9 KAPITEL 1. EINLEITUNG 2 Software Setup und die Erklärung der Testfälle und der Testapplikation. Im Anschluss an jeden Testfall werden die jeweiligen Ergebnisse präsentiert. Zum Schluss kommt ein umfangreiches Fazit, in dem alle Ergebnisse reflektiert und durchdacht werden.
10 Kapitel 2 PHP 2.1 Geschichte [ÄNDERN]Geschichte. Lerndorf. rekursives akronym. Folgendes in den PHP Einleitungstext einbauen: Einfache Erlernbarkeit Weite Verbreitung, nahezu auf jeden Server einfache Installation einer Entwicklungsumgebung 2.2 PHP ist eine Scripting Sprache PHP ist eine Scripting Sprache, das heißt der Quell Code wird zur Laufzeit kompiliert. Das hat zur Folge, dass bei jedem Aufruf eines PHP Skripts der Code zuerst geparst werden muss, bevor er ausgeführt werden kann. Es liegt auf der Hand, dass das Performance kostet und eigentlich unnötig ist, da der Source Code nur dann neu kompiliert werden müsste, wenn sich etwas geändert hat. Genau da haken PHP Beschleuniger ein, die auf dem Webserver installiert werden können. Sie behalten kompilierte Skripte in einem Cache, und liefern diese kompilierte Version an neue Anfragen aus. Dadurch wird unnötiges kompilieren vermieden und die Ausführung von PHP Skripten wird deutlich beschleunigt PHP Beschleuniger Am Markt befinden sie mehrere Implementatierungen solcher Beschleuniger, ein bekannter frei verfügbarer ist der Zend Optimizer 1 der aktuell in der Version 2.5 erhältlich ist. Eine Alternative dazu ist das Open Source 1 3
11 KAPITEL 2. PHP 4 Projekt eaccelerator 2, das Ende 2004 mit der Weiterentwicklung des eingeschlafenen Projektes Turck begonnen hat. Eaccelerator ist beispielsweise bei dem XAMPP Paket der apachefriends 3 inkludiert. Weitere Beschleuniger sind PHP Accelerator 4 und APC 5. Für das Test Setup wird eaccelerator verwendet, wobei sowohl Tests mit als auch ohne Beschleuniger durchgeführt werden, um so auch feststellen zu können, ob und wieviel dessen Einsatz bringt. 2.3 Zend-Engine Die Zend-Engine 6 ist der Compiler der PHP Quell Code parst und ausführt. Die Entwicklung daran begann 1997 und der Name Zend tauchte erstmals 1999 auf. Er basiert auf den Namen der beiden Entwicklern Zeev Suraski and Andi Gutmans. Die Software wird als Open-Source Projekt geführt
12 Kapitel 3 JAVA 3.1 Allgemeines zu JAVA JAVA Web Applikationen basieren auf Servlets und JSP Seiten Argumente für JAVA Wenn auf bestehende JAVA Applikation aufgebaut werden soll Es können leichter viele Entwickler daran arbeiten? testing: Junit erprobte und bewährte Framework - Struts, Spring voll aus gereifete OO Programmiersprache Datenbank Zugriff: Prepared Statements, Connections Pools 3.2 Performance Aspekte der Sprache Für jeden Request wird ein eigener Thread gestartet, was schneller geht, als würde jedesmal ein neuer Prozess gestartet wird. (Wird bei PHP jedesmal ein Prozess gestartet?) Auf Unterschiede in der Performance zwischen Servlets, JSP Seiten (mit und ohne JSTL), und Frameworks hinweisen. Inkl. Erklärung warum diese Unterschiede entstehen. Dabei auf den ix Test verweisen und die dazugehörige Graphik einbauen. 3.3 Servlet Engine Im Gegensatz zu PHP 1 existieren für JAVA viele verschiedene Implementierungen die als JAVA Engine einsetzbar sind. Als offizielle Referenzim- 1 Bei PHP ist die Zend Engine die einzige verfügbare PHP Engine. 5
13 KAPITEL 3. JAVA 6 plentierung der JAVA Servlet und JSP Spezifikationen 2 dient der Tomcat 3 Container der Apache Group, der sowohl als voll funktionsfähiger standalone HTTP Server als auch als Erweiterung eines Webservers betrieben werden kann. Als Apache Projekt ist dieses Applikation Open Source. Andere Beispiele von JAVA Servern sind Jetty 4, Macromedia Jrun 5 und New Atlanta s ServletExec 6. Für den praktischen Teil dieser Arbeit wird Tomcat im standalone Betrieb verwendet. Für die Tests bedeutet das, dass nicht JAVA ansich getestet wird, sondern das Gespann JAVA und Tomcat Performance Vergleich der Engines Über die Performance der einzelnen Container gibt zwar einige Untersuchungen, diese sind allerdings relativ alt und somit wenig aussagekräftig. Ein Test 7 eines Studenten der Universität Dortmund aus dem Jahr 2000 vergleicht beispielsweise die Servlet Engines Jigsaw 2.0.3, Jetty 2.2.4, Java Webserver 2.0 und die als Apache Plug-in betriebenen Engines JRun Pro 2.3.2, JServ 1.0 und ServletExec 2.2. Dabei schnitten die Standalone Server im Allgemeinen besser ab, und im Speziellen hoben sich Jigsaw und Jetty hervor. Tomcat gab es zu diesem Zeitpunkt noch nicht, dieses Projekt erwachte erst zum Leben, als Sun die Entwicklung des Java Webservers einstellte und die Aufgabe der Implentierung eines Referenzservers an Apache abgab. Ein Student der TU Wien führte 2001 auch einen Vergleich von verschiedenen Servlet Engines durch 8. Dabei wurden Jetty-3.1.9, Jetty-4.0.4, resin und tomcat full.2jpp miteinander verglichen. Tomcat war dabei der schnellste Container, gleichzeitig aber auch der Fehler anfälligste e /work/servletengines.html
14 Kapitel 4 Tests 4.1 Einleitung Es wird eine einfache Web Applikation einmal in Java und einmal in PHP implementiert. Es soll getestet werden, welche Applikation unter heavy-load schneller die Anfragen abarbeiten kann, also welche Technologie die performantere ist. Zusätzlich soll auch noch die Schnelligkeit beider Sprachen bei Datenbank Zugriffen getestet werden. Dabei werden beide Applikationen auf dieselbe mysql Datenbank zugreifen. Die Java Applikation wird mit einem Connection Pool des Spring WebMVC Frameworks arbeiten, und Prepared-Statements verwenden. In einer weiteren Testreihe soll der Nutzen des PHP Beschleunigers eaccelerator getestet werden. 4.2 Test Applikation Als Beispiels Applikation dient ein Faq Verwaltungs Tool. Es können neue FAQs (Frage - Antwortpaare) hinzugefügt und bestehende bearbeitet bzw gelöscht werden. Alle FAQs können in einer Liste oder einem TOC 1 angezeigt werden JAVA Applikation Die JAVA Implementation (Abb. 4.1) basiert auf dem MVC 2 Modell, was bedeutet das die Applikation in 3 Schichten zerteilt ist. Das Model dient der Datenhaltung der Objekte, mit in der Applikation gearbeitet wird, auch Business Objects genannt. In dieser Applikation sind das die Faq Objekte, die als JavaBean Klasse implementiert sind. Der Controllers dient als zentrale Stelle, die alle Anfragen entgegennimmt, und auf die richtigen Seiten 1 Table Of Contents 2 Model - View - Controller 7
15 KAPITEL 4. TESTS 8 Abbildung 4.1: Ausgabe eines Graph Result Listeners weiterleitet. Die Ausgabe bzw. die Darstellung von Seiten ist die Aufgabe der Views. Die sind durch JSP Seiten verwirklicht. Als unterstützende Technologie für den Datenbank Zugriff kommen ConnectionPools und DataSources des Spring Web Frameworks 3 zum Einsatz. Das erlaubt einerseits die Konfiguration der Datenbank Zugangsdaten über eine XML File, was in weiterer Folge bedeutet, dass das Servlet bei Änderung dieser Daten lediglich neu geladen werden muss, und nicht neu kompiliert. Das bringt rein administrative Vorteile, ist also für die Tests nicht weiter von Bedeutung. Die Connection Pools übernehmen die Verwaltung von Datenbank Connections. Das sollte Performance Vorteile bringen, da ein Pool von Connecitons zeitaufwendiges Auf- und Abbauen von Datenbank Verbindungen reduziert. Schlussendlich werden auch Prepared Statements verwendet. Somit werden insgesamt einige Vorteile von JAVA gegenüber von PHP ausgenützt, wodurch das Test Setup näher an der Realität ist.
16 KAPITEL 4. TESTS 9 Abbildung 4.2: Ausgabe eines Graph Result Listeners PHP Applikation Auch die PHP Applikation (Abb. 4.2) versucht, sich an das MVC Konzept anzulehnen. Der Controller ist praktisch gleich zu dem der JAVA Applikation, die Views sind von der Programmlogik getrennt mit Funktionen umgesetzt worden und als Schnittstelle zur Datenbank wurde eine Repository Klasse geschrieben. Die Architektur der beiden Applikation ist somit also vergleichbar. 4.3 Server Setup Software Linux SuSe 9.2 Apache Tomcat/ standalone Apache 2 PHP Version
17 KAPITEL 4. TESTS 10 MySQL Apache Jmeter Eaccelerator J2SE Es wurde die jeweilige Standard Konfiguration der einzelnen Programme verwendet, um so eine möglichst einfache und repräsentative Basis für die Tests zu haben. Es liegt auf der Hand, dass man jeden Server auf jede Applikation anpassen kann, um so eine möglichst gute Performance zu erreichen. Genau das sollte vermieden werden, damit man möglichst allgemein gültige und somit verwertbare Ergebnisse bekommt Hardware Server AMD Athlon XP Mhz FSB 512 MB DDRAM PC333 Client Simulator DELL Notebook Pentium MB RAM 4.4 Test Software - JMeter Einleitung Jmeter ist eine Java Desktop Applikation der Apache Gruppe mit der die Performance von Web Applikationen getestet werden kann Verwendete Funktionen ThreadGroup Jeder Test wird durch einen Testplan definiert. Als zentrales Element muss dem Testplan eine ThreadGroup hinzugefügt werden, mit deren Hilfe die Number of Threads, die Ramp Up Periode und der Loop Count spezifiziert werden. Number of Threads definiert die Anzahl von verschiedenen Threads, also die Anzahl der simulierten User die auf die zu testende Webseite zugreifen sollen.
18 KAPITEL 4. TESTS 11 Die Ramp Up Periode ist die Zeit die zum Starten aller User verwendet wird. Bei 5 User und 5 Sekunden Ramp Up Zeit wird jede Sekunde ein Thread (= User) gestartet. Loop Count spezifiert die Anzahl wie oft ein Testplan durchgelaufen werden soll. Es gibt die Einstellungsmöglichkeit forever, die zur Folge hat, das der Testplan immer wieder ausgeführt wird. HTTP Request Defaults Mit Hilfe eines HTTP Request Defaults können Standard Konfigurationen für alle HTTP Requests definiert werden. Das kann beispielsweise die IP bzw. die Domain oder der Port der zu testenden Webseite sein, was des öfteren Sinn machen kann. HTTP Request Mit diesem Element werden Requests dem Testplan hinzugefügt. Dabei muss die URL spezifiziert werden, und es kann die IP und der Port definiert werden. Zusätzlich können beliebige GET/POST Parameter angeben werden, sowie ein File das mitgeschickt werden soll. Dank der Möglichkeit GET/POST Parameter mitzuschicken, ist es möglich das Versenden eines Formulars zu simulieren, was bei einem der Testfälle dieser Arbeit auch gemacht wird. Graph Results Graph Results Elemente gehören zu der Gruppe der Listeners. Diese sind nötig um Testergebnisse aufzuzeichnen und zu visualisieren. Dabei reicht es aus irgendeinen Listener auf selber Ebene eines Requests zu plazieren um dessen Ergebnisse aufzeichen zu können. Im Nachhinein kann man dann mit jedem anderen Listener die aufgezeichneten Daten des einen Listeners visualisieren. Deswegen sollte man für das Durchführen der Tests lediglich einen Listener dem Testplan hinzufügen, da jeder weitere unnötig die Performance des Client Rechners beeinträchtigt. Auch noch zu erwähnen ist, dass Jmeter die Ergebnisse der Tests - wie auch die Testpläne selbst - in XML Files 4 speichert, wodurch der Weiterverarbeitung der Daten keine Grenzen gesetzt sind. In Abb. 4.3 sieht man die Ausgabe eines Graph Result Listeners. Request Recording Eine sehr nützliche Funktion von Jmeter erlaubt es, mit einem beliebigen Browser durch die zu testende Seite zu navigieren und diesen Pfad als Abfolge von Anfragen aufzuzeichnen, die automatisch einem Testplan hinzu- 4 Es besteht auch die Möglichkeit, CSV als Ausgabe Format zu wählen
19 KAPITEL 4. TESTS 12 Abbildung 4.3: Ausgabe eines Graph Result Listeners gefügt werden. Wenn man also komplexere Tests mit mehreren Anfragen hintereinander durchführen will, ist das sehr praktisch. Diese Funktionalität ist auch bei einem Test dieser Arbeit eingesetzt worden. Starten von Testplänen über Ant Skripte Ein JAR das es ermöglicht, Jmeter Testpläne über Ant 5 anzusprechen und zu starten, ist auch standardmäßig im Jmeter Paket enthalten. Dadurch ist es möglich das Ausführen zu automatisieren und somit zu vereinfachen. Bei komplexeren Tests, kann das durchaus eine Hilfe sein. Vom Schöpfer 6 dieser Erweiterung, wurden auch XSLT - Stylesheets zur Verfügung gestellt, mit denen das im XML Format vorliegende Ergebnis eines Testdurchlaufs in HTML transformiert werden kann jfifield@programmerplanet.org
20 KAPITEL 4. TESTS Testfälle Da hier keine reale Applikation auf ihre Performance oder Kapazität geprüft werden soll, wollen wir keine absoluten Ergebnisse, wie z.b. die maximale Userzahl die eine der beiden Applikation gleichzeitig bedienen kann, sondern es soll herausgefunden werden, ob PHP oder JAVA Vorteile in der Performance bietet. Deswegen gilt das primäre Augenmerk den Relationen, nicht den absoluten Ergebnissen. Das ist auch der Grund warum bei allen Testplänen keine Pause zwischen den einzelnen Anfragen eingestellt wurde. Um reale Besucher einer Webseite zu simulieren, wäre das notwendig und auch ohne Probleme mit Jmeter umsetzbar gewesen, allerdings wurde bei diesen Tests darauf verzichtet, weil in erster Linie viel Last gefragt war, um herauszufinden, welche der beiden Technologien besser damit umgehen kann. Deswegen sind 50 gleichzeitige Clients dieses Tests nicht mit 50 realen Besuchern einer Webseite im Internet zu vergleichen. Die Tests an sich sind nun so aufgebaut, dass es 3 verschiedene Testfälle gibt. Jeder Test wird dreimal mit jeweils gesteigerter Client Anzahl durchgeführt. Zusätzlich wird noch ein Testdurchlauf der PHP Applikation ohne eaccelerator gestartet, um dessen Wirkung auf die Probe zu stellen INDEX Test: ohne Datenbankzugriff Erklärung Es soll die Performance der Sprache an sich getestet werden. Dazu werden die Index Seiten der beiden Applikationen aufgerufen. Beides Seiten, die weder dynamischen Inhalt aufweisen noch eine Verbindung zu Datenbank herstellen. Testplan 3 Durchläufe: 50/100/200 gleichzeitige Clients 20 Wiederholungen Testfall 2: LIST Test Erklärung Bei diesem Test wird auf die mysql Datenbank zugegriffen, alle FAQs ausgelesen und in einer Liste ausgegeben. Die Anzahl der FAQs steigt, dabei gleichzeitig mit der Anzahl der gleichzeitigen Anfragen. Es ist dementsprechend zu erwarten, dass die Bearbeitungszeit pro Anfrage mit der Zunahme der Anfragen Anzahl stark steigen wird.
21 KAPITEL 4. TESTS 14 Testplan 3 Durchläufe: 50/100/200 parallele Anfragen 20 Wiederholungen 125/250/500 FAQs befinden sich in der Datenbank Testfall 3: MIXED Test Erklärung In diesem Testszenario soll ein kompletter Besuch der FAQ Seite simuliert werden. Daraus ergibt sich ein Mix aus verschiedenen Anfragen. Hier die Reihenfolge dieser Anfragen: Aufruf der Index Seite Ausgabe der FAQ Liste Wechsel in den Admin Bereich Anlegen einer neuen FAQ TOC Seite Daraus ergibt sich dass die Datenbanktabelle stetig wächst. Mit jeden Request wird eine neue FAQ der Datenbank hinzugefügt. Das ganze mit stetig hoher Last, und über einen gewissen Zeitraum hinweg. Testplan 3 Durchläufe: 25/50/100 gleichzeitige Anfragen 5 Loops insgesamt Testfall 4: PHP eaccelerator Dieser Test wird dazu genutzt, eine Variationen auszuprobieren. So wird der PHP Test einmal mit Unterstützung des eaccelerators und einmal ohne durchgeführt. Aus dem Ergebnis sollte sich ein Trend ablesen lassen, wieviel Performance - Verbesserung mit einem PHP Beschleuniger erreicht werden kann. Testplan Es werden der INDEX, der LIST und der MIXED Test mit dem selben Setup noch einmal durchgeführt. Diesmal ohne die Unterstützung eines PHP Beschleunigers.
22 KAPITEL 4. TESTS Ergebnisse Einleitung In diesem Abschnitt werden zuerst die Ergebnisse der JAVA und der PHP Test getrennt betrachtet. Im Anschluss daran folgt ein detailierter Vergleich. Zu jedem der einzelnen Testfälle werden die Durchschnitts Response Zeiten und die 90 % Linie präsentiert. Durchschnitts Response Zeit Dieser Wert gibt das arithmetische Mittel der Response Zeiten aller an den Server gesendeten Anfragen an. 90 % Linie Die 90 % Linie gibt die Response Zeit an, innerhalb der 90 % aller Server Antworten eintreffen. Daraus ergibt sich, dass hohe aber seltene Ausreißer nicht beachtet werden, da die 10 langsamsten Prozent der Antworten ignoriert werden. Wenn der Wert der 90 % Linie höher ist, als der des Durchschnittes bedeutet das, dass die Zahl der Ausreißer ziemlich hoch ist, es sich allerdings nicht um extrem hohe Ausreißer handelt, da sonst das arithmetische Mittel auch in die Höhe schnellen würde. Welcher der zwei Werte der Aussagekräfigere ist, kann man nicht sagen - mann muss sich allerdings den Bedeutungen der Werte bewusst sein, dann kann man je nach Situation den einen oder anderen Wert bevorzugen INDEX TEST Die durchschnittlichen Response Zeiten sind bei diesem Test - klarerweise - die kürzesten. Die Seite ist relativ klein, es muss kein dynamischer Content generiert werden und Datenbankzugriff findet auch nicht statt. Wie man in Tab. 4.1 und Abb. 4.4 sieht, hält sich die JAVA Applikation am Anfang sehr gut, sobald ein gewisser Grenzwert überschritten wird, scheint Tomcat allerdings Probleme zu bekommen. Aus diesem Ergebniss geht hervor, dass JAVA bei sehr einfachen Seiten, und bei geringer Last noch die Nase vorn hat. Durch die Konstanz, die PHP in diesem Test zeigt, wird JAVA relativ bald überholt und PHP scheint schneller zu sein. An dieser Stelle sei auch noch auf einen Test des ix Magazines [1] verwiesen, der im Oktober 2005 durchgeführt wurde und ebenfalls JAVA und PHP vergleicht. Im Mittelpunkt steht allerdings nicht Load-Testing, wie bei dieser Arbeit, sondern die Performance der Sprache an sich. Es wurde ebenfalls auf einer Tomcat Engine mit 10 gleichzeitigen Anfragen getestet. Bei
23 KAPITEL 4. TESTS 16 Abbildung 4.4: Ergebnisse von INDEX Test Tabelle 4.1: Index-Test Datentabelle PHP- 90% Linie [ms] Clients PHP Durchschnitts Response Zeit [ms] JAVA- Durchschnitts Response Zeit [ms] JAVA-90% Linie [ms] PHP Durchschnitts Response Zeit Tabelle 4.2: List-Test Datentabelle PHP- 90% Linie JAVA- Durchschnitts Response Zeit JAVA-90% Linie diesem Test wurde auch zwischen Servlets, JSP Seiten und JSP Seiten mit JSTL unterschieden und die JSP Seiten waren in etwa gleich schnell wie die PHP Skripte. Aufgrund der niedrigen parallen Requests und der Tatsache das hier ebenfalls mit JSP Seiten gearbeitet wird, ist das als Bestätigung zu den Tests dieser Arbeit zu sehen LIST TEST content.php?cmd=list [TODO]
24 KAPITEL 4. TESTS 17 Abbildung 4.5: Ergebnisse von LIST Test Abbildung 4.6: Ergebnisse von MIXED Test In Graphik 4.5 (a) sieht man auch noch mal alles sehr schön. list.jsp [TODO] In Graphik 4.5 (b) sieht man auch noch mal alles sehr schön MIXED TEST PHP [TODO] In Graphik 4.6 (a) sieht man auch noch mal alles sehr schön. JAVA [TODO] In Graphik 4.6 (b) sieht man auch noch mal alles sehr schön.
25 KAPITEL 4. TESTS 18 PHP Durchschnitts Response Zeit Tabelle 4.3: Mixed-Test Datentabelle PHP- 90% Linie JAVA- Durchschnitts Response Zeit JAVA-90% Linie eaccelerator JAVA vs. PHP INDEX Test LIST Test MIXED Test
26 Kapitel 5 Fazit 5.1 Jmeter Die intensive Arbeit mit Jmeter brachte sowohl Vorteile als auch Nachteile dieser Software ans Tageslicht. Positiv hervorzuheben ist mit Sicherheit die Einfachkeit der Software - um den ersten Probe-Test durchzuführen braucht man inklusive Installation und kurzem Einlesen in die Dokumentation nicht länger als eine Stunde. Ebenfalls erwähnenswert ist der große Funktionsumfang, der mit den Tests dieser Arbeit bei Weitem nicht ausgeschöfpft wurde. 5.2 eaccelerator Aufgrund der Tests steht außer Zweifel, dass ein PHP Beschleuniger der PHP Skripte in kompilierter Form zwischenspeichert, die Performance deutlich verbessert und auf jedem Webserver der PHP installiert hat, laufen sollte. Ob es bessere als den eaccelerator gibt, wurde in dieser Arbeit nicht getestet, allerdings ist aufgrund der Tatsache, dass es ein lebendiges Open Source Projekt ist, sicher eine gute Lösung. 5.3 PHP oder JAVA? Die Testergebnisse dieser Arbeit scheinen klare Worte zu sprechen. PHP ist schneller. Man darf aus diesen Ergebnissen zwar keine allgemeingültigen Schlüsse ziehen, aber für dieses Setup mit diesen Applikationen, geht eindeutig PHP als Sieger hervor. Das ist noch lange kein Grund um JAVA als Programmiersprache für zukünftige Projekte auszuschließen, aber man sollte zumindest im Hinterkopf behalten, dass man mit PHP unter Umständen performantere Applikationen erstellen kann. Abschließend ist noch festzuhalten, dass Performance Tests dieser Art lediglich Momentaufnahmen - die noch dazu aus einem bestimmten Winkel 19
27 KAPITEL 5. FAZIT 20 aus geschossen werden - sind. 5.4 Schlusswort Performance Tests können eine Entscheidungshilfe bei der Wahl einer Programmiersprache für eine Web Applikation sein. Es sollten allerdings noch viele andere programmiersprachen - abhängige Aspekte in diese Wahl mit einfließen. Dazu gehören die Art und die Komplexheit der Applikation. Wenn die Anzahl der Entwickler relativ hoch ist, sollte der Arbeit gut aufgeteilt werden können. Das kann für JAVA sprechen. Wenn die Zeit drängt und man möglichst schnell eine Applikation erstellen soll, ist möglicherweise PHP die bessere Wahl. Ebenfalls in Erwägung zu ziehen sind die Ansprüche an die Wartbarkeit und Erweiterbarkeit einer Applikation. Schlussendlich muss man auch bedenken, welche Entwickler man zur Verfügung hat, oder ob sich die Mühe lohnt, für ein Projekt eine neue Technologie zu erlernen. Jedenfalls ist Entscheidung welche Programmiersprache man wählt, keine leichte und immer genau zu überdenken.
28 Anhang A PHP - Source Code 21
29 ANHANG A. PHP - SOURCE CODE 22 A.1 PHP-Datei index.php <?php include_once("ezsql.inc.php");?> <?php echo "<?xml version=\"1.0\" encoding=\"iso \"?".">";?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " <html xmlns=" <head> <title>faq</title> <meta http-equiv="content-type" content="text/html; charset=iso " /> </head> <body> <h1>faq</h1> <?php //Request Dispatcher $cmd= $_GET[ cmd ]; if($cmd=="admin"){ $out.= "admin"; $faqs= getfaqs(); //liste ausgeben } else if ($cmd=="list"){ $out.= "list"; } else{ $out.= "<a href=\"?cmd=admin\">faq-administration</a><br>". "<a href=\"?cmd=list\">faq-liste</a><br>". "<a href=\"?cmd=list\">faq-toc</a>"; } echo $out;?> </body> </html> <?php function getfaqs(){ }?>
30 Literaturverzeichnis [1] Magazin ix: Auslieferungsmethoden im Performancevergleich. URL, Okt
31 Messbox zur Druckkontrolle Druckgröße kontrollieren! Breite = 100 mm Höhe = 50 mm Diese Seite nach dem Druck entfernen! 24
Guide DynDNS und Portforwarding
Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch
Mehr2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:
2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Configuring Terminal Services o Configure Windows Server 2008 Terminal Services RemoteApp (TS RemoteApp) o Configure Terminal Services Gateway
MehrAdminer: Installationsanleitung
Adminer: Installationsanleitung phpmyadmin ist bei uns mit dem Kundenmenüpasswort geschützt. Wer einer dritten Person Zugriff auf die Datenbankverwaltung, aber nicht auf das Kundenmenü geben möchte, kann
Mehrmysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank
mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man
MehrTask: Nmap Skripte ausführen
Task: Nmap Skripte ausführen Inhalt Einfache Netzwerkscans mit NSE Ausführen des Scans Anpassung der Parameter Einleitung Copyright 2009-2015 Greenbone Networks GmbH Herkunft und aktuellste Version dieses
MehrPlanung für Organisation und Technik
Salztorgasse 6, A - 1010 Wien, Austria q Planung für Organisation und Technik MOA-VV Installation Bearbeiter: Version: Dokument: Scheuchl Andreas 19.11.10 MOA-VV Installation.doc MOA-VV Inhaltsverzeichnis
MehrSeite 1 von 14. Cookie-Einstellungen verschiedener Browser
Seite 1 von 14 Cookie-Einstellungen verschiedener Browser Cookie-Einstellungen verschiedener Browser, 7. Dezember 2015 Inhaltsverzeichnis 1.Aktivierung von Cookies... 3 2.Cookies... 3 2.1.Wofu r braucht
MehrQt-Projekte mit Visual Studio 2005
Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung
MehrSoftwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch
Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich
Mehrschnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv
Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag
MehrINSTALLATION VON INSTANTRAILS 1.7
INSTALLATION VON INSTANTRAILS 1.7 InstantRails 1.7 ist ein Paket, das Ruby, Rails, Apache, MySQL und andere Tools, z.b. phpmyadmin in vorkonfigurierter Form enthält. Das Paket muss in einem Verzeichnis
MehrKleines Handbuch zur Fotogalerie der Pixel AG
1 1. Anmelden an der Galerie Um mit der Galerie arbeiten zu können muss man sich zuerst anmelden. Aufrufen der Galerie entweder über die Homepage (www.pixel-ag-bottwartal.de) oder über den direkten Link
MehrStep by Step Webserver unter Windows Server 2003. von Christian Bartl
Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird
MehrFachbericht zum Thema: Anforderungen an ein Datenbanksystem
Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank
MehrAnleitung zur Webservice Entwicklung unter Eclipse
Entwicklungsumgebung installieren Sofern Sie nicht an einem Praktikumsrechner arbeiten, müssen Sie ihre Eclipse-Umgebung Webservice-fähig machen. Dazu benötigen Sie die Entwicklungsumgebung Eclipse for
MehrTutorial - www.root13.de
Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk
MehrKonfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014
Konfiguration VLAN's Version 2.0.1 Deutsch 01.07.2014 In diesem HOWTO wird die Konfiguration der VLAN's für das Surf-LAN der IAC-BOX beschrieben. Konfiguration VLAN's TITEL Inhaltsverzeichnis Inhaltsverzeichnis...
MehrICS-Addin. Benutzerhandbuch. Version: 1.0
ICS-Addin Benutzerhandbuch Version: 1.0 SecureGUARD GmbH, 2011 Inhalt: 1. Was ist ICS?... 3 2. ICS-Addin im Dashboard... 3 3. ICS einrichten... 4 4. ICS deaktivieren... 5 5. Adapter-Details am Server speichern...
MehrDiplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008
Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen
Mehr! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006
!"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst
MehrDatensicherung. Beschreibung der Datensicherung
Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten
MehrPHP Kurs Online Kurs Analysten Programmierer Web PHP
PHP Kurs Online Kurs Analysten Programmierer Web PHP Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses PHP Modul 1 - Einführung und Installation PHP-Umgebung Erste Lerneinheit Introduzione
MehrPHPNuke Quick & Dirty
PHPNuke Quick & Dirty Dieses Tutorial richtet sich an all die, die zum erstenmal an PHPNuke System aufsetzen und wirklich keine Ahnung haben wie es geht. Hier wird sehr flott, ohne grosse Umschweife dargestellt
MehrKomponententest. Testen von Software Systemen. Übung 02 SS 2009 Version: 1.0 09.06.2009
Testen von Software Systemen Übung 02 SS 2009 Version: 1.0 09.06.2009 Komponententest Kunde: Dr. Reinhold Plösch Dr. Johannes Sametinger Kundenreferenz: 259.019 Team 19 Mitarbeiter: Christian Märzinger
MehrTutorial. In diesem Tutorial möchte ich die Möglichkeiten einer mehrspracheigen Web-Site erläutern.
Tutorial In diesem Tutorial möchte ich die Möglichkeiten einer mehrspracheigen Web-Site erläutern. Zu Beginn müssen wir uns über die gewünschten Sprachen Gedanken machen. Zum einem, da eine professionelle
MehrJava Script für die Nutzung unseres Online-Bestellsystems
Es erreichen uns immer wieder Anfragen bzgl. Java Script in Bezug auf unser Online-Bestell-System und unser Homepage. Mit dieser Anleitung möchten wir Ihnen einige Informationen, und Erklärungen geben,
MehrÜbungen zur Softwaretechnik
Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se
MehrAlbert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen
Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.
MehrKurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11
Kurzanleitung MEYTON Aufbau einer Internetverbindung 1 Von 11 Inhaltsverzeichnis Installation eines Internetzugangs...3 Ist mein Router bereits im MEYTON Netzwerk?...3 Start des YAST Programms...4 Auswahl
MehrLokale Installation von DotNetNuke 4 ohne IIS
Lokale Installation von DotNetNuke 4 ohne IIS ITM GmbH Wankelstr. 14 70563 Stuttgart http://www.itm-consulting.de Benjamin Hermann hermann@itm-consulting.de 12.12.2006 Agenda Benötigte Komponenten Installation
MehrAnleitung zur Nutzung des SharePort Utility
Anleitung zur Nutzung des SharePort Utility Um die am USB Port des Routers angeschlossenen Geräte wie Drucker, Speicherstick oder Festplatte am Rechner zu nutzen, muss das SharePort Utility auf jedem Rechner
MehrSFTP SCP - Synology Wiki
1 of 6 25.07.2009 07:43 SFTP SCP Aus Synology Wiki Inhaltsverzeichnis 1 Einleitung 1.1 Grundsätzliches 2 Voraussetzungen 2.1 Allgemein 2.2 für SFTP und SCP 3 Installation 3.1 Welche openssl Version 3.2
MehrWOT Skinsetter. Nun, erstens, was brauchen Sie für dieses Tool zu arbeiten:
WOT Skinsetter WOT Skinsetter steht für World of Tanks skinsetter (WOTS von nun an). Mit diesen Tool können Sie Skins importieren und ändern, wann immer Sie möchten auf einfache Weise. Als World of Tanks
MehrKurzanleitung OOVS. Reseller Interface. Allgemein
Kurzanleitung OOVS Reseller Interface Allgemein Durch die Einführung des neuen Interfaces hat sich für Reseller von Syswebcom etwas geändert. Die Struktur der Kundenverwaltung ist einprägsamer, wenn man
MehrCOSA. Portal Client Installation JAVA J2SE / JRE Version 1.4.2_09, Stand 01.08.2005-08-16. Copyright
Portal Client Installation JAVA J2SE / JRE Version 1.4.2_09, Stand 01.08.2005-08-16 Änderungen in Dokumentation und Software sind vorbehalten! Copyright Copyright 2005 COSA GmbH Alle Rechte vorbehalten.
MehrKurzanleitung zu. von Daniel Jettka 18.11.2008
Kurzanleitung zu Tigris.org Open Source Software Engineering Tools von Daniel Jettka 18.11.2008 Inhaltsverzeichnis 1.Einführung...1 2.Das Projektarchivs...3 2.1.Anlegen des Projektarchivs...3 2.2.Organisation
MehrTeamSpeak3 Einrichten
TeamSpeak3 Einrichten Version 1.0.3 24. April 2012 StreamPlus UG Es ist untersagt dieses Dokument ohne eine schriftliche Genehmigung der StreamPlus UG vollständig oder auszugsweise zu reproduzieren, vervielfältigen
MehrEinrichtung des Cisco VPN Clients (IPSEC) in Windows7
Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über
MehrEigenen WSUS Server mit dem UNI WSUS Server Synchronisieren
Verwaltungsdirektion Informatikdienste Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren Inhaltsverzeichnis Einleitung... 3 Installation WSUS Server... 4 Dokumente... 4 Step by Step Installation...
MehrOP-LOG www.op-log.de
Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server
MehrAnwendungshinweis Nr. 12. Wie konfiguriere ich redundante Serververbindungen
Anwendungshinweis Nr. 12 Produkt: Schlüsselworte: Problem: Softing OPC Easy Connect OPC Server, Redundanz Wie konfiguriere ich redundante Lösung: Ausgangssituation: Eine OPC Client-Anwendung ist mit mehreren
Mehr4D Server v12 64-bit Version BETA VERSION
4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und
MehrFTP-Server einrichten mit automatischem Datenupload für SolarView@Fritzbox
FTP-Server einrichten mit automatischem Datenupload für SolarView@Fritzbox Bitte beachten: Der im folgenden beschriebene Provider "www.cwcity.de" dient lediglich als Beispiel. Cwcity.de blendet recht häufig
MehrInternet und WWW Übungen
Internet und WWW Übungen 7 Serverseitige Web-Technologien [WEB7] Rolf Dornberger 1 06-11-12 7 Serverseitige Web-Technologien 1. Begriffe Zusatz für Interessierte: 2. JSP erstellen 3. Servlet erstellen
MehrUpgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)
Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10 Technische Informationen (White Paper) Inhaltsverzeichnis 1. Über dieses Dokument... 3 2. Überblick... 3 3. Upgrade Verfahren... 4
MehrFirewalls für Lexware Info Service konfigurieren
Firewalls für Lexware Info Service konfigurieren Inhaltsverzeichnis: 1. MANUELLER DOWNLOAD 1 2. ALLGEMEIN 1 3. EINSTELLUNGEN 1 4. BITDEFENDER VERSION 10 2 5. GDATA INTERNET SECURITY 2007 4 6. ZONE ALARM
MehrLive Update (Auto Update)
Live Update (Auto Update) Mit der Version 44.20.00 wurde moveit@iss+ um die Funktion des Live Updates (in anderen Programmen auch als Auto Update bekannt) für Programm Updates erweitert. Damit Sie auch
MehrInstallationsanleitung Webhost Linux Flex
Installationsanleitung Webhost Linux Flex Stand März 2014 Inhaltsverzeichnis 1. Zugangsdaten & Login... 3 2. Passwort ändern... 4 3. Leistungen hinzufügen / entfernen... 6 4. Datenbanken anlegen / entfernen...
MehrVerwendung des Terminalservers der MUG
Verwendung des Terminalservers der MUG Inhalt Allgemeines... 1 Installation des ICA-Client... 1 An- und Abmeldung... 4 Datentransfer vom/zum Terminalserver... 5 Allgemeines Die Medizinische Universität
MehrProfessionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
MehrHandbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen
Handbuch timecard Connector 1.0.0 Version: 1.0.0 REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Furtwangen, den 18.11.2011 Inhaltsverzeichnis Seite 1 Einführung... 3 2 Systemvoraussetzungen...
MehrRT Request Tracker. Benutzerhandbuch V2.0. Inhalte
RT Request Tracker V2.0 Inhalte 1 Was ist der RT Request Tracker und wo finde ich ihn?...2 2 Was möchten wir damit erreichen?...2 3 Wie erstelle ich ein Ticket?...2 4 Wie wird das Ticket abgearbeitet?...4
MehrInstallation/Einrichtung einer Datenbank für smalldms
Einleitung In den folgenden Seiten werden wir uns damit beschäftigen eine lokale Installation einer MySQL- Datenbank vorzunehmen, um auf dieser Datenbank smalldms aktivieren zu können. Wir werden das XAMPP-Paket
MehrInstallation von NetBeans inkl. Glassfish Anwendungs-Server
Installation von NetBeans inkl. Glassfish Anwendungs-Server Diese Anleitung führt Sie Schritt für Schritt durch die Einrichtung der Entwicklungsumgebung NetBeans, angefangen beim Download der benötigten
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
Mehr2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)
1. Einführung: Über den ODBC-Zugriff können Sie bestimmte Daten aus Ihren orgamax-mandanten in anderen Anwendungen (beispielsweise Microsoft Excel oder Microsoft Access) einlesen. Dies bietet sich beispielsweise
MehrUm zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:
Client-Installation ec@ros2 ASP-Server 1. Allgemeine Informationen Für den Einsatz von ec@ros2 ist auf den Clients die Software Java Webstart (enthalten im Java Runtime Environment (JRE)) notwendig. Wir
MehrKostenstellen verwalten. Tipps & Tricks
Tipps & Tricks INHALT SEITE 1.1 Kostenstellen erstellen 3 13 1.3 Zugriffsberechtigungen überprüfen 30 2 1.1 Kostenstellen erstellen Mein Profil 3 1.1 Kostenstellen erstellen Kostenstelle(n) verwalten 4
MehrWEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?
WEBAPPLIKATIONEN MIT PHP Wo gibt es Hilfe? Wie fang ich an? Tools Webapplikationen bestehen aus Textdateien Lassen sich in Texteditoren schreiben Alternativen: Eclipse (PDT) Netbeans (Dynamic Languages)
MehrSuche schlecht beschriftete Bilder mit Eigenen Abfragen
Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere
Mehr2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein
Einrichtung von orgamax-mobil Um die App orgamax Heute auf Ihrem Smartphone nutzen zu können, ist eine einmalige Einrichtung auf Ihrem orgamax Rechner (bei Einzelplatz) oder Ihrem orgamax Server (Mehrplatz)
MehrBilder zum Upload verkleinern
Seite 1 von 9 Bilder zum Upload verkleinern Teil 1: Maße der Bilder verändern Um Bilder in ihren Abmessungen zu verkleinern benutze ich die Freeware Irfan View. Die Software biete zwar noch einiges mehr
MehrINDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline
Öffentliche Ordner Offline INDEX Öffentliche Ordner erstellen Seite 2 Offline verfügbar einrichten Seite 3 Berechtigungen setzen Seite 7 Erstelldatum 12.08.05 Version 1.1 Öffentliche Ordner Im Microsoft
MehrStep by Step Remotedesktopfreigabe unter Windows Server 2003. von Christian Bartl
Step by Step Remotedesktopfreigabe unter Windows Server 2003 von Remotedesktopfreigabe unter Windows Server 2003 Um die Remotedesktopfreigabe zu nutzen muss diese am Server aktiviert werden. Außerdem ist
MehrInstallation des CMS-Systems Contao auf einem Windows-Rechner mit XAMPP
XAMPP Installation des CMS-Systems Contao auf einem Windows-Rechner mit XAMPP XAMPP ist eine vollständig kostenlose, leicht zu installierende Apache-Distribution, die MySQL, PHP und Perl enthält. Das XAMPP
MehrJava Server Faces. Andy Bosch. Das Standard-Framework zum Aufbau webbasierter Anwendungen. An imprint of Pearson Education
Andy Bosch Java Server Faces Das Standard-Framework zum Aufbau webbasierter Anwendungen An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City
MehrStep by Step VPN unter Windows Server 2003. von Christian Bartl
Step by Step VPN unter Windows Server 2003 von VPN unter Windows Server 2003 Einrichten des Servers 1. Um die VPN-Funktion des Windows 2003 Servers zu nutzen muss der Routing- und RAS-Serverdienst installiert
MehrWichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge
Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht
MehrFolgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:
Firewall für Lexware professional konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Windows XP SP2 und Windows 2003 Server SP1 Firewall...1 4. Bitdefender 9... 5 5. Norton Personal
MehrHex Datei mit Atmel Studio 6 erstellen
Hex Datei mit Atmel Studio 6 erstellen Es werden generell keine Atmel Studio Dateien ins Repository geladen, da jeder seine Dateien an anderen Orten liegen hat und weil nicht jeder das Atmel Studio 6 benutzt.
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrEasyWk DAS Schwimmwettkampfprogramm
EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage
MehrWählen Sie bitte START EINSTELLUNGEN SYSTEMSTEUERUNG VERWALTUNG und Sie erhalten unter Windows 2000 die folgende Darstellung:
Installation Bevor Sie mit der Installation von MOVIDO 1.0 beginnen, sollten Sie sich vergewissern, dass der Internet Information Server (IIS) von Microsoft installiert ist. Um dies festzustellen, führen
MehrInstallation der SAS Foundation Software auf Windows
Installation der SAS Foundation Software auf Windows Der installierende Benutzer unter Windows muss Mitglied der lokalen Gruppe Administratoren / Administrators sein und damit das Recht besitzen, Software
MehrMicrosoft PowerPoint 2013 Folien gemeinsam nutzen
Hochschulrechenzentrum Justus-Liebig-Universität Gießen Microsoft PowerPoint 2013 Folien gemeinsam nutzen Folien gemeinsam nutzen in PowerPoint 2013 Seite 1 von 4 Inhaltsverzeichnis Einleitung... 2 Einzelne
MehrSANDBOXIE konfigurieren
SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:
MehrDokumentation von Ük Modul 302
Dokumentation von Ük Modul 302 Von Nicolas Kull Seite 1/ Inhaltsverzeichnis Dokumentation von Ük Modul 302... 1 Inhaltsverzeichnis... 2 Abbildungsverzeichnis... 3 Typographie (Layout)... 4 Schrift... 4
MehrErweiterung eines SMIL Players für die Darstellung von Transparenzen und SVG Inhalten
Bachlor-Abschlussarbeit Erweiterung eines SMIL Players für die Darstellung von Transparenzen und SVG Inhalten im Studiengang Informatik der Fakultät IV - Wirtschaft und Informatik Sommersemester 2009 Burim
MehrFastViewer Remote Edition 2.X
FastViewer Remote Edition 2.X Mit der FastViewer Remote Edition ist es möglich beliebige Rechner, unabhängig vom Standort, fernzusteuern. Die Eingabe einer Sessionnummer entfällt. Dazu muß auf dem zu steuernden
MehrInhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER
AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...
MehrArtikel Schnittstelle über CSV
Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte
MehrMatrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 -
Matrix42 Use Case - Sicherung und Rücksicherung persönlicher Version 1.0.0 23. September 2015-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung
MehrPowerWeiss Synchronisation
PowerWeiss Synchronisation 1 Einrichtung der Synchronisation I. Starten des Synchronisations Wizard Seite 3 II. Schritt 1 - Benutzer auswählen Seite 3 III. Schritt 2 - Grundlegende Einstellungen Seite
MehrAnleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung
Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In
Mehr.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage
.htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess
MehrSpeicher in der Cloud
Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG
Mehrwww.flatbooster.com FILEZILLA HANDBUCH
www.flatbooster.com FILEZILLA HANDBUCH deutsche Auflage Datum: 12.03.2011 Version: 1.0.2 Download: http://flatbooster.com/support Inhaltsverzeichnis 1 Filezilla FTP Programm 1 1.1 Filezilla installieren.................................
MehrStammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing
Stammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing Finanzbuchhaltung Wenn Sie Fragen haben, dann rufen Sie uns an, wir helfen Ihnen gerne weiter - mit Ihrem Wartungsvertrag
MehrAufgabe 2.2. Folgende Schritte sollen durchgeführt werden:
Aufgabe 2.2 Damit Sie Anwendungsprogramme mit der Scriptsprache PHP entwickeln können, benötigen Sie entweder einen Server, der PHP unterstützt oder Sie richten einen lokalen Server auf Ihrem Computer
MehrFirewalls für Lexware Info Service konfigurieren
Firewalls für Lexware Info Service konfigurieren Inhaltsverzeichnis: 1. Manueller Download... 2 2. Allgemein... 2 3. Einstellungen... 2 4. Bitdefender Version 10... 3 5. GDATA Internet Security 2007...
MehrZugriff auf Daten der Wago 750-841 über eine Webseite
Zugriff auf Daten der Wago 750-841 über eine Webseite Inhaltsverzeichnis Einleitung... 3 Auslesen von Variablen... 4 Programm auf der SPS... 4 XML-Datei auf der SPS... 4 PHP-Script zum Auslesen der XML-Datei...
MehrEinrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications
Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications Windows 8 Systemsteuerung > Programme > Windows Features aktivieren / deaktivieren > Im Verzeichnisbaum
MehrSoftware Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
MehrInformationen zum neuen Studmail häufige Fragen
1 Stand: 15.01.2013 Informationen zum neuen Studmail häufige Fragen (Dokument wird bei Bedarf laufend erweitert) Problem: Einloggen funktioniert, aber der Browser lädt dann ewig und zeigt nichts an Lösung:
MehrDomain Registration & Transfer. Version: 1.3 Datum: 10.07.2014 Alexander Pascual
Domain Registration & Transfer Abteilung: Customer Care Center Version: 1.3 Datum: 10.07.2014 Autor: Alexander Pascual Inhaltsverzeichnis 1 Domain Registration 1.1 Domain Registration bei Green.ch 1.2
MehrUm dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:
Einleitung Unter MacOS X hat Apple die Freigabe standardmäßig auf den "Public" Ordner eines Benutzers beschränkt. Mit SharePoints wird diese Beschränkung beseitigt. SharePoints erlaubt auch die Kontrolle
MehrEigenen Farbverlauf erstellen
Diese Serie ist an totale Neulinge gerichtet. Neu bei PhotoLine, evtl. sogar komplett neu, was Bildbearbeitung betrifft. So versuche ich, hier alles einfach zu halten. Ich habe sogar PhotoLine ein zweites
MehrPHP - Projekt Personalverwaltung. Erstellt von James Schüpbach
- Projekt Personalverwaltung Erstellt von Inhaltsverzeichnis 1Planung...3 1.1Datenbankstruktur...3 1.2Klassenkonzept...4 2Realisierung...5 2.1Verwendete Techniken...5 2.2Vorgehensweise...5 2.3Probleme...6
MehrInfoPoint vom 9. November 2011
InfoPoint vom 9. November 2011 Was ist Joomla? Theorie Installation Extensions Administration Demo Joomla ist ein modulares content management system (CMS) Es ermöglicht eine Website zu erstellen und online
Mehr