Anne Thomas氏がウェビナで,大規模なアプリケーションから,焦点を絞ったサービス依存のアプリへのシフトについて要約している。また,Matias Duarte氏はインタビューで,これらのアプリを接続する方法を話題にしている。
"Application Architecture for Digital Business"と題したウェビナの中で,Garnerの上級アナリストでVPのAnne Thomas氏は,アプリケーションアーキテクチャの現在のトレンドに言及した。完結性を重視した大規模なオールインワンアプリケーションの時代は終わった,我々は今,シンプルさに重点を置いた小規模アプリへのシフトを目の当たりにしているのだ,と氏は言う。アプリの原動力となるのは,最高のユーザエクスペリエンスを提供するという願望だ。そのために,それぞれのアプリは,特定のユーザを想定した可能な限りシンプルなものとして開発され,絶対に必要なもの以外は除外されている。各アプリは原則として,高度にスケーラブルなサービスに依存することで,自身のタスクを達成している。
Thomas氏はさらに,それらアプリの多くが,SOAの原則とドメイン駆動設計パターンを基本としたマイクロサービスを指向している点を指摘する。
- 各マイクロサービスは,特定の単一機能をカプセル化する。
- 各マイクロサービスは,自身のデータを保持する。
- 他のサービスへの依存関係は明示的である。
- コマンドとクエリは,Web APIを通じて,マイクロサービス上で実行される。
- ひとつのデータモデルの変更に関する通知は,非同期メッセージを介して伝搬される。
- システムはACIDトランザクションモデルよりも,むしろBASEを使用している。
次のスライド(PDF)は,クライアントがマイクロサービスにインタラクトする方法,およびイベントがサービス間を伝搬する方法にを示すものだ。
Thomas氏によると,クライアントは,マイクロサービス上でのコマンド実行にPOST, PUT, DELETEを,クエリにGETを使用している。コマンドが実行されると,内部イベントハンドラがデータモデルを更新する(ここでは示されていないが,"Query"コンポーネントに含まれている)と同時に,変更内容に関心のあるマイクロサービスに対して,データ変更を通知する非同期イベントが生成される。メッセージの仲介はパブリッシュ・サブスクライブ・ブローカが行う。
アプリに向けたこのような動向は,画面サイズという大きな制約を負ったモバイル機器の出現で,さらに加速されている。メニューやツールバーを備えた標準的なデスクトップアプリケーションをモバイルデバイス上に開発することは,不可能ではないにせよ,まったく実用的ではない。Googleのデザイン担当VPであるMatias Duarte氏が "FORM SF 2014: Fireside Chat (24分12秒)"で述べているように,新たなアプローチを取る必要があったのだ。
モバイルに移行することの最大のメリットは,そこから得られた具体的な設計パターンのいずれでもなく,画面が小さ過ぎるという制約そのものにありました。その画面には,すべてを並べることはできません。複雑で巨大でありながら,実際に使用する比率の小さいツールではなく,もっと機能を絞り込んださまざまなツールが,私たちの手元にあります。巨大なツールでは,例え限られた一部しか使用しない場合でも,その複雑さが負担になるのです。
これらシンプルなアプリは,複雑なタスクを実行するには機能不足に思えるかも知れないが,Duarte氏は,このような小アプリの結合に可能性があると考えている (25分50秒)。
未開の地たる新領域のひとつは,よりシンプルで集中的,直感的なツール群を連携して動作させることで,個々のツールでは不可能だったようなシームレスな方法で問題を処理する,という方法です。
Duarte氏によると,アプリには,それぞれがお互いを認識して,自然な方法で情報や能力を交換できる必要がある。現在のモバイルアプリが極めて厳格に隔離されていることを指摘した上で,氏はこの領域において,今後多くの努力と成果が期待されるべきである,と示唆する。Googleが現在この問題に取り組んでいるかを質問すると,氏は自身が"注力している"とだけ述べて,明確な回答を避けた。Googleがアプリ連携のために何かを行っているという確証はないが,同社が現在,この方向への第一歩として,モバイルディープリンクを推進していることは周知の事実だ。