問題タブ [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.
.net - .NET SOA 商用推奨
メッセージ キューイング、分散キャッシュ、フェイルオーバー/冗長性をカバーする .NET ミドルウェア システムを探しています。ある種の標準ベースの商用ソリューションを検討したいと思います。
あなたは何をお勧めします?企業の観点から、時の試練に耐え、事業を継続する可能性が非常に高いものはありますか?
重要な側面の 1 つは、優れた管理/監視ツールを備えたものが必要だということです。Java の世界には何年にもわたってこれらのものがたくさんあったと思いますが、.NET の世界からは何も飛び出していないようです。
soa - DRY原則と依存関係の最小化のバランスをとる方法は?
私は、DRY 原則 (Don't Repeat Yourself) に問題があり、Rete ルール エンジンを中心に展開する依存関係を最小限に抑えています。
大規模な IT 組織のルール エンジンはエンタープライズになる傾向があります (大文字の「E」に注意してください。これは深刻なビジネスです)。すべてのルールは一度だけ表現され、ナイスで DRY であり、高価なルール エンジンに集中化される必要があります。グループはルール エンジンを維持し、ルール セットの管理者です。
その IT 組織がアメリカの保険会社の一部である場合、多くの規則が存在する傾向があります。すべての州と製品に適用される規則がありますが、各州は製品ごとに独自の法律を展開する傾向があるため、規則はこれらの癖を反映する必要があります。カテゴリは多数あります: 保険数理、保険引受、さらには第三者機関からの信用および自動車のレポートの注文などです。
設計の観点から私が抱えている問題は、ルールと処理を集中化することは確かに素晴らしく DRY ですが、コストがかかることです。
- 中央に配置されたルール サービスにアクセスして結果を返すための追加のネットワーク ホップ。
- ルール エンジンが SOAP Web サービスとして公開されている場合はさらに複雑になります。消費者は SOAP 要求をパッケージ化し、応答を OXM して自分のドメインに戻す必要があります。
- ルール エンジンを維持する企業グループ、ルールを設定および維持するビジネス、ルールを使用する開発者の間の追加のインターフェイス。
- 追加の複雑さ - データ駆動型のソリューションで十分な場合があります。
- 追加の依存関係 - 独自のルールを制御できないコンポーネントは、テスト、展開、リリースなどのために、ルール エンジンの外部依存関係について心配する必要があります。
これらの問題は、他の多くのエンタープライズ テクノロジ (B2B ゲートウェイ、ESB など) で発生します。
同じエンタープライズ グループも、SOA を基本原則として宣伝しています。しかし、適切なサービス設計についての私の理解では、それらはビジネス スペースを並べて表示し、冪等、独立、および分離する必要があります。ルールが別の場所で維持されている場合、サービスはどのように独立して分離されているのでしょうか?
ルールが孤立した状況でのみ適用されることを示すことができる場合、依存関係を排除することは集中化よりも優先されるべきであると主張して、私は単純さの側で誤りを犯したいと思います. 議論がその日に勝つかどうかはわかりません。
だから私の質問は:
- 中央集権化と独立性の議論のどこに当てはまりますか?
- ルール エンジンなどのエンタープライズ ツールの使用経験は?
- どうすれば孤立の主張をより強くすることができますか?
- 私の見解が間違っているとすれば、中央集権化を支持する理由は何ですか?
java - オーケストレーション vs メッセージ駆動型アーキテクチャ
オーケストレーション エンジンとメッセージ駆動型システムの役割は何ですか。
さまざまな独立したコンポーネント (Web サービス エンドポイントを公開する必要のないクロステクノロジ/プラットフォーム コンポーネント) をつなぎ合わせる必要があるシステムを構築する必要がある場合、どのツールセットを選択する必要がありますか?
より良いオプションはありますか?
wcf - WCF アプリケーション用に IANA にポートを登録する
現在、SOA アプリケーションを開発しており、WCF を使用してすべてのプロセス間通信を処理します。どのポートをデフォルトとして使用するかを決定する際には、通常のポート リストを参照し、これらのデフォルト ポートを変更するための構成オプションを含めています。
競合の可能性を減らすために、IANA ポート登録フォーム ( http://www.iana.org/cgi-bin/usr-port-number.pl ) を使用して、使用する予定のポートを登録することを考えました。ポートを使用する人は誰でも独自のプロトコルを作成しなければならないという仮定をフォームがまだ行っているという事実に驚いています! WCF が高レベルの抽象化であり、使用が増えていることを考えると、Binding 情報だけを提供するだけでは不十分なのはなぜですか?
私はこれに関して IANA に連絡しましたが、答えは基本的に、WCF の完全なプロトコル実装を提供する必要があるということでした。これは、単一のプロパティの反転で大幅に変更される可能性があります。
これについての一般的な感覚は何ですか?登録を進める価値はありますか、それとも、将来誰も競合しないことを期待してポートを使用することは容認できますか? ほとんどのアプリがリストされていないため、IANA リストが参照として役に立たなくなるまでに、どのくらいかかりますか?
意見は答えと同じくらい大歓迎です!
php - PHP5: dns_get_record() がサブドメインの A レコードのみを返す
Linux で PHP 5.2 を実行し、dns_get_record()
. ドキュメントからこの関数がレプリケートされるように見えますがdig
、矛盾が見られます。私の目標は、各ホスト名が属するドメインに対して権限のあるプライマリおよびセカンダリ ネームサーバーを取得することです。
dns_get_record('example.com', DNS_NS);
良い結果を返します。
dns_get_record('www.example.com', DNS_NS);
何も返しません。
dns_get_record('www.example.com', DNS_ANY);
A レコードのみを返します。
dns_get_record('www.example.com', DNS_SOA);
何も返しません。
ただし、dig を使用したコマンド ラインからは、少なくとも SOA を常に取得できます。
dig www.example.com NS
また
dig www.example.com SOA
ネームサーバーを含む有効な AUTHORITY SECTION (IN SOA) を返します。
これをPHPでどのように複製できますか? 私は PEAR Net_DNS モジュールを試してみましたが、dns_get_record()
.
authentication - SOAサービスの設計/認証
私はSOAにかなり慣れていないので、いろいろと実験しています。
現在、私にとって最大の問題を引き起こしているのは認証です。これについての私の現在の考えは次のとおりです。
クライアントはある種の認証メッセージを認証/ユーザーサービスに送信します。このサービスはデータベースにクエリを実行し、ユーザーが見つかり、パスワードが有効な場合、セッションIDで応答します。このIDは、以降のすべてのリクエストで使用されます。このクライアント。
これは私にはかなり問題ないように思えますが、他のサービスへのリクエストをどのように処理する必要があるのかわかりません。3つの異なるアプローチを考えました。
すべてのサービスは、セッションが有効かどうか、有効な場合はユーザーがどの役割を果たしているかを認証サービスに問い合わせます。認証サービスはデータベースを調べ、それに応じて応答します。
認証サービスはすべてのセッション情報をRAMに保持し、dbラウンドトリップなしで要求に応答します。
認証サービスは許可されたメッセージをesbに送信し、esbはこの許可されたメッセージをすべてのサービスに転送し、これらのサービスはそれをキャッシュします。認証サービスへのそれ以上の要求は必要ありません。ユーザーがログアウトしたり、役割が変更されたりすると、別のメッセージが送信され、すべてのサービスによって処理されます。
最初のアプローチは、認証サービス/ dbに過度のストレスを与えると思いますが、実装にかかる労力は最小限です。
2つ目はまだ実装が非常に簡単ですが、認証サービスへのストレスはほとんど同じです。
3つ目は、実装が少し複雑ですが、認証サービスへのアクセスが行われないため、応答時間が短縮されます。ただし、セッション情報が多すぎると、このアプローチは失敗し、スケーラビリティはほとんど得られません。
soa - Sugar CRM SOAP get_entry_list
私は sugarcrm インスタンスを持っており、カスタム php コードを使用してそこからデータを取得したいと考えています。
これにはnusoapクライアントを使用しています。データを取得することはできますが、特定の ID (レコード) のデータのみを選択したいと考えています。私がしていることは
しかし、結果が得られません。私のコードに問題はありますか???
.net - リモート UI は SOA を使用して実装する必要がありますか?
以前はデスクトップ アプリケーションがありましたが、サーバーへのアクセス (物理的またはリモート) がクライアントにとって望ましくないという事実を考慮して、(理論的には) 24 時間年中無休で実行されるWindows サービスに変更しました。
ここで、古い機能と古いインターフェースを維持するために、そのサービスにリモート ユーザー インターフェースを提供する必要があります。
そのために、WCF を使用していくつかの SOA サービスを開発しました。すべてのサービスの合計が古いインターフェースと同じ機能を提供するように、構成用のサービスと、ネットワーク情報、統計などの別のサービスを用意しますが、機能の異なる領域に分離されます。
私は SOA の経験があまりないので、この設計は正しいですか? SOA はリモート UI に適していますか? サービスは 1 つだけにする必要がありますか、それとも論理グループにする必要がありますか?
注:サービスに関する情報の一部にアクセスするアプリケーションがいくつかあるため、この論理的な分割を行っています。
編集:誰が接続できるか、および早い段階でアクセスできるものに対してセキュリティを実装する価値はありますか? 大きな YAGNI 警告が表示されているように見えますが、間違っている可能性があります。
リモート UI の実装方法、既存のフレームワーク、最良のアプローチ、SOA を使用する利点と欠点などについて、あらゆる種類の提案に興味があります。
database - (Web) サービスの依存関係に関する質問
たとえば、在庫管理システム (IMS) と注文管理システム (OMS) の 2 つの別個のシステムを備えた単純な e コマース システムがあるとします。IMS が在庫に関する情報 (getItem、getItemQuantities など) を提供し、OMS が注文サービス (startOrder、addItemToOrder、finalizeOrder など) を提供するとします。
これら 2 つのシステムは、異なるバックエンドを使用する Web サービスとして実装されます。OMS では、次のような単純化されたモデルを想定します。
IMS では、次のようなモデルを想定します。
上記を実装するための単純な db テーブル構造を簡単に理解できます。
1 つの使用例として、注文にアイテムを追加するクライアントを考えてみましょう。この要求では、OMS がいくつかのサービス/データベース呼び出しを行う必要があります。
- orderId の検証 (オプション、この責任をデータベースに渡すことができます)。
- 渡された itemId が存在することを検証するための IMS の呼び出し (diff DB のために必要)
- IMS を呼び出して、渡された数量に対して在庫を検証します (diff DB のために必要)
- テーブルへの新しいレコードの挿入 (必須)
これはパフォーマンスの観点から理にかなっていますか? もっと良い方法を考えられますか?
[編集]:フォローアップとして、ユーザーが OMS に注文の詳細を要求した場合、orderId と、それぞれ itemId、quantity、および subTotal を含む orderLineItems のリストのみを返すことができます。クライアントは、アイテムの名前と説明も実際に必要としています。(IMS を介して) クライアントに名前/説明を取得する責任はありますか、それとも OMS がこれを担当しますか?
wcf - QoS を WCF とどのように関連付けますか?
SOA (Service Oriented Architecture) では、サービスの構成は通常、構成段階で QoS またはサービスの品質を考慮します。WCF ベースの SOA を作成する場合、WCF コンテキストで QoS を取得するにはどうすればよいですか?