albatrosary's blog

UI/UXとエンタープライズシステム

「実例から考える、HTML5時代のエンタープライズ・アーキテクチャ」でODataが取り上げられたので調べた

HTML5Experts.jpのエンタープライズ特集第二弾として 小川充 氏による「実例から考える、HTML5時代のエンタープライズ・アーキテクチャ | HTML5Experts.jp」が掲載されました。同氏はエンジニアとして尊敬でき、私がBackbone.jsを導入する際に様々なアドバイスを頂きました、すばらしい技術者のひとりです。

今回のテーマにあるODataは記事にも記載されている通り"Open Data Protocol"のことではあるがプロトコルというよりもAPIであり「こういうルールを作ったから従ってね」といったものです。自分自身まったくわかっていないので、過去同じようなAPIを再整理することでODataの行く末を考えてみたいと思います。

SOAP

SOAPXML-RPCから発展したWebサービスのためのRPCプロトコルです。この仕様は1999年にMicrosoft社などが発表し、2000年5月にW3C標準規格となりました。B2BにおけるWebサービス化とともに普及が進みましたが、WS-*プロトコル郡などの複雑な仕様が敬遠されるようになり、シンプルで軽量なWebサービスであるRESTful APIが指示されるようになりました。

SOAP (プロトコル) - Wikipedia

SOAPとは 【 Simple Object Access Protocol 】 - 意味/解説/説明/定義 : IT用語辞典

REST vs SOAP

SOAP から REST へ - その方法と意義

GData

GDataは、正確にはGoogle Data APIのことでODataに近いものです。Googleではデータにアクセスする多くのサービスで内部的にGDataを使用していました。現在、Google Data APIのサイト Home Page - Google Data APIs — Google Developers を見ると次のようなコメントが記載されています。

Warning: Most newer Google APIs are not Google Data APIs. The Google Data APIs documentation applies only to the older APIs that are listed in the Google Data APIs directory. For information about a specific new API, see that API's documentation. For information about authorizing requests with a newer API, see Google Accounts Authentication and Authorization.

Home Page - Google Data APIs — Google Developers

GDataってもっと注目されてもいいんじゃないの&非公式開発者ガイド | cyano 

OData

Open Data Protocol(OData)はWeb上のデータを検索したり更新したりするためのプロトコルでAtomPubプロトコルの拡張セットであり、WebフィールドのためのXMLベースの言語です。ODataは以前、AstoriaプロトコルADO.NET Data Servicesプロトコル、あるいはAtomPubの規約/拡張セットとして知られていました。MicrosoftGoogleが使っているGDataに対して、WebデータプロトコルODataを提案し、OData採用のための協力をGoogleに求めていたようです。

  • 構造化データを表現するための規約
  • リソースアドレッシングスキーマとURLシンタックス
  • 一般的なクエリオプションセット(フィルタ、ソートなど)
  • リソースの構造、リンク、メタデータを記述するためのスキーマ
  • バッチや“ユニット・オブ・ワーク”リクエストのためのペイロードフォーマットとセマンティック
  • リソースコンテンツ(JSON)の代替表現

MicrosoftがデファクトスタンダードのWebデータプロトコルとしてODataを提案

REST

RESTについて面白い対談がありましたので添付します。

RESTが日本で受け入れられていった頃の話( #mozaicfm の補足) - delirious thoughts

最後に

エンタープライズ開発は以前にも増して

  • 開発スピードの短縮
  • 軽量開発 

が求められてます。Single-page Applicationでクライアントとアプリケーションサーバ疎結合にするというのも、IT起因で活動を鈍くするのではなく企業活動をより活性化させるためにあります。そうした流れをODataが含んでいるかが指示されるか否かだと考えます。