-
Web Services ou DCOM ?
Bonjour tout le monde.
Je désire créer une API associée au logiciel que je développe.
J'ai vu qu'il y avait moyen d'utiliser la technologie DCOM ou les Web Services.
Je ne sais pas quoi choisir.
A ce que j'ai compris, les avantages des Web Services sont l'utilisation des standards (XML, protocole HTTP...), mais dans les désavantages, il y a des performances faibles. Il est vrai qu'avec Delphi, créer un document XML conséquent n'est pas rapide.
Je ne connais pas encore les avantages et désavantages d'utiliser DCOM.
Le but est de concevoir un moteur de données, il reçoit une requête d'une application cliente et renvoie les données agrégées (après s'être connecté à une base de donnée).
Il est possible que l'application cliente soit une application Web.
Et à terme, le moteur renverrait les données formatées pour être directement affichables dans un navigateur. Et il y aurait aussi le développement de l'application Web qui communiquerait avec le moteur. Dans cette optique, je me dis qu'utiliser DCOM dans un premier puis les Web Services pour faire l'application web ne serrait pas très stratégique et mieux vaudrait tout faire avec les Web Services.
Mais d'un autre côté, il se peut que le moteur soit sollicité par beaucoup de clients simultanément donc il serrait préférable d'utiliser une technologie plus performante comme DCOM (la création de documents XML volumineux est très longue).
Qu'en pensez-vous et que me conseillez-vous ?
Merci.
-
Vrai que l'interrogation avec un service web sera long. Je te conseille le livre Delphi5/XML - Développer des applications internet et intranet (Découvrez la programmation COM, DCOM, XML) paru chez CompuPress par Cogisoft. Y a de bons exemples et les sources d'un moteur de données XML.
Exclusivement DCOM, il y a le livre DELPHI COM Programming de Eric Harmon chez macmillan, couvrant tous les aspects COM et DCOM. Ces applications sont définitivement plus rapides et plus souples que les web services mais aussi plus complexes à programmer. Ça serait la meilleure solution.
Pour ma part, et strictement pour les bases de données, j'utilise les composants ASTA (astatech.com) qui est un moteur tiers (tiny client) permettant de se connecter sur n'importe quelle gestionnaire de base de données à partir de clients internet ou de pages html. Typiquement j'utilise la SGBD Firebird mais ça fait tout aussi bien avec Oracle ou MySQL ou via ADO. Sur mes données en service, y a régulièrement de 100 à 200 personnes connectées 'live' et ça supporte sans faille avec une bonne rapidité. C'est le développement le plus rapide que j'ai trouvé.
-
Ne sachant pas trop, je me suis lancé dans le dev WebServices, j'ai commencé par créer un document XML contenant les données qui seront transmises, puis j'ai suivi un tutoriel pour apprendre à faire un projet WebServices en Delphi et je me suis rendu compte que j'avais bossé pour rien, car tout ce qui est communication en langage XML est déjà encapsulé et invisible pour le programmeur.
J'ai choisi les Web Services pour être sûr que ce soit utilisable par des applications Web et que les Web Services sont plus récents que la technologie DCOM.
Mais je n'apprécie pas trop que tout passe par XML, je trouve que ce n'est pas du tout optimisé.
Je n'ai pas bien suivi ce que tu as expliqué sur ASTA, ce sont des composants qui permettent de faire une API ? Il permettent l'échange de données ?
-
ASTA sont des composants qui permettent de créer des services tiers. Y a un côté serveur qui fait le pont entre les clients et le SGBD, et les applications clients pour s'y connecter. Les applications clients peuvent être des programmes windows 32 bits régulières connctées via TCP/IP sur le serveur ou provenir de page web (service SOAP/XML). Le serveur ASTA reçoit toutes les appels des clients et gère les demandes, que ce soit SQL (le plus simple) ou autres (autre que les requêtes SQL). Ils permettent donc l'échange de données. A partir de là il y a tout est posssible.
-
Ok, je comprends un peu mieux, mais je pense que ce n'est utilisable dans mon cas, car je ne connais pas à priori les équipes qui développeront les applications clientes. Je doute qu'on puisse leur imposer d'utiliser ces composants, surtout qu'elles seront libre de choisir le langage qu'elles désirent.
-
Finalement, mon besoin a un peu changé, j'aurrais besoin de créer une API Web Services ou DCOM pour que l'application soit pilotée par d'autres applications.
Mon choix n'a toujours pas été fait entre les 2 technologies.
DCOM/COM :
J'ai entendu dire que les objets COM étaient vieux et qu'en .NET par exemple, il était recommandé de ne pas les utiliser. De plus, il faut avoir l'application appelante et l'application appelée sur la même machine.
Par contre, c'est souple et rapide. Pas besoin d'installer un serveur Web.
Web Services :
Pas d'obligation d'avoir les 2 applications sur le même poste. Tout passe par le port 80, pas de configuration du pare-feu, possibilité de travailler via Internet.
Par contre, ce n'est pas du tout rapide, les échanges se font en XML et il faut nécessairement installé un serveur Web et le configurer pour faire fonctionner les Web Services. Je m'y attelle depuis ce matin et n'arrive pas à configurer Apache pour faire marcher les Web Services.
J'ai peur qu'au final je doive développer les 2.
-
Salut!
J'étudie présentement un bouquin pour me préparer à l'examen 70-300 de Microsoft (c'est pour la certif MCSD). L'examen 70-300 est un examen d'analyse et y'a justement un chapitre sur ça, le remoting.
C'est une suggestion de Microsoft alors ça vaut ce que ça vaut mais en préparation à l'examen, le bouquin dit que lorsqu'on doit faire un choix entre les Services Web XML et le remoting binaire (COM+), tout dépend de la priorité de la performance dans les objectifs à atteindre. Si la performance est l'objectif premier, COM+ est ton option la plus viable. Si le fait d'être performant est moins important que l'interopérabilité, la facilité d'implémentation ou de déploiement par exemple, le Service Web répondra plus efficacement à tes attentes.
Tout dépend de la priorité de test objectfs.
Ceci dit, je ne suis pas un expert :).
Bon dev!