マグマ、商品、GLORP、または他の何か?
-
11-09-2019 - |
質問
だから私は、主にデータ分析をやって、今では約6ヶ月間(スクイークとファロ)のSmalltalkのを使用してきた、と私は私の最初のシーサイドアプリを起動しようと思います。だから、そこにすべてのあなたSmalltalkersへの私の質問は、お好みの永続化ソリューションは何ですか?私はマグマ、商品、およびGLORPを見てきました。私は長い時間のPythonのハッカーので、私はORMを得るが、彼らはオブジェクト指向のように見えるので、マグマや商品は、よりよい解決策になるようだ。
簡単なメモ:私はちょうど画像文句を言わない、本当に仕事
にデータを保存し、複数のVMの間で私のアプリを拡張したいですありがとうございます。
解決
は、ジェムストーン/ S <を見てみることをしたい場合があります/>。
ジェムストーンはプロプライエタリ、市販の製品であること、しかし、注意してください。だから、あなたははそれを支払う必要がありますを。しかし、価格モデルは、一般的に、あなたが必要の大きな版<全角>ならば、あなたは、一般的にも、はそのエディションのためにを支払うためにユーザーがいるということは、そのような方法で設計されています。価格は4 GiByteディスク/ 1 GiByte RAM / 1 CPUバージョンの0 $でから始めます。
注意すべきもう一つは、あなたのSqueakのコードは、おそらくそのまま実行されませんが、ポートにかなり簡単にする必要がありますので、ジェムストーンSmalltalkのは、独自の方言であるということです。 (例えば、宝石のエンジニアはあなたはまた、彼らは一般的に海辺が実行されることを確認して、ジェムストーン/ Sにモンティチェロ(スクイークのバージョン管理システム)パッケージをロードすることを可能にするアダプタを作成しました。)
だから、ジェムストーンは何ですか?基本的には、自動オブジェクトの永続性を持つ分散型VMです。これは、通常のSmalltalk VMに比べて説明するのが最も簡単です。あなたは2つのSmalltalk VMがサイドバイサイドを実行している場合は、それらのそれぞれが独自のオブジェクトのメモリ(ガベージコレクタが管理する、すなわちものを)持っています。そして、そのオブジェクトのメモリはRAMです。ジェムストーンでは、すべてのクラスタ共有内のVM のと同じのオブジェクトのメモリおよびはそれがディスク上ではなく、RAMに住んでいます。あなたのオブジェクトがどこでも、「そこ」であるため、だから、あなたは、すべての時間ではなく、の必要性のデータベースではなく、さらにオブジェクト指向のいずれかを実行します。
(それは非常に単純な記述です。たとえば、ヒープが仮想マシン間で共有の本当にのではありません。意味がありません。つまり、あなたは全体で作成するすべての一時オブジェクトを複製したいとは思わないでしょうネットワーク。代わりに、(基本的には、辞書)グローバルリポジトリオブジェクトを持っているだけでガベージコレクタのようないくつかのよく知られているルートオブジェクトから開始し、そこから到達可能なすべてのオブジェクトを維持し、そうでないものを削除します、ジェムストーンは複製/グローバルリポジトリオブジェクトで開始し、そして持続しますののみのそこから到達可能なオブジェクト。)
グローバルリポジトリへのアクセスはACIDトランザクションに包まれ、およびSQL-インスピレーションを得たが、Smalltalkishクエリ言語があるされるようにジェムストーンも、データベースっぽい機能を備えています。
ジェムストーンは、彼らが " GLASSする"(ジェムストーンのため、Linuxでは、Apacheのは、シーサイドを呼ぶ素敵な機器を持っていますそして、よく知られた "LAMP"(Linuxでは、Apacheのは、MySQLとPHP)に類似のSmalltalk)。 GLASSはきちんとVMWareのディスクイメージにパッケージ化すべて、ApacheはXubuntuの上で動作してセットアップをプリインストールし、すべてのシーサイドとジェムストーンの無償版が含まれてます。
他のヒント
GLASSだけでは、本当にあなたのデータの上に概要を提供するためには役立ちません。 SandstoneDBはありません。あなたが費やすしたいどのくらいのお金に応じて、(でも単独または)、両方の商品やガラスでSandstoneDBを使用することができます(砂岩は、すべての感覚で自由である、GLASSは、商業が、小さな設置のための無料のビールのように自由です)。
sandstoneDBページをチェックしてください。そして、こちらの商品のアダプタです。 GLASSとSandstoneDBを使用するには、単にSDMemoryStoreに店を切り替え、SandstoneDBにSDMemoryStore上のクラスのコメントを参照してください。
、私はまた選ぶだろうガラスやマグマ(それがプロジェクトでどのように大きなに依存します)。
Squeakの中GLorpが唯一のPostgreSQLと連携を考慮してください。私たちは、ほとんどのデータベースと通信するためのデータベースドライバであるSqueakDBXを開発しました。あなたがそれらのすべて(のPostgreSQLだけではなく)で使用できるように我々は今、Glorpを変更しています。しかし、これは、今年の終わりまでではありません。