しばらくの間、Open Data Protocol (OData) とは、どういったものか概要を調べてみたのですが、それをどうまとめて紹介すればよいか悩んでいて、書き出しに困っているところです。
OData は、もともと Microsoft の ADO.NET Data Services という実装があって、Microsoft がその仕様部分を OData として提案し、オープンでスタンダードな仕様として採用を促しているものです。そして、現在 Microsoft は ADO.NET Data Services を改めて WCF Data Services として OData の実装を提供しているという図式のようです。
OData は、机上の仕様ありきなものでななく、技術情報も実装(製品も含む)も進んでいるため、ネット上でさまざまな情報を入手できます。次のサイトが、入口として使えそうです。
Open Data Protocol (OData)
http://www.odata.org/
WCF Data Services (formerly ADO.NET Data Services)
http://msdn.microsoft.com/en-us/data/bb931106.aspx
ですので、このエントリでは、OData そのものを紹介するのではなく、OData を調べていて、私なりに気がついたことや、関心をもったことを紹介することにします。*1
OData は、WEB のデータを共有したり、操作するための AtomPub (RFC 5023) ベースのプロトコルです。そのため、Google Data Protocol (GData) と比較されることが多いようですが、(少し乱暴かもしれませんが) OData と GData は AtomPub 拡張方法に違いはあっても、目的や位置付けは同じものという印象を受けました。
Open Data Protocol Q&A にある次の質問と回答が、気になる多くのものごとを表していそうです。
Q: How should I think about OData vs. GData A: There is no OData vs. GData. Both are based on ATOM and JSON. Both protocol support our goal of an open data protocol for the Web. We intend on working with others in the community, including Google, to move the features of OData into future version of AtomPub or other appropriate standards. We encourage Google (GData) to join us in these conversations.OData も GData も同じ仕様をベースとしていて、目指しているところも同じでしょう。OData の仕様は、将来の AtomPub などの標準仕様に持ち込むつもりなので、Google (GData) も話し合いに参加したほうがいいよ。(超意訳) といったところでしょうか。
OData のライセンスは Microsoft Open Specification Promise (OSP) に基づき、GData のラインセンスは Patent License に基づきます。両者とも条文を読む限りでは、オープンライセンスに見えるのですが、その根本的な違いがどこにあるのか、理解できませんでした。どなたか教えてほしいです。
OData は Microsoft 以外のサードパーティでの採用が進んでいます。OData に基づいて、サービスやデータを提供する者を、OData Producer と呼ぶようで、その OData Producer のリストは、次のサイトで入手できます。
OData producers
http://www.odata.org/producers
OData Producer は、SharePoint や SQL Server、Azure など Microsoft 製品群でサポートが進んでいるようです。これは Google が Google サービスを GData で提供しているのと同じ位置付けに見えます。
OData は、Microsoft 以外にも、IBM WebSphere といったメジャー製品でも採用され、また、Microsoft .NET Framework やオープンソースの Java REST フレームワークである Restlet OData Extention を使って、自らの製品やサービスとして OData Producer を実装できるようです。Facebook も Facebook Insights という OData を使った Preview を Live しています。
さらに Microsoft は、OData Producer がデータを提供できる場として、MarketPlace を立ち上げています。
Microsoft Codename “Dallas”
http://pinpoint.microsoft.com/en-US/Dallas
このサイトは OData Producer のディレクトリを提供していて、OData Consumer (OData の利用者をこう呼ぶ) が OData Producer のサービスを購読するというスタイルをとります。Type Free という項目表記もあるため、将来は、自ら保有するデータで有料で提供して、収益を得るというビジネスモデルも組み込まれているようです。
さらに Microsoft は、政府機関のデータを提供する Open Government Data Initiative (OGDI) というサービスを立ち上げていて、データフォーマットとして OData を採用しています。
Open Government Data Initiative (OSDI)
http://ogdisdk.cloudapp.net/
OData は OData Consumer 向けの製品やクライアントライブラリも提供しています。
OData Consumer
http://www.odata.org/consumers
OData Cousumer は、Data Viewer ものや Excel でサポートされているようで、これから Microsoft のクライアント製品群でのサポートが進んできそうです。また、クライアントライブラリを使って、自らの製品やサービスとして OData Consumer を実装できるようです。これも Google サービスと GData Client Library と同じ位置付けに見えます。
OData は、まず Microsoft とサードパーティの製品で OData をサポートして、すそ野を広げて、データを保有する人を巻き込んで OData Producer を増やすというのが現状でしょうか。これをクリアすると、OData Consumer は、ひとつの方法で、あらゆるデータを利用できるようになり、さらに... というエコシステムの構築が OData の狙いということになりそうです。
OData の仕様には、認証や認可の既定はなく、それぞれのケースで最適な方法があるという立場をとっているようです。
GData 自体も、認証や認可の既定はありませんが、GData は、Google サービスありきのため、各サービスは Google アカウントで認証し、AuthSub や OAuth といった認可の手続きが共通の取り決めとなっています。このことが、GData が Web での利用を現実的にしていて、GData (を実装したサービス) のアドバンテージになっていると強く感じます。
OData はどういった方向性に進んでいくんでしょうか。単なるデータプロトコル仕様だけでは、Web の世界では、全体的な見通しが立たない気がしています。GData と OData の仕様が合流して、新しい AtomPub になったとして、その後、ウェブで誰でも標準手続きで、あらゆるデータを適切に操作できるようになるのでしょうか。
そのあたりのビジョンをガチンコしていけば、なんかエキサイティングなウェブが開けていけそうな気がした OData の紹介でした。
*1 私は WCF Data Services や OData の専門家ではありませんので、もし見識違いや誤りがありましたら、ご指摘いただけますと幸いです。
1 件のコメント:
Microsoft Open Specification Promise
http://www.microsoft.com/interop/osp/default.mspx
コメントを投稿