instalasi
Proses instalasi
OrientDB cukup mudah, dapat dilihat pada petunjuk yang tersedia di
websitenya.
Untuk OS Windows, unduh zipnya, ekstrak, lalu jalankan servernya, untuk mengakses, kita bisa menggunakan console yang juga disediakan, mirip dengan console MySQL.
OrientDB memerlukan Java untuk menjalankan, jangan lupa untuk mengunduh JDK. Yang digunakan pada tutorial ini adalah OrientDB versi 1.7.7
running
Ada 2 file yang utama untuk menjalankan OrientDB Server
- server.bat atau server.sh
- dserver.bat atau dserver.sh
Perbedaan utamanya adalah server(.bat/.sh) digunakan untuk menjalankan server yang sifatnya standalone, tidak perlu berkomunikasi dengan OrientDB lain, sedangkan dserver (.bat/.sh) untuk server OrientDB terdistribusi yang dapat saling berkomunikasi
STANDALONE ORIENTDB
Untuk menjalankan OrientDB standalone, cukup mudah, konfigurasi (XML) yang harus diperhatikan hanya terletak di config/orientdb-server-config.xml
Ada 2 hal terkait konfigurasi yang harus diperhatikan
- Security terkait user untuk akses
- Port yang digunakan untuk listener (binary dan http)
Konfigurasi user
Konfigurasi user terletak pada bagian <users> ...</users>
User ini adalah user yang digunakan untuk database sysadmin
OrientDB mengenal 2 jenis user, user untuk mengakses ke server (db sysadmin), dan user untuk mengakses ke database (tiap-tiap database)
Saat server dijalankan pertamakali, isi <users></users> yang sebelumnya kosong, akan diset dengan default root dan guest, silahkan tambah user misalnya dbadmin dan password dbadmin
konfigurasi port
Ada port yang digunakan oleh OrientDB sebagai listener
(binary dan http) sebagai akses dari luar ke database
Defaultnya, untuk listener binary,
digunakan port 2424 - 2430,
Sedangkan untuk listener http port 2480 - 2490
Untuk sementara kita biarkan default, jika sudah paham bisa dicoba untuk diubah sendiri, jalankan server, lalu jalan console
tampilan console
Untuk masuk ke dalam database, coba ketikkan perintah
connect plocal:../database/GracefulDeadConcerts dbadmin dbadmin
Tampilan STUDIO
OrientDB memiliki plugin berupa Studio, yaitu web interface untuk mengakses ke dalam server, coba buka http://localhost:2480
selamat mencoba
Silahkan mencoba-coba dengan console dan demo database yang ada, untuk lebih lanjut, coba familiar dengan
tutorial.
Jangan lupa untuk mencoba SQL Like command yang dapat digunakan untuk mengakses database layaknya RDBMS
distributed orientdb
Salah satu fitur yang menarik perhatian adalah bagaimana OrientDB dapat digunakan untuk distributed database
OrientDB mendukung replikasi dengan metode Master-to-Master dimana seluruh instance database dapat diakses (r+w), dan automatic sync ketika salah satu instance terputus lalu tersambung lagi
config/hazelcast.xml, config/orientdb-dserver-config.xml dan config/default-distributed-db-config.json
KOnfigurasi
config/orientdb-dserver-config.xml
mirip dengan konfig pada standalone plus tambahan konfig lainnya
config/hazelcast.xml
konfigurasi untuk komunikasi antar server
config/default-distributed-db-config.json
konfigurasi default yang digunakan untuk database yang terdistribusi
konfigurasi dserver
config/orientdb-dserver-config.xml
yang harus diperhatikan
parameter nodeName untuk nama dari server, contoh
<parameter value="server1" name="nodeName"/>
parameter enabled untuk menyalakan
<parameter value="true" name="enabled"/>
port untuk listener binary dan http
konfigurasi hazelcast
config/hazelcast.xml
yang harus diperhatikan
Group, user dan password cluster (kumpulan server)
<group><name>...</name><password>...</password></group>
Port yang digunakan untuk komunikasi
<port auto-increment="false">2434</port>
Metode bergabung ke dalam cluster (multicast/tcp-ip)
<join><multicast>...</multicast><tcp-ip>...</tcp-ip></join>
konfigurasi distributed db
config/default-distributed-db-config.json
yang harus diperhatikan
Quorum untuk read dan write, berapa banyak server yang harus menerima perintah sebelum dinyatakan perintah valid
"readQuorum" dan "writeQuorum"
Server yang boleh tergabung, statis atau dinamis
"servers" : ["<NEW_NODE>"]
Contoh implementasi dserver
Kita akan melakukan percobaan membuat 2 buah OrientDB server, dalam 1 mesin, hanya saja berbeda port, dengan nama group orient_test dan password orient_test
Node1
port Hazelcast 2424, port Binary 2425, port HTTP 2426
Node2
port Hazelcast 2434, port Binary 2435, port HTTP 2436
Config/hazelcast.xml
Node 1
<group>
<name>orient_test</name>
<password>orient_test</password>
</group>
<network>
<port auto-increment="false">2424</port>
<join>
<tcp-ip enabled="true">
<member>localhost:2434</member>
</tcp-ip>
</join>
</network>
Node 2
Perbedaan pada port diset ke 2434 dan member ke localhost:2424
Config/orientdb-dserver-config.xml
Node 1
<parameter value="node1" name="nodeName"/>
<listener protocol="binary" socket="default" port-range="2425" ip-address="0.0.0.0"/>
<listener protocol="http" socket="default" port-range="2426" ip-address="0.0.0.0">
Node 2
Sesuaikan nodeName dan port untuk listener
Selamat mencoba
Jalankan Node 1, lalu jalankan Node 2,
silahkan bereksperimen mulai dari
menambah/mengurangi class dalam database demo (GracefulDeadConcerts), hingga menambah atau mengurangi database
Bisa juga dengan database pada Node 2 kosong, lalu ketika terhubung ke cluster, maka Node 2 akan menerima database seperti pada database di Node 1
Jangan lupa untuk mencoba server pada mesin yang berbeda!
percobaan lanjutan
Berikut beberapa ide yang sempat terpikir dan sudah dicoba sedikit
Bagaimana jika kita membuat
aplikasi desktop dengan teknologi web
(HTML 5, JS, NodeJS, Node-webkit)
dan databasenya OrientDB (distributed)
lalu aplikasi didistribusikan di beberapa komputer,
dan saling terhubung
Orientdb, nodejs, node-webkit
Ketika aplikasi dijalankan, dengan menggunakan NodeJS kita menyalakan database OrientDB juga (memanggil .bat)
var exec = require('child_process').exec,
os = require('os'),
path = require('path'),
fs = require('fs');
dir = path.dirname(process.execPath);
var env = {};
env['ORIENTDB_HOME'] = dir + '\\db';
for(var i in process.env) if(process.env.hasOwnProperty(i)){
env[i] = process.env[i];
}
exec(dir + '\\db\\bin\\dserver.bat', {env: env, cwd:dir}, function(error, stdout, stderr){});
orientdb, nodejs, node-webkit
Yang harus diperhatikan adalah
bahwa untuk menjalankan OrientDB, harus diset terlebih dahulu ORIENTDB_HOME, lokasi dari OrientDB,
serta konfigurasi pada environment path,
seperti JAVA_HOME
Progress sejauh ini
- Aplikasi standalone dengan OrientDB
- Aplikasi distributed dengan OrientDB
Untuk aplikasi terdistribusi, database baik dalam 1 mesin maupun berbeda mesin, serta server pusat dapat terhubung satu sama lain, baik ketika tiba-tiba salah satu klien terputus, dan tersambung beberapa saat kemudian
Percobaan berhasil dilakukan!
Tinggal menunggu implementasi pada real-world apps