100万台超の複合機をグローバルに結ぶ! キヤノンの基幹サービスを支えるIoT基盤の全容:IoT活用の先駆者が選んだ先進データ処理基盤(2/3 ページ)
「世界中の顧客オフィスで稼働する100万台超の複合機をネットワーク経由で結び、管理効率やサービス品質を高める」──この世界的にも先進的なIoT活用を実践しているのがキヤノンだ。Oracle Exadataをはじめとするオラクルの先進ソリューションを駆使した同社サービス基盤の全容が明かされた。[ビッグデータ][プライベートクラウド/データベース統合][運用管理効率化][Engineered System][Data Integration]
先進のインメモリ技術とOracle Exadataにより、レスポンス性能が5倍、内部処理性能は10倍に向上
キヤノンのグローバルサーバーの機能は、大きく2系統に分けることができる。
一つは、膨大な数の複合機(IoTモジュール)から送出されるデータを「受信/加工/格納」する機能だ。また、もう一つは「参照」系の機能であり、こちらは加工されたデータを販社/販売店が(ポータル環境を通じて)参照したり、販社/販売店システムとの連携インタフェースを提供したりするための仕組みである。
「このうち、今回のグローバルサーバー刷新における最大の挑戦であり、改革の肝ともいえるのが、受信/加工/格納系の機能の刷新です。具体的には、インメモリデータグリッド『Oracle Coherence』や複合イベント処理基盤『Oracle Event Processing(OEP)』といったオラクルの先進技術を使い、受信/加工/格納の仕組みをOracle Exalogic上に一から作り直したのです」(落合氏)
例えば、従来のグローバルサーバーでは、アプリケーションサーバーがIoTモジュールからの通信を受信すると、まず受信データのパースが行われ、次に「振り分け処理(データの種類に応じた処理の振り分け)」「フィルター処理(不要なデータを取り除く処理)」「履歴登録処理」「サマリ処理」などが実行される。そして、これらの処理が行われる度に、データベースサーバー(UNIXサーバー上のOracle Database 10g)へのアクセスが実行され、ストレージに対するデータの書き込み/読み出しが行われていた。そのため、「データベースサーバー側のI/O性能が、どうしても受信/加工系処理のボトルネックになっていたのです」(落合氏)。
これに対して、次世代グローバルサーバーでは、Oracle Exalogic上で動作するOracle Coherenceを受信/加工系処理とデータベースサーバーとの間に介在させることで、データベースサーバーに対するI/Oリクエストを削減し、全体としての処理性能を高めている。つまり、受信/加工系処理におけるデータキャッシュとしてOracle Coherenceを機能させているわけだ。
この仕組みでは、例えばIoTモジュールから受信したリクエストへの応答を、データベースサーバーを介さずにOracle Coherenceから直接IoTモジュールに返すといった処理が実行される。これにより、グローバルサーバーの受信処理性能が大幅に向上し、大量のIoT通信を難なくさばくことが可能になった。
さらに、Oracle CoherenceからOracle Exadata上のOracle Database(11g)に対するデータの書き込みについても、Oracle Exadataの高速キャッシュ機能「Write-back Flash Cache」によって高速化されている。
「これらの施策により、次世代グローバルサーバーでは受信/加工/格納といった内部処理の性能が従来の約10倍に高速化されました。また、IoT通信のレスポンス性能も約5倍に向上しています」(落合氏)
一方、従来のグローバルサーバーでは、受信データの処理順序を含め、全ての受信処理がプログラムのソースコードに記述され、アプリケーションサーバー上で実行されていた。この受信処理プログラムが、次世代グローバルサーバーではOEPベースで全て書き換えられた。これにより、受信/振り分け/フィルター/履歴登録/サマリといった各処理が“イベント化”され、それぞれの独立性が高まっている。その結果、処理ロジックの追加/変更の手間やコストが減り、「機能拡張が柔軟に行えるになった」と落合氏は評価する。また、一つの処理(イベント)の稼働中に他の処理(イベント)を停止させ、メンテナンスを行うといったことも可能になったという。
Oracle Active Data Guardで可用性を向上。Oracle Service Busの応用で安全なシステム移行も実現
このような具合にグローバルサーバー上の受信/加工/格納系処理の大改造を進めたキヤノンだが、参照系のプログラムにはほとんど手を加えず、従来の「UNIXサーバー+Oracle Database 10g」から「Oracle Exadata+Oracle Database 11g」への移行だけで済ませたと落合氏は明かす。ただし、それでも“Oracle Exadata効果”により、バッチ処理の性能は従来の約2倍に向上し、既存のプログラムも新環境で問題なく動作した。そうした状況を目の当たりにして、「改めてOracle Exadataの出来の良さ、過去のOracle Database資産との互換性の高さを実感しました」と落合氏は振り返る。
また、キヤノンはグローバルサーバーの可用性を高める目的で、オラクルのデータレプリケーションツール「Oracle Active Data Guard」によるDR(Disaster Recovery:災害時復旧)の仕組みも整えている。Oracle Active Data Guardを通じてプライマリサイトとDRサイトのOracle Exadata間でリアルタイムなデータ同期を行っているわけだ。
加えて、プライマリサイトには2セットのOracle Exadataが設置され、こちらもOracle Active Data Guardでデータを同期し、サイト内ローリングによる無停止メンテナンスを実現している。ちなみに、DRサイトのOracle Exadataは、平常時には開発/検証環境として活用し、ITリソースの有効活用を図っている。
さらに、グローバルサーバーの連続稼働性を確保するという意味では、「新旧システムの安全な移行/切り替え」も重要となるが、キヤノンは今回、これを実現するためにユニークなアプローチを採った。新サーバーの動作確認を入念に行うために、オラクルのサービス連携基盤「Oracle Service Bus」を用いて新旧グローバルサーバーを並行稼働させたのだ。
具体的には、まず新旧グローバルサーバー間で参照系データベースの内容を一致させておき、その上で複合機(IoTモジュール)と新旧グローバルサーバーの間にOracle Service Busを配置。複合機から送られてきたデータをOracle Service Busで受け取り、本体と複製の二つに分けて新旧グローバルサーバーに流し込ませるようにした。そして、新旧グローバルサーバーで同内容のデータに対する処理を実行。それぞれのデータベースの内容を比較して、両者が一致しているかどうか、つまり新グローバルサーバーが正しく動いているかどうかを検証したわけである。
もちろん、この検証中に複合機に対して新グローバルサーバーから応答が返されてしまうとシステムに異常を来す。そこで、複合機に対する同サーバーからの応答はOracle Service Busで破棄/遮断し、旧グローバルサーバーの応答だけを通すようにした。こうして、キヤノンは稼働中のサービスへの影響を最小限に抑えて新旧グローバルサーバーの安全かつ確実な移行/切り替えを実現したのだ。
提供:日本オラクル株式会社
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2015年4月24日
Copyright © ITmedia, Inc. All Rights Reserved.