Web Application - allgemeines Konzept
-
Hallo,
Zuerst nen Wort vorne weg, ich hab mit dem neumodischen Webzeugs noch ned viel gemacht. Browser aufrufen kann ich aber
Aber an Detailswissen mangelt es halt noch bisserl. Ich hoffe die Fragen sind ned allzu naiv !
Ich bin in der Konzeptphase von nem Project wo ziemlich umfangreiche Daten übers Internet ausgetauscht und zur verfuegung gestellt werden sollen.
Da ich kein Fan von langsamen GUI's und warten am Desktop bin, wollt ich das project zweigleisig aufziehen, eine voll webbasierte Loesung (apache, php, mysql) und eine local client basierte loesung.Die fragen beziehen sich auf die localen client Loesung.
Ich wollt keinen eigenen Server schreiben, sondern der Application HTTP beibringen. Also nen Apache als server mit ner speziellen URL fuer Aufbereitete Anfragen. Der Client fragt, und der Server gibt mir die Ergebnisse als XML (content type XML) zurueck, der client parst das dann.
(Natuerlich cacht der client die daten local, so das nur aktualisierungen heruntergeladen werden).
Ist das nen gangbarer weg oder gibts da einfachere Mittel oder methoden. HTTP wollt ich nehmen weil ich damit einfacher durch ne eventuelle FW durchkomme.
Alternative waer nen eigener Server, da muesst ich aber Ports benutzen / freischalten weil ueber port 80 kommen die sich ja dann ins gehege mit dem webserver (beide Schienen sollen auf der selben maschine laufen).Falls das mit dem Apache gangbar ist, wie realisiere ich da Sessions ? Ich bekomm die Daten sicher nicht in einer Abfrage uebermittelt. Aber fuer mehrere Abfragen muesst ich mich mehrmals bei der DB anmelden. Gibts einen weg wo ich die Connection an der Datenbank ned verliere, wenn ne "Seite" ausgeliefert wird, und der Client dann der sitzung spaeter wieder zugeordnet werden kann ?
Oder kann ich Anfragen vom Apache aus an nen anderen Prozess (daemon) weiterleiten, der koennte dann die connections verwalten, find das nur etwas umstaendlich ....
Hat wer paar gute Links zu dem thema ?
Ciao ....
-
du suchst restfull services
die kann man entweder per fastcgi/scgi anbinden, oder per mod_python, mod_perl oder mod_mono, mod_ruby, mod_lisp direkt in apache einbinden
ich würde eine kombination mit mod_python und django bevorzugen
alternativen sind ruby on rails, das catalystframework von perl, tomcat server für java serverlets
-
python perl ruby php etc. sind alles weisse flecken fuer mich ^^
womit ich mich auskenn ist c / c++
Wenn ich waehlen koennt, wuerd ich am liebsten auf reines CGI gehen, also richtige binaries ohne interpreter .... notfalls setzt ich mich aber mit einer der interpreter-sprachen auseinander.
denk mal php waer mir da am liebsten.Aber ich schau mal nach "restfull services" vielleicht find ich damit was ...
Ciao ...
-
php solltest du wenn möglich vermeiden, die sprache ist nicht geeignet um effizient große projekte umzusetzen
wenn du deine zeit gut verwenden willst würde ich zu python oder ruby raten
die sind beide sehr schnell erlernt, und erlauben wesentlich kürzere iterationen als es bei php oder c++ der fall wäre
-
Wenn Du Dich in C und C++ zu Hause fühlst und Webapplikationen entwickeln willst, dann hätte ich Tntnet für Dich. So "richtige Binaries ohne Interpreter" bekommst Du damit auch.
Tntnet hat ein automatisches Sessionmanagement über Cookies. Connections zu einer Datenbank kannst Du alternativ Applikationsweit oder pro Thread halten, so daß mehrere Anwender die gleiche Connection benutzen können. Das ist möglich, da Tntnet-Applikationen persistent sind.
Als Backend für eine Desktopapplikation bietet sich z. B. xml-rpc an. Das geht sogar über die selbe url, da xml-rpc-Anfragen über Http-Header unterschieden werden können.
Wenn Du auf dem Server auf Port 80 unbedingt einen Apache laufen lassen willst, kannst Du Tntnet auf einem anderen Port horchen lassen und über Requests über mod_proxy an diesen weiter leiten.
Tntnet
-
Das mit dem tntnet klingt intressant, mal naeher anschauen bei gelegenheit. Geht zumindest in die richtige richtung.
Ne andere frage, wie gross diurfen denn eigentlich die Bodies von html seiten sein, die der apache ausliefern kann ?
Denk mal so ohne grosse muehe wuerd ich auf 20/30 Mb in XML ungezippt kommen ...Ciao ....
-
Mit Apache kannst Du auch DVD-Images zum Download bereit stellen. Und die haben schon ein paar GB. Also es gibt eigentlich keine relevante Beschränkung.
Übrigens sieht das mit Tntnet anders aus. Da wird das Dokument bei dynamischen Seiten normalerweise im Speicher gesammelt, bevor er gesendet wird. Da sollte der Server mit ausreichend RAM ausgestattet sein. Aber 20-30MB im Speicher ist auch nicht wirklich groß.
Tntnet
-
Schau mal unter Google "application server xspd" (oder google-groups "xspd"). Da findest Du einen Application Server mit Session Handling speziell zugeschnitten und optimiert für C (kann aber auch Unix-Shell-Scripts und Java). Läuft aber nur unter Linux/Unix. 64-bit Version für Dual-Core Intel-CPU's ist auch fertig, aber noch nicht im Netz.
-
php solltest du wenn möglich vermeiden, die sprache ist nicht geeignet um effizient große projekte umzusetzen
Akzeptiere ich. Ich stimme auch jedem zu, der sagt, dass man in C nicht effizient große projekte umsetzen kann.
Aber alle unsere Betriebsysteme sind in C geschrieben...
-
Ich würde dem auch zustimmen, allerdings sind C und PHP nicht sinnvoll vergleichbar. Bei PHP5 ist es eher die Tatsache, dass es eine interpretierte Sprache ist, was bei großen Projekten zu Laufzeiteinschränkungen führt, deshalb könnte man PHP als weniger geeignet ansehen, als andere Sprachen im Webbereich. C hat den Nachteil, dass es nicht oo ist, damit veraltet ist und den modernen Softwarearchitekturen nicht mehr gerecht wird.
PHP <5 ist meines Erachtens auch nicht wirklich geeignet für größere Projekte, aber mit Version 5 sieht das etwas anders aus. Man kann einige Softwaremuster damit umsetzen und wer Ahnung hat und guten Code zusammenstrickt, der kann ein gutes Stück Software mit PHP5 herstellen. Auch wenn andere Sprachen evtl. geeigneter wären, wer hat schon die Zeit für jeden Bereich die beste Sprache zu erlernen? Beim reinen Lernen der Syntax bleibts ja nie, sondern die Features und Besonderheiten sind es, die man erst mit jahrelanger Erfahrung richtig anwenden kann.
Ich fühl mich mit PHP5 im Webbereich extrem wohl. Gut, ich kann auch keine andere Sprache, wie Python, Perl oder ASP.NET, aber ich bin mir sicher erstmal nicht so schnell an Grenzen mit PHP5 zu stoßen.