API Meetup Online #1 〜加速するデジタルシフト〜
「続、事例で理解する。
レガシーモダナイゼーションを下支えするAPI」
2020/5/15 NTTデータ 正野勇嗣
https://api-meetup.doorkeeper.jp/events/106340#apijp
自己紹介
• NTTデータ 技術革新統括本部 入社16年目
• 3年前:第三金融事業本部:国内4業態(信用金庫、信用組合、労働金庫
、JAバンク)の協同組織金融機関がお客様
• 好きなもの
• Java(7年ほど社内FW/IDEのR&Dと普及展開していました)
• ログ/統計をずっと見ること(スレッドダンプ/TCPダンプ/実行計画)
• 文字を書くこと(技術評論社さん/マイナビさん/大学非常勤)
• レガモダ/MLOps
http://www.bcm.co.jp/site/2015/05/ntt-data/
話すこと
• 導入:9R
• Rを2つ紹介
① リインタフェース(Re-interface):API活用
② リアーキテクチャ(Re-architecture):データモダナイズ
※レガシーモダナイゼーションの必要性や歴史的課題みたいな話は割愛
いきなりですが
9Rって知っていますか?
9Rが対象とするレイヤ
リファクタリング
リホスト/単純更改
リライト
リインタフェース
リビルド(全面刷新)
/リプレイス
AP仕様
AP構造
HW/OS/M
W
プログラム
言語
DB構造
• 100億〜数千億
• 東京スカイツリー7基分
(日経コンピュータ2017年8月17日号)
※リタイアは割愛
リアーキテクチャ
リプラットフォーム
上の方に手をつけたいができない
AP仕様
AP構造
HW/OS/M
W
プログラム
言語
• 有識者不足
• 新規開発した際は「規模」が小さく、全体仕様を把握できていたが、機能
追加等で「分業化」が進み「AP仕様全体」を把握している有識者が減少
• 非効率的なDB構造
• 非正規化により、業務とは無関係なロジックが発生
DB構造
• AP構造スパゲッティコード化
• 機能追加の繰り返し、テストのないコード
• COBOL技術者の減少
• サポート期限から、HW/OS/MW更改が必要
• ハード部材の確保、ソフトのEOL
リインタフェース
リアーキテクチャ
①リインタフェース
AP仕様
有識者不足とメンテナンス領域
初期構築 保守運用
:理解が深い
:理解が浅い
「規模」が小さく、全体仕様を把握できていた 機能追加等で「分業化」が進み「AP仕様全体」を
把握している有識者が減少
マイクロサービス
温存
マイクロサービス
API呼出
API化
初期構築 保守運用
今後
(APIエコノミー)
:理解が深い
:理解が浅い有識者不足とメンテナンス領域
「規模」が小さく、全体仕様を把握できていた
温存・API化する部分と、
マイクロサービス化する部分の見極め
機能追加等で「分業化」が進み「AP仕様全体」を
把握している有識者が減少
②リアーキテクチャ
DB構造
立ち塞がるデータ構造の壁
預金
対外
接続
融資 情報系日計為替
信託証券
生損保
顧客
管理
外為
• 巨大なテーブル(カラム数:数千〜数万)
• 業務的な意味合いの薄いフラグ項目の追加
• 長期維持保守により崩れた第3正規化
• デグレ回避のため機能追加時にテーブル間で
冗長な項目を追加
2. 機能間のデータが密結合でサービス切り出しが困難
1. 本来の業務とは無関係のロジック
②フロントエンド
①新規
データ構造の壁を乗り越えるアプロー
チ
• Strangler Application
• マイクロサービスの切り出しプラクティス
• 既存資産の外側に構築
• データ構造の依存関係の見極めが肝
既存資産
勘定系
• 預金
• 為替
• 融資
PC 家計簿アプリ
インターネット
バンキング
独立性の担保
DBのリファクタ
Fintech
顧客管理
• 顧客管理
• 日計
• 外為
③既存から剥がす
コスト制約からシステム全体を対象としたリビルドは困難
リインタフェースとリアーキテクチャがキー
銀の弾丸はない(1986 フレデリック ブルックス)
No Silver Bullet - essence and accidents of software engineering
まとめ
ご静聴ありがとうございました
後半(ビジネス・事例編)へ続きます
レガシーモダナイゼーションの
手法
参考:レガシーモダナイゼーションの
9R
No. 手法 目的 概要
1 リインタフェース ・新規ビジネスへの対応
HW/OS/MWから、APまで既存資産を極力生かし、
API/SOA技術などを用いてフロント画面部分のみ刷新
2 リアーキテクチャ
・新規ビジネスへの対応
・保守性の向上 マイクロサービス化、データモデルの組み替え
3 リファクタリング ・保守性の向上 APの仕様は変えずにコードの見通しや、処理効率の改善
4 リライト ・技術者(Javaなど)の確保
ハードウェアやOS/ミドルウェアを刷新し、
APの仕様を変えずにJavaなどの別の言語で再構築
5 リプラットフォーム
・保守性の向上
・HW/OS/MW保守切れ対応 クラウドへのリフトやフレームワークの移行など
6
リホスト
/単純更改
・HW/OS/MW保守切れ対応 HW/OS/MWを刷新し、APを極力そのまま載せ替え。
AP再構築に関わるコストを極力かけない
7 リプレイス ・アウトソーシング SaaS/ASP/パッケージなどを用いて既存資産を置き換え
8
リビルド
(再構築)
・保守性の向上
・新規ビジネスへの対応
・技術者(Javaなど)の確保
ハードウェアやOS/ミドルウェアから、
APの仕様も含めてまで全て見直して再構築
参考:ポスト三次における兆候
’60 ’70 ’80 ’90 ’00 ’10 ’20
一次 二次 三次
ポスト
三次
合併
共同化 DX/レガモダ
フルスクラッチ(再構築・リビルド)中心フルスクラッチ(再構築・リビルド)中心フルスクラッチ(再構築・リビルド)中心
バブル崩壊後:システム延命が多く見られる
• 合併(メガバンクなど)に伴う片寄せなども多い
• 地銀などでは共同化が進展
• 随所で大規模更改実施
DX × レガシーモダナイゼーション = API?
参考:EAの階層とのマッピング
AP仕様
AP構造
HW/OS/M
W
プログラム
言語
DB構造
TA(技術体系)Technology Architecture
BA(業務体系)Business Architecture
DA(データ体系)Data Architecture
AA(アプリケーション体系)Application Architecture
EA Enterprise Architecture
Microservice Architecture(Martin FowlerGuardianの例)
Monolith AP
業務A
業務
B
業務C
Microservice AP
業務D
A
P
I
A
P
I
• 新しい機能をマイクローサビスで構築する際、既存のMonolith APIを活用
• スポーツイベントの特設サイトのような一過性のイベントサイトを構築する際に有効
• Webサイトを構築する際は高生産性が期待できる言語を用いて開発
• イベント終了後削除するのも容易
• 金融機関の事例も:マーケティング用のサイトを構築。数ヶ月/週間にて削除
当初Monolith
で構築
既存のMonolith
APIを活用
バイモーダルIT(2つの流儀)
• ビジネス環境は変化するが、システムがついていかない
SoR
(≒システムスピード)
モード1
モード2
20
SoE
(≒ビジネススピード)
参考:Feature Location
• ソースコードから対象の機能が実装されている箇所を検出
• API化箇所の特定補助
• コスト制約から、全てをリビルドするのではなく、部分的な変更に
とどめる
ノンコア
業務
コア業務
API
Gateway
http://www.cs.wm.edu/~denys/pubs/JSME-FL-SurveyCRCV1.pdf
https://www3.nd.edu/~cmc/papers/armaly_icsme16ind.pdf
参考:プロセスマイニング
• 実行ログを解析し、以下の単位で利用頻度を集計
• 「メソッド」
• メソッドを集約した「機能」
• データが流れる量から正常系と異常系を識別
• API化の優先順位づけに利用
API事例編
APIを取り巻く状況
1. クラウド化・オープン化
• ’17/1三菱UFJが全面クラウド化を発表(AWS)※1
• 富士通MF -> Linux(静岡銀行)※2
2. API化(オープンAPI)
一. Fintech企業
• 会計・家計簿ソフト × API
二. 法律
• ’15/10/8 欧州委員会がPSD2を採択 ※3
• 口座へのアクセスAPI公開義務化
• ’17/5/26 改正銀行法が参議院で可決・成立 ※4
• API公開努力義務化
※3 http://europa.eu/rapid/press-release_IP-15-5792_en.htm?locale=en/
※4 http://itpro.nikkeibp.co.jp/atcl/column/14/346926/052500990/
※2 http://www.fina-sol.com/handbook/bank/core/core-regional/
※1 http://itpro.nikkeibp.co.jp/atcl/column/14/346926/022400847/
‘20
Barclays
• イギリスの銀行
• レベル別API
• https://developer.barclays.com
• Experimental APIs
• Sandbox APIs
• Production APIs
‘20
Open Banking APIs
https://developer.barclays.com/catalogue
‘20
Credit Agricole
• フランスの銀行
• CA Storeと呼ばれるAPIマーケットプレイス
• REST API
• https://www.creditagricolestore.fr/castore-data-provider/docs/V1/rest.html
• 更新/参照系
• 入出金、口座照会など
CA Store REST API一覧
‘20
Credit APIドキュメント
Fidor Bank
• ドイツの銀行
• REST API
• http://docs.fidor.de
• 例:
• POST /sepa_credit_transfers
• Send money to another bank account through SEPA
‘20
Fedor Banking API
BBVA
• スペインの銀行
• BBVA API Marketと呼ばれるAPIマーケットプレイスを’17/5に開放
• https://www.bbvaapimarket.com/products
• 8つのカテゴリ
• Customers (Customers allow authenticated users to recover key profile data to enhance engagement levels.)
• Loans (Loans enables consensual access to customers pre-approved loans and conditions.)
• Notifications (Notifications provides real time notifications of operations performed in BBVA by pre-authorized users.)
• Alipay (Alipay connects your business with the online payments leader in China.)
• SEL (With SEL you will profile your users so you can offer them what they want.)
• Business Accounts Download the account statements of your business customers in the standard format AEB43.
• Business Global Position (Discover the financial position of your company at a glance.)
• PayStats (PayStats allows you to dive into BBVA cards purchase data and drive your business intelligence.)
• Business Notifications (Receive in real time the most relevant information about your banking operations.)
‘20
※赤字は’17からの追加分
BBVA API MARKET
‘20
Citibank
• アメリカの銀行
• 「Citi Mobile Challenge」というオープンイノベーションの取り組みの中でバンキングに関わ
るAPIを提供
• https://developer.citi.com
• 7つのカテゴリ
• Customer (access their profile information.)
• Accounts (access their account summaries in an innovative way)
• Cards (manage their credit and debit cards while overseas)
• Money Movement (move money across accounts and institutions)
• Onboarding (Tap into the power of Citi acquisitions partner services)
• Authorize (access to their account data for more streamlined transactions)
• Pay with Points (use points to cover purchases with statement credits)
Capital One
• アメリカの銀行
• https://developer.capitalone.com/products/
• 4つのカテゴリ
• Bank Account Starter(BETA)
• Credit Offers
• Rewards
• SwiftID
Capital One DevExchange
メガバンク
• みずほ
• 「電子決済等代行業者との連携及び協働に係る基本方針」
• 「2018年2月には振替や振込など資金移動を伴う更新系APIも国内メガバンクでは初めて提供を開始」
• 三菱UFJ
• 三菱UFJダイレクトの「APIサービス」
• MUFG{APIS}
• 三井住友
• 「パソコンバンクWeb21 API接続サービス」
https://www.mizuhobank.co.jp/company/activity/api/policy/index.html
https://www.ipsj.or.jp/dp/contents/publication/39/S1003-S04.html
‘20
https://direct.bk.mufg.jp/btm/ser_naiyo/api.html
https://www.smbc.co.jp/hojin/eb/web21/api/index2.html
みずほ
• 参照系
• 残高照会取引(普通預金(円貨・外貨)口座、定期預金(円貨・外貨)口座
、積立定期預金口座、グローバル口座、貯蓄預金口座、カードローン口座)
• 入出金明細照会取引(普通預金(円貨・外貨)口座、貯蓄預金口座、カード
ローン口座)
• 更新系
• 振替取引(普通預金口座、貯蓄預金口座、当座預金口座)
• 登録振込取引(普通預金口座、貯蓄預金口座、当座預金口座)
• カードローン借入・返済取引(普通預金口座、貯蓄預金口座、当座預金口座
、カードローン口座)
https://www.mizuhobank.co.jp/company/activity/api/policy/index.html
‘20
MUFG{APIS}
https://innovation.mufg.jp/api/
‘20
銀行API
• 個人
• 口座
• 投信
• ローン
• 顧客
• 法人
• 口座
• 振込申請
• 総合振込申請
• 給与賞与振込申請
• 特別徴収地方税申請
https://developer.portal.bk.mufg.jp/api_list
‘20
パソコンバンクWeb21API接続サービス
• 参照系
• 残高照会
• 入出金明細照会
• 振込入金明細照会
• 更新系
• 振込・振替
• 総合振込データ伝送
https://www2.smbc.co.jp/hojin/eb/web21/api/
‘20
地銀など
• 千葉銀行
• 「かんたん口座照会」
• SBIネット銀行
• 自動貯金アプリ(finbee)
• 浜松信金など
• 「アプリバンキング」
http://www.fina-sol.com/news/104148.html
https://finbee.jp
http://www.nttdata.com/jp/ja/news/release/2017/011900.html
地銀などは共同化の流れ
(≒パッケージ化)
• 地銀共同
• BankingWeb21
• PROBANK
• NEXTBASE
• じゅうだん会/Chance/Flight21
• BankVision
• BeSTA/BeSTA Cloud/MEJAR/STELLA CUBE
• その他
• JAバンク:JASTEM
• 労働金庫:R1
• 信用金庫:SBI21/信金共同など
http://www.fina-sol.com/handbook/bank/core
再利用の粒度と範囲に関する方向性
• より効率化のため、定型的な複数オペレーションを束ねる
• より自由度を求め、基幹系資産へのプリミティブなAPIを拡充
A共同システム B共同システム Cメガバンク
パッケージ
オペレーション ×
n
オペレーション
CRUD
プリミティブ
API マーケットプレイス
ベンダー提供パッケージ
広
狭
事例まとめと今後
• REST APIとしてSwaggerライクな仕様公開
• Payment系以外のカテゴリも多数存在
• 海外事例のみならず、国内でも更新系も整備
• 個人顧客向けのみならず、法人向けも整備
• マネタイズ
• APIマーケットプレイス(国内版CAStore)
• 例:MUFG{APIS}
‘20

20200515 api meetup online #1