GAE開発の落とし穴
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。
作者 Thomas Bandholtz , 翻訳者 編集部 投稿日 2008年5月22日
LinkingOpenData(source)コミュニティプロジェクトは、DBpedia(source)、Geonames(source)、MusicBrainz(source)、WordNet(source)、DBLP文献目録(source)、2000年の米国国勢調査(source)など、分散している供給者約50ヵ所からの20億を超える連結ステートメント(RDFトリプル)にアクセスを提供し、全世界的なRESTfulのSOAシナリオを達成した。すべてのデータはResource Description Framework(RDF)(source)フォーマットで公表されている。各データセットの構成は、単純なHTTP GETを使い「Cool URI」(source)でアクセスできる名前付きグラフになっている(私の前回の投稿(source)を参照のこと)。寄稿者向けの詳細なチュートリアルは、How to Publish Linked Data on the Web(Webで連結データを公表する方法)(source)で見つけられる。様々なソース間でデータセットが広く連結しているため、マシンが読める(巨大でないとしても)大規模なWebができあがる。供給者がSPARQL エンドポイントも実装しているなら、D2R Server(サイト・英語)のようなRDBMSベースのツールを使えば、クライアントはデータに対して強力なSPARQL Query Language for RDF(source)を使える。
FirefoxアドオンのTabulator(サイト・英語)のようなRDFブラウザを使えば、人間でもどんなものか見ることができる。 LinkedDataに関する最新の話題(PDF・英語)は、ドメイン特定のLinkedDataマッシュアップやモバイルのgeospatialエントリーポイント、セマンティック検索エンジン、データ融合、凝集ツールおよび掘り下げツールのように、いっそう高度なアプリケーションパターンに集中しており、間もなく必ずや登場してくるであろう。
しかし現在、深刻な限界がある。この魅力的なネットワークがリード・アクセス・オンリーになっていることだ。今のところ、次回のSPARQL Update(source)言語で対処することになっている。SPARQLクエリはW3C RDF Data Access Working Group(W3CのRDFデータアクセス作業部会)(source)が2004年から開発しており、ついに今年1月、W3C勧告まで到達したが、延期せざるを得なかった問題もあり、その中には集約関数とアップデート言語が入っていた。最近、Andy Seaborne (有名なJena(サイト・英語)開発者)と Geetha Manjunath (両者ともHPに在籍)は、RDFグラフ更新用言語(source)のバージョン5(別名「SPARUL」)を発表したが、バージョン5が発表されたことで、このトピックに話題が集まるかもしれない。この言語は草案で次の機能を提供する。
* RDFグラフに新規トリプルを挿入します。
* RDFグラフからトリプルを削除します。
* 単一アクションとして一群の更新オペレーションを実行します。
* Graph Storeに新規RDF Graphを作成します。
* Graph StoreからRDFグラフを削除します。
従ってこれは、連結データで欠けているPUT、POST、DELETEの実装に似ている。しかし、Graph Storeとは何か。定義では「ひとつのサービスで管理するRDFグラフのリポジトリ」となっており、あらゆるSPARQLステートメントが掲示されるエンドポイントの役割を果たす。各グラフは、それ自体がURIとして表されるべきRDFデータセットであることを思い出そう—では、なぜこの「Cool URI」に直接HTTP POST/PUT/DELETEを送らないのか。
HPの草案ではこの問題を提議していないし、答えてもいないが、SPARQL Update Wiki(source)のQ&Aにヒントが掲載されている。
SPARQLはリードオンリーであるため、Webアーキテクチャの原則多数に違反することなく、URI(と従ってGET)へとマップできます。
REST式のHTTPオペレーションは、名前付きグラフ全体の追加、更新、除去において、いっそう大きな役割を果たすことができるでしょう。
PUTとPOSTは一般に有用ですが、RESTとWebアーキテクチャのどちらも、「大型グラフへの原子的更新」をいっそう促進する可能性のある、他の方法の利用を妨げるものではありません。
Webサービスと同じ過ちを犯さないでください。アプリケーションプロトコルは「バインドされる」ようには作られていません。なぜなら、そうすると値の大半をマスキングしなければならなくなるからです。
リソースのコンセプトはRDFとRESTで異なるかもしれない。この件については2006年以来「バインディング」問題(source)で論じられており、RDFのないRESTが粗悪といっても、最終的結論を何ら示さずにセマンティックWebとWeb 2.0をRESTにブリッジングした(source)今年の2月までは、その粗悪さの程度はSOAPに比べてわずか半分ほどである(source)。なぜこれが重要なのか。
Linking Open DataのRESTful Webはこれまでのところ、確かにRESTful SOAに対して傑出した実ワールド・パターンを提供している—が、それはリードアクセスに限られている。企業が同じ方法で社内向けにデータを容易に公表でき、企業間でも同様のことが可能であると考えてみて欲しい(セキュリティ要件も満たされると仮定する)。Linking Open Dataのアップデートとなると、最大の可能性はSPARQL Updateの利用と考えられる。SPARQL Updateは言語であってアプリケーションプロトコルではなく、たとえば、Graphではなく、Graph Storeにアドレスすることにより、そうしたプロトコルの仮定をベースにしている。従って、「Webサービスと同じ過ちを犯さないようにすること」を尊重すべきなのかもしれない。
原文はこちらです:
【豆蔵】大好評のため、Jenkins講座を追加開催致します!Jenkins作者の川口氏が講師です。
【ネクストスケープ】.NET、C#のアプリケーション開発者募集
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。
Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。
GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式
本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。
前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。
Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。
スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。
No comments
スレッド表示 返信