マイクロサービスは多くの点でSOAの進化版と考えることができます。SOAでもすでにモジュールアプローチが採用されていますが、マイクロサービスにはそれ以外にも様々な改良が加えられています。だからといってこれが万能の解決策というわけではありません。また、すべての組織が本格的なマイクロサービスアーキテクチャを導入できる体制にあるかというとそうでもありません。このトピックの詳細については、「Microservices Architecture in OutSystems(OutSystemsのマイクロサービスアーキテクチャ)」のドキュメントをご覧ください。
この問いに対する答えは「推進している」となります。OutSystemsは、前述したエンタープライズソフトウェアの開発に伴う問題に対処するために誕生しました。優れた俊敏性、再利用性、市場リリースの高速化を実現するという目標も、SOAと同じです。SOA環境と同様に、適切に管理され簡単に検出できるサービスを使用して、完全な機能を備え、非機能要件を満たすアプリケーションをデリバリーできます。
OutSystemsと他のサービス指向アーキテクチャの違い
フェラーリは自動車ですが、自動車ならどれでもフェラーリというわけではありません。それと同じで、OutSystemsユーザーが作成したアプリケーションはいずれもSOAになりますが、すべてのSOAがOutSystemsと同じ特性を備えているわけではありません。違いは主に2つあります。
SOAベンダーの多くはサービスを作成するためのツールやストラクチャを提供しています。しかし、これに知的財産は含まれないため、サービス自体はすべて社内の人材で作成する必要があります。OutSystemsでは、プラットフォーム内の各コンポーネントにビジネスロジックが含まれているため、アプリケーション開発を高速化できます。コンポーネントを変更すると、そのコンポーネントが使用されている各インスタンスに変更が自動的に反映されるため、調整を加えたアプリケーションを数時間でデプロイすることができます。プラットフォームであるOutSystemsは、サービスのデプロイ、ディスカバリ、ガバナンス、サービス変更時の影響分析を大幅に自動化します。これはアジリティの向上に欠かせません。
SOAの多くはオブジェクト指向です。つまり、アーキテクチャのすべての要素をオブジェクトとして表し、それらを使用してサービスを作成します。オブジェクトを使用すると一からコーディングするよりはずっと速く作業が進みますが、開発者をしっかりトレーニングする必要があることに変わりはありません。OutSystemsでは、アプリケーションを視覚的に抽象化することで、「ドラッグ&ドロップ」方式での開発が可能です。反復的な作業の多くはバックグラウンドで自動的に処理されるため、開発者の生産性が大幅に向上します。
また、ビジュアルプログラミングを使用しているため、他の部門のユーザーでも使いこなすことができます。開発者リソースが希少かつ報酬も高騰している中、コーディングの知識を持たないユーザーをわずか数か月で開発の素養を持つ人材に育てることもできます。
OutSystemsアプリケーションのアーキテクチャの詳細については、「Application Architecture: Best Practices for Future-Proofing Your Apps(アプリケーションアーキテクチャ: 将来的にも有効なアプリに関するベストプラクティス)」をご覧ください。