2010-09-02 24 views
2

Je dois écrire un service SOAP pour Linux (CentOS).Rédaction d'un service SOAP sous Linux - outils, aide nécessaire

Je dois le faire en utilisant Lazarus/FreePascal. Le service doit être un binaire (démon) qui s'exécute en arrière-plan.

Questions: 1. Est-ce possible (en tant qu'exécutable autonome)? 2. Si non, quelles sont les alternatives? 3. Comment démarrer? 4. De quels outils/bibliothèques ai-je besoin?

+0

Je suppose que vous devriez ajouter Pascal/Lazarus/FreePascal en tant que balises, afin que les personnes appropriées regardent la question; puisque Pascal n'est pas un langage standard pour développer SOAP. –

Répondre

0

Pascal est-il vraiment une exigence? Sinon, vous pourriez écrire un service SOAP en Java, alors votre service serait indépendant de la plate-forme. La seule exigence serait un JRE, et JRE sont disponibles pour toutes les plateformes, donc il fonctionnerait parfaitement sur toutes les versions de Linux, Windows, Mac OsS, Solaris, etc

Il y a aussi beaucoup de frameworks pour faire du SOAP en Java .

Pascal serait également capable de fonctionner sous Linux et Windows avec des ajustements mineurs, mais je n'ai aucune connaissance des bons frameworks SOAP existants pour Pascal.

+0

1. Il est impératif pour des raisons de performance que je doive l'écrire dans FreePascal. 2. On m'a demandé d'en faire un binaire ie. ne pas courir derrière un serveur web. Est-ce possible? – SamS

+0

-1 ne répond pas à la question. –

1

This semble prometteur, au moins comme un début.

SOAP est une spécification de langue neutre donc en théorie, vous pouvez coder dans n'importe quelle langue. Mais pour vos besoins, si vous ne pouvez pas trouver une librairie dans pascal qui fait le travail, vous feriez mieux d'utiliser n'importe quelle autre langue. À moins que vous soyez spécifiquement à la recherche d'un long détour par le trou de lapin de WSDL et autres, n'y allez pas.

+0

Oui j'ai vu cette page. Mais j'ai encore la question - est-il possible de créer un exécutable qui fonctionnera en arrière-plan en écoutant les requêtes SOAP? Quelle bibliothèque est bonne? Indy? Synapse? – SamS

+0

@SamS - Je ne suis pas du tout familier avec le monde de Pascal ces jours-ci et en fait plutôt impressionné, il est aussi robuste qu'il semble. Vous pouvez certainement écrire un exécutable autonome qui s'exécute en arrière-plan. Il me semble que cela a la plupart de ce dont vous avez besoin. Voir les sections sur la création de services côté serveur. Il semble avoir des classes de socket, etc., prêt à l'emploi. – Duck

+1

[ Voir les sections sur la création de services côté serveur. Il semble avoir des classes de socket, etc., prêt à l'emploi ] Où puis-je trouver ceci? – SamS

0

Je voudrais juste utiliser Indy, et ce que libi savon Delph une recherche google a cédé. Je serais surpris s'il n'y en avait pas une douzaine.

2

Ceci est possible avec wst et synapse ou indy. wst est déjà inclus dans votre téléchargement Freepascal. Certains échantillons sont également inclus, jetez-y un coup d'œil.

J'ai créé plusieurs services de soap avec wst + freepascal. Vous pouvez choisir de les faire utiliser leur propre serveur Web (afin qu'ils écoutent simplement sur un certain port, permet un débogage simple) ou créer un module cgi que vous pouvez utiliser dans Apache ou IIS. Vous pouvez également créer un service Windows ou un démon linux, tout en changeant certains paramètres ou en incluant d'autres fichiers.

Ce n'est pas facile si vous le faites pour la première fois, mais certainement possible.

2

Je peux répondre à certaines de vos points depuis que je suis en train de faire moi-même:

  1. en utilisant Lazarus et l'installation du package lazdaemon vous pouvez faire daemons/services compiler et exécuter individuelle sur Windows (Service) et Linux (Daemon). Daemons and Services
  2. N/A
  3. Vous avez des exemples sous la [fpc-source-dir]/packages/fcl-base/example/daemon.pp et sous [lazarus-dir]/examples/cleandir/*
  4. Vous aurez besoin d'une sorte de cadre SOAP que je ne suis pas versé dans.

Hope it helps.