「ソフトウェアアーキテクチャの基礎」の第2部(遅延中)#drc62

デッドライン読書会第62回は前回に引き続き「ソフトウェアアーキテクチャの基礎」の第2部です。最近お仕事が忙しめなので1ターン遅れでの投稿です。

第2部アーキテクチャスタイルは下記のページ構成です。

  • 9章 基礎
  • 10章 レイヤードアーキテクチャ
  • 11章 パイプラインアーキテクチャ
  • 12章 マイクロカーネルアーキテクチャ
  • 13章 サービスベースアーキテクチャ
  • 14章 イベント駆動アーキテクチャ
  • 15章 スペースベースアーキテクチャ
  • 16章 オーケストレーション駆動サービス指向アーキテクチャ
  • 17章 マイクロサービスアーキテクチャ
  • 18章 適切なアーキテクチャスタイルを選ぶ

10章から18章まで様々なアーキテクチャスタイルを列挙して説明。それぞれのアーキテクチャ特性を、第1部で論じた評価項目(デプロイ容易性、弾力性、進化性、、、、)で評価しています。

感想メモ

アーキテクチャスタイルの全集として勉強になる

それぞれのアーキテクチャスタイルが全集的に解説がしてあるのはとても勉強になります。だいたいトレンド順に並んでいるんだと思います。

API-led Connectivityでいう3層アーキテクチャはどれか?

最近MuleSoftというソリューションを扱うようになったのでちょっと気になったこと。MuleSoftのAnypoint Platformは、API-led Connectivityというアーキテクチャ思想を持っています。APIを3層で管理します:エクスペリエンス層、プロセス層、システム層。検索すると絵が出てくるので、最初にヒットしたものを掲載。

API-led Connectivityとは何か?(前編) | オージス総研
API-led Connectivityは、再利用可能で3つのカテゴリ(後述)のいずれかに属するAPIを使ってデータとアプリケーションを接続する方法です。これらのAPIは、システムからデータをアンロックしたり、データをプロセスに組み入れたり、ユーザーエクスペリエンスを提供するなど、特定の役割を果たすために開発されます。

エクスペリセンス層はフロントエンドのためにAPIを提供し、プロセス層は業務ロジックを持つAPIを提供、システム層は個別システムを管理するためのAPIを提供します。

本書を右に置きながら考えると、

API-led Connectivitiyサービスベースアーキテクチャ
(レイヤード設計)
マイクロサービス
エクスペリエンス層APIファサード層サービス
プロセス層ビジネス層サービス
システム層永続化層サービス

…うまくかけなかった。

ところで、API-led Connectivityはマイクロサービスを実現するといった論調があるのだけど、これがよく分からない。ちょっと違うような気がするんですよね。もう少し両者を理解できれば論点がわかるようになるかなぁ。と思ったら、デッドライン読書会の最初の方にMSAの本読んでましたね。(蜂の表紙に見覚えがあった)

最近第2版が出ているようなので、仕入れておこうかな。

再利用はトレードオフ

何度か登場しました。再利用を進めることはアーキテクチャ上のトレードオフ。

次回(1ターン遅れてるけど)

残りの「第3部テクニックとソフトスキル」を読んでいきます。

コメント

タイトルとURLをコピーしました