9

Service Oriented Architecture Principlesサイトとそれぞれのウィキペディアの記事を読んだ後、私は考えました。Erlang/ OTPプラットフォームはSOAプラットフォームと見なすことができ、SOAアプリケーションをその上に構築することができます。

唯一のことは、そのようなシステムの各サービスのサービスコントラクトは非常に具体的であるということです:Erlang / OTPでサービスを呼び出すために、オーケストレーションレイヤーはErlangメッセージまたはgen_serverへの呼び出しを介して呼び出しを行う必要があります(実装によって異なります) 。

これにより、Erlang/OTPプラットフォームの範囲外のサービスを呼び出すことはできなくなります。

しかし、それぞれのサービス機能をすべてMochiwebなどのErlangベースのWebサーバーに移動し、各サービスのインターフェイスをgen_server:callからXMLに変更して、各サービスを構築しようとするとどうなるでしょうか。

これにより、 WSDLに基づくユニバーサルサービスコントラクトを使用して、標準化された「ブリック」からさまざまなアプリケーションを作成できます。

さらに、このアプローチでは、OTPスーパーバイザーやその他のOTP機能を引き続き使用できます。これは、このようなサービスが引き続きOTPアプリケーションであるためです。

したがって、問題は次のとおりです。サービスとしてOTP Webサーバー(Mochiweb)を使用して、サービス指向アーキテクチャーアプローチでソフトウェアアプリケーションを構築することは良い考えだと思いますか?追加のXML処理レイヤーは、そのようなアプローチのすべての利点を破壊する可能性がありますか?

Erlang/OTPを使用したSOA

4

3 に答える 3

8

これが行われない主な理由は、SOAのプロトコルに制限されるためです。Erlangは、いくつかのポイント(モニター)を追加してIPのプロトコルを実装します。あなたはそれをすることができますが、それはそれだけの価値があるのだろうかと思います。

原則として、ErlangにはSOAのアイデアのためのすべてのツールがすでにありますが、 SOAPWSDLの肥大化はありません:)

于 2012-06-24T12:53:12.890 に答える
6

これがErlangのメインアプリケーションであるWebサービスです。私たちは通常YawsAppmodsを使用しており、ここの記事でその方法について多くのことを説明できます。Erlangは、次の理由から、SOAに適したプラットフォームです

。1。副作用のないコードは、非常に簡単に作成およびテストできます。
2.分離:Erlangのプロセスは、各サービスリクエストをクリーンな方法で分離するのに役立ちます。
3.のようなほとんどのErlangライブラリはmochiweb、Erlangで記述されたSOAシステムをサポートするためにゼロから構築されていますmisultinChicago Boss

これらのフレームワークのいずれかの背後に独自のOTPアプリケーションを適用することは素晴らしいアイデアです。erlangがSOAに適しているもう1つの大きな理由は、冗長性です。SOAシステムは稼働している必要があります。サービスリクエストが失敗した場合、別のパスに沿って再試行されます(もちろん、物理層では、OTPアプリが配布されている別のマシンによって処理されます)。

試してみてください、素晴らしいアイデア

于 2012-06-25T08:00:47.847 に答える
3

SOAは、SOAPy Webサービスだけでなく、多くの実装テクノロジーに適用できます。SOAは常に有益であることがわかりました。たとえば、データベースビューとストアドプロシージャをサービスとしてモデル化できます。JavaAPIがサービスであるとモデル化できます。等

さて、あなたの実際の質問に行きましょう:

したがって、問題は次のとおりです。サービスとしてOTP Webサーバー(Mochiweb)を使用して、サービス指向アーキテクチャーアプローチでソフトウェアアプリケーションを構築することは良い考えだと思いますか?

いいえ。誰もがSOAPからRESTに移行しています。ただし、RESTfulサービスとしてOTP Webサーバー(Mochiweb)を使用して、サービス指向アーキテクチャーアプローチでソフトウェアアプリケーションを構築することをお勧めします。

追加のXML処理レイヤーは、そのようなアプローチのすべての利点を破壊する可能性がありますか?

それはあなたの目的が何であるかに依存します。「正しいこと」だと思ってXMLレイヤーを追加するだけの場合、解決すべき問題を探すソリューションになるため、XMLレイヤーには常に問題があります。エンティティの一般的に理解されている表現を作成することにより、サーバー実装テクノロジをクライアント実装から切り離すことを目的とする場合は、追加のXML(またはJSONまたは最も適切なもの)処理レイヤーを使用する価値があります。

于 2012-06-24T14:44:38.037 に答える