複数のVMにまたがって拡張する場合は、GemStone/Sを確認することをお勧めします。
ただし、GemStoneは独自の商用製品であることに注意してください。だから、あなたはそれを支払う必要があります。ただし、価格設定モデルは通常、より大きなエディションが必要な場合は、通常、ユーザーがそのエディションの料金を支払うように設計されています。価格は、4GiByteディスク/1 GiByte RAM /1CPUバージョンで0ドルから始まります。
もう1つ注意すべき点は、GemStone Smalltalkは独自の方言であるため、Squeakコードは変更されずに実行されることはおそらくないでしょうが、移植はかなり簡単なはずです。(たとえば、GemStoneのエンジニアは、Monticello(Squeakのバージョン管理システム)パッケージをGemStone / Sにロードできるようにするアダプターを作成しました。また、通常、Seasideが実行されることを確認します。)
では、GemStoneとは何ですか?基本的に、これは自動オブジェクト永続化を備えた分散VMです。通常のSmalltalkVMと比較して説明するのが最も簡単です。2つのSmalltalkVMを並べて実行している場合、それぞれに独自のオブジェクトメモリ(つまり、ガベージコレクタが管理するもの)があります。そして、そのオブジェクトメモリはRAMにあります。GemStoneでは、クラスター内のすべてのVMが同じオブジェクトメモリを共有し、RAMではなくディスク上に存在します。したがって、オブジェクトはいつでもどこでも「そこに」あるので、データベースは必要ありません。オブジェクト指向のデータベースも必要ありません。
(これは非常に単純な説明にすぎません。たとえば、ヒープはVM間で実際には共有されません。それは意味がなく、ネットワーク全体で作成するすべての一時オブジェクトを複製する必要はありません。代わりに、グローバルリポジトリがあります。オブジェクト(基本的には辞書)であり、ガベージコレクターが既知のルートオブジェクトから開始し、そこから到達可能なすべてのオブジェクトを保持し、到達できないオブジェクトを削除するのと同様に、GemStoneはグローバルリポジトリオブジェクトから開始します。そこから到達可能なオブジェクトのみを永続化/複製します。)
GemStoneにはデータベース風の機能もあるため、グローバルリポジトリへのアクセスはACIDトランザクションにラップされ、SQLに触発されたSmalltalkishクエリ言語があります。
GemStoneには、よく知られている「LAMP」(Linux、Apache、MySQL、PHP)に類似した「 GLASS 」(GemStone、Linux、Apache、Seaside、Smalltalk)と呼ばれる優れたアプライアンスがあります。GLASSには、SeasideがプリインストールされたGemStoneの無料版と、Xubuntu上で実行されるApacheでセットアップされたすべてのものが含まれ、すべてがVMWareディスクイメージにきちんとパッケージ化されています。