In questa lezione vedremo una panoramica generale su come integrare OrientDB con le nostre applicazioni, sfruttando i molti driver e le API di cui questo DBMS è dotato. Alcuni di questi strumenti sono supportati ufficialmente dalla compagnia produttrice, altri invece sono stati sviluppati e condivisi dalla comunità.
Tipi di protocolli e driver ufficiali
Tanto per fare chiarezza, diciamo subito che tutti i driver che vedremo successivamente dialogano con OrientDB in base ad un protocollo. Quest'ultimo può essere basato sul binary protocol di OrientDB, che costituisce il modo più efficiente di interfacciamento con il sistema. Gli scambi di dati saranno in questo caso basati su byte opportunamente codificati e non su comandi testuali. In alternativa, potremmo avere delle API native direttamente integrate nel DBMS, oppure protocolli basati su testo la cui implementazione più comune prende la forma di comandi REST (quindi basati su HTTP).
OrientDB supporta ufficialmente tre tipi di driver:
- Binary native, che dialoga attraverso il già citato protocollo binario;
- HTTP REST, in formato JSON per un'interazione testuale;
- Java wrapped, che fa da sponda a tutti quei linguaggi e framework basati sulla Java Virtual Machine (quali Scala, Gremlin e JRuby).
Tutti i modi di programmare con OrientDB
Vediamo qui di seguito le varie possibilità di interfacciamento con OrientDB, elencando le più comuni tecnologie di programmazione:
- Java: esistono API native in questo linguaggio, che vedremo nelle prossime lezioni, e un driver JDBC in linea con la tradizione degli accessi a database relazionali;
- Node.js: questo sistema permette di realizzare applicazioni server utilizzando Javascript (nonostante quest'ultimo nasca in origine come soluzione tipicamente client), come già spiegato nella guida a Node.js. OrientDB dispone di un ottimo tool, supportato e ben documentato, per l'integrazione con Node.js: OrientJS;
- Javascript: oltre a Node.js, Javascript offre notevoli possibilità di programmazione all'interno di OrientDB. L'argomento sarà approfondito nelle prossime lezioni;
- PHP e Microsoft .NET: entrambe queste tecnologie sono alla base di molte applicazioni web, pertanto una loro integrazione con OrientDB risulta fondamentale. Per PHP, segnaliamo PhpOrient, mentre per Microsoft .NET è disponibile .NET library for OrientDB. In entrambi i casi si tratta di driver ufficiali che sfruttano il protocollo binario;
- Python:anche per quest'altro importantissimo linguaggio di scripting esiste un driver basato su protocollo nativo: PyOrient;
- C e C++: per questi linguaggi, al momento, molte delle soluzioni disponibili non sono più supportate, e le stesse pagine di riferimento su GitHub - LibOrient e OrientDB-C - ne sconsigliano l'utilizzo in progetti di produzione;
- R: anche per questo linguaggio (molto usato per statistica e analisi dei dati) è disponibile un driver che permette di eseguire query su OrientDB.
La lista appena vista non è, ovviamente, comprensiva di tutti i possibili casi di impiego di OrientDB. Sul sito ufficiale di OrientDB sono comunque disponibili le liste complete di API per l'interfacciamento con questo DBMS, e per tutti i linguaggi non supportati si può comunque fare riferimento ai protocolli binari o alle API REST di OrientDB.