ミドルウェアは、データーベース機能やWebサーバーが機能などソフトウェアを動作させるうえで共通的に必要となる機能を提供するための仕組み。よく利用される機能については、共通化したほうが効率的であり、ソフトウェアを作るうえでミドルウェアの利用は欠かせない。
ミドルウェアの役割と用途
OSが提供しない機能をミドルウェアが補完
ミドルウェアは、その名称の通り「中間」に位置するソフトウェアです。具体的には、オペレーティングシステム(OS)とアプリケーションの中間に立ち、オペレーティングシステムから提供されないものの、多くのアプリケーションには必要となる機能を提供します。
どのようなアプリケーションでも必ず必要になる機能、具体的にはファイル管理やタスク処理、ディレクトリ構造の管理などはオペレーティングシステムが提供しますが、アプリケーションによって必要かどうか変わる機能、具体的にはデータベース機能やサーバ機能などは、ミドルウェアが提供します。このような住み分けを行うことで、オペレーティングシステムは最低限の機能を提供しつつ、必要なミドルウェアを導入することで自由に拡張できるようにしています。
一方で、特定のアプリケーションにしか必要とならない機能、例えば表計算の実施や文章の作成などは、個別のアプリケーションが提供するのが合理的です。よって、ミドルウェアの役割は、オペレーティングシステムにより提供されないものの、複数のアプリケーションで共通的に必要となる機能を提供するものとなります。
クラウドサービスの登場によるミドルウェア利用方法の変化
近年では、クラウドサービスと呼ばれる「機能をクラウド上で提供する仕組み」が一般化しました。そのような中で、ミドルウェアの機能もクラウド上で提供されるようになりました。
具体的には、データ連携ツールやデータベースシステムなどがAWSやAzureなどのクラウド上で提供されるようになりました。これらのクラウドサービスを利用することで、利用者は個別にシステムにミドルウェアをインストールせずに利用できるため、より手軽にミドルウェアを導入することができます。
特にポイントといえるのが、バージョンアップやパッチ当ての手間からの解放です。当然ながら、導入当時は最新型だったミドルウェアも徐々に古いものとなっていきます。また、都度明らかになったセキュリティの脆弱性への対応も必要です。これらの対応のためにミドルウェアのバージョンアップやパッチ当てが必要でしたが、クラウドサービスを利用することでクラウドサービス提供事業者がこれらの作業をやってくれるようになったため、より手軽にミドルウェアを利用できるようになりました。
ミドルウェアを利用するメリット
それでは、ミドルウェアを利用するメリットはどのような点にあるのでしょうか。
開発コスト・期間の削減
ミドルウェアを利用することで、アプリケーションで一般的に利用される共通機能を個別に開発する必要がなくなります。これにより、開発コスト・期間の削減を実現することができます。
例えば、ミドルウェアの一つであるデータベース管理システムを導入することで、データ処理についてはデータベース管理システムに任せることができます。これにより、エンジニアはそれ以外の部分の開発に注力することができます。
性能向上
ミドルウェアは技術力を持った会社によって作られています。例えばデータベース管理システムで有名なOracle社は、多数のハイレベルなエンジニアが在籍しており、データベースの性能向上を続けています。よって、個別のアプリケーションを開発する際にいちいち機能を開発するよりも、遥かに優れた性能を発揮する製品を提供することができています。
ミドルウェアを利用することで、システムのレスポンスやバッチ処理速度、スループットなどを向上させることができます。
OS・ハードウェアの違いの吸収
一部のミドルウェアには異なるOSやハードウェアに対応しているものもあります。このようなミドルウェアを利用することで、OSやハードウェアの違いを吸収し、アプリケーション開発を楽にしてくれます。
主なミドルウェアの種類
データベース管理システム
データベース管理システムは、システムで扱うためのデータを保持するための仕組みです。システムにおいては、RDBMSと呼ばれるテーブルとその関係性を表すデータベース管理システムや、NoSQLと呼ばれる簡潔さを重視したデータベース管理システムが利用されます。
データベースで管理されるデータは特定の共通項目を持っているという特徴があります。たとえば「人」のデータベースであれば、「名前」や「年齢」「住所」などの共通項目を持つことになります。共通項目を持つデータを集めることで、データの整理や検索などがしやすいようになっています。
代表的なデータベース管理システムは以下の通りです。
- MySQL:オープンソースのデータベースであり、Webを中心に広く利用されている
- Oracle Database:商用を中心に利用される、信頼性の高いデータベース
- Mongo DB:NoSQLの一つであり、JSONライクな表現が可能
- SAP HANA:ERP提供企業として有名なSAP社が開発したERP向けデータベース
Webサーバ
私たちがWebサイトを閲覧する際には、ブラウザはWebサイトと通信を行い、必要な情報を表示します。この時、ブラウザとやり取りを行うのがWebサーバです。
Webサーバはブラウザなどのクライアントから送信されたHTTPリクエストに応答し、HTMLやCSSなどをレスポンスとして返します。このレスポンスをブラウザ解釈することで、私たちはWebサイトを閲覧することができるのです。
WebサーバはWebサイトを公開する際には必ず必要となるミドルウェアです。代表的なWebサーバは以下の通りです。
- Apache:オープンソースのWebサーバであり、高いシェアを誇る
- Nginx:比較的新しいWebサーバであるが、高速な処理を実現可能
- IIS:マイクロソフト社が提供する、Windowsに特化したWebサーバー
データ連携ツール
現在においては、ITシステムは複雑化しており、複数のシステムが連動して動作することも一般的となっています。この時、システム間連携を行うのがデータ連携ツールです。
例えば、ECサイトで商品を購入したら、裏側にある販売管理システムや在庫管理システムと連携する必要があります。この時、データ連携ツールは双方のシステムをつなぎ、販売された品目やその個数などを受け渡す役割を担います。
代表的なデータ連携ツールは以下の通りです。
- DataSpider:特にクラウドとの連携に強いデータ連携ツール
- HULFT:商用で広く使われる豊富な導入実績を持つデータ連携ツール
- Informatica:大規模エンタープライズ用途にも使える統合的なデータ連携ツール