見出し画像

#34 サービス指向アーキテクチャ(SOA)について考える

きっかけ

somekichiはこの秋に応用情報技術者の試験を受けようとしておりまして、勉強過程の中で「サービス志向アーキテクチャ(SOA)」という気になる単語を発見しまして、少し調べてみたのがきっかけです。


サービス指向アーキテクチャとは

SOA:Service-Oriented Architecture

サービス指向アーキテクチャとは、大規模なコンピュータ・システムを構築する際の概念あるいは手法であり、サービスとソフトウェアの機能とをネットワーク上で連携させて大規模なシステムを構築する方法です。

つまり、大きな一つのシステムとしてではなく、サービスの集合体として、システムを構築することです。

各ソフトウェアの「独立性が高まる」というメリットがあります。似たような概念に「オブジェクト指向」があります。


独立的なシステムの利点

個人的な感想になってしまいますが、サービス指向アーキテクチャは独立を極めた先にある姿であると考えています。

サービスレベルでの独立を行う事で、例えば「商品販売」のシステムを作る際に「会計サービス」と「商品仕入れサービス」を分離させておけば、他のシステムを作るときに「会計サービス」は使いまわしが効きますし、「商品仕入れサービス」に不具合が起きても、会計サービスには影響がありません。そして不具合の原因も見つけやすいです。

また、サービスとして外部に提供できるレベルの物を作れれば、それだけで一つのシステムとして売り出すことができるようになるかもしれません。


独立性があるが故の課題

これも個人的な感想ですが、独立性が上がるが故にブラックボックス的なサービスの扱い方をしてしまうと、特定の人にサービス内部の知識が偏ったりしてしまうこともありそうな気がしてしまいます。

また、レガシ―なシステムに対して、サービス指向アーキテクチャを当てはめると、サービス単位での分離をしていくのに中々苦労しそうだなと思いました。(初めから作り直した方が安上がり。。。?)


最後に

表面的なことしか調べられませんでしたが、概要レベルでは「サービス指向アーキテクチャ」を学ぶことができました。

具体的な例や実際に関わっているサービスに当てはめてみると、良い面が目立つような気がするので、あらためてQAエンジニアからの目線で考えてみたいと思います。


そめきちのQA修行日記

日々のエンジニア活動で学んだことをこちらのマガジンに書き残しておりますので、よろしければフォローお願いします!


よろしれけばサポートよろしくお願いします!クリエイターとしての活動に活用させていただきます!