Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Serveranwendung (https://www.delphipraxis.net/75504-serveranwendung.html)

3_of_8 20. Aug 2006 14:45


Serveranwendung
 
Morgen.

Ich würde mal gerne wissen, wie ich eine Serveranwendung schreiben kann und welche Voraussetzungen der Server erfüllen muss.

Die Serveranwendung sollte eigentlich nur zwei Sachen können: An einem bestimmten TCP Port lauschen und bei Bedarf in eine mySQL schreiben bzw. daraus lesen können.

Welche Möglichkeiten gibt es da?
ASP. würde wahrscheinlich gehen, nur leider habe ich keinen ASP Server zur Verfügung.
Eine EXE würde garantiert gehen, aber auf nem Apache geht das halt nicht.
Ein Java Servlet würde mir noch einfallen - wie sind da die Voraussetzungen?

Bernhard Geyer 20. Aug 2006 15:04

Re: Serveranwendung
 
Äh, Apache? Exe würden gehen wenn man die entsprechende Schnittstelle von Apache bedient.

Aber willst Du das eventuell bei einem Provider laufen lassen bei dem Du eine 0815-Homepage hast und dort auch nicht ASP.NET verfügbar ist. Dann vergiss gleich wieder Delphi und Java. Wenn Du Glück hast kannst Du eigene PHP-Scripte hochladen welche das Gewünschte erledigen.

faux 20. Aug 2006 15:05

Re: Serveranwendung
 
Was hat denn EXE-Unterstützung mit Apache zu tun? :gruebel:

Naja, ohne dass du Executeable-Files ausführen kannst, wirst du da nicht weit kommen.
Du könntest auch ein Skript endlos laufen lassen (PHP oder Perl oder so), aber da hast du dann eher wenig Kontrolle über das Skript.
Eigentlich sind ja die Services genau für sowas gedacht, aber wenn du keinen VOllzugriff auf den Server hast, siehst hier schlecht aus.
Ev. hilft dir ein Cronjob.

Grüße
Faux

Meflin 20. Aug 2006 15:05

Re: Serveranwendung
 
Java :kotz:

wie wärs mit einem SOAP-Server? die müssten doch theoretisch auch unter Apache laufen oder? Hab schon lange keinen mehr gemacht, aber der Output ist afair eine DLL und ich bin mir ziemlich sicher dass es ein Apache Modul dafür gab :)


3_of_8 20. Aug 2006 15:09

Re: Serveranwendung
 
Öööh... Ich meinte ein Apache unter Linux. Hab ganz vergessen dass es den ja auch für Windows gibt.

Naja, egal. Dann werd ich es wohl doch über PHP machen.

Wieviel mehr Möglichkeiten habe ich mit CGI? Python? PERL?

faux 20. Aug 2006 15:13

Re: Serveranwendung
 
Zitat:

Zitat von 3_of_8
Wieviel mehr Möglichkeiten habe ich mit CGI? Python? PERL?

IMO ist CGI keine Skriptsprache, sondern nur ein Interface zwischen der Skriptsprache (PHP, Perl, Phyton, ...) und dem Webserver.

Also du solltest dir mal bewusst sein, dass jedes dieser Skripte (incl. PHP) eine maximale Laufzeit auf dem Server hat (meistens 10-30 Sekunden) wie nicht überschritten werden darf. Nach dieser Zeit muss sich entweder das Skript selbst wieder aufrufen, oder es wird von der Skriptengine (oder wie immer man das Teil nennt) geklillt.

Grüße
Faux

Der_Unwissende 20. Aug 2006 16:39

Re: Serveranwendung
 
Zitat:

Zitat von Meflin
Java :kotz:

Das nenn ich doch mal stark argumentativ! Was genau hast du denn gegen die Sprache Java? Also wenigstens ein Satz wäre ja wohl mal drin.

Zitat:

Zitat von 3_of_8
Dann werd ich es wohl doch über PHP machen.

Wieviel mehr Möglichkeiten habe ich mit CGI? Python? PERL?

In Bezug auf was? Es wird hier sicher keiner die Unterschiede zwischen Python und PHP, Perl und PHP, JSPs und PHP und allen anderen Möglichkeiten aufzählen.

Zitat:

Zitat von faux
IMO ist CGI keine Skriptsprache, sondern nur ein Interface

Steht glaube ich auch für Common Gateway Interface (oder?)

Jedenfalls hast du je nach Sprachwahl extrem unterschiedliche Möglichkeiten. Die meisten Unterschiede liegen letztlich darin, welche Bibliotheken du verwenden kannst. Für die einfache Arbeit mit einer Datenbank (nahezu beliebigen Typs) und einfache Abfragen sind die sicherlich alle gleich gut geeignet. Die Entscheidung sollte hier einfach über die eigenen Vorlieben und Kenntnisse fallen. Da du ja (wenn ich mich richtig erinner) gerade mit viel mit Java arbeitest, solltest du dir ruhig die JSP/Servlet Geschichten anschauen. Alles was du brauchst ist ein Server, der die Technik unterstützt. Am häufigsten wirst du hier den Namen Tomcat hören (kommt auch von Apache und kann sehr leicht mit dem Apache Webserver zusammenarbeiten).
Beim Einsatz von Java im Web Bereich verwendest du (hauptsächlich) zwei Techniken, JSPs und Servlets. Letztlich ist das eine falsche Aussage, JSPs werden in Servlets übersetzt und Servlets sind auch nur Java Klassen, aber so von der Arbeit her unterscheiden die sich halt leicht.
So entsprechen JSPs ein wenig dem, was du aus PHP kennst. Du hast hier ein spezielles Tag, mit dem du Skriptanweisungen in einer HTML-Seite einbetten kannst. JSPs werden eigentlich nur für die Anzeige der Webseite beim Client verwendet. Du kannst Code direkt einbetten (was immer eine unschöne Vermischung von Java und HTML darstellt) oder eigene Tags definieren und diese verwenden (etwas aufwändiger aber lohnt sich!).
Servlets sind hingegen normale Java Klassen und haben auch Zugriff auf alle Java Bibliotheken (damit insbesondere auch auf JDBC). Der eigentlich unterschied zu normalen Applikationen liegt dann darin, dass du keine main verwenden wirst, sondern eine post und get Schnittstelle hast.

Wie gesagt, für die eigentliche Abarbeitung eignet sich alles gleich gut, was du einsetzt sollte von der Vorliebe abhängen. Wenn du allerdings ein fertiges System verwendest, musst du schauen was dir zur Verfügung gestellt wird. Ein Apache ist nur ein Webserver, hier läuft weder PHP, noch Perl, noch Python, .... Das muss schon von jmd. installiert werden. In der Regel gibt es ein voristalliertes PHP modul und das war's. Wenn du hier keine Möglichkeiten hast selbst etwas zu installieren, entfallen schon alle anderen Lösungen.

Gruß Der Unwissende

Meflin 20. Aug 2006 16:42

Re: Serveranwendung
 
Zitat:

Zitat von Der_Unwissende
Das nenn ich doch mal stark argumentativ! Was genau hast du denn gegen die Sprache Java? Also wenigstens ein Satz wäre ja wohl mal drin.

Na gut, aber nur weil dus bist ;) mit dem Smiley wollte ich gleichzeitig auch ausdrücken, dass es sich größtenteils um eine private asympatie handelt ;) abgesehen davon habe ich gegen Java, dass mir der Sprachsyntax absolut nicht gefällt (zum kotzen eben ;) ) und außerdem Java-Anwendungen Gerüchten zufolge Resourcen ohne Ende fressen. Für einen Satz soll das nun genügen. Vorteil von Java ist sicherlich die Cross-Platform-Kompatibilität, die hier aber schwerlich nötig ist.


Der_Unwissende 20. Aug 2006 16:49

Re: Serveranwendung
 
[OT]
Zitat:

Zitat von Meflin
Na gut, aber nur weil dus bist ;)

Vielen Dank!
[/OT]

Jelly 20. Aug 2006 16:54

Re: Serveranwendung
 
Da fällt mir spontan ein Webservice ein, der auch einfach in PHP geschrieben werden darf, sofern PHP in der 5er Version läuft... Guckst Du hier.

Der_Unwissende 20. Aug 2006 17:02

Re: Serveranwendung
 
Zitat:

Zitat von Jelly
Da fällt mir spontan ein Webservice ein, der auch einfach in PHP geschrieben werden darf, sofern PHP in der 5er Version läuft... Guckst Du hier.

Allet klar.

Zitat:

Zitat von 3_of_8
Die Serveranwendung sollte eigentlich nur zwei Sachen können: An einem bestimmten TCP Port lauschen und bei Bedarf in eine mySQL schreiben bzw. daraus lesen können.

Da denke ich auch sofort an einen Webservice :mrgreen:

czapie 21. Aug 2006 01:15

Re: Serveranwendung
 
Mh, wenn es dir um einen bestimmten TCP-Port geht ist ein WebService nicht unbedingt notwendig.
Letztendlich bedeutet das, dass du auf einem schon relativ niedrigen Level kommunizeren willst,
das heißt, dass du dir eine Art "eigenes Protokoll" überlegen musst. Also festgeleget Nachrichten
an den TCP-Port schicken und dafür bestimmte Antworten erwarten.

Soll es so nach dem Motto laufen "Gib mir mal alle Namen meiner Freunde aus der DB", dann denke
ich ist ein WebService zuviel.

BTW, Tomcat ist auf dem Java-Gebiet eher ein simpler Webserver, die größeren wie JBoss, WebSphere usw.
sind dann schon wahre Application-Server mit EJB-Unterstützung usw.

Jelly 21. Aug 2006 07:36

Re: Serveranwendung
 
Zitat:

Zitat von czapie
Soll es so nach dem Motto laufen "Gib mir mal alle Namen meiner Freunde aus der DB", dann denke
ich ist ein WebService zuviel.

Dann begründe das mal bitte... Was wäre denn deiner Ansicht nach genau für diesen konkreten Fall geeigneter ?

czapie 21. Aug 2006 08:49

Re: Serveranwendung
 
Naja, eben die einfache String-basierte Kommunikation über einen TCP-Socket.
Denn so Vorteile wie die Unabhängigkeit von Plattform und verwendeter Programmiersprache
sind hier denke ich nicht stechend.
Die Argumentation war auch nicht, dass es mit WebServices nicht geht, sondern
eher dass es zu aufwendig ist für eine simple Kommunikation, in der beide
Kommunikations-Partner weitgehend festgelegt sind.

Jelly 21. Aug 2006 08:56

Re: Serveranwendung
 
Ich denk aber schon, dass es recht kompliziert wird, über einen anderen Port zu kommunizieren. Wenn der Server wirklich bei einem Provider steht, glaub ich nicht dass dann dafür extra ein Port geöffnet wird.

Aber es gibt bekanntlich mehr Lösungen als Probleme :zwinker:

czapie 21. Aug 2006 09:08

Re: Serveranwendung
 
Hi Jelly,

jap, da hast du mit Sicherheit Recht! Ich kenn auch keinen Provider der so etwas mitmacht.
Aber wenn man einen VServer, dedicated Server, oder was auch immer es inzwischen für Namen
dafür gibt, hat, denn könnte man den entsprechenden Port selber aufmachen.

Czapie.

mquadrat 21. Aug 2006 09:20

Re: Serveranwendung
 
Hab in PHP noch nie nen Webservice geschrieben, aber theoretisch sollte doch der komplette SOAP Teil eigentlich gekapselt sein, so dass es IMHO weniger Arbeit macht als ein eigenes Protokoll.

Egal wie du es machst solltest du entweder die Queries auf der Serverseite haben, oder alle auf SQL Injection prüfen vor dem Ausführen. Damit dir keiner ein "drop database" schicken kann;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz