tech

開発話<業務連携の自動化の難しさ>

管理人の主なテーマが自動化システムの開発です。
その中でも難しい業務連携について、自身の頭の整理も兼ねて投稿したいと思います。

自動化における業務連携

どのようなシステムでも自動化できれば便利です。
そのため、ある程度フローが確立してくればシステム化を行い、業務自体を自動化することが推進されています。
さらに突き進めると、さまざまな既存システムが存在する状況でそれらを利用した業務がでてきます。
すると、これらの複数の既存システムを利用した業務を連携させたくなってきます。
これが業務システムの連携させた自動化です。
一般にこれらの連携をした自動化を行うことをオーケストレーションとよび、実行するシステムをオーケストレータと呼びます。

業務連携の自動化が難しい理由

複数の業務システムを連携させた自動化は単一の業務システムの自動化より一般的には難しいです。
これにはいくつかの理由があります。

各システムの操作方法はバラバラ

まず、それぞれのシステムの操作方法がばらばらな点が挙げられます。
言い換えるとインターフェースが異なる、ということになります。
システム間を連携させるためには、システムAはアルファの操作方法をとる必要があり、システムBにはベータの操作方法をとる必要があります。
先ほど出てきたオーケストレータは、操作するシステム数分の操作方法を実装するひつようがあります。
これが大きなコストになります。

業務の連携フローがそもそも複雑

複数の業務システムを連携して業務を行うのは、人間です。
人間は優秀なもので、複数のシステムがあってもそれぞれのマニュアルをよんで操作方法を学習し、連携に必要なフローを自ら構築します。
このフローを自動化するには、フローをオーケストレータが読み取ることができる形で作成する必要があります。
しかし、オーケストレータとして残念なことにそのフローは複雑であることがほとんどです。
そのため、せっかく自動化できるとしてもオーケストレータ用のフローを作る労力に見合わないということも多々おきます。
またフローは完成させたらそれで終わるものではなく、高頻度でメンテナンスが走ります。
こういった要求にこたえることができるフローの構築手法が現状、存在しないのです。

連携させる情報を紐づける必要がある

フローの話と似た内容になりますが、各業務システムが持つ情報を連携時にはシステム間で流通させる必要があります。
例えば、製品Xの製造状況を管理しているしているシステムと製品Xの在庫情報を管理しているシステムが別にあったとしてます。
製造されれば製品Xが増えるはずなので、在庫情報を更新する必要があります。
そのため、製造状況を管理するシステムから出力される製品Xに関するデータを、在庫情報を管理するシステムが管理する製品Xの入力データとして紐づけて連携される必要があるのです。
このような紐づけが、フローの中で多数発生します。
質が悪いことに、同じ名前だがシステムが異なると別の内容を指していたり、その逆もあります。
そのため、オーケストレータは人間が普段行っている読み替えを代わりに行ってあげる必要があります。

あとがき

いくつかシステムを連携した自動化について、それを難しくしている要素を上げてみました。
管理人個人としては、連携のフローを作ることにかなりのコストがかかっていることが、現状の最も大きな課題です。
実際にオーケストレータを実装したことがありますが、お客さんがフローを書くことを挫折するという本末転倒な事態に陥りました。
この課題は今でも解決できておりません。
いかにフローを作成するか、これが今後のシステム間の連携の自動化の成否を左右します。
まだまだ研究する要素があると思ってます。

-tech
-,