みなさん、こんにちは。Open棟梁プロジェクト、PO の西野 大介です。
前回は、Open棟梁2.0の
"新しいコンセプト" と 新機能である
"サービス開発基盤" についてご紹介いたしました。今回は、この
"サービス開発基盤"を使って、具体的にどのようなサービスを開発できるか?を中心に説明をしていきたいと思います。
既存のアプリケーションのサービス化
前回ご紹介いたしましたように、Open棟梁2.0からのコンセプトは、"QCDFの向上"に加えて、"迅速なスタートアップの立ち上げの実現"です。
例えば既存アプリケーションのサービス化などであれば、"サービス開発基盤"の提供する
によって、迅速にサービス化することが可能と思います。
さまざまなフロントエンド、プラットフォームのサポート
しかし、スタートアップで最も重要なのはイシュー(サービスが解決すべきユーザの抱えている問題)で、開発されるアプリケーションは、このさまざまなイシューの解決を求められます。しかし、ユーザもさまざまであれば、そのユーザの抱えている問題といってもさまざまです。そのため、そのサービスを開発するための基盤は、あらゆるユーザ、あらゆる問題に対応することが求められます。つまり、従来型のエンタープライズのDBMSアプリケーションのような「情報の入出力機能」だけに留まらず、さまざまなフロントエンドへの露出や、デバイス上で動作して物理的な機能を提供していくことを要求されることが多くなっていくだろうと考えています。
また、スマホアプリの場合、GPS など、露出先のデバイスの機能の利用を要求される可能性もあります。このような要件を実現するために、
側ネイティブと呼ばれるハイブリッド型のアプリケーション・アーキテクチャも存在します。
このように、さまざまなユーザ、さまざまなイシューを考慮した場合、サービス開発基盤はさまざまなフロントエンド、プラットフォームのサポートが必要と考えました。今後は(GitHub の
issueからも読み取れるかもしれませんが)、以下のことに取り組んでいきます。
.NET Standardへのライブラリ移植
.NET Standardへライブラリを移植し、.NET Core、Mono、Windows10 IoTなど、サポートをクロスプラットフォームの範囲に拡大していく予定です。
RESTとJSON-RPC対応の強化
また、今後、さまざまなフロントエンド、プラットフォームへのUI公開を可能にするRESTとJSON-RPCの対応を強化していきます。
OAuth 2.0 + JSON Web Token (JWT) のSSO可能な拡張STS機能
これらの下準備として、Open棟梁2.0で追加した"汎用認証サイト"では、さまざまなフロントエンド、プラットフォームを跨いだ認証を可能にする、OAuth2.0 + JWTによるシングル・サインオン(以下、SSOと略す)をサポートしました。
この認証方式は、OAuth 2.0 の Authorization Code Grant Flow(Web アプリケーション用)や、Implicit Grant Flow(WebAPI 用)を使用してユーザー名、パスワードを検証すると、認証チケット(IDトークンライクな、JWT形式のBearer Token)を発行します。あとは、この認証チケットをリクエストヘッダーに付与してサーバーにアクセスし、サーバー側がその認証チケットを検証することで、SSO が可能になります。
また、
- 前回ご紹介した"Stripe"のConnect機能で採用されている、マネージ・アカウント(カード情報)を外部にオフロードしていく方式や、
- 各種アプリケーション間連携の認証・認可処理は、
OAuth 2.0 をサポートする
"汎用認証サイト"のIdP(Identity Provider) + STS(Security Token Service)機能によって実装することが可能です。あらゆるサービスには、これらの課金処理、認証・認可処理は必須と考えます。このため、これらの処理を実現可能な
"汎用認証サイト"は、このような外部サービスと連携するシステムの要として機能してくものと考えています。
マルチサイド・ビジネスのスタートアップ
これにより、何ができるようになるか?という話ですが、私は、Webサービスの中でも複雑な、マルチサイド・ビジネスのスタートアップ(マルチサイド・ビジネス・プラットフォームの構築、若しくは、マルチサイド・ビジネス・プラットフォームとのネットワーク接続)が容易になるものと考えています。
マルチサイド・ビジネス・プラットフォームとは、
マルチサイド・ビジネス・プラットフォームは「複数の顧客グループを繋ぎ合せることで価値提案を可能にするプラットフォーム。」と定義されています。具体的には、以下のようなモノが該当するようです。
- B2Cのコンテンツ市場では、ゲーム、音楽・動画配信、近年では、Google Play, App Storeなどがあり、それぞれプラットフォームが、各コンテンツのプロバイダーとコンシューマを接続します。
- B2BのICT市場では、モール型・店子型のECサイト(楽天やAmazon)、SAPのNetWeaver、IBMのWebSphereなどアドオン開発機能を備えたEAIツールがあります。
参考:
さまざまな顧客グループを持つWebサービスを組み合わせる。
特定のフロントエンド、プラットフォームに依存していては、あらゆる顧客をつなぐことはできません。"汎用認証サイト"のOAuth2.0 + JWT というオープンなプロトコル、さらには.NET Standard ライブラリへの移植など、クロスプラットフォーム対応により、あらゆる顧客が参入可能なプラットフォームを実現できると考えます。
具体的には、外部のサービスには、汎用認証サイトのアカウント情報をつなぎ、汎用認証サイトの管理下の Web サービスには外部ログイン (SSO) からの認証情報をつなぐことであらゆるサービスから、"汎用認証サイト"を通して、外部システムにシームレスにつなぐことができます。
これにより、あらゆる顧客グループをつなぎ、新しい複数の顧客グループに対する価値提案が可能になれば、結果として、マルチサイド・ビジネスを実現することができます。
技術的には、これだけ(とは言え、なかなか難しい)ですが、実際「複数の顧客グループに対する価値提案が可能となる新しいビジネスモデルを検討する。」ということが技術以上に難しいように思います。