higis 3/プレゼンテーション資料/j graya · 日立ソリューションズは jboss...

24
© Hitachi Solutions, Ltd. 2015. All rights reserved. 株式会社 日立ソリューションズ 社会イノベーション基盤本部 第4部 岡本 雅幸 2015/5/23 OSSで実現する ビジネスロジックの見える化と生産性向上 JBoss BRMS の特徴とメリット

Upload: tranliem

Post on 01-Mar-2019

227 views

Category:

Documents


0 download

TRANSCRIPT

© Hitachi Solutions, Ltd. 2015. All rights reserved.

株式会社 日立ソリューションズ 社会イノベーション基盤本部 第4部 岡本 雅幸

2015/5/23

OSSで実現する ビジネスロジックの見える化と生産性向上 ~ JBoss BRMS の特徴とメリット ~

© Hitachi Solutions, Ltd. 2015. All rights reserved.

1.BRMSのご紹介 2.BRMSデモ 3.まとめ

1

Contents

© Hitachi Solutions, Ltd. 2015. All rights reserved. 2

1. BRMSのご紹介

© Hitachi Solutions, Ltd. 2015. All rights reserved. 3

1-1.BRMSとは

BRMSとは? Business Rule Management System の略 ビジネスルールを管理するための仕組み および 環境

Business Rule とは? 「もし○○だったら(条件)、△△する(アクション)」

ITシステムに限らず、業務はビジネスルールの集合で成り立っている。

Red Hat JBoss BRMSとは? ・ビジネスルールを実行するフレームワークやライブラリ(ルールエンジン)

・アプリケーションとビジネスルールを分離

・ビジネスルールの可視化、作成、実装、テスト、バージョン管理など、

ビジネスルールを管理するための統合基盤を提供

・jboss.org のDrools プロジェクトをMain Upstream Project とし、

Red Hat 社 が エンタープライズ用途として提供する製品。

OSでいうと、Red Hat Enterprise Linux と Fedora の関係。

© Hitachi Solutions, Ltd. 2015. All rights reserved. 4

1-2.BRMSの導入で期待される効果

–ビジネスロジックの可視化

–ビジネスニーズの変化に柔軟に対応

–開発の簡素化/効率化 = 生産性向上

© Hitachi Solutions, Ltd. 2015. All rights reserved. 5

1-3.ビジネスロジックの可視化

申請

金額は?

課長 承認

部長 承認

社長 承認

100万以下 100〜1000万 1000万以上

申請

業務ルール

承認

•金額が 100万以下 であれば 課長が承認する •金額が 100万から1000万 であれば部長が承認する •金額が 1000万以上 であれば社長が承認する

フロー ルール

従来型システム

BRMS適用システム

フローとルールが分離

フローにルールが記載されている ・視認性が悪い ・ルールを変更する場合、フローの変更も必要

変化に弱いシステム

変化に強いシステム

© Hitachi Solutions, Ltd. 2015. All rights reserved. 6

1-4.ビジネスニーズの変化に柔軟に対応

① フローとルール (さらにデータ) の分離による疎結合システム ② 業務ユーザによるシステム変更 ルールの記述は特別なトレーニング不要なExcelで定義可能 ↓ 業務ユーザによる変更が可能

ビジネスニーズに合わせてITシステムを柔軟に変更可能

Excelによるルール定義の例

when ShoppingCart( cartItemTotal >= 0.0 , cartItemTotal < 25.0 ) then setShippingTotal( 2.99 )

DRL (Drules Rule Language )によるルール定義の例

もし○○だったら(条件) 、 △△する(アクション)

もし○○だったら(条件)

△△する(アクション)

DSL (Domain Specific Language) を利用することで、より自然言語に近いルール表記が可能

カート内商品の合計金額が $ 0.0 以上、$25.0未満だったら、 送料を $ 2.99 とする。

© Hitachi Solutions, Ltd. 2015. All rights reserved. 7

1-5.開発の簡素化・効率化 = 生産性向上

従来型開発

BRMS 導入後

要件 定義

仕様 定義

実装

要件 定義

仕様 定義

テスト

テスト

仕様齟齬による手戻り

DRL や Excelによるルール定義からBRMSがアプリケーションを自動生成(実装工程を削減)

仕様定義フェーズから業務担当者とIT担当者がコミュニケーション可能な仕組み(表形式や自然言語に近いルール表記、ルールフロー)を利用することで仕様齟齬を防止

© Hitachi Solutions, Ltd. 2015. All rights reserved. 8

1-6.BRMS導入のメリット

運用

BRMSを利用することで、ビジネスの変化に強いシステムを構築する事が可能となります。

– ビジネスロジックの可視化 • フローとルールを分離することで正確なビジネスサービスを実現

– ビジネスニーズの変化に柔軟に対応 • 業務担当者によるビジネスルールの変更が可能

• フローとルールを分離することで、変更時の影響範囲も分離

– 開発の簡素化/効率化 = 生産性向上 • 業務担当者とIT担当者がコミュニケーションできる透過性の高いシステム環境 => 仕様齟齬による手戻り防止

• 仕様≒実装

• 定義されたビジネスルールはBRMSエンジンがコンパイル

© Hitachi Solutions, Ltd. 2015. All rights reserved. 9

2. BRMSデモ

© Hitachi Solutions, Ltd. 2015. All rights reserved. 10

2-1.brms-coolstore-demo

https://github.com/jbossdemocentral/brms-coolstore-demo

このデモアプリはソースコードが公開されているため、どなたでも試すことができます。

© Hitachi Solutions, Ltd. 2015. All rights reserved. 11

2-2. brms-coolstore-demoのビジネスフロー

運用

商品をカートに入れる

カートの料金を 計算する

カートの料金を表示する

BRMS

WEBアプリケーション

WEBアプリケーション

© Hitachi Solutions, Ltd. 2015. All rights reserved. 12

2-2. brms-coolstore-demoのビジネスルール

運用

# Rule 内容

1 Apply Cart Promotions Promotionが設定されている商品の商品価格と割引価格を設定します。

2 Total Shopping Cart Items 商品価格の合計と割引金額の合計を求めます。

3 Calculate Shipping 送料を計算します。

4 Apply Shipping Promotions 送料の割引を設定します。 初期状態では$75以上で送料無料となります。

5 Total Shopping Cart 商品価格と送料から合計金額を求めます。 商品の割引金額を設定します。(マイナス演算)

今回は #3 Calculate Shipping Rule を利用してデモを行います。 デフォルトでは、WEBベースのデシジョンテーブルになっていますが、 今回のデモはエクセルに変更しています。

© Hitachi Solutions, Ltd. 2015. All rights reserved. 13

2-3. Calculate Shipping Rule

運用

商品金額が $ 0 〜 $25 の場合、送料は$ 2.99 とする 商品金額が $25 〜 $50 の場合、送料は$ 4.99 とする ・・・・

商品金額が $ 0 〜 $25 の場合、送料は$ 2.00とする 商品金額が $25 〜 $50 の場合、送料は$ 4.00とする ・・・・

エクセルで送料のルールを変更

© Hitachi Solutions, Ltd. 2015. All rights reserved. 14

2-4.動的なルール変更の反映

運用

変更後アップロード

1.99 に 変更

© Hitachi Solutions, Ltd. 2015. All rights reserved. 15

3. まとめ

© Hitachi Solutions, Ltd. 2015. All rights reserved. 16

3.まとめ

運用

BRMSの特徴およびメリット

– ビジネスロジックの可視化 • フローとルールを分離することで正確なビジネスサービスを実現

– ビジネスニーズの変化に柔軟に対応 • 業務担当者によるビジネスルールの変更が可能

• フローとルールを分離することで、変更時の影響範囲も分離

– 開発の簡素化/効率化 = 生産性向上 • 業務担当者とIT担当者がコミュニケーションできる透過性の高いシステム環境 => 仕様齟齬による手戻り防止

• 仕様≒実装

• 定義されたビジネスルールはBRMSエンジンがコンパイル

BRMSを利用することで、ビジネスの変化に強いシステムを構築する事が可能となります。

© Hitachi Solutions, Ltd. 2015. All rights reserved. 17

おまけ (宣伝)

弊社WEBサイトでBRMSのコラムを掲載しています。

http://www.hitachi-solutions.co.jp/redhat/sp/

個別のハンズオンセミナーも実施しておりますので、

ご興味をもたれた方は是非お問い合わせください。

弊社ではRed Hat JBoss BRMSを含むJBossサポートサービスを

提供しています。

日立ソリューションズは JBoss 管理者資格者(RHCJA) 全世界 No.1 !!

これまでに蓄積したノウハウを活かし、

お客様のシステムの導入からサポートまでワンストップでサポートします。

© Hitachi Solutions, Ltd. 2015. All rights reserved.

OSSで実現するビジネスロジックの見える化と生産性向上 ~ JBoss BRMS の特徴とメリット ~

2015/5/23

END

株式会社 日立ソリューションズ 社会イノベーション基盤本部 第4部 岡本 雅幸

© Hitachi Solutions, Ltd. 2015. All rights reserved. 20

従来型プログラムとBRMSの違い

ACTION ACTION ACTION

ACTION

IF

IF

IF

IF

IF

IF

THEN

THEN

THEN

THEN

THEN

THEN

ELSE

ELSE

ELSE

ELSE

ELSE

ELSE

IF-THEN-ELSEの例 特定の地点での条件をチェックするもの ELSE が可読性を大幅に低下させている 全ての”パス” を確認する必要がある

Data

When

Then

When

Then

When

Then

When

Then

When

Then

Data

WHEN-THENの例 マッチングする”状態”の場合、実行候補にリストされ、ルールの優先順位に従い実行される。 予め決められたパスはなく、個々のルールが正しければよい。

従来の ”手続き型” プログラミング BRMSの ”宣言型” プログラミング

When

Then

When

Then

When

Then

© Hitachi Solutions, Ltd. 2015. All rights reserved. 21

ルールの定義方法

package com.redhat.coolstore rule "Total Shopping Cart Items" ruleflow-group "pricing-rules" no-loop true when $sc : ShoppingCart( ) $sci : ShoppingCartItem( shoppingCart == $sc ) then $sc.setCartItemTotal( $sc.getCartItemTotal() + ($sci.getPrice() * $sci.getQuantity())); $sc.setCartItemPromoSavings($sc.getCartItemPromoSavings() + ($sci.getPromoSavings() * $sci.getQuantity())); update( $sc ); retract ($sci); end

DRL (開発者向け)

ディシジョンテーブル (Excelもそのまま利用可能)

ガイド付きDRL (入門開発者向け)

DSL (自然言語に近い書式)

© Hitachi Solutions, Ltd. 2015. All rights reserved. 22

brms-coolstore-demo データモデルの定義

運用

# ラベル 内容

1 Cart Item Total 商品の合計金額

2 Cart Item Promotional Savings 商品の割引価格

3 Shipping Total 送料

4 Shipping Promotional Savings 送料の割引価格

5 Shopping Cart Total 合計価格 (商品の合計金額 + 送料 )

6 List of Shopping Cart Items Shopping Cart Item リスト

Shopping Cart

# ラベル 内容

1 Item ID 商品コード

2 Name 商品名

3 Price 商品価格

4 Promotional Savings 割引金額

5 Quantity 数量

6 Shopping Cart

Shopping Cart Item

© Hitachi Solutions, Ltd. 2015. All rights reserved. 23

Calculate Shipping RuleのDRL

運用

rule "Row 1 Shipping Rules" no-loop true ruleflow-group "shipping-rules" dialect "mvel" when $sc : ShoppingCart( cartItemTotal >= 0.0 , cartItemTotal < 25.0 ) then $sc.setShippingTotal( 2.99 ); end rule "Row 2 Shipping Rules" no-loop true ruleflow-group "shipping-rules" dialect "mvel" when $sc : ShoppingCart( cartItemTotal >= 25.0 , cartItemTotal < 50.0 ) then $sc.setShippingTotal( 4.99 ); end