サービスデザインパターン

SOAP/WSDL および RESTful Web サービスの基本設計ソリューション

ロバート・デニオー、イアン・ロビンソンとの共著

2011

エンタープライズアプリケーションの避けられない定説の 1 つは、それらは孤立していないということです。特定のビジネス上の課題の解決に焦点を当てているかもしれませんが、それらの課題を解決するために、必要なすべてのデータを自分でキャプチャしたり、すべての処理を開発したりすることはできません。たとえ時間があっても、そのデータと処理は他の場所で実行されており、重複は無駄なだけでなく、面倒な不整合につながります。その結果、ほとんどすべてのエンタープライズアプリケーションは他のアプリケーションと通信する必要があります。これらの外部システムは、同じ組織に属していないことが多く、サードパーティの組織によって提供されます。

長年にわたり、この種の共同作業の最も困難な部分の 1 つは、単に何らかのコミュニケーションパスを取得することだけでした。多くの場合、これらのアプリケーションは異なるプラットフォーム、異なる言語、さまざまな通信プロトコルをサポートする異なるオペレーティングシステム上で作成されています。しかし、この 10 年間で Web が接続問題のソリューションとして登場しました。ほとんどすべてのシステムはポート 80 を開き、その上でテキストをやり取りできます。

しかし、それらはどう話すべきかという疑問は数多く残っています。RPC スタイルの API、メッセージ指向の API、それとも流行の REST を使用すべきでしょうか。ロジックをサービスに直接組み込むべきでしょうか、それとも基になるオブジェクトに委任すべきでしょうか。クライアントを壊さずに、すでに使用されているサービスを変更するにはどうすればよいでしょうか。

一般的に、私のシリーズでは、他の場所ではあまり取り上げられていないトピックを取り上げていますが、Web サービスのさまざまな側面について書かれた本はすでに数多くあります。その結果、ロバートの著書の草案が私に届いたとき、興味が湧かないと思っていました。考えを変えたのは、それらの重要な疑問を 1 つのハンドブックにまとめたものであり、読む価値のある技術書に私が求めるスタイルだったからです。

まず、トピック領域をパターンに分割するというアプローチを取ります。その結果、これらのトピックについて話すための語彙が得られます。その後、各パターンに進んで、それぞれのパターンがどのように機能し、それらからどのように選択するかを説明します。その結果、Web サービス設計のさまざまなアプローチを確認し、自分のコンテキストで機能するものを決定できます。この著者はコードの例を提供しているため、これらのパターンが実際にどのように機能するかを確認できますが、パターンは十分に一般的なため、多くのテクノロジースタックに適用できます。

その結果、Web サービスをテクノロジの変化にもかかわらず価値のある原則に焦点を当てたスタイルで使用するための、重要な設計上の意思決定をまとめた本ができました。

さらに詳しく

書籍の Web サイト