フォーム読み込み中
ご覧いただきありがとうございます。ソフトバンク IBM Cloud担当の松井です。
企業がDXを推進するにあたり、効果的なユーザ・インターフェースの活用とクラウド等の先進システム、そしてオンプレミスに蓄えられた基幹システムのデータやロジックをうまく活用していくことが、DX推進成功の肝になってくると考えられます。
本記事ではLINEとIBM CloudのWatson Assistant、PowerVS(IBM i)を使い、基幹システムのデータを活用したDXの仕組み作りの概要と構築のポイントを紹介いたします。
※詳細な構築手順を紹介するものではありませんので、各種設定や操作方法などはそれぞれの公式ドキュメントや各種技術記事などをご確認ください。
なお、ソフトバンクとIBMは両社の強いパートナーシップにより、AI・クラウドに加えデジタル化・DXといった新たな分野へもビジネス領域を広げつつ協業を推進しています。
こうした取り組みにつきましては当ブログの以下記事でも紹介しておりますのでぜひご覧ください。
ソフトバンクではLINEやYahoo!をはじめとする、日本最大級のユーザタッチポイントを活用し、デジタルマーケティング、デジタルコミュニケーション、デジタルオートメーション等の分野においてお客さまのデジタル化・DXを日々推進しています。
その過程においては、これらのツールと組み合わせるデータやプロセスの、鮮度や効率性がDX成功の鍵といえます。
そのようなデータやプロセスが存在している場所が、企業内における基幹システムであり、それをユーザタッチポイントに対して、鮮度を保った状態で連携させてあげる場所として、クラウドシステムはもってこいの場所といえます。
特に多くのクラウドシステムの中でも、基幹システムのクラウドリフトに多くの実績を持ち、AIや基幹連携ツールなどがサービスとして実装されている点や、さまざまなデータやサービスとの連携も可能という点から、IBM Cloudがこうした用途では最も使いやすいクラウドシステムの一つだと考えられます。
基幹システムのクラウドリフトという観点では、独自のPowerVS(IBM Power Virtual Server)サービスが実装されており、AIX, IBM i, Power版Linuxで構築された業務システムをそのままクラウドにリフトし、IBMクラウドで実装されている多彩なサービスと連携していくことが可能になっています。
また、セキュリティの観点からも、オンプレミスのファイヤーウォールに新たに経路を開ける必要がなく、特に閉域網による接続であればオンプレミスとクラウド間は独自の閉じられたセキュアな経路が確保されます。
さらに、クラウドにリフトする基幹システムは、システム全体であったり一部のデータのみであったり、データに関しても素のままではなくセンシティブデータを加工済みにしたものであったりと、自由に内容を決定することが可能です。そしてIBMクラウドに用意されているさまざまなセキュリティサービスと組み合わせてセキュリティを保ったまま活用していくことが可能です。
このようにクラウドという場を中心にして、効率的なユーザタッチポイント、業務に直結したデータやプロセスを、安全に且つ迅速に融合させDXに取り込んでいく環境が出来上がっていると言えます。
このようなシステムが具体的にどのようなコンポーネントの連携で構築できるのかを考えてみたいと思います。
今回は、基幹システムとしてIBM i(旧AS/400)に構築された基幹システムとそのデータベース)を前提として、そのLINE連携を考えてみます。
連携にあたっては既存のコンポーネントを活用し、できるだけ手作業によるプログラム・コーディングを避け、ロジックの変更にも素早く対応できるような環境が望ましいと思われます。
また、費用面においても多額の開発費用がかかるものではなく、エンドユーザー・コンピューティングに近い感覚で開発が行える環境が望ましいと思われます。そうしたことを前提に考えると以下の図のような、コンポーネントの連携が考えられます。
| コンポーネント | 役割 | |
|---|---|---|
| LINE | ユーザ・インターフェース | |
| ① | IBM Cloud Node-RED App | 全体のフロー制御 WebhookにてMessaging APIと連携 REST APIにてチャットポッドおよび業務システムと連携 |
| ② | IBM Cloud Watson Assistant | REST APIにてチャットポッド対話機能を提供 |
| ③ | IBM Power Virtual Server | REST APIにて業務システムのロジックやデータベースへのアクセスを提供 |
各コンポーネント間は、それぞれお互いが共通で使えるプロトコルや仕組みを利用して、データの受け渡しを行い、連携して稼働するように考えています。
実際に連携して稼働した場合のイメージとしては以下のような、在庫照会の流れを想定しています。非常にシンプルな流れですが、実際にお客様と接した際に素早く正確な在庫数をその場でお伝えできるというのも、業務効率の向上の一つの例だと言えます。
以降、連携にあたって各コンポーネントで行う設定や作成物の概要を紹介していきます。
ユーザタッチポイントとなるLINEで準備・設定するものは概ね以下のものになります。
まずはLINE Developersにアクセスし、自分のLINEアカウントでログインし、プロバイダーとチャネルを作成します。始めにプロバイダーを作成し、プロバイダーができたら、次にCreate a new channelボタンよりチャネルを作成します。
チャネルができたら、Messaging APIタブでWebhook URLを指定します。連携先のコンポーネントであるNode-REDのアプリケーションのURL(次章で解説します。)と任意の文字列(当記事中のサンプルではwebhookとしています。)を結合させたURLを記述して、Use webhookをオンに設定します。
最後に、チャネル・アクセス・トークンの発行と、Auto-reply messages(自動応答メッセージ)の設定値を編集して、LINEがかってに応答メッセージを送信しないように設定しておきます。
当記事での連携環境の中心となっているコンポーネントがNode-REDになります。LINEからの入力値を受け取り、受け取った値にもとづきチャットボット(Watson Assistant)や基幹システム(PowerVS)にアクセスし、結果を受け取り、LINEにそれを戻していく役割を担っています。ここでは、手作業によるコーディング作業を最小限にすることを目的にNode-REDを採用していますが、使い慣れたプログラミング言語があり、そちらの方が生産性高く構築できるということならば、Node-REDにこだわらず得意なプログラミング言語に置き換えていただいても構いません。
記事で紹介しているNode-REDですが、従来はIBM Cloudのカタログより、Node-RED Appsアイコンをクリックしインスタンスを作成すれば簡単に使用することができましたが、2023/3/31より非推奨となり、カタログ上からアイコンが削除されています。したがって、従来とは違った方法でNode-RED環境を準備する必要があります。
筆者は、IBM CloudのカタログよりCode Engineインスタンスを作成し、そのうえでNode-REDのDockerイメージ(nodered/node-red)を稼働させる環境を作りました。そして、連携に必要な部品として、node-red-contrib-line-messaging-apiとnode-red-node-watsonを画面左側に表示されるパレットにインストールしました。
Node-REDとLINE Messaging API間の連携では以下の3つのパラメータを設定します。
Webhook URLは先程のLINE Developersで作成したチャネルのMessaging APIタブの中央ぐらいにある、Webhook settingsに指定します。Node-REDアプリケーションのURL(下記の図の.cloud/までの部分)と事前に決めていたwebhookという文字列を結合したものを指定します。
Channel SecretとChannel Access Tokenはそれぞれ、Line Developersの中の、Basic Settingsタブ中盤のChanel Secret(①)と、Messaging APIタブの最下段のChannel Access Token(②)をコピーし、LINEのReplayMessageノードのSecret(①)とAccess Token(②)の欄にペーストします。また、WebhookノードのPathに取り決めておいた文字列を入力します。
Node-REDとWatsonn Assistant間の連携では以下の3つのパラメータを設定します。
API KeyとService Endpointはそれぞれ、IBM CloudポータルのWatsonインスタンスの画面のAPI鍵(①)とURL(②)をコピーします。Assistant IDは同じくWatsonインスタンスの画面のEnvironment settingsのDraftタブあるいはLiveタブで設定を表示し、Environment ID(③)をコピーします。
コピーした値をAssistant V2ノードのAPI Key(①)、Service Endpoint(②)、Assistant ID(③)にそれぞれペーストします。
基幹システムとNode-RED間で行う連携のポイントは概ね以下になります。
基幹システム側では、外部からの接続を受け付けるアプリケーション・サーバー・インスタンス(統合アプリケーション・サーバー)が必要になりますが、これはOS標準の機能として提供されており、別途費用のかかるものではありません。また実際のインスタンスの作成も下記の図の①から、ウィザード形式で作成することができます。また、ILE-RPGプログラムをAPI化する作業も下記の図の②からウィザード形式で行うことができます。ウィザードの中では、使用するHTTPメソッド、URIパス、入力パラメータの受け渡し方法とILE RPG側パラメータとのマッチング、受け入れるメディアタイプ(JSON、XML)を指定していきます。
Node-RED側ではHTTP Requestノードを使い今作成されたサービスを呼び出していきます。今回の例では簡単な在庫照会を取り上げているので、メソッドとしてはGETを指定します。そしてURLとしては、http://<system>:10073/web/service/<URI>を指定します。<system>はPowerVSのアドレスに、<URI>は先のウィザーで指定したURIパスに置き換えてください。
これまで紹介しましたように、今回はLINEチャットボットとIBM Cloud上のIBM i業務システム間でリアルタイムにデータ連携を行い在庫照会をLINEのユーザ・インターフェースで可能にする環境の概要を見てきました。参考になりましたでしょうか?意外と、実装に向けての敷居は低いものと感じられたのではないでしょうか?
本記事ではあくまでも基幹システムをIBM iと限定して、基本的な連携方法を考えてきましたが、よりお客様環境に最適なDX実現を進めていくためには、下記の図のようにフロントとバックエンドの中間に「連携制御」を司るサービスやモジュールの配置が理想的です。
こうすることにより、連携先の④のサービスが増えた場合でも、③「連携制御」が新たな④バックエンド・サービスへの速やかな対応と、それぞれのバラバラな連携プロトコルを統一化し、①「振分け制御」に対して統一的な連携方法を提供してくれます。その結果、①「振分け制御」での開発効率が向上し、より迅速なDX対応が可能になります。
このようなLINEと業務システムとの連携をIBM Cloudを活用して、既に商用で展開されている会社様もございます。また、実際に業務システムと連携するうえではユーザ企業の業務システムに精通していることが欠かせませんが、ソフトバンクでは豊富な経験を持つパートナー様とも協業をしています。ご参考までに以下に記載させていただきます。
もしLINEと業務システムの連携についてご検討の際には、最適なビジネスパートナー様とソフトバンクでお客様のデジタル化・DXをご支援して参りますので、ぜひソフトバンクの担当営業までお声をかけていただければと思います。
【注釈】
※上記内容は 2023 年 5 月時点で公開されている情報となります。今後変更となる場合もございますのでご了承ください。
IBM Cloudは、IBMが提供するビジネスのためのクラウドサービスです。AIプラットフォームのIBM Watsonをはじめとする幅広い製品・サービスを提供。ビジネス活用だけでなく、既存システムからのセキュアなクラウド移行や、クラウドネィティブ・アプリケーションの開発の両方に対応できるクラウドサービスです。
条件に該当するページがございません