【IoT用語集】ミドルウエアとは?

IoT用語集】ミドルウエアとは? – 記事

はじめに

ミドルウエアとは、OSとアプリケーションソフトウエアの間にあって、アプリケーションソフトウエアの共通の機能を集め、あるいは、OSの機能を拡張してアプリケーションソフトウエアに対して指示を出すソフトウエアのことです。

ミドルウエアは、さまざまなパッケージソフトウエアの形で製品化されているため定義を行うのがときに難しいとされますが、「ダウンサイジング」をキーワードとしてメインフレーム時代からPC時代への移行時期のことを考えると大変わかりやすくなります。

ダウンサイジングの波とミドルウエアの登場

かつて、企業のデータは、重厚長大な大型計算機の中に格納されていました。この大型計算機をメインフレームといいます。メインフレームは、銀行や製造業のかつての基幹システムの主翼を担うハードウエアでした。

しかし、PCの時代に入り、多彩なユーザーインターフェースにより、多くのサービスを提供できるようになると、メインフレームはそのデータを活用することは重要であるものの、システムの主役の座から降りることになりました。

メインフレームに代わり、小型のピザボックスシャーシと言われるようなサーバストレージがデータセンターに置かれるようになるためには、メインフレームとピザボックスシャーシを通信でつなぎ、さらにPCにつなぐというような作業が必要になります。

その一方、ハードウエアの中にあるソフトウエアは、データの格納のほか、データの読み替えや検索、データのフローの制御、通信の安定化など、様々な複雑な機能を期待されます。

しかし、そこでよく見るとメインフレームとピザボックスシャーシの間の情報処理には一定の共通性があります。また、ピザボックスシャーシと、PCの間の処理ともそれらの処理は共通しています。これらの共通の処理を行うのがミドルウエアであると考えると理解しやすいでしょう。

ミドルウエアの機能と種類

① 機能

  • 普遍的で面倒な機能を担う
    特定の分野に属するアプリケーションに対して、その分野に共通する機能や処理をアプリケーションに提供します。あるいは、ミドルウエアそれ自身が、アプリケーションに渡すように情報を処理します。
  • ミドルウエアがあることで生じるメリット
    ミドルウエアの開発は、もともとDBサーバのようにダウンサイジングの要求に従ってクライアント‐サーバソリューションのような分散システムで使われることを予定したものでした。サーバ側にミドルウエアをおくことにより、クライアントはPCのOSとアプリケーションで動かすことができるからです。

    また、UnixやWindowsのようなOSでは、単純なファイルシステムや管理機能しかなかったものを機能拡張する必要がありました。アプリケーションの共通の機能をミドルウエアで括りだしサーバに置くことによってアプリケーションがOSを問わず互換性を持てるようになりました。

② 種類と代表的な製品

  • メッセージ通信基盤
    ノード間通信に使われ、通信量が一度に大きくなっても情報の行き来にタイムラグやスタックが起きないようにメッセージ量を制御する通信基盤のことです。MPI CORVA RPCなどです。
  • DB運用・監視システム
    システムの固有データを管理するシステムです。データフォーマットが決まっていて、これに即した検索機能を持っています。Oracle DB Microsoft SQL  Server IBM  OB2  My SQL  PostgraSQLなどです。
  • Webサーバ
    クライアントからのHTTPリクエストを処理して、HTMLコンテンツを応答します。Apache HTTP Server Internet Information Server などです。
  • アプリケーションサーバ
    アプリケーションを動作させるサービスを管理します。WebSphere Application Server Web Logic JBoss Interstage Application Serverなどです。
  • 統合運用管理
    サーバ内のリソースの管理、メンテナンススケジューリングなどを行います。JP1 Tivoli HP Openview EAL ASTERIAなどです。
  • トランザクションモニター
    TCP/IP・HTTPといった通信トランザクションと、アプリケーション側の処理要求との関係を把握、管理するサポートを行います。Open TPI Tuxedo  JTAなどです。
  • ファイル転送
    HULFTなどです。

組み込みソフトウエアにおけるミドルウエア

組み込みソフトウエアは、PCよりも限定されたリソースの上で動くものであるためミドルウエアの位置づけは、OSの拡張機能・オプションとなります。下記のような機能オプションが提供されています。

  • ファイルシステム
  • ネットワークプロトコルスタック
  • 情報セキュリティ
  • GUI
  • 画像処理・音声処理

クラウド・IoT時代のミドルウエア 

クラウドベースでプラットフォームを提供するMicrosoft Azureのような例においては、OSとミドルウエアは一体の管理単位であることからミドルウエアを担当するエンジニアが不要になってきていると言われることがあります。

しかし、現在IoT時代に突入して、それまでのSQL DBを標準DBとしにくくなっているような状況では、例えば非SQL DBの開発が盛んにおこなわれています。統合から分散を繰り返すかつてのダウンサイジングの波のような現象が繰り返されているということもできるでしょう。

まとめ

上記に見たように、ミドルウエアは、歴史的背景は変わっても、普遍的に必要とされるICTシステムの重要な構成要素ということができます。

IoT時代に入り、新しい開発需要が生じているといえ、今後の動きが注目されます。

成長し続けるモバイルデータ。5Gテクノロジーの概要、世界の動向、5Gが可能にした機能と機会を検証 世界のIoTに関するレポート公開中