サービス指向アーキテクチャとは
サービス指向アーキテクチャ (SOA) は、サービスと呼ばれるモジュラー ソフトウェア ユニットが集合したアプリケーションを作成するための最新のソフトウェア アーキテクチャのパラダイムです。SOA では、サービスは自己完結かつモジュール化され、疎結合しています。この手法では、すべてのモノリシック アプリケーションとは対照的に、コンポーネント単位で個別に更新できる複雑な分散アプリケーションを構築できます。一般的な SOA ソフトウェアスタックには、サービスを構成するアプリケーション ソフトウェア、プラットフォーム サービス、ミドルウェアが含まれます。これらのサービスは、高性能ハードウェアまたはバーチャルマシン上で実行されます。
サービス指向通信 (SOC)
SOA ベースのアプリケーションは、メッセージ上で情報交換を行う機能を利用できるようにする、サービス指向通信用のサービス指向インターフェイスを使用しています。サービスは、SOA においてクライアントまたはサーバーの役割を果たしています。各クライアントサービスまたはサーバーサービスは、コンポーネントとしてソフトウェアに実装されます。クライアント コンポーネントとサーバー コンポーネントの接続点は、クライアント/サーバーポートと呼ばれ、サービス指向インターフェイスを構成します。
情報交換を促進するため、クライアント コンポーネントとサーバー コンポーネントは、Publish-Subscribe、Request-Response、Fire-Forget など、さまざまなサービス指向通信のパターンを使用します。これらのパターンは非同期または同期的であり、これは SOC の重要な特徴です。イベントベース モデリングは、Stateflow® と SimEvents® を使用して実行できます。さらに、Simulink® の Messages & Events ライブラリを使用すると、メッセージベースの通信を使用するアプリケーションのモデル化、シミュレーション、C++ コードの生成が可能になります。
SOA ワークフロー
SOA の拡張性
サービスは再利用可能で、アップグレード可能です。ソフトウェア エンジニアは、アジャイルの原則を使用してスケーラブルなサービス指向アプリケーションを構築でき、OTA (over-the-air) アップデートをサポートするシステムも含まれるため、それらを常に最新の状態に維持できます。
SOA のユースケース
自律性、接続性、電動化を組み込んだソフトウェア定義システムでは、サービス指向アーキテクチャが基盤となるフレームワークとして重要な役割を果たします。SOA は、自動車、航空宇宙、産業オートメーション、IoT、医療機器、ロボティクスなどの産業分野において、SoS (システム オブ システムズ)、マルチエージェント システム、離散イベントシステム、分散システムの構築にも使用されています。
これらの産業分野をサポートするために登場したのが、サービス指向アーキテクチャとサービス指向通信に基づくソフトウェア アーキテクチャ フレームワーク、ミドルウェア標準、通信プロトコルです。これらのフレームワークや標準の例としては、AUTOSAR Adaptive、DDS、ROS/ROS2、FACE、SOME/IP、MOSA、MQTT、OPC UA などが挙げられます。
自動車における SOA
SOA は、SDV (ソフトウェア・ディファインド・ビークル) の登場により、自動車業界で大きく普及しました。SDV は、信号ベース アプリケーションとサービス指向アプリケーションの両方を、車両コンピューターとゾーンコントローラーを備えた新しい EE アーキテクチャに統合します。開発者は、System Composer と Simulink を使用して SOA をモデル化し、そのシミュレーションを行い、C++ 量産コードを生成してから、エッジデバイスやクラウドにモジュラーサービスとして展開できます。自動車産業において、AUTOSAR は Adaptive プラットフォーム向けの SOA 方法論を使用する、広く使用されている標準規格です。AUTOSAR Blockset を使用すると、AUTOSAR Classic アプリケーションと AUTOSAR Adaptive アプリケーションの両方をモデル化およびシミュレーションして、C/C++ コードの生成と Embedded Coder による検証を行うことができます。さらに、これらのサービスは、車両のライフサイクル全体で OTA (over-the-air) ソフトウェア アップデートを使用したアップグレードが可能であり、顧客体験の向上を図ることができます。SOA は、上記の業界標準や社内のフレームワークに組み込まれています。
航空宇宙、防衛における SOA
航空宇宙および防衛産業では、SOA は、MOSA (Modular Open Systems Approach) 標準化イニシアチブの一部である FACE™ (Future Airborne Capability Environment) 標準で採用されています。FACE は、サービス指向通信に TSS (Transport Services Segments) を使用しています。Simulink と DDS Blockset を使用すると、FACE 規格のアプリケーションのモデル化とシミュレーション、DDS TSS 用の FACE IDL のインポート、FACE TSS 通信のシミュレーション、FACE アプリケーション用の C++ 量産コードの生成と展開が可能です。
製品使用例および使い方
プレゼンテーション ビデオ
ソフトウェア リファレンス
参考: System Composer, Simulink, Stateflow, Embedded Coder, AUTOSAR Blockset, DDS Blockset