Question

Je l'ai utilisé Smalltalk pendant environ 6 mois maintenant (Squeak et Pharo), faisant la plupart des analyses de données, et je suis sur le point de commencer ma première application Seaside. Voici donc ma question tout ce que vous Smalltalkiens là-bas est, quelle est votre solution de persistance préférée? J'ai regardé Magma, des marchandises et GLORP. Je suis un hacker python long temps, donc je me ORM, mais il semble que Magma ou de marchandises seraient une meilleure solution, car ils semblent orienté objet.

Une note rapide: Je veux à l'échelle de mon application sur plusieurs machines virtuelles, permettant ainsi d'économiser simplement les données à l'image wont vraiment travailler

.

Merci!

Était-ce utile?

La solution

Si vous voulez à l'échelle à travers plusieurs machines virtuelles, vous pouvez jeter un oeil à GemStone / S .

Sachez cependant que GemStone est un propriétaire, produit commercial . Donc, vous doivent payer. Toutefois, le modèle de tarification est généralement conçu de telle sorte que si vous besoin une plus grande édition vous sera généralement aussi les utilisateurs à Paie pour cette édition. Les prix commencent à 0 $ pour le disque 4 GiByte / 1 GiByte RAM / 1 version CPU.

Une autre chose à noter est que Smalltalk GemStone est son propre dialecte, de sorte que votre code Squeak ne sera probablement pas fonctionner sans être modifiés, mais devrait être assez facile au port. (Par exemple, les ingénieurs ont créé GemStone un adaptateur qui vous permet de charger Monticello (le système de contrôle de version de Squeak) paquets dans GemStone / S, ils font généralement également que fonctionne Mer.)

Alors, ce qui est GemStone? Fondamentalement, il est une machine virtuelle distribuée avec persistance automatique d'objets. Il est plus facile d'expliquer par rapport à une machine virtuelle Smalltalk normale. Si vous avez deux machines virtuelles Smalltalk côte à côte en cours d'exécution, chacun d'eux a sa propre mémoire de l'objet (à savoir la chose que le garbage collector gère). Et que la mémoire de l'objet est dans la RAM. En GemStone, toutes les machines virtuelles dans un cluster partagent même Mémoire d'objets et il vit sur le disque, et non dans la RAM. Donc, vous ne faites pas besoin une base de données, pas même un orienté objet, parce que vos objets sont « juste là », partout, tout le temps.

(C'est seulement une description très simpliste. Par exemple, le tas est pas vraiment partagés entre les machines virtuelles. Ce ne serait pas logique, vous ne voudriez pas reproduire tous les objets temporaires vous créez à travers le réseau. au lieu de cela, vous avez un objet référentiel global (essentiellement, un dictionnaire) et tout comme le garbage collector allez commencer à un objet racine bien connu et garder tous les objets qui sont accessibles à partir de là, et supprimer ceux qui ne sont pas , GemStone commencera à l'objet global du référentiel, et persistent / reproduire uniquement les objets qui sont accessibles à partir de là.)

Précieuses dispose également de fonctionnalités de base de données-ish, donc l'accès au référentiel global est enveloppé dans les transactions ACID, et il y a une inspiration SQL mais langage de requête Smalltalkish.

Précieuses a un appareil agréable qu'ils appellent " VERRE " (pour GemStone, Linux, Apache, Mer et Smalltalk) analogue à la bien connue "LAMP" (Linux, Apache, MySQL et PHP). VERRE comprend l'édition de Gemstone gratis avec l'installation Seaside pré-installé et tout avec Apache en cours d'exécution sur le dessus de Xubuntu, tout soigneusement emballé dans une image disque VMWare.

Autres conseils

GLASS seule ne permet pas vraiment vous donner un aperçu de vos données. SandstoneDB fait. Vous pouvez utiliser SandstoneDB avec les biens et GLASS, (ou même seul), selon la quantité d'argent que vous souhaitez passer (Le grès est libre dans tous les sens, le verre est commercial, mais libre comme dans la bière gratuite pour les petites installations).

Consultez la page sandstoneDB . Et voici l'adaptateur pour MARCHANDISES. Pour utiliser SandstoneDB avec le verre, passer juste le magasin pour SDMemoryStore, voir les commentaires de classe sur SDMemoryStore dans SandstoneDB.

Si vous pouvez choisir, je voudrais également choisir verre ou Magma (cela dépend de la taille est le projet).

Prendre en compte GLorp dans Squeak fonctionne uniquement avec PostgreSQL. Nous avons développé SqueakDBX qui est un pilote de base de données pour communiquer avec la plupart des bases de données. Nous sommes maintenant en train de modifier Glorp de sorte que vous pouvez l'utiliser avec tous (non seulement PostgreSQL). Mais ce ne sera pas jusqu'à la fin de cette année.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top