schnell, flexibel, sauber..
-
Hi,
ich habe evtl. vor ein etwas grösseres Projekt in Angriff zu nehmen. (Ein Handelsplattform im Groben ähnlich wie eBay jedoch etwas anders, aber keine Konkurrenz dazu. Gibt es ja eh schon zig
).
ich kann C(pp), Java und PHP. bzw kenne ich mich mit aus. Datenbanktechnisch habe ich am meistens Erfahrung mit Oracle, gefolgt von mysql und rudimentär einem MS-SQL-Server.
Jetzt stelle ich mir die Frage wie ich das wohl am besten umsetzen könnte. Da mit Sicherheit mehrere tausend Aufrufe täglich stattfinden würden (wenn das System korrekt läuft, wäre das definitiv so. Da Zielgruppenforschung schon betrieben wurde und Interesse besteht).
Es müssten etliche Transaktionen verwaltet und Provisionen berechnet sowie als Historie gespeichert werden.Das heisst ich müsste ein sehr leistungsfähiges und möglichst modular aufgebautes System dazu schreiben, das möglichst wenig Overhead produziert, aber code und design sauber und strikt voneinander trennt, da in naher Zukunft eine Aufteilung auf mehrere Personen sehr warscheinlich wäre.
Jetzt sehe ich momentan bisher die Möglichkeiten folgendes anzuwenden:
php
jsp/(jsf)/Servlets
cppund im Hintergrund dazu evtl. eine ora-datenbank.
von Microsoft möchte ich dabei möglichst verschont bleiben, ausser es gibt
wirklich gute Gründe warum ich zum Beispiel ASP.NET oder einen MS-SQL-Server benutzen sollte.Der Entwicklungs und Erweiterungsaufwand sollte sich natürlich auch in Grenzen halten, soweit es geht. Alles als Servlets zu schreiben wäre demnach auch ziemlich zeitraubend und umständlich. Ein Template-System wie zum Beispiel smarty erzeugt aber ja wieder ne Menge Overhead.
Was meint ihr? Wie würdet ihr das angehen? Was für effiziente Webtechniken gibt es noch, die für mich Interessant sein könnten?
mfg
tobi
-
Konkret: Mit wievielen Aufrufe pro Minute rechnest du?
Ist es recht billig einfach ne schnellere Maschine zu kaufen?MySQL läuft auch bei hoher Last recht super, PHP leider nicht. Da muss man schon ordentliche Server haben. Aber wenn du PHP mit Smarty verwendest, dann zahlst du für Smarty kaum mehr kosten (zumindest sind sie nicht relevant).
Natürlich brauchst du einen PHP Optimierer, sonst läuft da nix - die gibt es aber wie Sand am Meer und die meisten gratis
Größter Nachteil einer PHP Lösung ist wahrscheinlich die Sprache PHP - denn gegen ein Java wirkt sie echt mikrig. dh, wenn du auf ein OO Konzept setzt, dann ist JSP wohl die bessere Wahl. uU lohnt sich aber auch ein Blick auf mojavi. Damit kann man wenigstens ein bisschen schönen Code schreiben.
-
Danke für die Antworten:
Konkret: Mit wievielen Aufrufe pro Minute rechnest du?
Ist natürlich ein bischen von den Stoßzeiten abhängig, wobei diese warscheinlich lange nicht so extrem ausgeprägt sein werden. Aber über den Daumen gepeilt könnten es nach ein/zwei Monaten Laufzeit wohl schon 100-500/Minute sein. Wobei der Großteil aus "durchklicken" also Selects und Listen erstellen bestehen wird. Aber 100% genau kann man es leider nicht voraussagen. Leistungssteigerung des/der Server würde im Falle zu großer Belastung natürlich vorgenommen. Man muss es zum Einstieg ja nicht gleich übertreiben. Ich denke mal das sich in den ersten Wochen dann ein Trend abzeichnen wird, da natürlich nicht am ersten Tag tausende auf die Seite surfen werden.
Ist es recht billig einfach ne schnellere Maschine zu kaufen?
es gibt ja noch keine Maschine. Den Handel um den es geht, der wird erst am 2. Quartal/05 überhaupt möglich sein. Nur wär es dann super dafür eine Platform zum Handeln direkt zur Einführung parat zu haben.
Größter Nachteil einer PHP Lösung ist wahrscheinlich die Sprache PHP - denn gegen ein Java wirkt sie echt mikrig. dh, wenn du auf ein OO Konzept setzt, dann ist JSP wohl die bessere Wahl.
Auf dem Gedankenstand bin ich momentan auch und tendiere dahin. Ich habe mit PHP letztens auch eine User-Verwaltung für ein Intranet im OO-Konzept erstellt. Aber so ganz das wahre ist das OO in PHP und nicht gerade. In PHP5 schon eher, aber in JAVA ist es halt viel konsequenter umgesetzt.
ich habe zwar noch nichts mit JSP gemacht (nur Anwendungen, JAVA-Applets, und 1-2Servlets) aber angewendet wird es ja scheinbar sehr ähnlich wie PHP..
Zudem habe ich festgestellt das php im professionellen Bereich (leider) keinen besonders guten Ruf hat und sofort erstmal als kleine rumskript-sprache in die Ecke verwiesen wird. Ob das nun begründet ist sei mal dahingestellt.
Wenn ich sowas jedenfalls umsetzen will, und ich bin echt motiviert dazu :), dann von Anfang an "richtig"
-
Falls Du kosten sparen möchtest, dann schau Dir mal PostgreSQL an. Das RDBMS ist IMHO das leistungsfähigste im opensource Bereich. Hat eigentlich alles was man für große Projekte braucht - Stored Procedures, Trigger, Views, uvm...
Als Sprache würde ich Dir auch nicht PHP empfehlen. Ich habe zwar schon in so manchen Foren gehört, dass PHP5 deutlich leistungsstärker sein soll, aber bei hohen Besucherzahlen in kleinen Zeitabständen kann ich mir das nicht wirklich performant vorstellen.
Schau Dir einfach mal Java Servlets an, die sind eigentlich recht einfach. Auch interessant ist www.freemarker.org - eine Java Templateengine.
-
Momentan sauge ich gerade Infos über Java-Webanwendung mit MVC-Architektur auf.
Dabei bin ich jetzt auf Struts gestoßen. Hat damit schon wer Erfahrungen? Ich mache jetzt erstmal Feierabend
Schonmal danke für eure Antworten.
@Magoon: Ja ich weiss, jedoch wohl eher JSPs die werden soweit ich es bisher verstanden habe auch in Servlets umgewandelt, und dann nur wenn es wirklich irgendwie Leistungsprobleme geben sollte selbst direkt das Servlet. Weil alles selber als Servlets zu schreiben erscheint mir doch ziemlich aufwändig..
-
Wieso nimmste nicht php???
Ich find die sprache richtig genial!!! JAVA ist super slow und mit cpp bauste dir sicherheitslücken und memory-leaks ein!!
Gibs denn pages die in cpp gecoded worden?
cya
-
Tow-B.de schrieb:
Aber über den Daumen gepeilt könnten es nach ein/zwei Monaten Laufzeit wohl schon 100-500/Minute sein.
Klar dass das nur Schätzungen sind. Aber dafür scheint PHP nicht gewappnet zu sein.
Auf dem Gedankenstand bin ich momentan auch und tendiere dahin. Ich habe mit PHP letztens auch eine User-Verwaltung für ein Intranet im OO-Konzept erstellt. Aber so ganz das wahre ist das OO in PHP und nicht gerade. In PHP5 schon eher, aber in JAVA ist es halt viel konsequenter umgesetzt.
PHP5 kannst du aber erstmal vergessen. Wenn das Ding im 1. Quartal 2005 anlaufen soll, dann hast du maximal PHP 5.1 - das ist nicht unbedingt eine Version die ich wirklich einsetzen will.
Zudem habe ich festgestellt das php im professionellen Bereich (leider) keinen besonders guten Ruf hat und sofort erstmal als kleine rumskript-sprache in die Ecke verwiesen wird. Ob das nun begründet ist sei mal dahingestellt.
PHP5 ist der Beweis, dass PHP auch nicht mehr sein will
Dabei habe ich soviel Erwartungen gehabt
-
Snoop D schrieb:
Wieso nimmste nicht php???
Ich find die sprache richtig genial!!! JAVA ist super slow und mit cpp bauste dir sicherheitslücken und memory-leaks ein!!
Lass mich das zusammenfassen: "Java ist zu langsam, nimm lieber PHP"? *lol*
-
im grossen und ganzen ist java zumeist schneller als aehnliche CPP anwendungen
sowohl java als auch .net nutzen features des applicationservers (respektive .net frameworks) um effektives caching zu betreiben (und einiges mehr)ich wuerde dir eine architektur aufbauend auf Java vorschlagen
Struts ist ein sehr effektive Tag Library - aber auch die Neuen JSF - Java Server Faces sind wahrscheinlich interessant fuer dich - die lehnen sich an das ASP.NET modell an, das meiner meinung nach ein wirklich effektives system istim endeffekt ist php fuer so eine anwendung weniger zu gebrauchen (ich arbeite schon mehrere jahre mit PHP im professionellen bereich)
.NET und J2EE sind in diesem Fall die Technologien der Wahl
Und da du MS eher ausschliessen willst ist meine empfehlung J2EE
Application Server: jboss oder ibm websphere kann ich empfehlen (wobei jboss halt relativ basic ist)
-
Wieso nimmste nicht php??? Ich find die sprache richtig genial!!! JAVA ist super slow und mit cpp bauste dir sicherheitslücken und memory-leaks ein!!
Danke für deine Antwort, aber ich glaube du denkst irgendwie in anderen Dimensionen und auf enem anderen Niveau. Zum einen ist Java sicher nicht langsamer als PHP, schon gar nicht wenn intensiv von Objektorientierung benutzt wird. Zum anderen würden CPP Anwendungen als CGIs laufen und das HTML generieren. Läuft dann aber auf so eine aufwändige Entwicklung wie bei reinen Servlets hinaus.
@Shade of of Mine:
Ja, das denke ich auch über PHP. Man kann die Leistung zwar mit Optimizern noch ziemlich steigern. Nur kann man, wenn man noch die Wahl hat von Anfang an auf ein anderes, besser geeignetes Pferd setzen.@gomberl:
Genau! So in der Art habe ich mir das gedacht. J2EE werde ich wohl einsetzen. Ich denke mal für mein Vorhaben ist es auf jeden Fall sinnvoll ein Webapplicationframework zu benutzen. Momentan liebäugel ich ein bischen mit jakarta turbine fürs mvc und velocity für die templates. turbine bietet mit Intake wohl schon eine ziemlich gute HTML-Form-Validation, Torque um Datenbanken möglichst unabhängig einbinden zu können (k.A. wie das gehen soll, muss ich mir alles noch genau ansehen). Und der "Support" sowie Documentation und Verbreitung scheinen auch recht gut zu sein. Da bin ich nur grad mal am suchen ob es irgendwie unterstützende Eclipse-Plugins gibt, wie für Struts oder so.
Wovon ich bei J2EE auch ziemlich angetan bin sind die verschiedenen Caching-Funktionen in Scopes um den Server zu entlasten.Über JSF werd ich als nächstes mal ein paar Infos sammeln. Ich will ja nicht dumm sterben
-
Tow-B.de schrieb:
Wieso nimmste nicht php??? Ich find die sprache richtig genial!!! JAVA ist super slow und mit cpp bauste dir sicherheitslücken und memory-leaks ein!!
Danke für deine Antwort, aber ich glaube du denkst irgendwie in anderen Dimensionen und auf enem anderen Niveau.
Ich glaube das war einfach nur getrolle...
Aber guck dir mal www.freemarker.org an. Das ist eine Alternative zu Velocity(kompakter).
Grüssle
PS: Wenn Du schon auf eine Template Engine setzt, wieso willst Du dann noch jsp benutzen?
-
PS: Wenn Du schon auf eine Template Engine setzt, wieso willst Du dann noch jsp benutzen?
will ich doch gar nicht, ganz im Gegenteil. Durch JSP ist man nur wieder der Versuchung ausgesetzt Geschäftslogik in den View-Layer zu verlagern. Das passiert mit einem Template-System, welches das nicht zulässt halt nicht.
womit ich mich gerade beschäftige ist JSF zur Erstellung von Seiten und Formularen sowie dessen Validierung. Wobei sich das scheinbar irgendwie mit Funktionsteilen von turbine und template-enginges überschneidet. Aber ich fange gerade erst an mich darein zu fuxxen um dann entscheiden zu können was für mein vorhaben das beste ist.
Achso, weiss jemand einen genaueren Status von geronimo? Ist noch weit entfernt von einem stable release, oder?
-
Habt ihr euch schon mehr über JSF informiert?
Ich habe nämlich ein ähnliches Problem und hoffe das ich hier evtl. ein paar Antworten finde.
Ich habe eine Java - Applikation die Bereits läuft.
- programmiere mit IDEA intelij3, Java 1.2.2, läuft auf Tomcat(ANT)Nun gibt es verschiedene Instanzen. 5-10 Stk.
Mit einem Servlet frage ich nun ab welche laufen, welche nicht.
Dies so als kurzen überblick...Jetzt will ich aber ein template machen das diese Infos aufs Netz bringt und weis nun nicht mit Velocity oder JSF. Vieleicht weis ja jemand von euch was mehr über JSF?
Velocity kenne ich einwenig. Habe vorher nur selten mit templates zu tun gehabt... bin mehr so der Cpp Freak.
Und über JSF(Java Servlet Faces) Habe ich mich schon etwas informiert, bin aber momentan noch dran.Zitat(Aber ich fange gerade erst an mich darein zu fuxxen)
@gomberl & Tow-B.de:
Seid ihr schon weiter gekommen? Kann ich für das JFS gebrauchen?
Ich habe mal ein plugin in mein IDEA gesteckt und bin gerade etwas am rumprobieren. Aber bis jetzt find ich Velocity geeigneter, ich bin mir nicht mal mehr sicher ob ich dazu überhaupt JSF verwenden kann.
Schlage mich mit dem templates sonst schon so mühsam.Ansonsten find ich deine Idee Tow-B.de recht gut durchdacht. Sind schon einige Leute so zu schnellem Geld gekommen. Und seich nicht allzufrustriert wenn’s nicht gerade klappt... einfach nochmals rannsetzen und eine 2. Version planen
Hab das auch schon probiert. Bei mir war es allerdings nur eine Software für eine Firma. Die 2. haben sie mir fast zum doppelten Preis der ersten abgekauft.
Habe aber auch genügend Zeit drin investiertGreez Freak_of_C