Domanda

Così ho usato Smalltalk per circa 6 mesi (Squeak e Pharo), per lo più a fare analisi dei dati, e sono in procinto di iniziare la mia prima app Seaside. Quindi la mia domanda a tutti voi Smalltalkers là fuori è, qual è la vostra soluzione di persistenza preferito? Ho cercato in Magma, merci e GLORP. Sono un pitone hacker lungo tempo, in modo da ottenere ORM, ma sembra che Magma o merci sarebbe una soluzione migliore, dal momento che sembrano orientati agli oggetti.

Una breve nota: Voglio scalare il mio app su più macchine virtuali, quindi basta il salvataggio dei dati per l'immagine solito funziona davvero

.

Grazie!

È stato utile?

Soluzione

Se si vuole scalare su più macchine virtuali, si potrebbe desiderare di dare un'occhiata al GemStone / S .

Essere consapevoli, tuttavia, che gemma è un proprietaria, commerciale prodotto . Quindi, è deve pagare per questo. Tuttavia, il modello di pricing è generalmente concepito in modo tale, che se si necessità un'edizione più grande allora si avrà generalmente anche agli utenti di paga per quella edizione. I prezzi iniziano a 0 $ per la versione di CPU 4 dischi GiByte / 1 GiByte RAM / 1.

Un'altra cosa da notare è che GemStone Smalltalk è il suo proprio dialetto, in modo che il codice di Squeak probabilmente non correre non modificata, ma dovrebbe essere abbastanza facile da porto. (Per esempio, gli ingegneri della pietra preziosa hanno creato un adattatore che consente di caricare Monticello (sistema di controllo della versione di Squeak) pacchetti in GemStone / S, anche in genere fare in modo che corre Mare.)

Quindi, qual è pietra preziosa? Fondamentalmente, è una VM distribuito con persistenza oggetto automatico. E 'più facile da spiegare rispetto ad un normale Smalltalk VM. Se si dispone di due Smalltalk VM side-by-side in esecuzione, ognuno dei quali ha una propria memoria degli oggetti (vale a dire la cosa che il garbage collector gestisce). E quella della memoria degli oggetti è nella RAM. In GemStone, tutte le macchine virtuali in un cluster condividono il stesso della memoria degli oggetti e che vive su disco, non in RAM. Quindi, non è necessità di un database, nemmeno un orientato agli oggetti uno, perché gli oggetti sono "proprio lì", in tutto il mondo, per tutto il tempo.

(Questa è solo una descrizione molto semplicistica. Ad esempio, il cumulo non è davvero condivisi tra macchine virtuali. Questo non avrebbe senso, non si vorrebbe replicare ogni oggetto temporaneo si crea attraverso la rete. al contrario, si dispone di un oggetto di repository globale (in pratica, un dizionario) e, proprio come il garbage collector inizierà ad un certo oggetto radice noto e quindi mantenere tutti gli oggetti che sono raggiungibili da lì, e cancellare quelli che non sono , GemStone inizierà l'oggetto repository globale, e persistono / replicare solo gli oggetti che sono raggiungibili da lì.)

gemma ha anche funzioni di database-ish, quindi l'accesso al repository globale è avvolto in transazioni ACID, e v'è uno SQL di ispirazione, ma linguaggio di query Smalltalkish.

gemma ha una bella macchina che loro chiamano " VETRO " (per GemStone, Linux, Apache, Mare e Smalltalk) analogo al ben noto "LAMP" (Linux, Apache, MySQL e PHP). GLASS include l'edizione gratis di pietre preziose con Mare preinstallato e la configurazione tutto con Apache che gira sopra Xubuntu, tutto ordinatamente confezionato un'immagine del disco VMWare in.

Altri suggerimenti

GLASS da solo non aiuta a dare una panoramica sui dati. SandstoneDB fa. È possibile utilizzare SandstoneDB con entrambi i beni e vetro, (o anche da soli), a seconda di quanto denaro si vuole spendere (Arenaria è gratuito in tutti i sensi, il vetro è commerciale, ma libero come in birra gratis per piccoli impianti).

pagina sandstoneDB . Ed ecco l'adattatore per i beni . Per utilizzare SandstoneDB con vetro, basta passare il negozio per SDMemoryStore, vedere i commenti classe sul SDMemoryStore in SandstoneDB.

Se è possibile scegliere, vorrei anche scegliere di vetro o di Magma (dipende da quanto grande è il progetto).

Si tenga conto del fatto che GLorp in Squeak funziona solo con PostgreSQL. Abbiamo sviluppato SqueakDBX che è un driver di database per comunicare con la maggior parte dei database. Ora stiamo modifichiamo Glorp in modo che si può utilizzare con tutti loro (non solo PostgreSQL). Ma questo non sarà fino alla fine di questo anno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top