アプリケーション・ファブリック · 先行事例

他のプラットフォーム市場が確立したパターン

エンタープライズアプリケーションが直面する問題は、まったく新しいわけではありません。他のソフトウェア市場は、同じアーキテクチャ課題の異なる側面をすでに扱ってきました。

先行事例

2つの市場、2つの学び

コマースプラットフォームは、連続する取引ライフサイクルのなかで、分散した多様な業務データを調整することを学びました。ゲームエンジンは、共有された高性能なランタイムが共通の技術要件を吸収し、開発者が差別化のラストワンマイルに集中できることを示しました。

いずれのモデルも、エンタープライズ技術に完全に当てはまるわけではありません。それでもそれぞれが、アプリケーション・ファブリックの土台となる原則を与えています。

学び 1

コマースプラットフォームはデータの断片化にどう対処したか

現代のコマース取引は、商品ページと決済フォームだけで成り立つものではありません。プラットフォームは商品カタログ、在庫、価格、プロモーション、顧客アカウント、税ルール、決済、注文、出荷、配送、返品、そして第三者物流を調整しなければなりません。これらの多くは別々のシステムや外部事業者が管理していますが、顧客は全体が一つの連続した体験として振る舞うことを期待します。

Shopify Plus のようなプラットフォームは、コマースのライフサイクルを囲む共通の運用層を設けることでこれに対処します。すべての参加者に同じデータベースの使用や、自社の台帳システムの放棄を求めることはありません。代わりに、一貫したインターフェース、共有オブジェクト、イベント機構、拡張ポイントを提供し、プロセスの各部が同期を保てるようにします。

これにより、在庫の変化が販売可能量に反映され、価格ルールが表示を変え、注文が決済と出荷を開始させ、配送の更新が顧客体験に戻ってきます。価値はシステム間の連続性にあります。

エンタープライズアプリケーションも同等の課題に直面します。トレーディング、リスク、物流、運用のワークフローは、それぞれ所有者も技術も異なる多くのソースに依存し得ます。プラットフォームは、各ソースが正としての位置づけを保ったまま、一つのプロセスのなかで利用可能にしなければなりません。コマースのモデルは、統合をアプリケーションごとに作り直すのではなく、プラットフォームの恒常的な機能として扱う方がうまくいくことを示しています。

コマースプラットフォームのモデル:共通の運用層が、別々のシステムにまたがるカタログ、在庫、価格、決済、注文、出荷を調整
コマースプラットフォームは、連続する取引ライフサイクルにわたって分散した業務データを調整します。

学び 2

ゲームエンジンはいかにしてラストワンマイル開発を可能にしたか

現代のゲームを作るには、高度な技術の大きな集合が必要です。レンダリング、物理演算、アニメーション、入力処理、サウンド、ネットワーク、アセット管理、デプロイが、高い並行性と性能の要求のもとで連携しなければなりません。

しかし多くの開発者は、これらを自分で作りません。Unity や Unreal のようなエンジンが共有ランタイムとして提供するため、開発者は統合された機能群から始め、そのゲームを特徴づけるメカニクス、コンテンツ、体験に集中できます。

ゲームエンジンは、ソフトウェアの書き方だけでなく、動き方を定義します。データの移動、処理のスケジューリング、リソースの割り当て、障害の処理、アプリケーションのライフサイクルを管理します。これらは一度だけ実装され、エンジンレベルで最適化されています。

スクリーンショット:ゲームエンジンエディタの開発者インターフェース
Unreal の開発者インターフェースの一例。

同じ発想を、エンタープライズに

アプリケーションエンジン

エンタープライズアプリケーション開発にも同じ反復構造があります。多くの業務アプリは、接続性、状態管理、並行性、イベント処理、認証、エンタイトルメント、ワークフロー、可視化、レポーティング、監視、デプロイを必要とします。チームは新しいアプリごとにそれらを組み直し、重複コード、不揃いな統制、別々の運用モデルを生んでいます。

アプリケーションエンジンは、これらの関心事を一貫して大規模に扱う共有ランタイムを提供します。各アプリが自前のインフラを抱える代わりに、同じセキュリティ、性能、監視、ライフサイクル管理を継承します。連続するストリームを処理し、決定的に反応し、監査可能であり続ける必要のある金融においては、そのランタイムは開発上の抽象化ではなく、長期にわたる本番基盤です。

これがラストワンマイル開発の原則です。エンジンが共通部分を担い、開発者は異なっていなければならない業務ロジック、ワークフロー、ユーザー操作に集中します。

アプリケーションエンジンが最適化するもの

品質の最大化

納期の最小化

パフォーマンスの最大化

所有コストの最小化

柔軟性の最大化

アプローチを選ぶ

ソフトウェア構築のアプローチを比較する

金融ソフトウェアを、技術者であれAIエージェントであれ、どう構築し発展させるかを検討するとき、多くの組織は3つの大きなアプローチに行き当たります。パッケージ製品、個別構築、そしてアプリケーションエンジンです。それぞれがスピード、柔軟性、統制、長期的な持続可能性の間の異なるトレードオフを表しています。

ベンダー製品は最初の機能に至る最も速い道を提供し、要件が製品の対応範囲と近いときに有効です。一方でカスタマイズは限られ、統合は複雑になり得ます。個別構築は柔軟性と所有権が最大ですが、スタックのあらゆる層を設計・構築・維持する必要があります。アプリケーションエンジンは、ドメインに合わせた再利用可能なプリミティブを備えた本番品質の共有ランタイムを提供し、個別構築の統制とプラットフォームのレバレッジを兼ね備えます。

評価軸 購入 3forge App Engine 構築
柔軟性
パフォーマンス
総所有コストの低さ
最適な用途 ワークフローが差別化要因でなく、業界内でニーズが独自でない場合に使用 コアビジネスを支援し差別化要因を推進するために使用 差別化要因としてコアビジネスに使用

アプリケーション・ファブリック

3forgeは、これらの業界で機能してきたものに学んでいます。

これらのアプローチを、金融に特化したアプリケーション・ファブリックの構築にどう応用したかをご覧ください。