まとめ記事：BizRobo! のアーキテクチャと環境構築

## はじめに

これまで個別バラバラに書いてきた BizRobo! の環境構築関連記事ですが、ブログ全体の記事数も増えたため、関連のある記事をインデックス化していこうと思います。


## BizRobo! Basic の基本的なアーキテクチャ

BizRobo! の運用環境を一式構築しようとした場合、標準構成として下記複数のコンポーネントをセットアップし、相互に通信可能な状態にする必要があります。[^1]

[^1]:ポート番号についてはそれぞれのコンポーネントのデフォルト値を設定していますが、全ての項目について設定変更可能です。

物理的な構成として一式を１台のコンピュータに構築する場合もあれば、コンポーネントごと分離して数台のコンピュータで構築する場合もあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3090491/f85ef8b7-2036-c19b-8912-f9493b2ab0c6.png)

スモールスタートする際には１台または２台のコンピューターで構築することが多いと思いますが、その後は `スケールアウト` していくことになります。各コンポーネント間の通信を理解していないが故に、サーバーを分割した際に通信ができず「あれ、何かわからないけど動かない」とか「ログが記録されません」とか、地味にトラブルに見舞われることもあります。

トラブルに見舞われた際には、やみくもに直線的な答えを求めたりソフトウェアの不具合を疑う前に、落ち着いて状態と状況の整理をすることが必須です。

:::note warn
以下の記事はBizRobo! v11.3 を前提に書かれています。
:::

## 構成要素とセットアップ手順

### ① MySQL
`MC` や `Kapplets` のレポジトリ情報や、ロボットの実行ログ、監査ログなどの情報を保管・管理します。
MySQL 以外にも SQLServer や Oracle など複数のRDBMSに対応していますが、最も実績が多く、コミュニティ版／商用版を選択可能な MySQL がお勧めです。[^2]

[^2]: 念のために書いておくと、メーカーの推奨ではなく個人の見解です。

https://qiita.com/ParakeetOnTheHead/items/ec3821d2bc1f9c905716

### ② Tomcat
`MC` や `Kapplets`、`RFS` といったWebつシステムの土台となる Web コンテナです。

https://qiita.com/ParakeetOnTheHead/items/317598fb34af24633867

### ③ Management Console
BizRobo! の運用を管理する最も重要な管理システムです。

https://qiita.com/ParakeetOnTheHead/items/c346c00bee24b59468c3

### ④ Kapplets
v11 におけるアーキテクチャ刷新により、`MC` の外部プログラムとして独立しました。
それにより１台の `MC` に対して複数の `Kapplets` を紐づけることが可能になり、例えば部署ごとやプロジェクト毎の `Kapplets` を独立して運用する（Kappletsの管理・運用を `MC` と切り離して完全にユーザー部門に渡す）ことも可能になりました。[^3]

[^3]: 仕様上は複数の Kapplets を MC にぶら下げることが可能ですが、社内での実績はありません。。

https://qiita.com/ParakeetOnTheHead/items/c27d59cd8ef1e4d264e8

### ⑤ Robot File System
非常に便利でセキュアなロボット用のファイルシステム機能。`net use` などのコマンドでリモートドライブに接続する必要はもうありません。システム負荷も低いので、`MC` と同じコンピューター上への構築も可能。

https://qiita.com/ParakeetOnTheHead/items/7177e81d30275e9b7193

### ⑥ RoboServer

単純に MSI 形式のインストーラーを実行すればいいだけなので記事化はしていませんが、以下の点についてはインストール時のポイントかもしれません。

- RS を Windows のサービスとして登録する場合、古い手順書では サービス登録コマンドのパラメータに MCへの接続情報をセットする記述になっていますが、`RoboServer Settings` アプリ側で設定した方がいい。[^4]
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3090491/542b1f7e-9aef-afd2-78d3-05acca44077d.png)
[^4]:今後のバージョンでMCへの接続情報にパスワード文字列を含まない方式に変更されますが、v11.4時点でID/PWにてMCへ接続する形式であり、パラメータ文字列内に平文でパスワードを設定するのはよろしくないため。

 :::note
 `RoboServer` は実行ユーザーを指定して Windowsサービスに登録します。`RoboServer Settings` についても、同サービス登録ユーザーのアカウントでログインして設定します。
 どうしてもSYSTEMユーザーでRoboServrを動かすんだ！という場合は、古い手順書の様にコマンド内にパラメータとしてMCへの接続情報を設定する必要があります。
:::

### ⑦ Design Studio
https://qiita.com/ParakeetOnTheHead/items/d06eeae1796ab405ee20

### ⑧ Desktop Automation Service

単純に MSI 形式のインストーラーを実行すればいいだけなので記事化はしていませんが、以下の点についてはインストール時のポイントかもしれません。

- DASのOCRタブを開いたら、OmniPage OCR のチェックを入れ、「有効な OCR 言語」の設定を `jpn+eng` に変更することで、ISAが日本語を認識できるようになる。[^5]

[^5]: local Hub（RS側）で Chromium などからISAを使う場合には、別途サーバ側の設定ファイルを変更することで同様にOmniPage OCR を日本語で利用できるようになります。（https://docshield.tungstenautomation.com/RPA/ja_JA/11.4.0-vcsft2fhaw/help/rpa_help/help_main/reference/c_extended_ocr_settings.html?h=Omnipage%20OCR）


## その他

環境構築の手順に関する内容ではないですが、目的別のシステム構成としてまとめていきたいと思います。

### エンタープライズ向け、内部統制観点でのシステム構成

https://qiita.com/ParakeetOnTheHead/items/f3d50cbb458db6c90684

### MCの通信プロトコル設定（HTTP/2.0）

https://qiita.com/ParakeetOnTheHead/items/165764e20df7fcdaa296

## まとめ

今後も関連記事を書いた際には追記、更新していこうと思います。