<インタフェース(Interfaces)>

「インタフェース」には、画面などのユーザインターフェースも含まれますが、ここでは、複数のプログラムやシステム間で連携するために定義するための手段や方法を指します。

アーキテクチャの観点から、インタフェースの適切な定義は、システムの拡張性、保守性、再利用性を向上させるために非常に重要です。インタフェースの規定する主なメリットは、システム・プログラム・モジュールの実装の影響を他者には与えないことです。これによって、お互い開発作業を同時並行させることができます。ただし、インタフェースを提供する方は、設計の上流でインタフェースを定義し、仕様を詳細まで公開する必要があります。

インタフェースには「レベル」があり、上位から下位にかけて、システム間、プログラム間、モジュール間に分けられます。インタフェースは、システム・プログラム・モジュールが提供するサービスや機能を定義し、どのようにアクセスされるべきかを規定するものです。この規定に従って、他のシステム・プログラム・モジュールがアクセスします。

レベルを上がるほど、疎結合であることを念頭に定義する必要があります。疎結合のインタフェースとすることで、連携できる他のシステムを制限することなく、接続性を確保することができます。密結合となってしまうと、インタフェースの変更によって影響する範囲が広がってしまいます。このようなインタフェースで連結されたアーキテクチャを「モノリシック・アーキテクチャ」と呼びます。密結合は、お互いがお互いを必要とし、協調的に動作することが必要となるインタフェースです。

代表的なインターフェースの形として、以下の2つがあります。


1)通信
通信は、インターネットやイントラネットを経由して、システムやソフトウェア間で必要なデータを送受信するための手順を提供します。
HTTP, TCP/IP, FTPなどの通信プロトコルを使った通信データフォーマット、通信シーケンスなど詳細まで決めておく必要があります。

2)API(アプリケーション・プログラミング・インターフェース)
ソフトウェア開発において、開発者は既存のOS、および、ライブラリやフレームワークを利用して効率的にアプリケーションを構築します。これらは、独自のAPIを通じて機能やサービスを提供します。また、モジュール定義もAPIの一種です。

主に、システム間では、通信を使ったインタフェースが採用され、プログラム間、モジュール間では、APIを使ったインタフェースが採用されま
す。

■ まとめ

「インタフェースによって、システムやソフトウェアのコラボレーションを実現する」

インタフェースを決めることは、各システムやソフトウェアの責任とルールを決めることです。その結果、お互いの開発作業を並行に実施することができます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です