ネットワークアプリケーションプログラミングインターフェイス(API)

アプリケーションプログラミングインタフェース(API)を使用すると、コンピュータプログラマは、公開されたソフトウェアモジュールおよびサービスの機能にアクセスできます。 APIは、既存のアプリケーションを新機能で拡張し、他のソフトウェアコンポーネントの上に全く新しいアプリケーションを構築するために使用できるデータ構造とサブルーチンコールを定義します。 これらのAPIの中には、特にネットワークプログラミングをサポートするものがあります

ネットワークプログラミングは、インターネットを含むコンピュータネットワークを介して接続し、通信するアプリケーションのためのソフトウェア開発の一種です。 ネットワークAPIは、プロトコルと再利用可能なソフトウェアライブラリへのエントリポイントを提供します。 ネットワークAPIは、Webブラウザ、Webデータベース、および多くのモバイルアプリをサポートします。 これらは、さまざまなプログラミング言語やオペレーティングシステムで幅広くサポートされています。

ソケットプログラミング

従来のネットワークプログラミングは、 クライアント/サーバモデルに従っていました。 クライアント/サーバーネットワーキングに使用される主なAPIは、オペレーティングシステムに組み込まれたソケットライブラリに実装されていました。 バークレーソケットWindowsソケット(Winsock) APIは、長年にわたってソケットプログラミングの2つの主要な標準でした。

リモートプロシージャコール

RPC APIは、アプリケーションがメッセージを送信するのではなく、リモートデバイス上の関数を呼び出す機能を追加することによって、基本的なネットワークプログラミング手法を拡張します。 World Wide Web(WWW)上での爆発的な増加に伴い、 XML-RPCはRPCの一般的なメカニズムの1つとして浮上していました。

シンプルオブジェクトアクセスプロトコル(SOAP)

SOAPは、1990年代後半に、メッセージフォーマットとしてXMLを、トランスポートとしてHTTP(HyperText Transfer Protocol)を使用するネットワークプロトコルとして開発されました。 SOAPはWebサービスプログラマーの忠実なフォローを生み出し、エンタープライズアプリケーションに広く使用されています。

Representational State Transfer(REST)

RESTは、最近になってシーンに到着したWebサービスもサポートする別のプログラミングモデルです。 SOAPと同様に、REST APIはHTTPを使用しますが、XMLの代わりに、RESTアプリケーションではしばしばJavascript Object Notation(JSON)を使用することを選択します。 RESTとSOAPは、ネットワーク管理者にとって重要な考慮事項の両方である状態管理とセキュリティに対するアプローチが大きく異なります。 モバイルアプリはネットワークAPIを利用することも利用できないこともありますが、RESTを使用することがよくあります。

APIの未来

SOAPとRESTの両方が、新しいWebサービスの開発に積極的に使用され続けています。 SOAPよりもはるかに新しい技術であるため、RESTは進化し、API開発の他の欠点を生み出す可能性が高くなります。

オペレーティングシステムも進化し、多くの新しいネットワークAPI技術をサポートしています。 たとえば、Windows 10などの最新のオペレーティングシステムでは、ソケットは引き続きコアAPIになり、RESTfulスタイルのネットワークプログラミングのために、HTTPやその他の追加サポートが重ねられています。

コンピュータの分野ではしばしばそうであるように、新しい技術は古いものよりもはるかに早く普及する傾向があります。 クラウドコンピューティングInternet of Things(IoT)などの分野で特に興味深い新しいAPI開発を探してください.IoTでは 、デバイスの特性とその使用モデルが従来のネットワークプログラミング環境と大きく異なります。