Db4o -Wikipedia


db4o (database per oggetti) era incorporabile open source database di oggetti per Giava E .NETTO sviluppatori. È stato sviluppato, concesso in licenza commerciale e supportato da Attiano. Nell’ottobre 2014, Actian ha rifiutato di continuare a perseguire e promuovere attivamente l’offerta commerciale di prodotti db4o per i nuovi clienti.(1)

Storia(modificare)

Il termine sistema di database orientato agli oggetti risale al 1985 circa, anche se i primi sviluppi della ricerca in questo ambito risalgono alla metà degli anni ’70. I primi sistemi commerciali di gestione di database di oggetti furono creati all’inizio degli anni ’90; questi hanno aggiunto il concetto di persistenza guidata dal database nativo nel campo dello sviluppo orientato agli oggetti.

La seconda ondata di crescita è stata osservata nel primo decennio del 21° secolo, quando i database orientati agli oggetti scritti completamente in formato linguaggio orientato agli oggetti apparso sul mercato. db4o è uno degli esempi di tali sistemi scritti completamente in Java e C#.

Il progetto db4o è stato avviato nel 2000 dal capo architetto Carl Rosenberger, spedito nel 2001. È stato utilizzato in applicazioni aziendali e accademiche prima del suo annuncio commerciale nel 2004 dalla società privata di recente creazione Db4objects Inc.

Nel 2008 db4o è stata acquistata da Società versatileche lo commercializzò come software open source con doppia licenza: commerciale e il Licenza pubblica generale GNU (GPL).

Panoramica(modificare)

db4o rappresenta un modello di database orientato agli oggetti. Uno dei suoi obiettivi principali è fornire un’interfaccia semplice e nativa per la persistenza programmazione orientata agli oggetti le lingue. Lo sviluppo con il database db4o non richiede un file separato modello di dati creazione, il modello di classe dell’applicazione definisce la struttura dei dati. db4o tenta di evitare il disadattamento oggetto/impedenza relazionale eliminando il livello relazionale da un progetto software. db4o è scritto Giava E .NETTO e fornisce le rispettive API. Può essere eseguito su qualsiasi sistema operativo che supporti Java o .NET. È offerto sotto licenze tra cui GPL, db4o Opensource Compatibility License (dOCL) e una licenza commerciale per l’uso in software proprietario.

Sviluppatori che utilizzano database relazionali può vedere db40 come uno strumento complementare. Lo scambio di dati db4o-RDBMS può essere implementato utilizzando db4o Replication System (dRS). dRS può essere utilizzato anche per la migrazione tra oggetto (db4o) e relazionale (RDBMS) tecnologie.

Come un database incorporato db4o può essere eseguito nel processo di richiesta. È distribuito come libreria (jar/dll).

Caratteristiche(modificare)

Database a una riga di codice(modificare)

db4o contiene una funzione per memorizzare qualsiasi oggetto:

objectContainer.store(new SomeClass());

SomeClass qui non richiede implementazioni di interfaccia, annotazioni o attributi aggiunti. Può essere qualsiasi classe dell’applicazione, comprese le classi di terze parti contenute nelle librerie di riferimento.

Tutti gli oggetti campo (comprese le raccolte) vengono salvati automaticamente. I casi speciali possono essere gestiti scrivendo gestori di tipi personalizzati.(2)

Incorporabile(modificare)

db4o è progettato per essere incorporato in client o altri componenti software invisibili all’utente finale. Pertanto, db4o non necessita di un meccanismo di installazione separato, ma si presenta come un singolo file di libreria con un ingombro di circa 670 kB nella versione .NET e di circa 1 MB nella versione Java.

Modalità client-server(modificare)

La versione client/server consente a db4o di comunicare tra applicazioni client e lato server. Utilizza TCP/IP per la comunicazione client-server e consente di configurare il numero di porta. La comunicazione viene implementata tramite la messaggistica.

Grazie ad una funzionalità denominata “Riflessione generica”, db4o può funzionare senza implementare classi persistenti sul server. Tuttavia, questa modalità presenta delle limitazioni.(3)

Evoluzione dello schema dinamico(modificare)

db4o supporta l’evoluzione automatica dello schema degli oggetti per le modifiche del modello di classe di base (eliminazione/aggiunta del nome del campo). Modifiche più complesse al modello di classe, come la modifica del nome del campo, la modifica del tipo di campo, lo spostamento della gerarchia non sono automatizzate immediatamente, ma possono essere automatizzate scrivendo un piccolo programma di aggiornamento di utilità (vedere documentazione).

Questa funzionalità può essere vista come un vantaggio rispetto al modello relazionale, in cui qualsiasi modifica nello schema comporta principalmente una revisione e un aggiornamento del codice manuale per corrispondere alle modifiche dello schema.

Query native(modificare)

Invece di utilizzare API basate su stringhe (come SQL, OQLJDOQL, EJB QL, e SODA), le Native Queries (NQ) consentono agli sviluppatori di utilizzare semplicemente il linguaggio di programmazione stesso (ad esempio, Java, C# o VB.NET) per accedere al database e quindi evitare un costante passaggio di contesto, che riduce la produttività, tra il linguaggio di programmazione e API di accesso ai dati. Forniscono anche query native tipo di sicurezzaoltre a eliminare la necessità di disinfettare iniezione di codice (Vedere SQL Injection).

LINQ(modificare)

LINQ il supporto è completamente integrato in db4o per .NET versione 3.5. LINQ consente la creazione di query orientate agli oggetti di qualsiasi complessità con il vantaggio del controllo in fase di compilazione, dell’integrazione IDE Intellisense e del refactoring automatizzato.

Grazie all’integrazione con alcune librerie open source, db4o consente anche query LINQ ottimizzate su Compact Framework.

LINQ può essere utilizzato sia con l’archiviazione di dati relazionali che di oggetti, fornendo così un ponte tra di loro. Può anche essere utilizzato come livello di astrazione, consentendo di cambiare facilmente la tecnologia del database sottostante.

Svantaggi(modificare)

IL inconvenienti e difficolt affrontati da altri Object Database si applicano anche a Db4o:

Altre cose che funzionano contro ODBMS sembrano essere la mancanza di interoperabilità con un gran numero di strumenti/funzionalità dati per scontati riguardo a SQL, inclusa ma non limitata alla connettività standard del settore, strumenti di segnalazione, OLAP strumenti e backup e standard di recupero.(citazione necessaria) Anche i database di oggetti mancano di un fondamento matematico formale, a differenza dei database di oggetti modello relazionalee questo a sua volta porta a debolezze nei loro domanda supporto. Tuttavia, alcuni ODBMS supportano completamente SQL oltre all’accesso alla navigazione, ad es Obiettivit/SQL++, MatisseE Intersistemi CACHÈ. Un utilizzo efficace può richiedere compromessi per mantenere entrambi i paradigmi sincronizzati.

Gli svantaggi specifici di Db4o possono includere:

  • Mancanza di testo completo indicizzazionescarse prestazioni su ricerca nel testo completo(4)
  • Mancanza di indicizzazione per tipi di stringail che significa che le ricerche basate su testo possono essere potenzialmente molto lente
  • “Non esiste un linguaggio di query generale come SQL che può essere utilizzato per l’analisi dei dati o da altre applicazioni. Questo non permette a db4o di essere molto flessibile in un ambiente eterogeneo”(4)
  • Replica non può essere eseguito a livello amministrativo, ovvero è necessario programmare un’applicazione per ottenere la replica. “Ciò è contrario alla maggior parte degli RDBMS, in cui gli amministratori gestiscono i server e la replica tra di loro.”(4)
  • I campi eliminati non vengono rimossi immediatamente, ma semplicemente nascosti fino al successivo Deframmentaz(citazione necessaria)
  • Nessun supporto integrato per importare/esportare dati da/verso testo, XML O JSON File

Portabilità e distribuzione multipiattaforma(modificare)

db4o supporta Java JDK da 1.1.x a 6.0 e funziona su JavaEE E Giava SE. db4o funziona anche con JavaME dialetti che supportano la riflessione, come Centro per la prevenzione e il controllo delle malattie, Profilo personale, Sistema operativo Symbian, SavaJe E Zaurus. A seconda della richiesta del cliente, db4o funzionerà anche su dialetti senza riflessione, come ad esempio CLDC, MIDP, Mora E Sistema operativo Palm.

db4o è stato testato con successo JavaFX E Silverlight. db4o è stato eseguito Androide.

db4o utilizza una funzionalità personalizzata chiamata “riflettore generico” per rappresentare le informazioni sulla classe, quando le definizioni della classe non sono disponibili, che consente di utilizzarlo in un ambiente misto Java-.NET, ad esempio client Java – server .NET e viceversa.(3) Il riflettore generico aiuta anche la conversione del progetto tra ambienti, poiché il database non deve essere convertito.

Documentazione e supporto(modificare)

db4o fornisce fonti di documentazione: tutorial,(5) documentazione di riferimento,(6) Documentazione dell’API,(7) abbinamenti online (8) e blog.(9) Le informazioni possono anche essere recuperate dai forum (10) e aggiunte della comunità(11) (articoli, fonti di documentazione tradotte, progetti campione ecc.).

Per gli utenti commerciali db4o suggerisce un abbonamento dDN (db4o Developer Network) con supporto garantito 24 ore su 24 e sessioni di accoppiamento in tempo reale con il client – ​​Xtreme Connect.(12)

Gestore oggetti(modificare)

Object Management Enterprise (OME) è uno strumento di esplorazione del database db4o, disponibile come plug-in per Eclipse e MS Visual Studio 2005/2008. OME consente la navigazione di classi e oggetti nel database, la connessione a un server di database, la creazione di query utilizzando il drag&drop e l’utilizzo delle statistiche del database.

OME fornisce alcune funzioni amministrative come indicizzazione, deframmentazione e backup. OME è stato inizialmente suggerito ai clienti come prodotto commerciale disponibile solo per gli abbonati dDN. Dalla versione 7.8 di db4o OME è stato incluso nella distribuzione standard di db4o e il sorgente è stato reso disponibile al pubblico nel repository svn di db4o.(13)

Versioni(modificare)

db4o rilascia build di sviluppo, produzione e stabili. La versione di sviluppo fornisce le funzionalità più recenti e viene rilasciata per test, feedback della comunità e valutazione. La versione di produzione è pensata per essere utilizzata in un ambiente di produzione e include funzionalità che sono già state valutate e comprovate nel tempo. La versione stabile è pensata per essere utilizzata nella spedizione del prodotto finale.

db4o esegue anche una compilazione continua, che viene attivata da qualsiasi nuova modifica apportata al repository del codice SVN. Questa build è aperta alla community e può essere utilizzata per valutare le modifiche più recenti e acquisire le funzionalità più recenti.

Il formato del nome build db4o ha lo scopo di fornire tutte le informazioni necessarie sulla versione, l’ora della build e la piattaforma supportata:

Ad esempio: db4o-7.2.30.9165-java.zip

db4o – nome del prodotto, ovvero motore di database db4o

7.2 – il numero della versione

30 – numero di iterazione, ovvero un numero sequenziale che identifica una settimana di sviluppo

9165 – Numero di revisione SVN, corrispondente all’ultimo commit che ha attivato la build

java – Versione Java di db4o. La versione .NET è identificata da “net” per le versioni .NET 2.0 o “net35” per la versione .NET 3.5. La versione .NET include la corrispondente versione Compact Framework.

Il repository SVN pubblico db4o è disponibile anche per gli sviluppatori per ottenere il codice sorgente e creare versioni localmente con o senza modifiche personalizzate.

Di seguito un breve riepilogo delle principali caratteristiche delle build stabile, di produzione e di sviluppo:

Versione Caratteristiche
Stabile (db4o-7.4)(14) Versione Sharpen (convertitore da Java a C#)
Produzione (db4o-7.4)(14) Versione Sharpen (convertitore da Java a C#)
Sviluppo (db4o-7.10)(15)
  • Abilita automaticamente db4o Transparent Persistence per Java tramite Eclipse
  • Persistenza trasparente per raccolte Java
Ultima versione Versant (db4o-8.0)(1)
novembre 2012
Giava, .NET 3.5, .NET 4.0

Riferimenti(modificare)

Ulteriori letture(modificare)

link esterno(modificare)




Source link

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Torna in alto