MindTouch Deki

MindTouch Deki（マインドタッチ デキ）はWebベースの企業向け情報基盤、ウィキソフトウェア、マッシュアップのプラットフォームなどの利用を想定して開発されたウィキクローンである。

プログラムの実装はフロントエンド層（PHPで実装）とC#で実装されたAPI層の2層にて構成されており、両者ともライセンスはGPLのフリーソフトウェアである。
API層はApache Licenseで公開されているフレームワークDream を利用している。Deki WikiやDekiWikiとも表記される。

開発元のMindTouchでは各種コネクタとサポートを同梱した商用バージョンを提供している。
また日本国内では、オープンソースバージョンを利用したASPサービスなどがリリースされている。

2008年5月、SourceForge.netのProject of the Monthなどの実績を持つ。

歴史 
Mindtouch社にて開発されたDekiは当初、MediaWikiの拡張として開発された。
代表的な拡張機能は、ウィキコンテンツのXHTML化、ワープロ感覚で編集できるWYSIWYGの導入、検索エンジンLuceneによるページおよびファイル内の全文検索、ページコンテンツの階層構造化である。これら全てを従来のウィキとは異なる新しいユーザインタフェースとともに提供した。

2007年7月リリースのバージョン"Heyes"以降、バックエンドの処理が完全にAPI化された。API化に際して開発言語はC#を用い、全ての処理はDream上のサービスとして実装されている。

アーキテクチャ

Deki API 
Dekiが他のウィキと異なる点は、フロントエンドとバックエンドのビジネスロジックを分離して実装されていることである。
フロントエンドのWebアクセスとバックエンドのサービスは、REST APIを介して通信を行う。この分離により、Webアーキテクチャを利用できるあらゆる開発言語によりウィキ操作が可能となる。このDeki APIはLinuxのMono、またはWindowsの.NET Framework上にて動作する。

全てのウィキコンテンツはXMLを実装したWebサービスAPIとして提供され、各種処理はHTTPプロトコル上で処理することができる。

Dream 
DekiのAPIはDream (Distributed REST Application Manager) というフレームワークを利用して構築されている。Dreamは.NETプラットフォーム上でWebサービスを構築するためのフレームワークで、RESTを採用している 。

ウェブ・フロントエンド 
Dekiではデフォルトのフロントエンドとして、PHPによるインタフェースを提供している。このインタフェースにより、WYSIWYGエディタ等のすべてのウィキ機能を利用することができる。

その他のフロントエンド 
Deki APIへのその他のフロントエンドとして、"コネクター"というインタフェースが提供されている。
デスクトップコネクターでは、WindowsのPC上からエクスプローラ感覚でウィキページへのファイル添付操作が可能である。OutlookコネクターはMicrosoft Outlookの拡張として提供されており、Outlook内のメールコンテンツ等をdekiに投稿できる。次期リリースのコネクターとして、Microsoft Wordプラグインを現在開発中である。 

その他、DekiMobileというiPhone用のインタフェースを提供している。DekiMobileはオープンソースの形態で2008年9月にリリースされた。

特徴

コンテンツ管理 
Dekiではウィキで一般的に利用されているウィキ記法は採用されず、全てのページコンテンツはXML形式で保存されている。実際にページ編集を行う際にはワープロ感覚のエディタが利用できるため、ユーザはデータ形式を気にすることなくページ編集を行うことができる。またYouTubeをはじめとするメディアコンテンツの埋め込みのためのGUIや、アップロードした画像管理のためのイメージギャラリーを提供している。

セキュリティ面においては、ユーザ認証およびページ毎のアクセス権設定などの機能が提供されている。
ユーザ認証機能はウィキ内部で作成したユーザ毎の認証以外に、LDAP等の外部認証システムとの連携も可能となっている。
ページのアクセス設定は、ページ毎またはページの階層毎の権限設定が可能となっている。

DekiScript 
MindTouch DekiではDekiScriptというスクリプト言語の利用をサポートしている。
DekiScriptはインタプリタ型のプログラミング言語であり、ユーザ自身がウィキページ内に記述することでページに動的な処理を追加することができる。

サンプル 
DekiScriptは二重の中かっこでページ内に挿入する。
次のサンプルでは、「Hello World」という文字列を出力する。

{{ 'Hello World' }}

動的コンテンツの挿入はDekiScriptの関数を利用する。
次のサンプルは、閲覧するユーザ名と現在の曜日を出力する。

こんにちは{{ User.Name }}さん。本日は{{ Date.DayName(Date.Now) }}.です。

Web 2.0 & マッシュアップ 
DekiScriptによりマッシュアップコンテンツを簡単に作成することができる。
Dekiオープンソースバージョンでは、100サービス以上のマッシュアップ拡張をエクステンションという形態で提供しており、代表的なものでは
Dapper、Flickr、Google Maps、Windows LiveおよびYahooなどが利用できる。

商用バージョンではSugarCRM、Salesforce、LinkedIn、MySQL、Microsoft SQL ServerおよびMicrosoft Accessが利用できる。

マルチ言語対応 
Dekiでは、ひとつのサイト環境内で複数の言語を取り扱うことができる。言語の設定は、ユーザ毎、サイトごと、セクション毎またはページ毎に設定でき、選択言語に応じてメニュー名などのインタフェースの表示を設定することができる。また検索機能においても、全言語を検索対象とし、検索したユーザのデフォルト言語に応じて順位づけし、検索結果を返す。
バージョン8.05のリリース移行、マルチ言語対応している。

展開 
Dekiのパッケージは各種プラットフォーム向けに提供されており、Ubuntu、Debian、Red Hat Enterprise Linux、Fedora、CentOSおよびSUSEにインストールできるオープンソースと商用のライセンスがある。すべてのリリースはSourceforgeおよびSVNリポジトリ上で公開されている。

商用バージョンではWindows Installer (.MSI) のパッケージも提供している。

また、一般的な配布形態としてVMwareの仮想マシンも提供している。

Mindtouchでは、無料で利用できるウィキホスティングサービス"MindTouch Deki Express"を提供している。
wik.isではストレージにAmazon EC2を利用している。

国内での取組 
ベリタス・コンサルティング株式会社とSteaboly株式会社が共同で、オープンソースバージョンを利用したASPサービスを提供していたが、サービスを終了した。

採用実績 
Firefox開発者のためのMozilla Developer Centerでは、Dekiにて運用されている。導入に際して、25,000ページがMediaWikiよりコンバートされた。

脚注

外部リンク 
 Mindtouch公式サイト
 Deki Wiki ASP
 ベリタス・コンサルティング株式会社

PHP
ウィキ
クロスプラットフォームのソフトウェア