Cache'jpWiki FrontPage

Last-modified: 2011-01-23 (日) 10:12:12

ここは、ObjectDataBase Cache'に関する情報、技術を集約するwikiです。どなたでも自由にページを追加・編集できます。また、内容的に間違っていたら加筆・訂正をお願いします。
なお、Cache'は多くのOS版、バージョンが存在しますので記事には必ずOS,Versionを明記してください。(OS,Versionを明記しない場合かえって混乱を招くことになります)

Cache'(キャシエ)とは何か

 Cache'(キャシエ)とは、1967年にマサチューセッツ・ジェネラルホスピタルで開発され、以降アメリカ標準(ANSI)、国際標準(ISO)、日本標準(JIS)を取得したプログラム言語MUMPSをルーツとし、米InterSystems社がMUMPSを拡張した、データベースプログラミング環境である。(非フリーソフトウェア)
 その中心となっている、Cache'ObjectScript言語は、SQLのようなデータベース言語とVisualBasicのようなプログラム言語が一体となった言語体系を持っている。
 その特徴は、グローバル変数(大域変数)を直接ハードディスク上に高速に格納できる仕組みであり、変数の永続化をRDBとは別の流れで可能にした技術である。(例えば、配列変数を宣言したら、それが直接データベースになっているようなもの)
 以上のように、データベースとプログラム言語が完全に一体化しているため、分野的な切り分け(データベース分野、プログラム言語分野)ができないことがCache'を理解しづらくしている原因であろう。そのため、ここではあえてデータベースプログラミング環境という言葉を用いた。

コメント欄

  • 20110123更新 -- 管理人? 2011-01-23 (日) 10:12:10
  • あけましておめでとうございます。本年もよろしくお願いいたします。今年はCache'2008が出ますので、みなさん心してかかりましょう。(そろそろ日本でもHealthShareがでてくれるといいですね。地域連携はこれでOKですし、特定検診にも対応できそうですよ。値段は???) -- 管理人? 2008-01-02 (水) 11:26:52
  • ソースコントロールフックをInterSystemsの方に教えてもらった。なかなか便利! -- 管理人? 2007-12-06 (木) 10:15:59
  • ありがとうございました。本来ならば[é]なのですが、[é]だとGoogleに引っかからなくなるし化けるし散々なので、あえて[e']にしています。 -- 管理人? 2007-11-20 (火) 10:43:38
  • cashe'の[e']の表記を統一しておきました。 -- mouchan? 2007-11-20 (火) 09:28:01
  • [heart] ナイス言い回し!>Cache'はORACLE等のSQLDBに破壊し尽くされた荒野に咲いた一輪の花である。 -- ? 2007-11-16 (金) 14:56:23

キャシエを薦める10の理由

 ここでキャシエの特徴をまとめてみる。

  1. 変数をデータベースとして永続化する。(前述した)
  2. 変数の格納構造が、B-TREE構造である。(OSのファイル管理の構造と基本的に同じ)
  3. 上記2点を普通に実現しようとすると、冗長な構造になるため、スパース変換(疎行列変換)を用いて高密度に圧縮してデータベースに格納する。(Googleも使ってるねスパース)
  4. 上記2点を普通に実現しようとすると、ハードディスクのIO処理が異常に遅くなるため、プロセスベースでのメモリキャッシュ機能をもっている。メモリキャッシュはある一定の時間でハードディスクとIO処理を行いデータの永続化が自動的に行われる。
  5. オブジェクト指向(クラス構造)に対応している。そのため、最近のオブジェクト指向言語(Javaなど)との親和性が高く、インピーダンスミスマッチのない開発環境が実現している。(オブジェクトはオブジェクトのままデータベースに格納する。つまりJDBC,ODBCを使わないデータの格納方法が選べる。)
  6. クラス構造の拡張としての多言語バインディング機能として実装されているため、java,C++,Perl,Python,.Net,XML等とのシームレスな結合が可能となっている。
  7. さらに多言語バインディング機能の中の、Cache'アクティベート機能は、外部のActiveXオブジェクト(のタイプライブラリ)を取り込んで直接操作するクラスを自動生成するため、COM,(DCOM)APIサービスを持つ外部アプリケーションとシームレスに結合する。(Excel,GoogleEarth,R,etc)
  8. もちろんSQLを利用したリレーショナルデータベースの作成(JDBC,ODBCの接続)も行える。その場合、RDBのテーブル/リレーション構造が、自動的にグローバル変数/B-TREE構造に内部変換され格納される。その結果RDBで作成するよりも、高速/省リソースのDBとして働く。
  9. RDBとして利用した場合、RDBとしては禁じ手の動作中のフィールド追加が可能である。また、基本的にインデックスの再構成は不要である。
  10. 現在のORACLEでは禁じ手の、トランザクション・ビットマップインデックスが使える。そのため動的更新ができるデータウエアハウスのエンジンとして利用できる。

キャシエを手に入れる方法

値段は不明。(ライセンス数により変化するらしい)
 InterSystems社が、直売をしていないためパートナーと呼ばれる企業からソリューションの付随物として手に入れるしかない。ただし、InterSystems社のホームページからシングルユーザー版(1ライセンス版)は評価版として無料でダウンロードできる。

インターシステムズジャパン:http://www.intersystems.co.jp/index.html
Cache'評価版:http://www.intersystems.co.jp/cache/downloads/index.html

 シングルユーザー版は、ソリューション版と完全に同一であり、利用期間制限もない。個人で利用するなら、ただというわけだ。シングルユーザー版は、スタンドアロン版ではない。サーバーとして利用することもできる。(接続数が1ライセンスというだけ。)また、データベースプログラミング環境なので、開発用のツールはすべて内蔵されている。

キャシエを取り巻く10のリスク

  1. 最大の欠点は、書籍がほとんど無いこと。入門書すらない。(古いMUMPSの本では情報が古すぎる)アメリカでは普及していると言われているが、英語の書籍も見当たらない。そういう意味で、情報の共有化が遅れている。
  2. Cache'ObjectScriptは超マイナーな言語なので、学んでもパートナー会社しか就職先がない。
  3. だいたいCache'をどう発音していいのかわからないし[e']をどうやってキーボードから打つのかわからない。ちなみにフランス語で「隠されている」という意味らしい。よほど秘密にしたいようだ。
  4. 吉田育代女史が書いた「データベース新たな選択肢[リレーショナルがすべてじゃない]」を読むとCache'の歴史がわかるが、Cache'はORACLE等のSQLDBに破壊し尽くされた荒野に咲いた一輪の花である。マイノリティーである。いつ枯れるか、踏みつぶされるかわからない。
  5. 値段が皆目わからない。(InterSystemsの人に聞けばわかるらしい)
  6. パッケージ売りをしていない。(箱を見たことがない)
  7. だれも知らないので、使えても威張れない。キャシエ?何それ?
  8. 本を書いても売れない。(だから本がない?)
  9. マニュアル読んでもわからない。
  10. ソースが読めない・・・Mできっちり書くのやめて!

教訓:リスクを恐れる人間はこの世界に踏み込んではならない!

キャシエの仲間たち

 Cache'には仲間がいる。EnsembleとHealthShare、TrakCareである。最近、DEEPSEEというデータウエアハウス構築ツールが出てきた。
要は、Cache'の機能拡張版とソリューションに特化した仲間であるが、核は全てCache'である。

Cache'ObjectScriptについて

 Cache'で標準で用いられている開発言語。前述したが、MUMPSからの古い歴史がある。MUMPSは標準化されたため拡張性が犠牲になってしまい、プログラム言語の新しい流れに追いつけなくなってしまった。そこで、InterSystemsは今風のMUMPSとしてCache'ObjectScriptを再設計し、M言語という標準を捨てた。
ただ、MUMPSを基にしているため言語的に古風な部分があるのが面白い。一言でいうと「温故知新」。
 Cache'ObjectScriptを「COS(コス)」と略して使用しているのは一部の人だけで、普通はM(エム)と言ったほうが通じる。

Cache' ObjectScript の使用法

Cache'Basic

 なんと、Cache'はもう一つ開発言語を持っている。言語を2つ話せるなんて、まさにバイリンガル。平成の黒船リアディゾン?
 Cache'Basicなんてうさんくさそうな名前だが、実はVBScriptコンパチである。えっ、更にうさんくさい?
Cache' Basic の使用法

Web系の開発はCache'ServerPage(CSP)

 ASPのCache'版である。JavaScriptとCache'ObjectScriptを混在して利用する。
Cache' Server Pages (CSP) の使用法

Cache'の開発はCache'スタジオで

 ここまでくると、M$に訴えられるんじゃないかと思われるぐらい名前が似ている。ただし、中身は全然違う。質素です。
Cache' スタジオの使用法

システム管理ポータル 

なにかと評判が悪い、Webベースの管理画面。評判が悪い原因は、以前の「Webベースじゃないもの」の方が使い勝手が良かったということらしい。バージョンがあがって使い勝手が悪くなる・・・M$じゃ。
Cache' システム管理

キャシエのオンラインマニュアル

Cache'2009.1
FAQ(サンプルあり、開発の参考に)

リンク集

CodeZine オブジェクトデータベースの部屋
Cachéウィキペディア(Wikipedia)
Cache'Wiki
青色立方体研究所
対決! O/Rマッパー vs. オブジェクト指向DB(1)
対決! O/Rマッパー vs. オブジェクト指向DB(2)
対決! O/Rマッパー vs. オブジェクト指向DB(3)
個性派DB「Caché」、RDBの牙城を崩せるか
CachéとObjectStore、脱RDBMSの真価を探る

AMAZON

4990207904
4990207904
4990207904
4990207904

管理人日記

  • NoSQLが今後くるらしい。Cache'もNoSQLの一種だから、NoSQLの波に乗るといいかも。>ISJのみなさん! -- 管理人? 2009-12-28 (月) 18:53:16
  • 最近安価やフリーなBIツールがかなり増えてきている。DEEPSEEを使うと高くつくので、グローバルをClass化してODBCでつないだ方がシステム的には安くなると思う。やはり価格も気にしないとねー。 -- 管理人? 2009-10-11 (日) 21:00:00
  • deepsee2が出るそうです。deepsee1は失敗? -- 管理人? 2009-04-18 (土) 20:30:25
  • Cache'のビットインデックスってこれ以上大きくできないのだろうか? -- 管理人? 2009-01-12 (月) 16:20:20
  • M屋さんの欠点。ハード性能を十分考慮しない(そこそこ速いからハードのスペックを低く見積もってしまう)。Mといえども結局はハードディスクのI/Oがボトルネックになるのですよ。高速、高速と言ってもトータルスペックで考えられなければ「本当の高速」とは言えません。InterSystemsもハードスペックも考慮したデータを出すべきです。 -- 管理人日記 2008-11-23 (日) 11:44:56
  • DEEPSEEキター! -- 管理人? 2008-10-24 (金) 20:17:03
  • DEEPSEEその後どうなったんだろう?2008.2にのってくるのかな? -- 管理人? 2008-08-02 (土) 17:53:49
  • DEEPSEEいい!使えそう! -- 管理人? 2008-06-06 (金) 09:42:35
  • himssから戻ってきました。四川大地震の影響か参加者が少なかったような気が・・・。 -- 管理人? 2008-05-24 (土) 15:34:33
  • himss行ってきまーす! -- 管理人? 2008-05-18 (日) 18:50:47
  • DEEPSEE触りたい! -- 管理人? 2008-04-25 (金) 15:28:35
  • 2008DEVCONから。2008.2では今の倍くらい速くなるらしい・・・。十分速いけど。 -- 管理人? 2008-04-25 (金) 15:27:11
  • StudioControlHookがSVNとついに合体!これでCache'でのソースコントロールができるようになりますね。 -- 管理人? 2008-04-25 (金) 15:19:17
  • Access2000からCache'へODBCでアクセスすると最初の接続が遅延する問題があったのだが、Accessの仕様のようだ。レジストリパッチをあてることでうまく動くことが判明した。(インターシステムズのサポートの方ありがとうございました) -- 管理人? 2008-03-13 (木) 17:49:17
  • Cache'2008インストールしてみました。マニュアルや単語の検索はとても良くなっていますね。 -- 管理人? 2008-03-13 (木) 17:45:21
  • Cache'200801がでたようだ。何かかわっているのだろうか?それにしても管理ポータル疲れるっす。 -- 管理人? 2008-03-10 (月) 22:13:51
  • 結構アンサンブルはバージョンの違いで挙動が違う。気をつけないとやばいですね。 -- 管理人? 2008-02-05 (火) 20:37:35
  • 名古屋大付属病院のシステムはCache'&Ensらしいのだが、ファイルメーカーを組み合わせてHISを構成しているようだ。FileMakerはとても使いやすくていいのだが、コードのメンテナンスがきちんとできないという欠点がある。どのようにしてバグをなくすのか興味がある。 -- 管理人? 2008-01-31 (木) 20:10:48
  • CodeZineで「Cache'によるWebサービスの概要」でました。一番興味のある分野なので勉強してみよう! -- 管理人? 2008-01-31 (木) 20:05:40
  • Cache'って使ってみれば結構小回りがきくのだが、システム的には小回りがきかないと思う。つまり、診療所に導入する程度の小物システムが作りづらい。やはり価格が壁か? オラクルのように5ユーザーライセンスで10万!ってかんじで出してくれればいいのになあ。-- 管理人? 2008-01-26 (土) 17:55:27