みなさん、こんにちは。Open棟梁プロジェクト、PO の西野 大介です。
Open棟梁2.0のリリース
前回のアナウンスから暫く間が空いてしまいましたが、先日、Open棟梁2.0をリリースしました。
- リリース情報 - Open 棟梁 Wiki > 各バージョン > 02-00(2017年5月19日)
そこで、今回から 3 回に分けて、Open棟梁2.0の概要をご紹介できればと思います。 第 1 回目の今回は、Open棟梁2.0の "新しいコンセプト" と、新機能である "サービス開発基盤" について説明したいと思います。
今までの実績
振り返って、Open棟梁の初版リリースから約10年、OSS化後から3年が経過しました。これまで100件以上の導入がされており、QCDF ※1 の向上効果はユーザー様からも高い評価を頂いています。
※1 QCDF :
Quality(品質)、Cost(コスト)、Delivery(納期)、Flexibility(柔軟性)の略
新しいコンセプト
Open棟梁2.0では、コンセプトを"迅速なスタートアップの立ち上げの実現" としました。
このようなコンセプトへ変更した理由は、端的に「従来型のSIの終焉」を予想しているためです。
昨今の多数の状況やトレンドを分析すると、
- ICTにおける、メーカー企業と、ユーザー企業の差がなくなってきている。
- 事業システムの高度化(差別化・独自性追求をする企業競争力の強化に繋がる領域へのシフト)に伴い、事業システムのIT投資の増加と、内製化へのシフトが起きる。
- 相対的に、内部システム(バックオフィス系、ERPでカバーされている汎用的領域)へのIT投資が減少し、それに伴い、パッケージ&サービス活用の増加、スクラッチ開発の減少が起きる。
のように見ています。
例えば、昨今、ユーザー企業であるメガバンクがFinTechプラットフォーム開発したり、自動車会社がコネクテッドカー分野での技術開発、検証、標準化をしたりしているような状況は、事業システムの高度化と内製化の現れではないでしょうか?
Open棟梁も、 これに歩調を合わせて、 サービス開発や事業システム開発など、新しい分野への適用の増加を目指しています。
そして、サービス開発のニーズを捕捉し、ノウハウを蓄積するために、2016年、OSSコンソーシアム、.NET開発基盤部会では、「実際にスタートアップのチャレンジを行い、ソコで開発した "サービス開発基盤" を、"Open棟梁プロジェクト"のラインナップに含めOSSとしてリリースする。」というサブワーキング活動を実施しました。
スタートアップの結果はイシュー (問題の本質)を捕捉できずに失敗となりましたが、"サービス開発基盤"のリリースには漕ぎ着けました。イシューの捕捉は非常に難しいですね。しかし、新たなビジネスチャンスに繋がる可能性が高いと思うので、今後とも、継続的にスタートアップにチャレンジしていきたいと思います。
サービス開発基盤
スタートアップを行う中で、サービスを開発・運用する上でさまざまな機能が求められることを確認しました。それらの機能の中で、共通的な機能をピックアップし、さまざまなサービスから利用可能な"サービス開発基盤"を開発することとしました。
この"サービス開発基盤"の共通的な機能として、Open棟梁2.0では、"汎用認証サイト"と"オンライン決済サービス連携"の2つの機能をリリースしました。
汎用認証サイト(β版)
"汎用認証サイト"は、Open棟梁2.0で追加した"サービス開発基盤"機能の"コア"機能であり、不特定多数のユーザ、さまざまなデバイスから利用されるインターネット環境下でも安全に利用可能な認証基盤(Idp : Identity Provider & STS : Security Token Service)です。
- "汎用認証サイト"は以下のような、インターネット環境で必須となる認証基盤の機能をコンフィギュレーションして利用可能です。
- サインアップ、サインイン・サインアウト
- パスワードリセット
- E-mailアドレスの確認(E-mail confirmation)
- アカウント編集時、他のSessionを自動的にサインアウトさせるSecurityStamp
- E-mailやSMSを使用した2要素認証(Two-factor authentication)
- 外部ログイン(外部サービスのアカウントを使用したソーシャルログイン)
- また、JWT(JSON Web Token) 形式の OAuth 2.0 Bearer Tokenを発行可能です。
- 本来「認可」の用途に使用するOAuth 2.0をセキュアな「認証」の用途でも利用可能です。
- OAuth 2.0は、RFC 6749で規定されているオープンなプロトコルであるであるため、さまざまなプラットフォームや言語を跨いだシングル・サインオンが可能です。
オンライン決済サービス連携(β版)
また、サービスとなれば課金機能が必要になることが多いかと思いますので、"オンライン決済サービス連携"の機能も試験的に"汎用認証サイト"に組み込んでみました。
- 現時点で連携可能なオンライン決済サービスとして、"Stripe"と"PAY.JP"の2つのサービスを利用可能です。ただし、Stripe や PAY.JP 以外のオンライン決済サービスを見ましても、仕組みや API に大きな差は見られません。そのため、既存のプログラムを参考に、適宜、使用したいオンライン決済サービスを追加するようにカスタマイズ可能と思います。
- 昨今、FinTech に注目が集まっています。そのため、FinTech のユニコーン企業である"Stripe"を、今後もウォッチしていきたいと考えています。特に、決済代行機能を実装可能な、Connect機能に注目しています。これについては、次回、お話ししていきたいと考えています。
"FinTech": 金融を意味する「ファイナンス」と、技術を意味する「テクノロジー」を組み合わせた造語で「ICTを駆使した革新的で破壊的な金融商品・サービスの潮流」の意味。
"ユニコーン企業": 企業としての評価額が10億ドル(約1250億円)以上で、非上場のベンチャー企業を指す。ベンチャー企業への投資を専門的に行う投資会社(ベンチャーキャピタル)の一つである、米カウボーイ・ベンチャーズの創業者が使い始めた。
新しい技術の取り込み、外部サービスの活用
以下の技術要素を取り込み、この開発ノウハウをベースにOpen棟梁の既存のWeb Forms, MVCのテンプレートのモダナイゼーションを図っています。
- 汎用認証サイトでは、Open棟梁のASP.NET MVC 5テンプレートとBootstrapを使用して開発を行いました。
- また、認証フレームワークとして ASP.NET Identity を採用しました。
- 上記のオンライン決済サービス以外の外部サービスとしては、
- 外部ログインで連携するIdpとして、 "Microsoft、Google、Facebook" などをサポートし、2要素認証(Two-factor authentication)のNotification providerとして、SMTPと、SMSサービスの"Twilio"をサポートしています。
- また、上記以外のサービスにつきましても、統一的なインタフェースを持つモジュールを実装・利用することで、プラガブルに拡張できます。
- ユーザストアへのデータアクセスについては、
- 既定では、ユーザーストア (ユーザー情報の格納先) としてSQL Server を使用していますが、ユーザーストアは DBMSだけでなく、X.500 ディレクトリ・サービス(LDAP)、KVS(Key-Valueストア)など、さまざまなストアを利用するようにカスタマイズが可能です。
- なお、既定のユーザーストアである SQL Server へのデータアクセスには試験的に"Dapper"を採用しましたが、Dapperは、ASP.NET Identityが、UserStoreをIterativeに呼び出すスタイルに良く適合し、選択肢として正解だったと思います。
次回は、今回紹介した"サービス開発基盤"を使って、具体的にどのようなサービスを開発できるか?をご説明していきます!