オープンソースCMS「DotNetNuke」のセットアップ
前回はMicrosoft Web Platform Installerを利用して、DotNetNukeとWebMatrixをインストールする方法を紹介した。今回は、DotNetNukeのインストール方法を紹介する。
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。
作者 Boris Lublinsky , 翻訳者 和智 右桂 投稿日 2009年8月4日
Arnon Rotem-Gal-Oz氏は新しい記事「CRUDはRESTにとって良くない」の冒頭で次のように主張している。
表面的に見れば、きわめてぴったりと合っているように見えますが(技術的にもアーキテクチャ的にも)、ふたを開けてみればどちらの意味でも合っていないことが分かるでしょう。
今日、RESTアーキテクチャスタイルのもっとも一般的な実装はHTTPに準拠しており、したがってHTTPの操作メソッドすなわちPOST、GET、PUT、DELETEに準拠していることになる。一般的な実装ではこれらの操作メソッドをCRUDの用語、つまり、Create、Read、Update、Deleteに紐付ける。この際の典型的なマッピングは1対1で行われる。
Rotem-Gal-Oz氏は次のように主張する。
HTTPの操作メソッドはデータベース指向であるよりはむしろドキュメント指向です。だからリソースの更新、削除あるいは新しいリソースの追加を行うことはできますが、その方法はデータベース的な意味におけるCRUDと正確には一致していません。すくなくともHTTP操作メソッドの利用に関してはそうなります。
しかしCRUDがRESTにとっての適切なパラダイムではない最大の理由は、アーキテクチャに起因するものだ。RESTの中心にあるのは、ハイパーメディアを用いたプロトコルステートマシンの実装である。Rotem-Gal-Oz氏はTim Ewald氏を引用する。
(前略)分かってきたのは次のことです。あらゆるコミュニケーションプロトコルにはステートマシンがあります。これは、いくつかのプロトコルではきわめて単純ですが、他のものではもっと複雑なこともあります。RPCによってあるプロトコルを実装する際には、コミュニケーションのステートを変更するメソッドを開発します。このステートはエンドポイントにおいてはブラックボックスとして保持されます。このようにプロトコルステートが隠蔽されているせいで、間違いが容易に起こります。例えば、「初期化」の前に「実行」を呼んでしまうかもしれないという具合に。このような問題を避けるため、インターフェイスの型情報に注釈をつけることが長らく検討されてきましたが、私自身は主流の解決策について詳しくありません。また、プロトコルのステートが、そのステートを変更するメソッド呼び出しの背後に明快ではないやり方でカプセル化されることで、バージョニングも興味深いものになります。
RESTの本質はプロトコルのステートを明らかにし、URIによってアドレス指定を可能にする点にあります。プロトコルステートマシンの現在のステートを表すのは、現在の操作対象となっているURIと検索されたステートの表現です。ステートの変更は、移動先ステートのURIを操作することによって行い、それを新しいステートとします。あるステートの表現は他のステートへのリンク(グラフにおける矢印)を含んでおり、それによって現在のステートから行き来することができます。これこそがブラウザベースのアプリケーションの動作形態なのであり、あなたが作るアプリケーションのプロトコルがこのやり方で機能できない理由は何もないのです。(ATOM Publishing protocolが規範的な例ですが、これはエンティティに関するもので、ステートマシンに関するものではないと思われがちです。)
John Evdemons氏の記事では、なぜCRUD的なサービスがSOAのアンチパターンであるのかが説明されているが、その記事に従ってRotem-Gal-Oz氏はCRUD型RESTの欠点を説明する。
- 「サービス」というものについての全体構想を避けています。ビジネスロジックが一切ないのですから。
- 外部に見せているのは内部的なデータベース構造ないしデータであって、考え抜かれた契約ではありません。
- 本当のサービスを迂回して直接データにアクセスすることを助長します。
- Blobサービス(データソース)を生み出します。
- 極小の半サービス(前述したBlobに関する複数の「インターフェイス」)を助長しますが、このようなサービスは分散コンピューティングに関するいくつかの誤謬を軽視したものです。
- 羊の皮をかぶったクライアント-サーバでしかありません。
Rotem-Gal-Oz氏は記事の最後において、再度次のように強調している。単にHTTP、XML、JSONといった標準を適用するだけでは(有用かもしれないけれども)RESTにはならない。RESTアーキテクチャを適用して初めてRESTになるのである。
RESTはSOAと同じように、標準と一般的なAPIの集合体ではなく、アーキテクチャ上のパラダイムであって、そのパラダイムを理解し、そこに従う必要があるのだ。この記事はそれを思い出させてくれる重要なものである。
前回はMicrosoft Web Platform Installerを利用して、DotNetNukeとWebMatrixをインストールする方法を紹介した。今回は、DotNetNukeのインストール方法を紹介する。
DotNetNukeは、Windows Serverで動作するCMS(Contents Management System)である。この記事ではWeb Platform Installer を利用して人気CMS「DotNetNuke」と無償Web開発環境「WebMatrix」のインストールする方法を紹介する。
クラウドコンピューティングを前提とした大規模データ技術が利用可能となってきています。Big Dataが一過性のブームで終わるかどうかにかかわらず、スケーラブルな分散アーキテクチャーの基盤はデータベース技術に主導されつつあります。RDBとORM主体のエンタープライズシステムは、HadoopやNoSQLとの組み合わせにより複合的なデータモデルに発展しました。
2011年12月8日~2011年12月9日に、ロンドンのSkills Matter eXchangeにて開催された「Groovy & Grails eXchange 2011」の参加報告を、日本Grails/Groovyユーザーグループのメンバーが3回に渡って紹介します。
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#との比較について話をしてくれた。
No comments
スレッド表示 返信