11.2K Views
August 23, 22
スライド概要
保険会社の基幹システムには、一般的な基幹システムとして求められる品質と安定性に加え、高い拡張性が求められます。高い拡張性とは、保険会社の商品開発スピードを最大限に高めるために、新商品追加や商品改定の際のシステム対応コストを最小化することを意味します。
シンプレクスでは、OSS(オープンソースソフトウェア)のワークフローエンジンであるCamunda、自社開発のルールエンジン、スキーマレスなアーキテクチャを用いて、高い拡張性を実現しています。
この資料では上記の技術を中心に、シンプレクスによる保険基幹システム開発の取り組みをご紹介します。
シンプレクスは1997年の創業以来、メガバンクや大手総合証券を筆頭に、日本を代表する金融機関のテクノロジーパートナーとしてビジネスを展開してきました。現在では、金融領域で培った豊富なノウハウを活用し、金融機関以外の領域でもソリューションを展開しています。2019年3月にはAI企業のDeep Percept株式会社、2021年4月には総合コンサルティングファームのXspear Consulting株式会社がグループに加わり、創業時より付加価値の創造に取り組んできたシンプレクスとワンチームとなって、公的機関や金融機関、各業界をリードする企業のデジタルトランスフォーメーション(DX)の推進を支援しています。
画面要件セッション②▼ 保険基幹システムのアーキテクチャ: シンプレクスの技術的チャレンジ シンプレクス株式会社 白井翔太 JJUG CCC 2022 Spring 1
自己紹介 • 白井翔太 • シンプレクス株式会社 • 保険会社向けのシステム開発・データ移行 保険パッケージのアーキテクチャ設計 • Java(Spring, Hibernate) JavaScript(Vue.js, TypeScript) Docker AWS 2
私たちについて • 1997年創業のITコンサルティング企業 • IT戦略から開発、運用まで一気通貫で担い、トータ ルソリューションを提供しています • 創業当時より 金融フロント・ミドル領域 に強みを持 ち、市場業務、リテール金融業務に多数の実績 • 2012年より 保険領域 にビジネス拡大し、現在に至 るまで実績多数 • 各種領域で 自社パッケージ・フレームワーク・ライブ ラリの開発・活用 により業界知識集約・生産性向上 を図っています • 近年は非金融領域へもビジネスを展開しています 3
アジェンダ • 保険業務基幹システムの特徴 • 保険業務基幹システムに求められる拡張性 • Simplexにおける取り組みの紹介 • Camundaフレームワーク • スキーマレスなアーキテクチャ • ルールエンジン 4
今回のセッションの対象者 • 「基幹システム開発」という領域に馴染みは無いが、どのような世界で あるか覗いてみたい人 • 基幹システムの開発に日頃から従事している人 • これからシステム・アーキテクトを名乗って仕事をしたいと思っている人 5
保険業務基幹システムの特徴 • 主に保険会社の事務の方が利用するシステム • 新契約、異動、収納、満期、支払といった機能群をもつ 保険のライフサイクル 加入時 加入中 異動 新契約 申込書記入 申込書 送付 引受査定を行う 支払 例:引っ越し時の 住所変更 契約成立 収納 保険料を支払う 6 満期 保険期間満了 ⇒契約を更新 保険事故 発生 保険金を お支払い
保険業務基幹システムの特徴 複雑な商品性 火災保険の選択可能な補償の例 • 付帯可能な補償がたくさんある • 補償間の相関もたくさんある • 例:補償Aが付帯されている場合のみ 補償Bが付帯可能 • 例:補償Aの保険金額は 補償Bの保険金額の半分が上限 • このような商品性により、商品コードの分岐ま みれになりがち・・・ 火災・建物__火災、落雷、破裂・爆発 火災・建物__風災、雹災、雪災 火災・建物__水災 火災・建物__盗難 火災・建物__水濡れ、物体の落下・飛来、騒擾 火災・建物__臨時費用 火災・建物__残存物取片づけ費用 ・・・ ⇒建物に対して10個程度の補償が付帯可能 火災・家財__火災、落雷、破裂・爆発 火災・高額貴金属__火災、落雷、破裂・爆発 ・・・ ⇒家財や高額貴金属に対しても同様の補償が付帯可能 特約__類焼損害補償 特約__個人賠償責任危険補償 ⇒こういった特約で表現される補償も5-10個ほど付帯可能 地震・建物 地震・家財 ⇒地震保険も付帯可能 合計で40個ほどの補償が付帯可能 7
保険業務基幹システムの特徴 新商品追加や商品改定 • 新商品追加 • 時代のニーズにあわせた新しい保険商品を企画して スピーディに市場に投入していく必要がある • 老朽化した基幹システムだと、新商品追加に多くの人員やコス トが必要になる • 商品改定 • 法改正への対応 • 例:建築基準法の改正により、火災保険における建物 の構造級別の判定方法が変わった • 商品性の見直し • 例:よりリーズナブルな保険料で保険に加入できるように するため、割引や割増を追加 8
保険業務基幹システムに求められる拡張性 保険商品の拡張性を高めるために柔軟性が要求されるコンポーネントは 多岐にわたるので、それぞれにソリューションを用意する。 • 業務フロー ✓ Camunda ワークフローエンジンの導入 • 画面実装 ✓ vue-form-generator ベースの自動生成 • データモデル ✓ スキーマレス・アーキテクチャの採用 • チェックルール ✓ 独自開発のルールエンジン 9
Simplexにおける取り組み • Camunda の利用 • スキーマレス・アーキテクチャの採用 • 独自ルールエンジンの開発 10
Simplexにおける取り組み • Camunda の利用 • スキーマレス・アーキテクチャの採用 • 独自ルールエンジンの開発 11
Camundaとは • http://camunda.org/ • JVM上で動作するオープンソースのワークフロー プラットフォーム • ワークフローエンジンとしての機能に加えて、ビジネス プロセスのモデリングツールであるCamundaモデラー を搭載している • 2022年4月に Camunda Platform 8 がリリース されたが、Simplexでは Camunda Platform 7 を利用 (7 と 8 ではライセンス体系や機能などが異 なる) 12
Camundaの紹介 • BPMN • Business Process Model and Notation (ビジネスプロセスモデリング表記法) • フローチャートのようにビジネスプロセスを表現 • Camundaモデラー • BPMNに基づいてビジネスプロセスをモデリングするための デスクトップアプリ • Electron+Reactで実装されている • 作成したBPMNは .bpmn ファイルとして保存される (中身はxml) 13
Camundaの紹介 Camundaモデラー ※ 業務フローはサンプル 14
Camundaの紹介 プロパティパネル ・サービスタスクで実行するJavaクラスや、 ゲートウェイの分岐条件などを設定する Camundaモデラー ユーザータスク ・画面を表す サービスタスク ・システム処理を表す ゲートウェイ ・分岐を表す デプロイボタン ・作成したBPMNをデプロイすることができる 15 ※ 業務フローはサンプル
Camundaの紹介 Camundaモデラー ・分岐条件を設定 ※ 業務フローはサンプル 16
Camundaの紹介 Camundaコックピット(管理画面) ・ワークフローの実行状況 ・ワークフロー定義(BPMN)のデプロイ状況 17
SimplexにおけるCamunda • SimplexではCamundaを独自に拡張し、商品毎の画面項目、画面遷移、項目マッピン グの差異をBPMNで表現できるようにしている • モデラーでBPMNを修正してデプロイすれば即時に新しい画面を確認できるので、顧客からの フィードバックサイクルを短くすることを目指している vue-form-generatorフレームワークを使って、 効率的に画面開発ができるようにしている ※ 業務フローはサンプル 18
Simplexにおける取り組み • Camunda の利用 • スキーマレス・アーキテクチャの採用 • 独自ルールエンジンの開発 19
スキーマレスなアーキテクチャ • 素直にテーブル設計すると、商品や商品固有の項目が増えてくると辛い・・・ • 商品固有の項目を契約に対して1対1でもつようなテーブルを用意する案もあるが、この方 式もそれなりの手間がかかる • 商品固有の項目はスキーマレスに保持する 素直なテーブル設計の例: 1 1…N 20
スキーマレスなアーキテクチャ • 契約データをJSON形式で1カラムに 格納 • 契約商品テーブルは残した状態で、か つ、商品固有の項目は縦持ちに保持 したほうが便利なケースがある • カスタム属性の考え方 21
スキーマレスなアーキテクチャ • 契約商品のデータを契約のJSONにすると契約商品の属性による検索が難しい • データの特性・検索要件を考慮して「JSONによるスキーマレス方式」と、 「カスタム属性によるスキーマレス方式」を組み合わせて活用することが重要 1 0…N 1 1…N 1 0…N 22
Simplexにおける取り組み • Camunda の利用 • スキーマレス・アーキテクチャの採用 • 独自ルールエンジンの開発 23
ルールエンジン • 火災保険の引受査定において、例のようなチェック処理が大量に存在する • これらのチェック処理は商品改定に対応するため、効率よくメンテナンスできる必要がある • 保険業務基幹システムではこうしたチェック処理の実装のため、ルールエンジンが使われる 引受査定におけるチェック処理の例 保険始期日が2020/1/1以降 かつ XXX特約が「未付帯」の場合 もしくは、 保険始期日が2020/1/1より前の場合 かつ、下記①②のいずれかの条件を満たす場合 ①所在地都道府県が「北海道」 ②建築年月~保険始期日の期間がXX年以上 ⇒上記条件を満たす場合、バリデーションエラーを表示: 建築年数が所定の期間より古い建物または建物所在地が所定の地域にある物件の XXX特約の付帯は原則不可です。特殊な事情がある場合は、引受申請処理をしてくだ さい。 24
ルールエンジン • ルールエンジンとは? • ビジネスルールをアプリケーションコードから独立させて 定義・検証・実行することを可能にするソフトウェア • OSSのルールエンジン • Drools、Open Tables、・・・ • 商用のルールエンジン • Corticon、InnoRules、・・・ 25
ルールエンジン ルール管理画面 ルール定義の例 チェック結果の例 ※開発中のサンプル 26
ルールエンジン • JavaScriptでルールエンジンを実装し、サーバーサイドではGraalVM上でルールエンジンを 実行する • このようなルールエンジンを開発したことで、サーバー側のチェック処理に加えて、クライアント側 での単項目チェックや相関チェックなども全てルールエンジンで実行できるようになった サーバーサイドプロセス クライアント画面 ルール定義(JSON) 単項目チェック 相関チェック Rule Engine (JavaScript) ルール定義(JSON) Rule Engine (JavaScript) GraalVM ・クライアントサイド固有のチェック ・サーバーサイド固有のチェック ・クライアント/サーバー共通のチェック 27 Java 商品規程チェック 事務規定チェック
まとめ お客様の多様なニーズやスピード感のある市場に対応した保険サービス 商品追加や商品改定に素早く対応できるアプリケーション Camunda(BPMNモデラ ―)による 画面・処理モデリング スキーマレスアーキテクチャ による ハイブリットデータモデル 28 フロントエンドにも使える ルールエンジン
We’re Hiring • シンプレクスではシステムエンジニア、ソリューション アーキテクトをはじめとした各ポジションで採用を行っ ています。 • カジュアル面談も含め、詳細・応募は以下よりどうぞ。 https://hrmos.co/pages/simplex/jobs 29