9
votes

SOA: Pourquoi n'utilisez pas de serveurs Web Erlang / OTP en tant que services?

Après avoir lu le principes d'architecture orientée service site et le Wikipedia respectif Article J'avais pensé: la plate-forme Erlang / OTP peut être considérée comme une plate-forme SOA et des applications SOA peuvent être construites dessus.

La seule chose est que le contrat de service pour chaque service dans un tel Le système est très spécifique: afin d'appeler un service à Erlang / OTP, la couche d'orchestration devra apporter des appels via des messages erlang ou des appels vers Gen_Server (dépend de la mise en œuvre).

Cela ne laisserait pas apporter des appels aux services en dehors de la portée de la plate-forme Erlang / OTP.

Mais si nous essayons de construire chaque service en déplaçant toutes les fonctionnalités de service respectives dans un serveur Web à base d'erlang, comme MochiWeb et en modifiant essentiellement l'interface de chaque service de Gen_Server: appelez à XML?

Cela permettra de composer diverses applications de «briques» normalisées avec des contrats de service universels basés sur WSDL .

De plus, cette approche nous permettra de continuer à utiliser les superviseurs OTP et d'autres fonctionnalités OTP, car un tel service sera toujours une application OTP.

Alors, la question est: Pensez-vous que la création d'une application logicielle avec l'approche d'architecture orientée de services en utilisant des serveurs Web de OTP (Mochiweb) en tant que services est une bonne idée? La couche de traitement XML supplémentaire peut-elle détruire tous les avantages de cette approche?

SOA avec Erlang / OTP


4 commentaires

webmachine ( wiki.basho.com/webmachine.html ) pourrait valoir la peine de rechercher votre non -Le environnement spécifique. En principe, il n'y a aucune raison pour que OTP ne puisse pas fournir ce que vous recherchez - au moins au niveau de la généralité que vous décrivez.


J'ai pensé exactement la même chose :-)


SFInnie, quelle est la différence entre webmachine et mochiweb dans ce cas particulier?


Erlang est entièrement Mots-mots compatible, mais sa compatibilité de mots à la mode n'est pas conforme à la portée de l'espace de noms SOA Buzzword. C'est-à-dire que, dans des termes pratiques, Erlang Services a déjà fait ce que la SOA prétend être sur le point, mais sans les normes sociales Cruft nécessaires pour faire partie du monde de la SOA. Par exemple, vous avez dit "couche d'orchestration" comme s'il s'agissait d'une idée orthogonale à OTP. De plus, XML est un peu gagnant.


3 Réponses :


8
votes

La principale raison pour laquelle cela n'est pas fait est parce que vous vous limiteriez au protocole de SOA. Erlang implémente le protocole de propriété intellectuelle avec certains points ajoutés (moniteurs). Pendant que vous pouvez le faire, je me demande si cela en valait la peine.

En principe, Erlang a déjà tout l'outil pour l'idée de SOA mais sans tout le gonflement de savon et wsdl :) < / p>


2 commentaires

Pourriez-vous s'il vous plaît fournir un exemple simple du gonflement du savon et de la WSDL? (Je demande, parce que je ne sais rien de ce blagot)


Gonfler dans l'affaire signifie "très grand standard". Il est difficile de mettre en œuvre pleinement les grandes normes.



3
votes

SOA peut être appliqué à de nombreuses technologies de mise en œuvre, pas seulement des services Web savonneux, et j'ai trouvé que cela a toujours été bénéfique. Par exemple, vous pouvez modéliser vos vues de base de données et les procédures stockées en tant que services. Vous pouvez modéliser vos API Java sont des services. c.

Maintenant, accédez à vos questions actuelles:

Donc, la question est la suivante: pensez-vous que la construction d'une application logicielle Avec l'approche de l'architecture orientée du service en utilisant OTP WebServers (Mochiweb) en tant que services est une bonne idée?

Non. Tout le monde s'éloigne du savon et du repos; Cependant, construire une application logicielle avec l'approche d'architecture orientée du service à l'aide de WebServers OTP (Mochiweb) comme services reposants pourrait être une bonne idée.

La couche de traitement XML supplémentaire peut-elle détruire tous les avantages de cette approche?

Cela dépend de votre objectif. Si vous ne faites que ajouter une couche XML parce que vous pensez que c'est «la bonne chose à faire ™», vous aurez toujours des problèmes avec la couche XML car ce sera une solution à la recherche d'un problème à résoudre. Si votre objectif est de découpez la technologie de mise en œuvre du serveur de la mise en œuvre du client, en créant des représentations couramment comprises pour vos entités, la couche de traitement XML (ou JSON ou tout ce qui est la plus appropriée) en vaut la peine.


0 commentaires

6
votes

Ceci est notre application principale d'Erlang: Services Web. Nous utilisons normalement yaws appmods et un Article ici peut vous montrer beaucoup sur la façon dont elle est faite. Erlang a été une bonne plate-forme pour la SOA, à cause des éléments suivants:

1. Effet secondaire Le code Free est très facilement écrit et testé.
2. Isolement: Les processus d'Erlang aide à isoler chaque demande de service de manière propre.
3. La plupart des bibliothèques erlang comme mochiweb , Mesultin et Chicago Boss ont été construits à la base pour soutenir Soa Systems écrit à Erlang.


C'est une bonne idée d'appliquer votre propre application OTP derrière l'un de ces cadres. Une autre grande raison pour laquelle Erlang convient à la SOA est la redondance. Les systèmes de SOA doivent être en hausse. Si une demande de service échoue, sa rééduite sur un chemin différent (qui, bien sûr à la couche physique, elle est gérée par une machine différente de votre application OTP distribuée).

Donnez-lui un coup, une bonne idée


0 commentaires