Business Automation Study - (1) 入門編

#はじめに
ほとんど縁が無かったビジネス・オートメーションなる分野に手をつける必要が出てきたためお勉強していきます。具体的なソフトウェアとしては、[IBM Cloud Pak for Business Automation](https://www.ibm.com/jp-ja/cloud/cloud-pak-for-business-automation) というものを中心に見ていきたいと思います。
これまではどちらかというとバックエンドシステム寄りの分野を扱うことが多かったため、文化や用語が違いすぎてなかなかすんなり入ってこない印象。まずは地道に用語の辺りから整理していきたいと思います。

## 関連記事
[Business Automation Study - (1) 入門編](https://qiita.com/tomotagwork/items/ff4afefa1669aa5917b7)
[Business Automation Study - (2) BAWによるワークフローの作成](https://qiita.com/tomotagwork/items/62457908af8f495da517)


#用語の整理

## ビジネス・(プロセス)・オートメーション

業務(処理)の自動化？ これだけ聞くとそれってこれまでずーっと行われてきている、機械化、システム化、デジタル化、IT化がやっていることと何が違うの？って気がしてしまいます。むしろ業務を自動化する以外のITって何かあるのかな？

[Wikipedia - ビジネス・プロセス・オートメーション](https://ja.wikipedia.org/wiki/%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%E3%83%BB%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%83%BB%E3%82%AA%E3%83%BC%E3%83%88%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3)　より引用
>ビジネス・プロセス・オートメーション（英: Business process automation, BPA）は、ビジネスオートメーションまたはデジタルトランスフォーメーションとも呼ばれ[1]、複雑なビジネスプロセスをテクノロジーを使って自動化することである[2]。 ビジネスを合理化して簡素化し、デジタルトランスフォーメーションを実現し、サービス品質を向上させ、サービス提供を改善し、コストを抑えることができる。これは、アプリケーションの統合、労働力の再構築、および組織全体でソフトウェアアプリケーションを使用することで実現される[3]。 ロボティック・プロセス・オートメーションは、BPA内の新しい分野である。 

なんかWikipediaだとDXとひとくくりにされてる。範囲広すぎ。まだピンときませんね。

余談: 最近IPAが出している「[マンガでわかる製造分野DX FAQ編50件](https://www.ipa.go.jp/files/000093474.pdf)」が身近で紹介されていていました。エグイ会話がされていておもしろいですのですが、何か同じ匂いを感じてしまう...

ここでいうビジネス(プロセス)とは何を指すのか？

- 入手金の情報を台帳に人手で書いていた業務をデータベース化してアプリで記録できるように自動化する
- 在庫引き当てしたら棚卸のときに在庫数を手書きで管理していたのをシステム化して自動で在庫管理できるようにする
- ...

といったように、これまでずっと業務の自動化/効率化をITを用いて進めてきたわけですが、上のようなことはビジネスオートメーションとは多分呼んでいなかったはず(聞いたことがない)。
じゃこの分野で扱う業務ってのは何なんだと。今までやってきたことと何が違うんだと。

## ビジネス・プロセス管理(BPM)
[Wikipedia - ビジネスプロセス管理](https://ja.wikipedia.org/wiki/%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E7%AE%A1%E7%90%86) より引用

>ビジネスプロセス管理（英: Business Process Management, BPM）は、人間、組織、アプリケーション、文書といった知識に関する<font color="red">オペレーション的ビジネスプロセス</font>を設計・制定・制御・分析するための手法・技術・ツールといったマネジメントと情報技術(IT)の交差する分野である[1]。「オペレーション的ビジネスプロセス（Operational Business Process）」とは、組織が日々の業務で繰り返し行うビジネスプロセスであり、組織の責任者が行う戦略的意思決定プロセスとは正反対の概念である。1990年代に人気となったビジネスプロセス・リエンジニアリングと異なるのは、BPM では一回限りの革命的な変化ではなく、継続的なビジネスプロセスの発展を目指しているという点である。BPM は IT による管理技法を伴うことが多い。 

ここに少しヒントがありそう。これもまだフワッとした書き方になっていますが、「日々の業務で繰り返し行うビジネスプロセス」というのがキーワードっぽい。
(昔は紙の台帳に入出金記録を付けるのだって日々の業務の繰り返しだったと思いますが...)

さらに引用

>プロセスを自動化する従来からの手法は、プロセスの特定の段階を実行するアプリケーションソフトウェアを購入または開発することである。しかし、そのようなアプリケーションがプロセスの全体を正確あるいは完全に自動的に実行できることはまれである。別の手法として、<font color="red">ソフトウェアと人手を組み合わせて利用する</font>。組み合わせ方式は複雑であり、プロセスの文書化も難しい。このため、プロセスの改善も困難となる。
このような問題に対処するため、ビジネスプロセス全体をコンピュータ言語で記述し、それをコンピュータが直接実行するというソフトウェアが開発されてきた。このシステムは各種アプリケーションを統合して利用し、プロセスが複雑すぎて自動化が困難な場合は人間に入力を促すメッセージを出力する。<font color="red">従来の方式に比べると、プロセスの定義を直接実行する方式は直観的で改善しやすい。しかし、このような自動化を行うには柔軟性のある新たなインフラストラクチャを必要とし、古くからあるIT資産上では実装できない。</font> 

一部はシステム化するが、そのうちの一部は人手を介する処理も含まれていて、それらが組み合わされて一つの業務が成り立つようなケースが該当するっぽい。この手の例でよく出てくるのは申請書が課長->部長->経理-> ... と回っていって決裁されるようなもので、これまで紙/ハンコベースだったものを紙を無くしてシステム化する、ただし承認は人の判断を介在させないといけないからそこは人が承認ボタンをポチっと押す(ハンコを押す代わり)、みたいな。
こういうケースに特化した機能を提供してくれるのが恐らくBPM関連製品ということなんだと思われます。

>ワークフローをグラフィカルに表現するソフトウェアをそのフローの実装や保守にも利用できるようにすることで、ビジネスプロセスの改善をスムーズに実現できる。 

"ワークフロー"というのがまたフワッとした言葉ですが、業務処理の流れをGUIで視覚化することで、コードを書かなくても定義できるし、可視化されるので改善にもつなげやすい、ということのようです。

こういうのは昔からあるやり方では難しいから、専用の技術やソフトウェアが提供されてきていますよ、という話でしょうか。

## ワークフロー

[Wikipedia - ワークフロー](https://ja.wikipedia.org/wiki/%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC) より引用

>ワークフロー（英: workflow）は、リソース（資源）を体系的に組織化した反復可能な業務活動のパターンである。ワークフローは、物質の加工、サービスの提供、情報の処理など、何らかの具体的意図をもって設計される。ワークフローは、例えば、操作の列、個人またはグループの定まった作業、従業員の組織、複数の機械の機構などで表現しうる。
ワークフローは組織構造に関する各種概念（サイロ、機能、チーム、プロジェクト、階層）と密接な関係がある。ワークフローは組織の基本的構成要素と見ることもできる。

これは今も昔もたいして変わる概念ではなく、ITに特化した話でもない。ま、これはかなり広義な意味でのワークフローの説明だと思いますが。

>ワークフローの構成要素
ワークフローは一般に形式的か否かによらず、何らかのフロー図（処理ステップ間の有向フローを示す図）作成技法として説明される。1つの処理ステップやワークフローの構成要素は、基本的には以下の3つのパラメータで定義される。
　1. <font color="red">入力記述</font>: そのステップを実施するのに必須な情報／材料／エネルギー
　2. <font color="red">変換ルール、アルゴリズムなど</font>、そのステップを行う人間や機械（あるいは両者の組合せ）が従う手順
　3. <font color="red">出力記述</font>: そのステップによって生成され次のステップの入力となる情報／材料／エネルギー
各要素は、その前の要素の出力が自身の要素の入力と一致する場合だけ接続可能である。したがって、入出力のデータ型とその意味（意味論）が最も基本的な属性である。アルゴリズムやルールは、ある入力セットからある出力セットへと変換する方法がいくつもあり、しかもそれらの間で正確性や速度に違いがある場合だけ意味をもつ。 

この辺の記述はだいぶITを意識した記述になっていますが、業務処理を実装するプログラムを作る際には設計段階でIPO図やフローチャートなどを昔から作っていた訳で、今存在しているほとんどのシステムでは設計書に組み込まれているはず。

>ワークフローから具体的なアプリケーションを構築するワークフローアプリケーションには様々なものがあり、<font color="red">人間と機械（あるいはソフトウェア）が協調してデータの処理を行う</font>。例えば、何らかの購入要求を考えてみれば、様々な部門での承認を経て最終的に購入が行われる。その要求は一種のメッセージとして扱われ、各種の待ち行列に置かれて処理を待つ。<font color="red">ワークフロープロセスは常に変更され更新される。</font>他に影響を与えずに新たな要素を追加することも可能である。
ワークフローアプリケーションの開発には二つの方法がある。一つは、ワークフローモデルを専用言語で設計し、そのモデル内の各タスクを人間やソフトウェアに割り当てる方式である。ワークフロー言語はグラフィカルな記法であることが多いが、一部はテキストまたはXMLベースである。
...
もう一つのワークフローアプリケーション定義の方法は、タスク間の関係を抽象化したインタフェースやライブラリを備えたプログラミング言語を使うものである。


ただ、やはりこの辺の記述を見ると、"ワークフロー"というと、先に挙げたオペレーション的ビジネス・プロセスにおいて人手とシステムが混在する業務のフローを扱うことを主眼に置いているように思われます。また、更新/改善のサイクルが早い、そのためのツール/仕組みが提供される、というのも特徴になっているようです。

そして最近IBMさんは"インテリジェント・ワークフロー"とかいうことを言い出しています。

## インテリジェント・ワークフロー
[企業全体のデジタル変革を加速する"インテリジェント・ワークフロー"](https://www.ibm.com/downloads/cas/ANMAPYAY)より引用

>インテリジェント・ワークフローとは、先進テクノロジーを活用してビジネス・プロセス全体をシームレスに連携し、さらには事業環境の変化にも柔軟に対応できる、自動化を見据えた新たな概念です。ワークフローの自動化というと、RPA をイメージする方も多いかもしれませんが、インテリジェント・ワークフローは、そうした自動化をより進化させたものです。
これまでの自動化は、基幹システムの導入を中心として、ルールやプロセスの標準化・統一化を図るアプローチで進められてきました。その結果、サイロ化した組織の範囲内での「部分的」な自動化にとどまり、例外処理など「人間的判断」が必要な業務は残され、時間を要していました。また、ルールやプロセスを所与とした業務オペレーションは固定化した（「静的」な）ものでした。
これに対して、インテリジェント・ワークフローが実現する"これからの自動化"の特徴（図1）は、次の 3点に集約されます。
<font color="red">１．人間的判断の自動化</font>
以前は機械に代替させることが難しかった自然言語処理やパターン認識をAI が行うことにより、社内外のデータの活用を促進し、そこから得た知見に基づき人間の意思決定を支援する、さらには意思決定そのものをAI に任せることもできるようになります。
<font color="red">２．動的なプロセス変更</font>
業務のルールやプロセスは、従来は人が作成し、検証・適用を行ってきましたが、インテリジェント・ワークフローではデータに基づいた新たな洞察に応じて動的・自動的に変更されます。
<font color="red">３．組織横断的なプロセス改革の実現</font>
組織をまたいだ最適なオペレーションが可能となり、その結果、人の介在が最小化され、業務継続性が向上します


1. これまでは人手での処理が必要だった部分が、テクノロジーの進歩によって自動化できる領域が広がってきているので、新しい技術を活用してIT化/システム化/自動化できる処理を広げていきましょう。ということだと思います。
2. ビジネス状況の変化が激しくそれに迅速に対応する必要性が高まっているので、固定化しているルールやプロセスを柔軟に変えられるようにしましょうということだと思います。そのためには現在の業務状況に関する各種データを蓄積/分析して適切なルール/プロセスに変革するためのネタを導出する必要があります。
3. 組織内、企業内だけでなく、なるべく広範囲に連携していきましょうということだと思います。

特別新しい概念や技術のことを言っている訳では無さそうです。ただ、テクノロジーの観点で言えば、2.の部分はBusiness Process Automationという分野でくくられるソフトウェアでサポートされる機能が活用できそうなので、実装を踏まえた具体例を考えるには分かりやすそうです。

その他参考: [AIとの関係が人の仕事を次世代に導く −−新たな業務自動化“インテリジェント・ワークフロー”の全貌とは](https://www.ibm.com/think/jp-ja/business/i-workflow-2020/)

## 関連用語
上に挙げた用語を中心にして、さらに派生的に関連する用語をおさえておきます。

[BPMN(Business Process Model and Notation)](https://ja.wikipedia.org/wiki/%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%83%A2%E3%83%87%E3%83%AA%E3%83%B3%E3%82%B0%E8%A1%A8%E8%A8%98%E6%B3%95)
[BRMS(Busines Rule Management System)](https://en.wikipedia.org/wiki/Business_rule_management_system)
[RPA(Robotics Process Automation)](https://ja.wikipedia.org/wiki/%E3%83%AD%E3%83%9C%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E3%83%BB%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%83%BB%E3%82%AA%E3%83%BC%E3%83%88%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3)
[ECM(Enterprise Contents Management)](https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%97%E3%83%A9%E3%82%A4%E3%82%BA%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E7%AE%A1%E7%90%86)
[BPEL(Business Process Execution Language)](https://ja.wikipedia.org/wiki/BPEL)



# IBM Cloud Pak for Business Automation

[What is IBM Cloud Pak for Business Automation(V21.0)](https://www.ibm.com/docs/en/cloud-paks/cp-biz-automation/21.0.x?topic=overview-what-is-cloud-pak-business-automation)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/58e5f830-36f9-2465-e52f-30882706f6d4.png)

IBM Cloud Pak for Business Automationには、Business Automationに関連した機能が多数含まれています。いっぱいありすぎて大変なので、まずはざっくり分類してから主要そうな機能/コンポーネントを今後掘り下げていこうと思います。

## ビジネス・ロジックの実装
対象業務を自動化するにあたり、以下のコンポーネントが業務ロジックの実装を担う部分になると思われます。

**[IBM Business Automation Workflow(BAW)](https://www.ibm.com/docs/en/cloud-paks/cp-biz-automation/21.0.x?topic=software-business-automation-workflow)**: 
ワークフローの開発、稼働環境
BPMをサポートするミドルウェア
IBM WebSpher Process Server, Lombardi Teamworks, IBM Case Managerの流れを組む製品

**[IBM Operational Decision Manager(ODM)](https://www.ibm.com/docs/en/cloud-paks/cp-biz-automation/21.0.x?topic=software-operational-decision-manager)**:
ビジネス・ルールの開発、稼働環境
BRMSをサポートするミドルウェア
ILOGの流れを組む製品

**[IBM Robotic Process Automation(RPA)](https://www.ibm.com/docs/en/cloud-paks/cp-biz-automation/21.0.x?topic=software-robotic-process-automation)**:
人が使用する前提の操作(GUIでの操作など)を自動化するための仕組みを提供

**[IBM Automation Decision Services](https://www.ibm.com/docs/en/cloud-paks/cp-biz-automation/21.0.x?topic=software-automation-decision-services)**:
ビジネス・ルール、ポリシーの動的変更のためのサポート機能を提供???

**[IBM Automation Workstream Services](https://www.ibm.com/docs/en/cloud-paks/cp-biz-automation/21.0.x?topic=software-automation-workstream-services)**:
Workstream Services provides a no-code solution for streamlining, automating, and accelerating activities in your daily work.


## コンテンツ管理
IBM FileNet Content Manager
IBM Automation Document Processing
IBM Content Collector for SAP Applications
IBM Content Collector for Email, Files & Sharepoint
IBM Datacap
IBM Enterprise Records

## 分析
**[IBM Process Mining](https://www.ibm.com/docs/en/cloud-paks/cp-biz-automation/21.0.x?topic=software-process-mining)**:
現行業務プロセス分析、改善のための支援機能を提供???

**[IBM Business Automation Insights](https://www.ibm.com/docs/en/cloud-paks/cp-biz-automation/21.0.x?topic=services-business-automation-insights)**:
業務にまつわる各種イベントを収集して分析するための支援機能を提供???

## その他

IBM Business Automation Navigator:
ポータル的な役割？

IBM Business Automation Studio:
開発環境？

IBM Application Designer:
Low-code UI builder？

User Management Service for single sign-on:
ユーザー管理

#まとめ

CP4BA(Cloud Pack for Business Automation)というのは、ワークフローを実現するBAWを中心として、各種自動化に関連する機能を集約させたものという感じで捉えるのがよいでしょうか。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/c3bb37cb-ec2c-86cb-2760-11312bd20927.png)


また、現在メインフレームで実装されている業務と、いわゆるBusiness Automationと呼ばれるエリアで想定している業務についての特性の違いについて整理してみました。(個人的見解です)

|               | BAで実現するシステム                                                     | CICS/IMSを中心としたOLTPシステム                                |
|---------------|-----------------------------------------------------------------|-------------------------------------------------------|
| 処理特性          | 人手を介する処理を含む<br/>システム横断的処理がベース<br/>緩い整合性管理(Compensation)               | 人手を介する処理は含まない<br/>単一システムがベース(他システム連携はあり)<br/>厳密な整合性の保証(ACID) |
| 対象処理のLifeTime | 長い(数分～数日単位)                                                     | 短い(ミリ秒～秒単位)                                           |
| 求められる非機能要件    | 柔軟な処理内容の変更/改善、アジャイル開発                                           | 低レイテンシー、高スループット、高信頼性                                  |
| 開発環境/開発言語     | Low-Code, No-Code開発<br/>GUIベースの開発ツール<br/>BPEL<br/>補足的にJavaScriptなどを使用 | COBOL, PL/I, Assembler, C/C++, Java, ...              |