2

非常に複雑な質問で申し訳ありませんが、これは私がしばらく研究してきたことであり、それは本当に私を苛立たせています。今日の時代には、100万のサービスがあり、サービスを実装する1つの方法はクロスプラットフォーム(SOAP)であり、簡単に構築できるように感じます(.NET、Java、およびその他のフレームワークのおかげです)。ただし、これらのテクノロジーは5〜10年間コミュニティに存在していますが、私たちは常に同じ問題に悩まされています(または少なくとも私はそうです)。

  1. 識別(追跡サービス)-UDDI; たとえば、サービスについて説明しているwikiと、サービスドキュメントを保持しているリポジトリにある同じドキュメントのPDFバージョンがあるにもかかわらず、今月3回、サービスがある場所を同僚に思い出させる必要がありました。 。
  2. スケーラビリティ-すぐに使用できるクラスタリング。組織として、私たちはサービスの利用を監視し、このサービスがより多くのRAM、より多くのCPU、より多くのインターフェースを必要とするかどうかのような決定を下すためだけに管理者に支払うことに多額のお金を費やしています。これをどのように負荷分散しますか?
  3. 監視-エラーログなど。1人の顧客にのみ影響するように見えるバグが発生している理由を確認するために、サービスのトレースを設定する必要がある回数を数えられません。または、例外をシリアル化し、例外をdbsに記録するために、ロジックをサービスにコーディングする必要があります。優雅に失敗するなど。
  4. 展開-簡単に展開できます。5つの負荷分散サーバーにDLLをデプロイするこの方法はありません

これらの問題のそれぞれは、組織によって実装されたある種のカスタムソリューションを必要とします。#1のドキュメントとUDDI。#2の仮想化と負荷分散のハードウェア/ソフトウェア。#3のトレース、データベース/ログへの例外の書き込みなど。#4のカスタム展開ソフトウェア。私は中規模の組織で働いています。Sun、Google、またはMicrosoftの規模の企業がこれらのジレンマにどのように取り組むか想像さえできません。

私のビジョンは非現実的かもしれませんが、上記のすべてを管理するサーバークラスターの上にフレームワーク自体が存在することを夢見ています。BizTalkの機能の一部をWCFサービスの実装者(キャッシュ、ホスティング、監視など)に拡張しているように見えるため、MicrosoftのAppFabricについて読むことに夢中になりました。しかし、私が見たところ、それが生きているとは感じていません。開発者と組織が、クラスター間で簡単に拡張でき、クラスターに簡単に展開でき、識別可能で、場合によってはバージョン管理可能なサービスを作成するのに役立つオールインワンソリューションを夢見ています。

ですから、この投稿が私の夢についてのものであるという意味ではありません。実際に質問があります。手始めに、私の夢/完全に非現実的なものが欲しいですか?さらに、サービスを開発するための新しいより独自の方法(BizTalk)に制限されることなく、これらの問題を解決しようとするソリューションはありますか?最後に、完全なSOA / ESBソリューションに関して、現在または将来の市場で最も可能性のあるものはどこにあると思いますか?

4

3 に答える 3

2

ここではいろいろな問題について話していると思います。

1)。ドキュメントを読まない開発者。これは、SOAに限らず、固有の問題です。StackOverflowに関するいくつかの質問をご覧ください。少なくとも開発者は、独自のコードでロジックを複製するのではなく、サービスがあるかどうかを尋ねています。この種の問題に対する技術的な解決策は見当たりません。あなたはすでに優れたレジストリとドキュメントを提供していますが、一部の開発者は人々と話すことを好みます。たぶん、それでも、これは実際には良いことです-人間の相互作用は、相互作用の技術的内容よりも価値があります。あるいは、あなたはあまりにも親切です:「いいえ、私はその質問に答えません、それを調べてください。」

2)。スケーリング。この問題に対処する技術があります。(免責事項私はIBMで働いており、一部を販売しているので、これらを参照します。この分野でソリューションを提供しているベンダーがIBMだけであることを意味するつもりはありません。)新しいマシンをプロビジョニングできるこのような製品があります。 、ソフトウェアスタックをインストールし、それをクラスターに追加して、ワークロードの変更に対処します。次に、Java EEの世界でよりきめ細かい制御レベルで、アプリケーションサーバーはトラフィックを動的に形成し、クラスターを調整できます。WebSphereVirtualEnterpriseを参照してください

3)。モニタリング。私はあなたがここで期待するものを「理解」しません。おそらく、このようなトリッキーなバグには、アプリケーションレベルのトレースが必要になります。メモリリークやパフォーマンスのボトルネックの発見などのいくつかの問題には、少なくともJavaEEの世界では非常に優れたツールがあります。

4)。.Netの世界と話すことはできませんが、Java EEアプリサーバーはクラスター全体にアプリをスムーズにデプロイするという合理的な仕事をしていると思います。JNIを使​​用してDLLをデプロイする必要がある場合は、製品を使用できます。これを管理するために私が言及したTivoliスタックなど。

したがって、要約すると、ベンダーはこれらの問題に対処しようとしていると思います。そして、SOAがなければあなたの人生はもっとシンプルになるとは思いません。代わりに、無数の個別の独立したアプリケーションに適用される同じ問題を想像してみてください。

于 2010-08-14T06:37:48.840 に答える
1

これが私の2セントです。

私はSOAを誤って使用した会社の開発者でした。彼らが実装した最悪のソリューションは、SOAを使用したデスクトップアプリのフォーム要素のフィールドレベルの検証でした。これらを適切に実行するには、非常に低いレイテンシが必要です。新しいフィールドに変更するための2〜4秒の待機は、すぐに古くなります。このサービスは、biztalkサーバー上のネットワーク上で実行されました。誰もがそれを嫌っていました。

これを行う場合は、ネットワーク遅延、サービス障害、タイミング、およびタイムアウトの問題に対処するために多くの時間を費やす必要があります。

夢中にならないで、SOAがあらゆる問題の解決策だと考えてください。高レベルで使用すると優れており、低レベルで使用するとアプリケーションが壊れやすく、遅くなり、デバッグが不可能になります。

于 2010-08-13T21:50:23.390 に答える
0

IBMまたは大手SOAベンダーのいずれかと話すと、彼らは各シナリオをカバーする製品を手に入れました。

Identification (Tracking services) - UDDI; e.g., had to remind a co-worker the 3 times this month where a service is at, despite the fact there is a wiki that discusses the service and a PDF version of the same documentation that lives in a repository where we keep our service docs.

レジストリおよびリポジトリサーバー。良い点は、ガバナンス(昇格、降格、バージョン管理、承認)を実行し、ESBは通常、登録サーバーに対して最新かつ最大の「検索」を実行することです。

Scalability - Out of the box clustering; As organizations, we spend a lot of money on paying our admins just to watch the utilization of our services and make decisions like, does this service need more RAM, more CPU, more interfaces? How do I load balance this?

IBM Tivoli Composite ApplicationManagerforSOAのようなトランザクション監視ソフトウェア。基本的に、水平方向の観点から物事を追跡し、エンドユーザー/エンドアプリの観点からサービスの中断があるかどうかを確認します。

クラスタリングに関しては、優れたミドルウェアとアーキテクチャを選択する必要があります。個人的に言えば、「クラウド」の準備ができているものを入手してください。MOMで接続されたNoSQLを備えたアプリケーションサーバー。

Monitoring - error logging, etc; I can't count how many times I have to set up tracing on services in order to see why a bug is happening that only seems to affect one customer, or have to code logic into the service to serialize exceptions, log exceptions to dbs, fail gracefully, etc.

開発者およびベンダー向けのエンタープライズ標準。すべてのビジネスイベントとシステムイベントを単一のダッシュボードに統合します。(ほとんどの企業がそれらをこぼした)。これは、ほとんどのエンタープライズショップですでに行われています。

Deployment - easy to deploy; none of this deploying DLLs to 5 load balanced servers

ああ..MicrosoftIISWeb展開ツール2.0。マスターを更新するだけで、数百台のMSサーバーを同期できます。本当に簡単です。

于 2011-04-14T20:15:00.167 に答える