Michael Hickins|コンテンツ・ストラテジスト| 2024年3月28日
サービス指向アーキテクチャ(SOA)は、サービスと呼ばれる個々のコンポーネントから機能的でスケーラブルなソフトウェア・システムを構築することに重点を置いたソフトウェア設計手法です。サービスは互いにやりとりしてタスクを実行することができ、たとえば、一度サインインした人はさまざまな業務アプリケーションにアクセスできます。SOAでは、モジュール性、再利用性、相互運用性が重視され、ビジネスが複雑なアプリケーションをより小さく管理しやすい構成要素に分解することで、柔軟性とスケーラビリティが高まります。
サービスはアプリケーションにハードコードされません。そのかわり、サービスはレジストリに公開され、アプリケーションがサービスを使用したいとき、レジストリに最新バージョンを検索するように要求します。このようにして、アプリケーションの詳細な知識がない人がサービスを簡単に変更または更新することができます。SOAアプローチでは、変化するビジネス・ニーズへの適応や、関連する機能を提供するシステムとの統合が容易になります。
SOAでは、個々のサービスは疎結合され、必要に応じて通信やデータ転送を行うことができます。たとえば、SOAアプローチをクラウド・ソフトウェアの開発に取り入れることで、次のようなメリットが得られます。
サービス指向アーキテクチャの例には、次のようなものがあります。
サービス指向アーキテクチャ(SOA)は、アプリケーションを特定の機能を提供し、ネットワーク経由で呼び出すことができる、自己完結型の再利用可能なビルディング・ブロック(サービス)で作成または補完する設計パラダイムです。各サービスには規定のスコープがあり、アーキテクチャ内の他のコンポーネントやサービスからアクセスすることで、システム全体の機能とパフォーマンスを向上させることができます。
サービス指向アーキテクチャにおけるサービスの例としては、決済処理サービス、顧客管理サービス、eコマースサイトに組み込むことができる製品レコメンデーションサービスなどがあります。また、地球の反対側にある都市の現在時刻を知らせるような、はるかにシンプルなサービスもあります。SOAを使用することの強力な利点の例として、サービスの使用に必要なアプリケーションに変更を加えることなく、支払いプロセッサを切り替えられることが挙げられます。
SOAは、個々のサービスを独立して開発、テスト、導入できるモジュール式の柔軟なソフトウェア・インフラストラクチャを実現します。2つの主な利点は、メンテナンスの容易さとスケーラビリティです。
OAは、アプリケーションのフレームワーク内でサービスを疎結合にすることで機能します。各サービスは、リクエストされた入出力を提供できるモジュールとして機能します。アプリケーションが使用しているサービスのバージョンを認識する必要はありません。そのかわり、レジストリをチェックし、必要な機能を提供する最新のサービスを見つけます。SOAモデルを用いて構築された小売業者のウェブサイトの次のようなワークフローを見てみましょう。
SOAは、既製の方法でサービスの統合を可能にすることで、この種のサイトの開発をスピードアップします。この例では、小売業者はこれらのモジュールを個別に開発する負担が軽減されるだけでなく、サービスの更新を追跡する必要からも解放されます。IT部門は、機能性、セキュリティ、可用性において実績のある、十分に精査されたサービスをそのまま使用することができます。
SOA開発のカギは、モジュール式に考え、サービス統合の機会がどこにあるかを理解することです。クラウドで開発されたアプリケーションは、Webサービスとして導入されたSOAスタイルの膨大なサービスの配列を容易に利用することができます。
モジュール式の柔軟なSOAインフラストラクチャは、クラウドを活用する企業に大きなメリットをもたらします。その他の主なトレンドは次のとおりです。
サービス指向アーキテクチャの例を教えてください。
サービス指向アーキテクチャの消費者向け例としては、ランナー向けのアプリケーションが挙げられます。このアプリケーションは、距離追跡や地図向けのカスタム・ツールを構築するのではなく、携帯電話のGPSデバイスやGoogleマップなどの既存の地図サービスのサービスを統合することができます。また、国立気象局から現地の天気を取得することもできます。これらのサービスからのデータをランナーのためにシームレスに表示することがこのアプリケーションの役割です。
SOAとマイクロサービスの違いについて教えてください。
SOAとマイクロサービス・アプリケーションは、ネットワークベースの関数呼び出しを通じてアプリケーションに機能を提供するという、同様の目標を持っています。しかし、SOAはより幅広く、通常はより高いレベルでの使用を考慮します。マイクロサービスはアプリケーション・レベルでの利用を考慮し、1つの極めて専門的なタスクを必要に応じて繰り返して行うサービスを提供します。たとえば、セキュアなログインのための認証プラグインはSOAの一部と考えられますが、パスワードを暗号化する反復可能なサービスはマイクロサービスです。マイクロサービスはSOAサービス内で呼び出されることもあれば、より大きなプロジェクトに統合されることもあります。この例では、認証サービスは、処理を実行する際に暗号化マイクロサービスを使用します。この2つの主な違いはスコープです。
サービス指向アーキテクチャの主な特徴を教えてください。
サービス指向アーキテクチャの主な特徴は次のとおりです。
サービス指向アーキテクチャはどのような場所で使用されますか。
サービス指向アーキテクチャは、システムの要件を満たすスタンドアロン・サービスが存在する限り、ほぼすべてのアプリケーションに使用することができます。サービス開発のエコシステムの拡大により、ほとんどのソフトウェア・クリエイターはニーズを満たすサービスを見つけることができ、最もカスタムなプロジェクトであっても、ID認証や地図データの取得といった目的のために独立したサービスを利用することができます。