社会システムの持続的な開発と運用を支えるLumadaのプラットフォーム
ハイライト
社会システムの持続的な開発と運用を支えるLumadaのプラットフォームは,データの収集・蓄積・加工・解析・ビジュアライズなどの機能群に加え,(1)異種システム間の連携,(2)顧客協創の支援,(3)パートナーのソフトウェア開発環境との連携,(4)アプリケーション実行場所の管理,(5)開発済みソリューションの共有と再利用の支援といった機能群を提供する。
本稿では,この(1)を中心に,同プラットフォームにマイクロサービスAPIやコンテナ技術を導入した背景と目的,および同プラットフォームが提供するSystem-of-Systems技術の概要を解説する。
1. はじめに
1980年代以降の急速なインターネットの普及により,各組織内のITシステムは顧客や他組織のITシステムと相互に接続されてきた。さらに,2000年以降のクラウドサービスの登場により,インターネット上に蓄積された巨大なデータを活用して,新たな事業が生み出された。今日,多くの企業のIT投資は,既存事業の効率化を目的としているのではなく,データ活用による新事業の創生に期待している。
Amazon.com, Inc.やGoogle LLCなどのIT企業は,独創的な新サービスを創生し,同時に,それを支える新しいITシステムを開発している。さらに,そのITシステムを汎用化して,企業向けのデジタルサービス基盤として事業化している。
一方,日立は,鉄道・ビル・電力プラントをはじめとする社会インフラのOT(Operational Technology)システム,および公共・金融・産業向けIT(Information Technology)システムなどの広範なソリューション提供の経験を有している。また,これらの社会システムの開発・運用経験を通して,個々の顧客ニーズに対応できる現場サポート体制も構築している。
そこで,われわれは顧客との協創によって,社会に新たな価値を提供するサービスの創造をめざす。そもそも,SDGs(Sustainable Development Goals)達成やQoL(Quality of Life) 向上を実現するイノベーションは,単一の企業の力のみでは成し難い。これからの時代は,経済成長や自由競争のみに頼る世界は成り立たなくなりつつあり,SDGs達成やQoL向上といったビジョンを社会的コンセンサスとし,さまざまな組織から英知を募り,課題解決に向けて協創することが不可欠である。
さらに,この顧客協創を通して開発したソリューションから有益な機能部品を切り出し,汎用的に利用できるようにリファクタリングし,その蓄積・共有・再利用を促す。それにより,ソフトウェアの段階的な進化を加速させながら,ITだけでなく,日立の強みであるOTを組み合わせ,サイバーフィジカルシステムを支えるサービス基盤を継続的に発展させる。同時に,このサービス基盤であるLumadaのプラットフォームを顧客やパートナー企業に提供していきたいと考えている。
2. システム連携の重要性と課題
図1|既存システムと新規システムの連携 既存システムとIoTやAI応用の新規システムを連携するには,プログラミング言語もツールも開発手法も異なるウォーターフォール開発文化とアジャイル開発文化の橋渡しが不可欠である。
前章に述べたアプローチを推進するには,図1に示すように,既存システムとAI(Artificial Intelligence)応用やIoT(Internet of Things)応用の新しいシステムを連携させる必要がある。デジタルな世界と異なり,物理的な現場機器やその制御システム(OTシステム)を含む社会インフラにおいて,既存の巨大システムを一挙に入れ替える試みは現実的ではない。
また,同図に示すとおり,既存のOT/ITシステムと新しいシステムでは,採用しているハードウェアもソフトウェアも技術的に大きく異なる。加えて,同図左側の既存システムはウォーターフォール開発の文化であり,右側はアジャイル開発1)の文化である。この異なる二つの文化を橋渡しすることが,Lumadaのプラットフォームの重要な役割である。
3. Lumadaのプラットフォームの概要
図2|Lumadaのプラットフォームの概要 Lumadaのプラットフォームは,既存のOT/ITシステムと疎結合でつながり,そのうえでさまざまなドメインに特化したアプリケーションを開発・蓄積・再利用でき,それらをベースとした顧客協創を支える機能を提供する。
Lumadaは,顧客協創を通してデータから価値を創出し,デジタルイノベーションを加速することをめざしている。この価値創出を支えることを目的として,Lumadaのアーキテクチャは,先進的なデジタル技術を活用したソリューションやサービスを迅速に効率良く開発できるように設計している。図1は各システムの実装を詳細に示しているため,単純化した図2を使って分かりやすく説明する。なお,同図では既存システムをOTとITに分離して左右に配置している。
3.1 位置付け
図2に示す通り,Lumadaのプラットフォームは,日立が開発した顧客協創方法論「NEXPERIENCE」,および事業ドメインごとのソリューションやユースケースと共に,Lumadaに包含される。本来,Lumadaのプラットフォームには,日立が提供する先端センサーや鉄道車両などの物理的な製品も含まれる。しかしながら,本稿においてはLumadaのプラットフォーム,または本プラットフォームという表現は,事業ドメインに依存せずに汎用的に利用できるソフトウェア基盤を指す。
3.2 提供機能
本プラットフォームでは,提供する機能コンポーネントをEdge,Core,Data Management,Analytics,Studio,Foundryの6種に分類している。
- Edgeは,IoT機器からのデータを収集する機能群であり,これにはプロトコル変換,データのフィルタリングや分類といった機能が含まれる。
- Coreは,収集したデータを蓄積するデータレイク,および,接続されたIoT機器の管理機能を提供する。
- Data Managementは,収集したデータを分析に適した形式に分割・変換・再結合する機能群を提供する。
- Analyticsは,データを分析するための機能群を提供し,これにはディープラーニングなども含まれる。
- Studioは,エンドユーザーや開発者向けのユーザーインタフェースに関連する機能群であり,これにはダッシュボードやAPI(Application Programming Interface)が含まれる。
- Foundryは,これらを支えるため,コンテナ2)技術をベースとするサーバレスコンピューティング3)環境を提供する。
上記の機能群は「データから価値を創出する」ために必須である。しかしながら,これらの機能のみでは,2章に述べた異種システム間の連携,あるいは顧客協創,ソリューション開発成果の蓄積や再利用,それらを促すエコシステム確立といった課題に対する解とはならない。こういった課題への解として,本プラットフォームは上記に加え以下の機能群を提供する。
- 異種システム間の連携
- 顧客協創の支援
- パートナーのソフトウェア開発環境との連携
- アプリケーション実行場所の管理
- 開発したソリューションの共有と再利用の支援
本プラットフォームに導入したコンテナ技術やマイクロサービス4)APIは,上記(a)から(e)の機能の実現と深く関係している。以下,本稿では上記(a)を中心に詳細に解説する。なお,上記(b)から(e)については本号掲載の論文「迅速なソリューション開発を可能とするNode-REDとそのOSS活動への取り組み」(60ページ),および論文「デジタルソリューションの創生と活用を加速するLumada Solution Hub」(53ページ)で詳述しているので参照されたい。
4. System-of-Systems
図3|Lumadaのプラットフォームと既存のOT/ITシステム データを発生させるのは既存のOT/ITシステムであり,Lumadaのプラットフォーム上で稼働するデータ解析アプリケーションと容易に接続できることが重要である。
本プラットフォームと既存システムの相互接続を図3に示す。実際にデータを生成するのは既存のOTシステムやITシステムであり,それらのデータを本プラットフォーム上で稼働する新たなアプリケーション・システムで分析するには,これらのシステムを接続し,一つの統合されたシステム(System-of-Systems)としなければならない。
同図の既存システム部分は,顧客のオンプレミス環境や他社のパブリッククラウド上で運用されている事例も多い。そこで,AWS(Amazon Web Service),Microsoft Azure,さらにGCP(Google Cloud Platform)も視野に入れて,世界中の主要都市に設置したデータセンタ間を高速回線で接続しているパブリッククラウド事業者のグローバルITインフラを利用し,日立はマルチクラウドにまたがるアプリケーション・システム全体を統合管理できるマルチクラウド運用管理基盤を提供する。
4.1 マイクロサービスAPIの導入
図4|マイクロサービスAPIによるSystem-of-Systemsの実現 Lumadaでは,他社システムとの連携容易化を考慮し,業界標準となっているHTTP/RESTプロトコルやJSONデータ形式を採用し,複数のシステムを連携させたSystem-of-Systemsがマルチクラウドをまたがることを前提に,アーキテクチャを設計している。
上述した下位層の接続の次に,上位層(アプリケーション層)の相互接続を実現しなければならない。それぞれ独立して開発・運用されているシステムどうしを相互接続する場合,一般に,図4に示すメッセージ通信を用いた疎結合によるSystem-of-Systems5)アーキテクチャが利用される。近年では,このメッセージ通信は,HTTP/REST6)プロトコルとJSON7)データ形式を用いたマイクロサービスAPIが主流となっている。これらの技術は,Webやスマートフォンの普及に伴い,アプリケーション間の連携に広く利用されており,既にデファクト標準となっている。
本プラットフォームでは,他社が提供するアプリケーションやSaaS(Software as a Service)との接続容易化も考慮し,アプリケーション層の相互接続にマイクロサービスAPIを利用することを推奨している。もちろん,同図に示す既存システム部分は,マイクロサービスAPIを採用しているとは限らない。しかしながら,何らかのインタフェースを外部に開示しており,このインタフェースをAPI Management8)によってラッピングしてマイクロサービスAPIに対応できる。
4.2 Lumada独自のSystem-of-Systems技術
前節で述べたマイクロサービスAPIは,通信プロトコルとデータ形式の枠組みを規定するのみであり,実際にシステムどうしを接続するには,送受信メッセージの詳細なセマンティクスやデータ形式の定義が必要となる。その標準化やOSS(Open Source Software)化についてもさまざまな団体で議論されているが,異なる事業分野をまたがるシステム間連携をグローバルに実現する場合,複数の標準仕様への柔軟な対応が不可欠となる。そこで,本プラットフォームは,複数の異なるシステムを連携させるアプリケーションの開発を容易化するために,以下の機能を提供する。
- 機能レベルの接続を容易化するサービスAPI接続機能
- 情報レベルの接続を容易化する柔軟なデータ形式変換機能
- 通信レベルの接続を容易化するプロトコル変換機能およびデータ収集機能
- 上記(1)~(3)を利用するアプリケーションの性能スケーラビリティや信頼性をエンハンスする機能
- 上記(1)~(4)の機能を利用してユーザーが開発したアプリケーションを共有する機能
具体的には,本プラットフォームは異種システム連携を容易化するために,表1に示すコンポーネントを提供する。Node-RED※1),9)はStudioに属し,ユーザーがGUI(Graphical User Interface)を用いてシステムどうしをAPIレベルで接続できる機能を提供する。Pentahoや「IoTコンパス」10)はData Managementに属し,異種システムどうしの接続に必要なデータの分割・変換・再結合を可能にする。Hitachi Data Hub10)はEdgeに属し,IoTデバイスや他システムからのデータ収集に不可欠なプロトコル変換を可能にする。HAF/EDC(Hitachi Application Framework/Event Driven Computing)11)は,システム規模の拡大やデータ量の増大に応じた性能スケーリング,および,冗長構成による信頼性エンハンスを提供する。また,Lumada Solution Hub12)は,開発したソリューションの蓄積・共有・再利用を可能とする。
表1|LumadaのSystem-of-Systems技術 Lumadaが提供するSystem-of-Systems技術は,グローバルに業種をまたがる新サービスを実現する際に不可欠となる,複数の国際標準や業界標準への柔軟で迅速な対応を可能とする。
- ※1)
- Node-REDは,OpenJS Foundationの米国およびその他の国における登録商標または商標である。
5. コンテナ技術の導入目的
「仮想マシンと言えばハイパーバイザ方式」という状況は,コンテナ技術の登場により,この5~6年で大きく変わった。Linux Foundation13)傘下にCNCF (Cloud Native Computing Foundation)14)が設立され,現在では先駆者であるGoogleのみならず,Amazon,Microsoft Corporation,Red Hat, Inc.,VMware, Inc.など主要ベンダがコンテナ技術をベースとするサーバレスコンピューティング環境の提供に舵を切っている。
コンテナ技術の長所は,ハイパーバイザ技術よりもメモリ消費量が少なく,性能も優位というだけではない。コンテナ技術は,さまざまなミドルウェアやアプリケーションを混在利用する場合において,技術者を悩ませていたOS(Operating System)や共通ライブラリのバージョン不整合問題を解消する。これらの長所以外に,日立は以下の目的で本プラットフォームにコンテナ技術を導入した。
5.1 さまざまなプログラミング言語や開発環境の統合
従来からシステム開発に利用されてきたJavaやC/C++に加え,データ解析やAI分野ではPython,Webアプリケーション開発ではJavaScriptなどのプログラミング言語が主流となっている。また,OT分野ではANSYS※2),MATLAB/Simulink※3),SolidWorks※4)などのエンジニアリングソフトウェアが普及している。
コンテナ技術とマイクロサービスAPIを応用すれば,これらのさまざまな言語や開発環境で作成したアプリケーションをメッセージ通信で接続し,一つのシステムに統合することが容易となる。このように,4章に述べたSystem-of-Systems技術を応用すれば,新旧システムの連携だけでなく,アプリケーション開発に使用するプログラミング言語や開発環境の違いを乗り越えて,コンポーネントどうしを接続することも容易になる。
- ※2)
- ANSYSは,ANSYS, Inc.の米国およびその他の国における登録商標または商標である。
- ※3)
- MATLAB,Simulinkは,The MathWorks, Inc.の米国およびその他の国における登録商標または商標である。
- ※4)
- SolidWorksは,米国およびその他の国におけるDassault Systemes SolidWorks Corporationの登録商標または商標である。
5.2 アプリケーション実行場所の柔軟性向上
データの重要性が広く認識されるに伴い,EU(European Union)一般データ保護規則をはじめ,データの移動を規制する動きも起きている。しかし,コンテナ技術を応用すれば,データを移動せずに,アプリケーションをデータ格納場所の近傍に転送して実行することが可能となる。
また,IoTやAI技術を使うアプリケーションのアジャイル開発においては,必要な演算性能や通信トラフィックの予測が困難な事例も多い。PoC (Proof of Concept)段階では問題を生じなかったアプリケーションが,接続デバイス数が増える本番運用では遅延時間の許容値を超えたり,通信トラフィックの増加がコスト問題を発生させたりする。しかし,これもコンテナ技術を応用すれば,クラウド上で開発したアプリケーションをエッジ近傍で分散実行するなど,システム設計の柔軟性を向上できる。
6. おわりに
本稿では,Lumadaのプラットフォームの設計思想について,アーキテクトの立場から,背景となった課題,導入すべき技術,提供すべき機能(の一部)を解説した。本プラットフォームの設計においては,持続的で漸進的なソフトウェアの進化を促すべく努力している。その実践のために,既存システムと新規システムを連携させる,また,異なるプログラミング言語や開発環境で作られたアプリケーションどうしを接続できるSystem-of-Systemsのコンセプトが重要と考えている。
なお,本稿に書ききれなかったNode-REDやLumada Solution Hub(顧客協創の支援,パートナーのソフトウェア開発環境との連携,アプリケーション実行場所の管理,開発済みソリューションの共有と再利用の支援といった機能群を提供する)については,本稿に続く論文を参照されたい。
参考文献など
- 1)
- アジャイル開発
- 2)
- コンテナ
- 3)
- サーバレスコンピューティング
- 4)
- マイクロサービス
- 5)
- System-of-Systems
- 6)
- REST
- 7)
- JSON
- 8)
- API management
- 9)
- 西山博泰,外:迅速なソリューション開発を可能とするNode-REDとそのOSS活動への取り組み,日立評論,102,3,348~352(2020.7)
- 10)
- 伊藤大輔,外:生産現場を改善し続けるデジタルツイン技術,日立評論,102,3,358~362(2020.7)
- 11)
- 板宮高志,外:グローバルIoTサービス「Hitachi Global Data Integration」,日立評論,102,3,363~367(2020.7)
- 12)
- 工藤裕,外:デジタルソリューションの創生と活用を加速するLumada Solution Hub,日立評論,102,3,341~347(2020.7)
- 13)
- Linux Foundation
- 14)
- Cloud Native Computing Foundation