問題タブ [soa]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - プレゼンテーション層からサービス層呼び出しを行う
アプリケーション/プレゼンテーション層(Java ベース) をサービス層(Java ベース)に接続するテクノロジを選択する必要があります。基本的には、Business Delegate オブジェクトから適切な Spring Service を検索します。
そこには非常に多くのオプションがあり、私を混乱させます。ここに私が絞り込んだオプションがありますが、よくわかりません..
スプリング RMI
アパッチキャメル
アパッチ サービスミックス (ESB)
布施 イオナ (ESB)
ここに私が知りたいことがあります
- これらのいずれかに取り組んだ(または評価した)場合、どちらの選択がより適切だと思いますか? (そして、理由を教えても害はありません:)
- 他にも注目すべきテクノロジーはありますか?
- 現時点では、アプリケーション層とサービス層が分散されているとは考えていませんが、将来的にこの可能性を排除したくはありません。この柔軟性を提供するように設計することは良い考えですか?
どんな助けでも役に立ちます。ありがとう!
wcf - 方法: レスポンシブで利用可能な Wcf 二重通信
私は、WCF を使用してサーバーとクライアントの間で通信するアプリケーションに取り組んでいます。サーバーには、クライアントが他のサービスに関する情報を照会し、マスター サービスからの情報を使用して必要なサービスをサブスクライブできる 1 つのマスター サービスと共に、サービスの数が変化しています。 .
マスター サービスは、サブサービスが変更 (追加、削除など) されると、サブスクライブしているクライアントに通知を送信します。また、サブサービスは数秒ごとに通知を送信します。
これは、WCF のコールバック チャネルを使用する絶好の機会のように思えますが、セッションを使用する必要があります。また、クライアントに通知を送信するときに、いずれかのクライアントが不当に切断された場合、サービスが停止し、通知しようとします。タイムアウトしたとしても、しばらくすると他のクライアントには通知されず、クライアントは実際にはサブサービスの背後にあるアプリケーションを監視するための GUI であるため、これは受け入れられません。また、送信操作が成功しなかった場合、サービスはすぐに知る必要があるため、MSMQ を使用することはオプションではありません。
私が思いついた解決策は、http バインディングを使用して (送信が失敗したときにすぐにわかるようにするため)、クライアントで明示的なコールバック サービスを作成することですが、それには見栄えの悪いインフラストラクチャ コードをたくさん書く必要があります。
だから、私の質問は次のとおりです。WCFでこれを行うより良い方法はありますか。最も見栄えの良いオプションは Callback Contracts でした。これにより、次のクライアントに送信する前に 1 つのクライアントからの ack を待つことができなければ、コールバック サービスを手動で管理する必要がなくなるからです。
architecture - BizTalk/ESB を導入する必要がありますか?
私の会社は、SOA (Service Oriented Ambiguity を引用しないでください) 環境の Enterprise Service Bus (ESB) として BizTalk (私たちは Microsoft ショップです) を提案した新しいアーキテクチャを実装しようとしています。
私たちのビジネスは、顧客データベース、製品カタログ、注文システム、およびそれぞれが WCF サービスとして公開されるその他の補助システムに接続する必要がある新しい注文キャプチャ GUI を介して注文を受け取ることです。注文は注文管理などに渡されます。フルフィルメントのための下流システム、そして最終的に請求のための請求システムへ。現在、各システムには独自の GUI があり、それらを接続するために ESB を導入するという自然な考えを自動化および統合するために手動プロセスを使用してそれらの間で情報を渡しています。
私の ESB の理論的根拠の一部は、バスがシステムの接続方法 (各システムは不可知論的であり、他のシステムについては何も知らない) と、情報のフォーマット/変換方法を心配することです。将来、既存のシステムの一部が新しいシステムまたは当社のファミリー企業内のシステムに交換される可能性が非常に高くなります。
これは私には理にかなっているように思えますが、ポイント ツー ポイント ソリューションで十分な場合になぜそれを導入するのかについて、いくつかの抵抗に直面しています。
残念ながら、会社の歴史 (私が任命される前) では、BizTalk を導入する最初の試みは失敗しましたが、BizTalk には場所があり、提供できると確信しています。
私の質問はおそらく BizTalk に関するものではありませんが、説明したシナリオで ESB が良いアイデアであるかどうか、いつ ESB を導入するのが理にかなっていますか?
model-view-controller - MVC (または MVP) は SOA と共存できますか?
MVC や MVP デザイン パターンを使用する場合はビジネス ロジックがモデル内に存在する必要がありますが、サービス指向アーキテクチャではサービスの背後に隠されている必要があると思います。
ソフトウェア システムは、サービス指向アーキテクチャ内で MVC または MVP 設計パターンを使用できますか? もしそうなら、モデルはどこに座っていますか?
soa - オーケストレーションは ESB の責任ですか?
Enterprise Service Bus (メディエーター、メッセージ ブローカー、サービス イネーブラー、スキーマ変換エンハンサー、透過的なロケーション プロバイダー、サービス アグリゲーター、ロード バランサー、モニターなどとして機能するツール) は、サービスのオーケストレーションを担当していますか?
エンタープライズ サービス バス内に、1000 以上のステップと数十のサービス呼び出しを含む自動化されたビジネス ビジネス プロセスを配置するのはどうでしょうか?
それを行いますか、それとも BPEL エンジンなどのオーケストレーションのスペシャリストを使用しますか?
ご意見をお聞かせください。
c# - 初心者のWCF質問-消耗品の非同期サービス
これは、「どのように行われるか」という質問ではなく、「どのように行われるか」という質問です。さまざまなプラットフォーム上の複数の内部クライアントシステムで使用されるサービス(中間層、.net、データ抽象化といくつかのビジネスロジックの提供)の構築を検討しています。たとえば、あるクライアントはWebサイト、別のクライアントはJavaコード、別のクライアントはC#などです。
GetData、BeginGetData、EndGetDataメソッドなどの同期および非同期APIをサービスに提供したいと思います。また、クライアントがシステムに追加される新しい「データ」の通知に登録できるようにしたいと思います。過去に、通知用のTibcoEMSチャネルを備えたWebサービスを使用してこれを実装しました。
私の質問は次のとおりです。WCFサービスを公開することで、3つの要件(同期、非同期、およびpub / sub)を達成できますか?このサービスは、WCF以外のクライアントによって消費される可能性がありますか?
この質問のあいまいさを失礼します-私は必要に応じて詳しく説明することができます。
前もって感謝します。
components - コードの再利用のアイデアをあきらめましたか?
数年前、メディアは、コードの再利用のアイデアが生産性とコードの品質を向上させる簡単な方法であるというあらゆる種類の記事であふれていました。
私が定期的にチェックしているブログやサイトを見ると、「コードの再利用」という考えは時代遅れになっているようです。おそらく、'コードの再利用' の提唱者は全員、代わりに SOA クラウドに参加したのでしょうか? :-)
興味深いことに、Google で「コードの再利用」を検索すると、2 番目の結果のタイトルは次のようになります。
「危険と見なされる内部コードの再利用」!
私にとって、コードを再利用するという考えは単なる常識です。結局のところ、apache commons プロジェクトの成功を見てください!
私が知りたいのは:
- あなたまたはあなたの会社は、コードを再利用しようとしていますか?
- もしそうなら、どのように、どのレベルで、つまり低レベル API、コンポーネント、または共有ビジネス ロジックですか? あなたやあなたの会社はどのようにコードを再利用していますか?
- それは機能しますか?
議論?
多くのオープン ソース ライブラリが利用可能であり、.NET または Java を使用したことがある人は何らかの形でコードを再利用していることを十分に認識しています。それは常識です!
共有ライブラリなどを介したコミュニティ全体ではなく、組織内でのコードの再利用について言及していました。
私は最初に尋ねました。
- あなたまたはあなたの会社は、コードを再利用しようとしていますか?
- もしそうなら、どのように、どのレベルで、つまり低レベル API、コンポーネント、または共有ビジネス ロジックですか? あなたやあなたの会社はどのようにコードを再利用していますか?
私が座っているところから、社内でコードを再利用しようとしている企業の例はほとんどありませんか?
中規模の組織全体で共有される可能性のあるコードをお持ちの場合、この lib/api/etc が存在し、利益をもたらす可能性があることを会社の他のメンバーにどのように通知しますか?
soa - SOA ガバナンスの説明
SOA ガバナンスとは何かを理解している人はいますか? SOA ガバナンスと IT ガバナンスの違い (または相関関係) は何ですか? 市場で入手可能な SOA プラットフォームを使用してどのように適用できますか?
SOA プラットフォーム上に構築されたプロジェクトは、SOA ガバナンスを適用せずに成功できますか? どのように?私はここで実用的な観点から話しています。
soa - Websphere Integration Developer (WID) の経験はありますか?
私の会社 (大規模な組織) は、かなり古くて複雑なシステムの連合を SOA モデルに進化させるための「ロードマップ」を作成しています。一部の人々は、Websphere Integration Developer と Websphere Process Server を将来のアプリケーションを開発するための事実上のプラットフォームとして使用することを強く求めています...彼らは、IBM が安定したベンダーであり、ツールが企業向けに作られ、「ビジネスの俊敏性」を享受していると感じているからです。 BPELクールエイドなど
このプラットフォームについて肯定的または否定的な考えを持っている人はいますか? GUI ツールは、単調で冗長なコーディングをなくすのに役立ちますか? それとも単に物事を不明瞭にして保守を難しくするだけですか? 基本的に、利点は複雑さを正当化しますか?
.net - .NET の世界における ORM と SOA
私の経験から、.NET の主要な ORM フレームワーク ( NHibernate、LinqToSql、Entity Framework ) は、読み込まれたオブジェクトを追跡するときに最適に機能します。これは単純なクライアント/サーバー アプリケーションでは問題なく機能しますが、サービス指向アーキテクチャで Web サービスを含む 3 層以上のアーキテクチャを使用する場合、これは不可能です。最終的には、自分で追跡を行うコードをたくさん書くことで実現できますが、ORM は DB アクセスを簡素化するためのものではないでしょうか。
サービス指向アーキテクチャで ORM を使用するという考えは、まったく良いのでしょうか?