Implementasi Clustering
               Pada JEE Container




 Dikembangkan oleh :




Email :   cs@meruvian.org
  Phone : 021-985 644 17
Daftar Isi
Daftar Isi .......................................................................................................................................... 2


Bagian 1. Mengenal Cluster ........................................................................................................... 3
           1.1 Pengertian Cluster .......................................................................................................... 3
           1.2 Macam-macam Tipe Cluster ........................................................................................... 3


Bagian 2. Mengapa Menggunakan Cluster .................................................................................. 6
Bagian 3. Mengenal JEE Container .............................................................................................. 8
           3.1 Pengertian JEE Container ............................................................................................... 8
           3.2 Instalasi JEE Container .................................................................................................. 9


Bagian 4. Deploy Java Web Application (Yama) .......................................................................... 17
            4.1 Menyiapkan Kebutuhan Aplikasi ................................................................................... 17
            4.2 Deploy Yama diJEE Container ....................................................................................... 21


Bagian 5. Implementasi Cluster Pada Java Container ............................................................... 30
           5.1 Load Balance JEE Container dengan WebServer .......................................................... 30
           5.2 Fail Over dan Session Replication ................................................................................. 31
           5.3 Implementasi Load Balance, Fail Over dan Session Replication Pada Container ........ 32
                     5.3.1 Apache Tomcat .................................................................................................. 33
                     5.3.2 Glassfish ............................................................................................................ 42
                     5.3.3 Jboss .................................................................................................................. 52


Lampiran A :
            Meruvian Integrated Platform(MIP) versi.1.0 ..................................................................... 62




Created By Meruvian Cloud Team                                                                                                                            2
Bab 1
                                                                   Mengenal Cluster




1.1 Pengertian Cluster


Clustering merupakan sebuah metode untuk menghubungkan beberapa resource sistem untuk bekerja secara
bersama-sama layaknya sebuah single sistem.
Teknologi clustering telah ada sejak dekade 1980-an yang awalnya digunakan pada sistem VMS (Virtual
Memory System), yaitu sebuah Operating System yang diciptakan oleh Digital Equipment Corporation
(DEC) yang nantinya akan dikenal dengan OpenVMS


Pada umumnya teknologi clustering ini dimanfaatkan untuk load balance trafik pada sebuah situs atau
aplikasi dengan trafik yang tinggi.Namun pada perkembangannya cluster digunakan untuk melakukan paralel
processing yang mana metode ini dimanfaatkan oleh Hadoop.


1.2 Macam-macam Tipe Cluster


Pada implementasinya cluster terbagi menjadi dua metode, yaitu :

    • vertical clustering
    • horizontal clustering




Created By Meruvian Cloud Team                                                                         3
Vertical Clustering


Vertical cluster merupakan sebuah model untuk menjalankan beberapa member cluster-nya berada dalam satu
sistem.Pada




Pada tipe vertical cluster ini kita dapat menjalankan failover yang berjalan pada level application
server.Namun tidak pada level physicial server karena tipe ini menggunakan sebuah single server.


Horizontal Clustering


Horizontal cluster merupakan sebuah tipe cluster yang member cluster-nya berada pada sistem yang berbeda.




Pada tipe horizontal cluster, failover dapat dilakukan baik pada level physical server.



Created By Meruvian Cloud Team                                                                          4
Mixed Clustering



Tipe ini merupakan tipe gabungan antara horizontal cluster dan vertical cluster.Dengan lebihnya resource
yang dimiliki tipe ini mempunyai kemampuan untuk menghandle failover baik dari level physiclal atau
application server.




Created By Meruvian Cloud Team                                                                             5
Bab 2
                                 Mengapa Menggunakan Cluster ?



       Cluster merupakan sebuah terobosan yang sangat vital di era teknologi ini.Dengan semakin
banyaknya kebutuhan user dalam pemrosesan sebuah informasi, resource penyedia informasi harus
siap mengganti metode yang digunakan dari menggunakan single mesin menjadi mesin cluster untuk
meningkatkan performa dan juga mempercepat proses request dari user.
Ada beberapa hal yang mendasari mengapa paradigma teknologi beralih dari single mesin ke cluster
mesin diantaranya :


   •   Untuk membuat sebuah redundancy pada mesin cluster untuk mencegah terjadinya sistem
       down.Jikapun salah satu sistem mengalami down maka akan ada server replikasi pada server
       lain yang sedang berjalan.Inilahyang biasanya disebut dengan istilah failover




Created By Meruvian Cloud Team                                                                     6
•   Untuk meningkatkan performa aplikasi. Dengan metode cluster ini, server – server yang
       tergabung dalam sebuah cluster akan bekerja bersama-sama dalam memproses request dari user
       dalam jumlah banyak.Dengan demikian pemprosesan data yang ada pada cluster berjalan akan
       lebih cepat dibanding dengan pemrosesan pada single mesin.




Dengan adanya metode cluster tersebut, permasalah mengenai server down ataupun peningkatan
performa pada pemrosesan data yang besar akan teratasi.


Created By Meruvian Cloud Team                                                                    7
Bab 3
                                              Mengenal JEE Container

3.1 Pengertian JEE Container


       JEE Container merupakan sebuah interface yang menyediakan dukungan untuk komponen-
komponen aplikasi JEE, untuk me-manage dan men-deploy aplikasi java enterprise.
JEE menyediakan EJB container dan Web container di dalamnya.EJB container digunakan untuk
mengelola dan mengeksekusi Enterprise Bean.Sedangkan Web Container digunakan untuk mengelola
dan mengeksekusi servet.
Tipe package yang dapat berjalan pada JEE Container berupa Enterprise Archive (EAR), Java Archive
(JAR) dan Web Archive (WAR).


Beberapa macam JEE Container yang populer di kalangan java developer :
   •   Apache Tomcat
   •   Jetty
   •   Glassfish
   •   Jboss
   •   Weblogic
   •   dll


Untuk JEE container yang akan kita gunakan pada bab-bab selanjutnya untuk keperluan clustering dan

Created By Meruvian Cloud Team                                                                      8
high availability adalah Apache Tomcat, Glassfish dan Jboss.
Selanjutnya kita akan membahas langkah-langkah instalasi, deploy aplikasi ke dalam container sampai
dengan membuat cluster.


3.2 Instalasi JEE Container


A. Instalasi JAVA
Adapun langkah-langkah untuk menginstal java adalah sebagai berikut :
   1. Download JDK dari http://www.oracle.com/technetwork/java/javase/downloads/ .
   2. Setelah master installasi di dapat lakukan untar.
       $ tar xcvf        jdk-xxx-linux-xxx.tar.gz


   3. Setelah itu akan didapatkan file eksekusi jdk jdk-xxx-linux-xxx.sh , salin file tersebut ke /opt.
       $ sudo chmod 777 /opt
       $ cp     jdk-xxx-linux-xxx.sh /opt
       $ sudo chmod +x /op/ jdk-xxx-linux-xxx.sh


   4. Run file .sh untuk memulai instllasi jdk.
       $ cd /opt
       $ ./ jdk-xxx-linux-xxx.sh


   5. Proses installasi tadi akan membentuk sebuah folder berisi file java , rename-lah folder tersebut
       agar lebih mudah untuk proses-proses selanjutnya.


       $ mv jdkx_xxx/ Java


   6. Jika proses sukses lakukan pengeditan .bashrc dan profile untuk mengkonfigurasi
       JAVA_HOME.
       $ nano /home/meruvian/.bashrc


       Tambahkan baris berikut di bagian paling bawah :




Created By Meruvian Cloud Team                                                                            9
JAVA_HOME=/opt/Java
       PATH=$PATH:$JAVA_HOME/bin
       $ sudo nano /etc/profile


       Tambahkan juga baris tadi di bagian paling bawah
       Jangan untuk menyimpan konfigurasi di atas.
   7. Log out exit dari terminal untuk menerapkan hasil konfigurasi , jika benar lakukan perintah :


       $ java -version
       java version "1.x.x"
       Java(TM) SE Runtime Environment (build 1.6.0_23-b05)
       Java HotSpot(TM) Server VM (build 19.0-b09, mixed mode)


       Ini menandakan bahwa JAVA_HOME berhasil diterapkan di sistem dan siap 
       digunakan.


B. Apache Tomcat
Apache Tomcat merupakan software opensource untuk implementasi teknologi java servlct dan java
server pages.Java container ini berada di bawah lisensi apache.Versi terkahir Apache Tomcat ketika
buku ini ditulis adalah Apache Tomcatv7.029.
Untuk download, bisa kunjungi alamat http://tomcat.apache.org/


Instalasi
1.download apache tomcat versi tar.gz dari http://tomcat.apache.org/
2.extrak file apache-tomcat-7.0.29.tar.gz dengan perintah :
$ tar xzf apache-tomcat-7.0.29.tar.gz
3.masuk ke folder apache-tomcat-7.0.29/bin, kemudian tambahkan mode executable untuk semua file
.sh yang ada di dalam folder bin
$ cd apache-tomcat-7.0.29/bin
$ chmod +x *.sh
4.jalankan file catalina.sh atau startup.sh untuk menjalankan tomcat container
$ ./catalina.sh
atau

Created By Meruvian Cloud Team                                                                        10
$ ./startup.sh


Selanjutnya akses browser dan ketikkan url http://localhost:8080/ sehingga akan muncul halaman
seperti di bawah ini




C. Glassfish
Glassfish adalah sebuah aplikasi open source yang awalnya dikembangkan oleh Sun Micro System
untuk platform Java EE dan sekarang telah disponsori oleh Oracle Corporation dengan versi terbaru
dinamai Oracle Glassfish Server.Glassfish telah mendukung berbagai Enterprise seperti
JavaBeans,JPA,JavaServer Faces,JMS,RMI,JavaServer Pages,servlet,dll.
Ini memungkin pengembang (developer) untuk membuat aplikasi yang portabel dan terukur dan
terintegrasi.Glassfish juga menyediakan optional componen yang dapat ditambahkan.


Instalasi
Adapun langkah-langkah installasinya adalah sebagai berikut :
   1. Download versi terbaru Glassfish dari http://glassfish.java.net/downloads/ .
   2. Unzip master Glassfish yang telah didownload tadi.
       $ unzip Glassfish.zip

Created By Meruvian Cloud Team                                                                      11
3. Selanjutnya adalah yang bisa dilakukan melalui halaman admin dari web browser disebut DAS
       (Domain Administration Server) yang diaktifkan melalui shell Glassfish (asadmin).Domain
       standar yang disediakan oleh Glassfish adalah domain1.
       $ cd Glassfish/bin
       $ ./asadmin change-admin-password
       Enter      admin user name [default:admin] > admin
       Enter admin password> [enter]
       Enter new admin password> [password baru]
       Enter new admin password again> [password baru]


   4. Kemudian aktifkan secure-admin untuk menjalankan Glassfish dalam mode aman.
       $ ./asadmin start-domain domain1
       Enter admin user name>[admin]
       Enter admin password> [masukkan password]
       $ ./asadmin enable-secure-admin


       Kemudian restart Glassfish :
       $ ./asadmin restart-domain domain1
       Successfully restarted the domain
       Command restart-domain executed successfully.


       Atau melalui Web browser dengan alamat http://localhost:4848 , port 4848 adalah port standar
       yang digunakan oleh Glassfish agar dapat diakses via web browser oleh pengguna.


       Pada awalnya akan muncul peringatan SSL yang memberitahukan bahwa enable-secure-admin
       telah diterapkan.




Created By Meruvian Cloud Team                                                                    12
K
       Kemudian akan muncul halaman login Glassfish , login dengan username admin dan password
       yang sudah dibuat sebelumnya.




Created By Meruvian Cloud Team                                                               13
Kemudian akan muncul halaman admin Glassfish untuk keperluan administrasi server.Untuk
       melihat bahwa Glassfish telah berjalan akses juga http://localhost:8080




Created By Meruvian Cloud Team                                                                  14
C. Jboss
Jboss meuapakan application server yang mengimplementasikan Java EE di bawah lisensi GNU
LGPL.JBoss dikembangkan oleh oleh Jboss, salah satu divisi dari Red Hat.Versi terakhir saat buku ini
ditulis adalah versi 7.1
Jboss terbaru dapat didownload dari http://www.jboss.org/jbossas/downloads


Instalasi


   •   Unduh jboss-as-7.1.2.Final.zip dari situs resminya di
       http://www.jboss.org/jbossas/downloads.
   •   Ekstrak file tersebut ke dalam folder dengan perintah unzip
       $ unzip       jboss-as-7.1.2.Final.zip
   •   masuk ke dalam direktori jboss.
       $ cd Jboss-as-7.1.2
   •   Buat user admin untuk aplikasi jboss
       #./bin/add-user.sh
       <a> ManagementRealm
       <b> ApplicationRealm
       #Pilih yang <a>
       Enter the details of the new user to add.
       Realm (ManagementRealm) : <Enter>
       Username : admin
       Password : ******
       Re-enter Password : ******
       The username 'admin' is easy to guess
       Are you sure you want to add user 'admin' yes/no? yes
       About to add user 'admin' for realm 'ManagementRealm'
       Is this correct yes/no? yes
   •   Jalankan Web Server JBOSS dengan menggunakan perintah di bawah ini.
       $ ./bin/domain.sh
   •   Tunggu beberapa saat hingga Jboss selesai menjalankan semua servicenya.


Created By Meruvian Cloud Team                                                                     15
•   Buka web server Jboss di web browser dan masukkan link berikut untuk mengakses
       Administrator.
       http://localhost:9990/console/App.html




   •   Login dengan user dan password admin yang telah dibuat sebelumnya untuk login ke dalam
       dashboard.




Created By Meruvian Cloud Team                                                            16
Bab 4
                                         Deploy Java Web Application
                                                                                     (Yama)


       Pada bab ini kita akan mencoba untuk melakukan deploy aplikasi web kita ke dalam JEE
container yang telah kita siapkan pada bahasan sebelumnya.
Untuk aplikasi yang akan kita deploy pada bab ini adalah sebuah framework java berbasis web dengan
database mysql yang kita sebut dengan Yama (untuk informasi lebih detail mengenai yama bisa dibaca
di lampiran).


       Untuk itu kita akan melakukan beberapa persiapan seperti instalasi database, membuat database
di mysql, export project ke dalam bentuk war sampai pada tahapan deployment pada JEE Container.


4.1 Menyiapkan Kebutuhan Aplikasi
a. Instalasi Database Mysql
Untuk kebutuhan database kita memilih Mysql karena database ini cukup powerfull meskipun pada
dasarnya Yama bisa terhubung dengan berbagai macam database baik SQL Database maupun No-SQL
Database.
Untuk instalasi database ketikkan perintah di bawah ini di terminal :


Created By Meruvian Cloud Team                                                                    17
$ sudo apt-get install mysql-server


Tunggu beberapa menit untuk proses instalasi paket sampai kita menemui window untuk
mengkonfirmasi username dan password root database kita




Masukkan password untuk user root, lalu tekan enter.




Masukkan kembali untuk konfirmasi password user root, tekan enter untuk menyetujui.
Ketikkan perintah mysql -u root -p pada terminal untuk masuk ke mysql console :




Created By Meruvian Cloud Team                                                        18
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.            Commands end with ; or g.
Your MySQL connection id is 39
...
...
mysql>
b. Membuat Database Mysql
       Selanjutnya kita akan membuat database di Mysql untuk aplikasi Yama akan kita deploy
nantinya.
Untuk membuat database ikuti step-step di bawah ini :


1.Membuat database dengan nama “yama”
mysql> create database yama;
Query OK, 1 row affected (0.00 sec)


2.Membuat privelege database yama untuk user dengan nama 'yama'
mysql> grant all on yama.* to yama@localhost identified by 'yama';
Query OK, 0 rows affected (0.00 sec)


3.Menampilkan database
mysql> show databases;
+--------------------+
| Database                       |
+--------------------+
| information_schema |
| mysql                          |
| yama                           |
+--------------------+
3 rows in set (0.00 sec)


c. Konfigurasi Database di Yama


Sebelum user mengeksport aplikasi user menjadi .war terlebih dahulu user perlu memastikan bahwa

Created By Meruvian Cloud Team                                                                19
konfigurasi database yang user gunakan sudah sesuai dengan database yang berada di Azure.
Pada Yama, user dapat melihat konfigurasi database dengan mengakses file db.properties yang ada di
src/main/resources




Buka file db.properties dan sesuaikan dengan konfigurasi database yang telah kita buat sebelumnya :


db.url=jdbc:mysql://localhost:3306/yama
db.driver=com.mysql.jdbc.Driver
db.username=yama
db.password=password


Pada konfigurasi di atas kita menggunakan database yama, dengan username yama dan password
password.


d. Export .WAR Project


Created By Meruvian Cloud Team                                                                        20
Yama menggunakan maven, untuk itu user bisa mendapatkan file war dengan
dengan mengakses klik kanan pada project terpilih  Run As Maven Build




Lalu isikan perintah clean verify pada textbox goals.Klik tombol Run.
Selanjutnya buka folder target dan kita telah berhasil membuat file WAR yang akan kita deploy di JEE
Container nantinya.


4.2 Deploy Yama di JEE Container


a. Apache Tomcat
       Pada tahap ini kita akan melakukan deployment yama yang telah kita export ke dalam
bentuk .WAR ke dalam Apache Tomcat yang telah kita install pada bab sebelumnya.
Ikuti langkah-langkah di bawah ini untuk melakukan deploy yama di apache tomcat :


   •   Copy kan file .war ke dalam directory apache tomcat/webapps

Created By Meruvian Cloud Team                                                                    21
$ cp yama.war         apache-tomcat-7.0.29/webapps
   •   Jalankan apache-tomcat dengan mengeksekusi ./catalina.sh atau ./startup.sh
       ./catalina.sh run (menjalankan tomcat dengan menampilkan log)
       atau
       ./startup.sh (menjalankan tomcat sebagai service di background)
   •   Akses browser dan arahkan url ke http://localhost:8080/yama




Login dengan username admin dan password admin sebagai user dan password default.




b.Glassfish
Adapun langkah-langkah mendeploy Yama di Glassfish adalah sebagai berikut :
Jalankan glassfish dengan perintah ./asadmin start-domain
       $ ./asadmin start-domain
Akses dashboard glassfish melalui browser dengan alamat http://localhost:4848




Created By Meruvian Cloud Team                                                      22
Pilih Application kemudian klik Deploy untuk memulai deployment




    Kemudian masuk halaman Deploy Application




Created By Meruvian Cloud Team                                        23
Pilih file .war yang akan kita deploy dengan klik tombol choose file


    Kemudian pada halaman berikutnya pastikan bahwa Targets diarahkan ke server.




Created By Meruvian Cloud Team                                                     24
Kemudian klik OK untuk memulai deploy.


Jika proses berhasil , maka akan kembali ke halaman daftar aplikasi , dan di bagian terdapat aplikasi
yama yang sudah di deploy.




Klik Laucnh untuk mengakses aplikasi
Selanjutnya kita akan dibawa ke halaman yang menunjukkan url dari aplikasi yama yang telah kita
deploy.
Klik url tersebut sehingga kita mendapati halaman front end dari aplikasi yama seperti di bawah ini :




Created By Meruvian Cloud Team                                                                          25
c.Jboss
          Di bawah ini akan di jelaskan bagaimana langkah-langkah melakukan deployment file .WAR
(dalam hal ini kita menggunakan Yama) ke dalam Jboss.Pada tulisan ini Jboss yang digunakan adalah
Jboss application server versi 7.1.2.


Langkah-langkah deploy yama.war ke dalam Jboss:
   •      Unduh jboss-as-7.1.2.Final.zip dari situs resminya di
          http://www.jboss.org/jbossas/downloads.
   •      Ekstrak file tersebut ke dalam folder dengan perintah unzip
          $ unzip     jboss-as-7.1.2.Final.zip
   •      masuk ke dalam direktori jboss.
          $ cd Jboss-as-7.1.2
   •      Buat user admin untuk aplikasi jboss
          #./bin/add-user.sh
          <a> ManagementRealm
          <b> ApplicationRealm
          #Pilih yang <a>



Created By Meruvian Cloud Team                                                                     26
Enter the details of the new user to add.
       Realm (ManagementRealm) : <Enter>
       Username : admin
       Password : ******
       Re-enter Password : ******
       The username 'admin' is easy to guess
       Are you sure you want to add user 'admin' yes/no? yes
       About to add user 'admin' for realm 'ManagementRealm'
       Is this correct yes/no? yes
   •   Jalankan Web Server JBOSS dengan menggunakan perintah di bawah ini.
       $ ./bin/domain.sh
   •   Tunggu beberapa saat hingga Jboss selesai menjalankan semua servicenya.
   •   Buka web server Jboss di web browser dan masukkan link berikut untuk mengakses
       Administrator.




       http://localhost:9990/console/App.html
   •   Masukkan user dan password admin yang sebelumnya telah dibuat.
   •   Klik Manage Deployments pada tab Domain. Klik Add Content, klik Choose File, dan arahkan ke
       direktori file .war yama berada, klik Next.




Created By Meruvian Cloud Team                                                                 27
•   Otomatis aplikasi akan mendapatkan key algorithm yang berbeda setiap aplikasi yang dideploy, klik
       Save.




   •   Klik next untuk memulai pendeployan, tunggu beberapa saat, sampai proses selesai.




   •   Setelah semua proses selesai, jalankan aplikasi yama di web browser dengan mengakses alamat url
       http://localhost:8080/yama




Created By Meruvian Cloud Team                                                                           28
Created By Meruvian Cloud Team   29
Bab 5
                                                Implementasi Clustering
                                                         Pada Java Container


       Pada bab ini kita akan membahas tentang bagaimana mengimplementasikan clustering pada
beberapa JEE Container yang telah kita install pada bab sebelumnya.


5.1 Load Balance J2EE Container dengan Webserver




Created By Meruvian Cloud Team                                                                 30
Load Balance adalah pembagian beban pada server agar server dapat berjalan
seimbang.Contohnya jika pengguna mengakses sebuah situs halaman dengan domain tertentu
maka paket request akan sampai di server, kemudian load balancer yang telah dikonfigurasi
meneruskan request ke aplikasi-aplikasi yang telah disesuaikan domainnya untuk diproses ,
kemudian paket data dikembalikan lagi ke pengguna melalui port HTTP (80).Selain itu load
balance juga bertujuan untuk menyembunyikan port container seperti 8080 dari akses publik
Pada bahasan ini kita menggunakan Apache2 sebagai webserver yang digunakan untuk
forntend load balance.Untuk urusan load balancing ini Apache2 mempunya beberapa module
seperti mod_jk, mod_proxy ataupun module lain yang mempunyai fungsi sama.


5.2 Failover dan Session Replication




       FailOver adalah metode clustering dimana jika server utama mengalami DOWN, maka
dengan otomatis sistem akan mengalihkannya ke server lain yang sedang UP.
Metode penting bagi server yang bekerja dengan hit yang besar.
Lalu bagaimana cara server utama memindahkan paket-paket yang telah dikirim oleh client ke

Created By Meruvian Cloud Team                                                              31
server yang lain ketika server utama down ? Session Replication jawabnya
Session Replication, yaitu sebuah metode replikasi paket data pada instance server yang
berbeda.Metode inilah yang digunakan pada cluster untuk memindahkan paket data ke server
yang lain ketika server utama mengalami down.




5.3 Implementasi Load Balance, Failover dan Session Replication
    pada Java Container


Sebelum ke tahap selanjutnya ada baiknya kita mempersiapkan beberapa keperluan lain yang
akan kita gunakan untuk percobaan cluster ini :
A. Apache2




Install apache2 sebagai webserver yang akan kita gunakan sebagai frontend load balance.
$ sudo apt-get install apache2


Setelah proses instalasi selesai, buka browser dan ketikkan url http://localhost untuk memastikan
bahwa Apache2 Webserver sudah berjalan.




Created By Meruvian Cloud Team                                                                      32
5.3.1 Apache Tomcat


A.Load Balancing
       Kali ini kita akan mencoba membuat sebuah load balancing antara apache tomcat
dengan menggunakan HAProxy




Untuk itu kita memerlukan 2 buah apache tomcat v 7 dengan ketentuan beberapa port yaitu :


                      Port         Tomcat 1           Tomcat 2
                  Shutdown           8005               8105
                      Http           8080               8180


Created By Meruvian Cloud Team                                                              33
Ajp              8009                8109


Untuk mengganti port tersebut, kita bisa mengedit file server.xml yang berada di dalam folder
apache-tomcat/conf
Cari pada bagian di bawah ini, dan ganti sesuai dengan keterangan di atas :


shutdown
 <Server port="8005" shutdown="SHUTDOWN">
Http
 <Connector port="8080" protocol="HTTP/1.1"
                     connectionTimeout="20000"
                     redirectPort="8443" />
AJP
  <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


Selanjutnya jalankan masing-masing tomcat untuk memastikan bahwa tomcat berjalan dengan baik.
Apache Tomcat pertama dengan port http 8080




Apache Tomcat ke dua dengan port http 8180

Created By Meruvian Cloud Team                                                                  34
Konfigurasi HAProxy


Buka terminal dan eksekusi perintah di bawah ini :
download haproxy
$ wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.18.tar.gz
extrack haproxy
$ tar -zxf haproxy-1.4.18.tar.gz
install haproxy
$ cd haproxy-1.4.18
$ make install
Ketikkan perintah haproxy untuk memastikan bahwa haproxy berjalan dengan baik:
$ haproxy
HA-Proxy version 1.4.18 2011/09/16
Copyright 2000-2011 Willy Tarreau <w@1wt.eu>
Usage : haproxy [-f <cfgfile>]* [ -vdVD ] [ -n <maxconn> ] [ -N
<maxpconn> ]
 [ -p <pidfile> ] [ -m <max megs> ]



Created By Meruvian Cloud Team                                                   35
-v displays version ; -vv shows known build options.
 -d enters debug mode ; -db only disables background mode.
-V enters verbose mode (disables quiet mode)
 -D goes daemon
 -q quiet mode : don't display messages
 -c check mode : only check config files and exit
 -n sets the maximum total # of connections (2000)
     -m limits the usable amount of memory (in MB)
     -N sets the default, per-proxy maximum # of connections (2000)
     -p writes pids of all children to this file
     -sf/-st [pid ]* finishes/terminates old pids. Must be last arguments.


Buat folder haproxy di dalam /etc untuk menyimpan file konfigurasi haproxy
$ sudo mkdir /etc/haproxy
$ sudo nano /etc/haproxy/haproxy.cfg
Isikan dengan konfigurasi di bawah ini :
global
 log 127.0.0.1 local0
 log 127.0.0.1 local1 notice
 maxconn 4096
 daemon


defaults
 log global
 mode http
 option httplog
 option dontlognull
 retries 3
 option redispatch
 maxconn 2000
 contimeout 5000
 clitimeout 50000
 srvtimeout 50000




Created By Meruvian Cloud Team                                               36
frontend http-in
 bind *:80
           default_backend servers
backend servers
           option httpchk OPTIONS /
 option forwardfor
           stats enable
           stats refresh 10s
           stats hide-version
           stats scope           .
           stats uri             /admin?stats
           stats realm           Haproxy Statistics
           stats auth            admin:pass


 cookie JSESSIONID prefix
 server tomcat1 127.0.0.1:8080 cookie JSESSIONID_SERVER_1 check inter 5000
 server tomcat2 127.0.0.1:8180 cookie JSESSIONID_SERVER_2 check inter 5000


Perlu di ingat bahwa pada
stats auth          admin:pass
adalah username dan password untuk authentifikasi ketika kita masuk ke haproxy manager


 server tomcat1 127.0.0.1:8080 cookie JSESSIONID_SERVER_1 check inter 5000
 server tomcat2 127.0.0.1:8180 cookie JSESSIONID_SERVER_2 check inter 5000



Pada bagian yang bercetak tebal di atas adalah port http dari tomcat1 dan tomcat2 yang kita
masukkan ke dalam cluster.
Perlu di ingat, bahwa HaProxy yang kita konfigurasi menggunakan port 80, jadi matikan
terlebih dahulu apache webserver yang sedang berjalan untuk menghindari crash.
Konfigurasi membaca file konfigurasi file yang ada di haproxy.cfg


$ sudo haproxy -f /etc/haproxy/haproxy.cfg



Created By Meruvian Cloud Team                                                                37
Open browser dan akses url :
http://localhost/admin?stats
Login dengan username dan password yang telah kita buat sebelumnya di file haproxy.cfg




Warna merah pada service tomcat1 dan tomcat2 menandakan bahwa tidak ada tomcat yang sedang
berjalan.Jika di system terdapat tomcat yang tercluster yang sedang berjalan maka warna dari service
akan berubah menjadi hijau.


Sekarang kita jalankan apache tomcat1
$ apache-tomcat-6.1/bin/catalina.sh run


Pada HAProxy browser akan tampak, bahwa satu service tomcat kita telah running




Selanjutnya pastikan dua buah tomcat yang telah kita konfigurasi berjalan.Kita akan coba akses url host


Created By Meruvian Cloud Team                                                                         38
kita untuk memastikan bahwa cluster dan load balancing yang kita konfigurasi berhasil.
Masuk ke browser dan akses url http://localhost atau http://localhost/yama




Request yang dikirim oleh client akan diarahkan oleh HaProxy ke dalam Tomcat yang sedang
berjalan di dalam cluster.




Created By Meruvian Cloud Team                                                           39
B. Fail Over
        Untuk konfigurasi Apache-tomcat untuk keperluan failover cukup mudah.Sekarang pada
masing-masing apache tomcat yang telah kita konfigurasi pada bagian sebelumnya, edit file
server.xml di dalam folder ${TOMCAT_HOME}/conf/server.xml.
Tambahkan baris berikut di dalam file tersebut:


    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>


C. Session Replication
        Untuk mereplikasi aplikasi Yama yang akan kita deploy ke dalam apache tomcat, cukup
tambahkan tag <distributable/> di dalam file web.xml di dalam folder WEB-INF.


<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">


       <distributable/>
        …
        ...
</web-app>


Selanjutnya deploy seperti biasa dengan memindahkan file aplikasi dalam bentuk yama.war ke
dalam folder webapps di dalam apache tomcat.


Kita bisa melakukan beberapa skenario untuk memastikan bahwa konfigurasi berhasil dengan


   •    akses http://localhost/yama


Created By Meruvian Cloud Team                                                              40
•   login dengan username : admin password :admin
   •   Matikan server2 sementara server1 tetap hidup


                       Server 1               Server 2
                       Up                     Down


   •   Buka kembali browser dan pastikan bahwa kita tidak perlu login kembali meskipun ada
       satu server yang kita matikan.
   •   Selanjutnya hidupkan Server2 dan matikan Server1


                       Server 1               Server 2
                       Down                   Up


   •   Buat Crud Item di dalam form yama, dan pastikan ketika kita melakukan save data
       tersimpan.Hal ini menunjukkan bahwa failover dan session replikasi kita berhasil
       terkonfigurasi antar server tersebut




Created By Meruvian Cloud Team                                                            41
5.3.2 Glassfish
Pada bagian ini akan dibahas bagaimana cara melakukan cluster load balancing, fail over dan
session replication dengan menggunakan glassfishv3.


A. Load Balancing
1.Pastikan bahwa apache2 telah terinstall dengan benar.
2.Pastikan juga bahwa Glassfish sudah berjalan dengan baik.
  http://localhost:8080




Created By Meruvian Cloud Team                                                                42
3.Aktifkan modul proxy_http .
  $ sudo a2enmod proxy_http
  $ sudo service apache2 restart


4.Kemudian lakukan perubahan pada file konfigurasi apache2 di /etc/apache2/apache2.conf
  $ sudo nano /etc/apache2/apache2.conf
  masukkan baris berikut di baris paling bawah
  LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
5.Buat Virtual Host baru untuk mengatur Glassfish agar di-load balance oleh apache2.
  $ sudo nano /etc/apache2/sites-available/glassfish
  dengan isi :
    <VirtualHost *:80>
       ServerName glassfish.meruvian.com
       ProxyPass / http://localhost:8080/
       ProxyPassReverse / http://localhost:8080/
       ErrorLog /var/log/apache2/glassfish.error.log
         LogLevel warn
       CustomLog /var/log/apache2/glassfish.access.log combined
  </VirtualHost>
  glassfish.meruvian.com adalah nama host dimana Glassfish berjalan.
  Untuk menambahkannya edit /etc/hosts , dan tambahkan :

Created By Meruvian Cloud Team                                                            43
127.0.0.1         glassfish.meruvian.com
6.Kemudian enable konfigurasi virtual host tadi .
  $ sudo a2ensite glassfish
  $ sudo /etc/init.d/apache2 restart


7.Restart kembali Glassfish :
  $ cd Glassfish/bin/
  $ ./asadmin restart-domain


8.Akses http://glassfish.meruvian.com , jika berhasil maka akan muncul halaman seperti di
  bawah ini :




   9. Dalam penerapan dalam aplikasi Yama,jika konfigurasi load balance benar dan Yama
       telah di deploy sebelumnya maka Yama bisa langsung diakses di
       http://glassfish.meruvian.com/yama




Created By Meruvian Cloud Team                                                              44
B. Fail Over
       Glassfishv3 memiliki fitur GMS (Group Management Service) yang memang berfungsi
untuk mengatur beberapa metode clustering seperti failover dan session replication dengan
adanya menu baru yaitu 'Cluster'.Adapun langkah-langkah dalam mengkonfigurasi failover
pada glassfish adalah sebagai berikut :
   1. Pastikan Glassfish A dan B sudah dapat berjalan dengan baik pada port masing-masing
       (4848 dan 4838 ,8080 dan 8081).Pastikan juga bahwa load balance juga sudah berjalan
       baik seperti tutorial sebelumnya.
   2. Pertama buatlah cluster pada Glassfish A dengan perintah :
       $ ./asadmin create-cluster meruvian_local_cluster
   3. Kemudian buat instance dalam cluster di meruvian_local_cluster :
       $ ./asadmin create-local-instance –cluster meruvian_local_cluster
       local1
   4. Setelah beralihlah ke direktori Glassfish B dan buat instance pada cluster
       meruvian_local_cluster :
       $ ./asadmin –port 4848 create-local-instance –cluster
       meruvian_local_cluster local2
       [OUTPUT]
       JMX_SYSTEM_CONNECTOR_PORT=28692
       JMS_PROVIDER_PORT=27682


Created By Meruvian Cloud Team                                                              45
HTTP_LISTENER_PORT=28086
       ASADMIN_LISTENER_PORT=24854
       JAVA_DEBUGGER_PORT=29015
       IIOP_SSL_LISTENER_PORT=23826
       IIOP_LISTENER_PORT=23706
       OSGI_SHELL_TELNET_PORT=26672
       HTTP_SSL_LISTENER_PORT=28187
       IIOP_SSL_MUTUALAUTH_PORT=23926
       Command create-local-instance executed successfully.
   5. Pastikan bahwa kedua instance telah berhasil dibuat .




   6. Kemudian start cluster pada Glassfish A :
       $ asadmin start-cluster meruvian_local_cluster
   7. Kemudian start instance local2 di Glassfish B:
       $ asadmin start-local-instance --node localhost-domain1 --sync normal
       local2
   8. Pastikan keduanya sudah berjalan :




   9. Untuk memastikan cluster berjalan , testing lah dari segi aplikasi yaitu dari Yama.
       Pada aplikasi Yama yang sudah berjalan tambahkan target ke cluster
       meruvian_local_cluster.




Created By Meruvian Cloud Team                                                              46
Untuk menambahkan pilih manage target , dan add pada
       meruvian_local_cluster,kemudian Save




   10. Kemudian akses melalui Web Links .




Created By Meruvian Cloud Team                                47
[local1] http://glassfish1.meruvian.com:28085/yama menyatakan bahwa aplikasi yama
       telah dideploy di Glassfish A.
       [local1] http://glassfish1.meruvian.com:28086/yama menyatakan bahwa aplikasi yama
       sudah dideploy di Glassfish B.
   11. Untuk testing aplikasinya , klik pada http://glassfish1.meruvian.com:28085/yama dan
       http://glassfish1.meruvian.com:28086/yama .




Created By Meruvian Cloud Team                                                               48
12. Untuk memastikan bahwa failover berjalan , matikan service pada Glassfish A ,
       kemudian akses kembali pada port 28085 dimana aplikasi yama berjalan di Glassfish A.


                                 Glassfish A            Glassfish B
                                   Down                     UP


       Seharusnya jika failover berhasil maka aplikasi Yama tetap bisa dijalankan,




       aplikasi CRUD Yama juga tetap berjalan




Created By Meruvian Cloud Team                                                           49
13. Jika ingin dipadu dengan load balance , maka lakukan konfigurasi ulang pada
       /etc/apache2/sites-available/glassfish dan mengarahkan ProxyPass dan ProxyPass
       Reverse ke http://localhost:28085/ .
       Kemudian restart konfigurasi apache2
       $ sudo service apache2 restart
   14. Kemudian akses kembali http://glassfish.meruvian.com




C. Session Replication
       Untuk session replication sudah secara otomatis tercluster pada konfigurasi GMS di
       langkah failover sebelumnya.
       Tapi untuk memastikan bahwa session replication berhasil lakukan edit pada web.xml di
       Glassfish A dengan perintah :
       $ nano glassfish/domain/domain1/application/yama/WEB-INF/web.xml

       Edit web.xml pada aplikasi dan tambahkan tag <distributable/>

Created By Meruvian Cloud Team                                                              50
<?xml version="1.0" encoding="UTF-8"?>
       <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                                 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
       <description>Testing Session</description>
       <display-name>meruvian</display-name> <distributable/>
       <session-config> <session-timeout> 30</session-timeout> </session-
       config> </web-app>


       Tambahkan juga glassfish-web.xml pada direktori yang sama:


           <?xml version="1.0" encoding="UTF-8"?>
                 <glassfish-web-app error-url="">
                 <session-config> <cookie-properties> <property
                           name="cookieDomain" value="meruvian.com"/>
               </cookie-properties> </session-config> </glassfish-web-app>




       Kemudian restart kembali Glassfish A.
       Untuk mengetest session replication buat juga skenario dengan menginputkan data di
       form CRUD di saat service Glassfish A dan B dalam keadaan UP.


                                 Glassfish A            Glassfish B
                                    UP                      UP




Created By Meruvian Cloud Team                                                              51
Masukkan data pada form




       Matikan service Glassfish A
       $./asadmin stop-domain

       Jika session replication yang sudah dipadu dengan load balance dan failover berhasil
       maka ketika tombol Save dipilih maka aplikasi tetap berjalan dan memasukkan semua
       data pada form ke Database , dan kemudian akan menampilkan hasilnya.




Created By Meruvian Cloud Team                                                                52
5.3.3 JBoss


Pada tahap ini akan dijelaskan cara membangun clustering vertikal dengan menggunakan
container Jboss AS7 Final dan dengan aplikasi Yama.
Sebelumnya , diperlukan beberapa aplikasi yang perlu dipersiapkan sebelum membangun
clustering, antara lain :
   •   Untuk membangun clustering secara vertikal diperlukan beberapa kebutuhan antara lain:
   •   Untuk server menggunakan Sistem Operasi Ubuntu 12.04 Precise
   •   Menggunakan Jboss AS7.1 FInal
   •   Menggunakan Java6
   •   Menggunakan aplikasi yama
   •   Menggunakan MySQL sebagai database aplikasi yama
   •   Menggunaan mod_cluster untuk load balancing dan session replication


Skenario yang akan dijalankan adalah sebagai berikut :


   •   Menggunakan standalone mode dalam membangun cluster vertikal antara 2 node di
       dalam server yang sama
   • Konfigurasi akan difokuskan pada file standalone-ha.xml
   • Menggunakan mod_cluster sebagai load balancing dan session replication
   • Menggunakan IP kelas C, yaitu 192.168.2.20 dan port 8180 dan 8280




Created By Meruvian Cloud Team                                                            53
A. Load Balance
Di bawah ini merupakan langkah-langkah membangun load balancing di Jboss AS7, aplikasi
yang digunakan untuk load balancing adalah mod_cluster.
   •   Untuk aplikasi kontainer yang gunakan adalah Jboss AS7 dan file yang digunakan
       adalah jboss-as-7.1.0.Final.tar.gz yang dapat diunduh di
       http://www.jboss.org/jbossas/downloads.
   •   Ekstrak file tersebut ke dalam folder /opt. Dengan perintah tar -zxvf
   •   Buat dua node dengan menggunakan nama standalone-node1 dan standalone-node2
   •   Buat user admin untuk kedua node dengan menggunakan perintah di bawah ini
       #./bin/add-user.sh
       <a> ManagementRealm
       <b> ApplicationRealm
       #Pilih yang <a>
       Enter the details of the new user to add.
       Realm (ManagementRealm) : <Enter>
       Username : admin
       Password : ******


Created By Meruvian Cloud Team                                                          54
Re-enter Password : ******
       The username 'admin' is easy to guess
       Are you sure you want to add user 'admin' yes/no? yes
       About to add user 'admin' for realm 'ManagementRealm'
       Is this correct yes/no? yes
   •   Ubah konfigurasi standalone.conf yang berada di direktori /bin pada setiap node.
       ...
       JAVA_OPTS="$JAVA_OPTS              -Djboss.server.default.config=standalone-
       ha.xml"
   •   Berikan nama setiap node
       Standalone-node1
       <server name="node1" xmlns="urn:jboss:domain:1.2">
       Standalone-node2
       <server name="node2" xmlns="urn:jboss:domain:1.2">
   •   mod_cluster yang digunakan dalam clustering ini adalah versi 1.2.0 Final, unduh file
       mod_cluster versi terbaru di http://www.jboss.org/mod_cluster/downloads/
   •   Pilih bundle yang binaries linux2-x86, unduh kemudian ekstrak pada direkori /opt
   •   Konfigurasi file httpd.conf dengan konfigurasi dibawah ini.
Listen 192.168.2.20:80
<IfModule manager_module>
CreateBalancers 1
Maxsessionid 1
       <VirtualHost 192.168.2.20:80>
               <Directory />
               Order deny,allow
               Deny from all
               Allow from 192.168.2.
       </Directory>
       <Location /mod_cluster_manager>
               SetHandler mod_cluster-manager
               Order deny,allow
               Deny from all
               Allow from 192.168.2.

Created By Meruvian Cloud Team                                                            55
</Location>
LogLevel debug
ProxyPass /yama balancer://yama/ stickysession=JSESSIONID|jsessionid
nofailover=On
ProxyPassReverse /yama balancer://yama/
       <Location /yama>
               SetHandler yama
       </Location>
KeepAliveTimeout 60
MaxKeepAliveRequests 0
ManagerBalancerName yama
AdvertiseFrequency 5
EnableMCPMReceive
AllowDisplay On
</VirtualHost>
</IfModule>


   •   Pastikan port :80 tidak sedang digunakan oleh aplikasi lain misalnya apache, jalankan aplikasi
       dengan perintah di bawah ini.
       $ sudo ./sbin/apachectl start


   •   Jalankan aplikasi di web browser dengan menggunakan link berikut
http://192.168.2.20/mod_cluster_manager




   •   Tambahkan fungsi proxy-list pada konfigurasi domain:modcluster


Created By Meruvian Cloud Team                                                                    56
<subsystem xmlns="urn:jboss:domain:modcluster:1.0">
       <mod-cluster-config advertise-socket="modcluster" proxy-
       list="192.168.2.20:80" connector=”ajp”>
   •   Pada domain:weld ubah ip adress lokal interfaces menjadi ip address server
       <subsystem xmlns="urn:jboss:domain:weld:1.0"/>
       </profile>
       <interfaces>
       <interface name="management">
       <inet-address value="$
       {jboss.bind.address.management:192.168.2.20}"/>
       </interface>
       <interface name="public">
       <inet-address value="${jboss.bind.address:192.168.2.20}"/>
       </interface>
       <interface name="unsecure">
       <inet-address value="$
       {jboss.bind.address.unsecure:192.168.2.20}"/>
       </interface>
   •   Ubah port pada domain:weld dengan menambahkan 100 untuk standalone-node1 dan 200
       untuk standalone-node2
       <socket-binding name="ajp" port="8109"/>
       <socket-binding name="ajp" port="8209"/>
   •   Tes pada salah satu server jboss
       $ cd /opt/standalone-node1/bin/
       $ sudo ./standalone.sh -u 230.0.0.4

       -Djboss.server.base.dir=../standalone

   •   Buka aplikasi yama yang telah di load balancer di web browser dengan url berikut:
       http://192.168.2.20/yama




Created By Meruvian Cloud Team                                                             57
B. Fail Over
Jboss Application Server memiliki fitur Clustering dan Failover, dengan adanya fitur failover,
kemungkinan downtime server bisa diminimalisir, fungsi failover di Jboss hampir sama dengan
fungsi failover pada umumnya, Berikut tahapan menggunakan failover di Jboss.
   •   Pastikan server standalone-node1 dan standalone-node2 sudah berjalan dengan baik.
   •   Pastikan juga Load Balance telah berjalan
   •   Untuk mengecek kedua node telah berjalan dan port node yang digunakan dapat
       mengakses aplikasi mod_cluster di web browser




Created By Meruvian Cloud Team                                                                   58
•   Buka aplikasi yama yang telah di load balancing di web browser
   •   Login ke dalam aplikasi dengan username dan password admin
   •   Uji Failover dengan mematikan salah satu node, misal standalone-node2 dengan
       menekan tombol Ctrl + C.
   •   Jika aplikasi tetap berjalan, berarti failover telah berjalan di cluster vertikal
   •   Uji dengan sebaliknya, misal mematikan standalone-node2 dan standalone-node1 dalam
       keadaan menyala




Created By Meruvian Cloud Team                                                             59
C. Session Replication
       Untuk menggunakan session replication pada setiap node, hanya perlu menambahkan
beberapa konfigurasi melanjutkan konfigurasi di load balancing.
   •   Tambahkan konfigurasi instance-id pada konfigurasi domain:web
       Standalone-node1
           <subsystem            xmlns="urn:jboss:domain:web:1.1"           default-virtual-
           server="default-host" instance-id="node1" native="false">
       Standalone-node2
           <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-
           server="default-host" instance-id="node2" native="false">
   •   Tambahkan fungsi sticky session pada konfigurasi domain:modcluster
       <subsystem xmlns="urn:jboss:domain:modcluster:1.0">
       <mod-cluster-config advertise-socket="modcluster"
       balancer="yama" sticky-session="true" sticky-session-
       force="false" proxy-list="192.168.2.20:80" connector=”ajp”>
       <dynamic-load-provider history="9" decay="2">
       <load-metric type="cpu"/>
       </dynamic-load-provider>
       </mod-cluster-config>
       </subsystem>
   •   Jalankan kedua node dengan perintah di bawah ini.

Created By Meruvian Cloud Team                                                            60
•   Cek kedua node telah berjalan dan aplikasi yama telah dideploy pada mod_cluster
   •   Buka aplikasi yama yang telah di load balancer di web browser dengan url berikut:
   •   Buat User baru di tab CRUD EXAMPLE dan sebelum menekan tombol SAVE, tes
       terlebih dahulu session replication tiap node, matikan salah satu node, misal standalone-
       node2.




   •   Klik SAVE
   •   Jika aplikasi tetap berjalan, berarti session replication telah berjalan di cluster vertikal
   •   Uji dengan sebaliknya, misal mematikan standalone-node2 dan standalone-node1 dalam
       keadaan menyala




Created By Meruvian Cloud Team                                                                        61
Created By Meruvian Cloud Team   62
Lampiran A :
                                 Meruvian Integrated Platform(MIP) versi.1.0


Pengantar

        Jauh sebelum Meruvian didirikan, sampai saat buku ini dibuat, yaitu 2001 dibawah
BlueOxygen, sampai ditahun 2010 diputuskan Meruvian mengembangkan engine yang serupa tetapi
lebih ringan dan memiliki skalabilitas. Konsep pengembangan adalah membuat sebuah engine atau
platform yang memudahkan pengembangan, dan telah menjadi dasar dari solusi sejak didirikannya,
kami menyebutnya MIP (Meruvian Integrated Platform)

Meruvian Integration Platform(MIP) merupakan platform integrasi berbasis RESTful yang digunakan
untuk menciptakan solusi pengembangan aplikasi secara lebih cepat. MIP terdapat 2 core model yaitu
Yama dan Midas. Dalam platform ini Yama digunakan sebagai server dan Midas sebagai
client(Aplikasi Android), keduanya berkomunikasi satu sama lain dengan menggunakan mekanisme
REST.

        MIP merupakan platform yang bersifat opensource dengan menggunakan Apache License.
Sehingga dapat dengan mudah dikembangkan. MIP juga mendukung teknologi berbasis cloud dan
middleware sehingga dapat dengan mudah dikolaborasikan.

        Arsitektur yang digunakan pada MIP Server atau Yama dapat diintegrasikan dengan berbagai
komponen mengacu 3 layer yaitu Model View Controller. Hibernate dipilih sebagai solusi Model,
Spring sebagai IoC dan Struts2 sebagai Controller. Kemudian layer diatasnya akan menghasilkan
output berupa JSON/XML --merupakan sebuah plugins REST untuk Struts2, dapat diakses di
http://s2restplugins-java.net) -- yang dapat diintegrasikan dengan Android, Browser atau mobility




Created By Meruvian Cloud Team                                                                 63
Arsitektur Yama

Sekilas mengenai MIP :

      -) Pengembangan aplikasi secara lebih cepat

      -) Total REST Platform – Consumer & Producer

      -) Solusi lengkap: Cloud, Middleware untuk pengembangan solusi mobile

      -) Integration Project dari IAAS ke PAAS maupun ke SAAS dan diintegrasikan dengan aplikasi
      mobile

      -) OpenSource menggunakan Apache License

      -) Terintegrasi dengan program Link-&-Match Meruvian

Adapun fitur-fitur pada MIP, meliputi :




Created By Meruvian Cloud Team                                                               64
1. MIP Server

MIP Server yang dikembangkan berbasis REST Service yang dapat diintegrasikan dengan MIP Client
yang berupa aplikasi mobile. Mekanisme pengembangannya berupa platform integrasi (SpringMVC,
Hibernate, JPA), (Struts2, Hibernate, JPA). Sehingga, untuk pengembangan aplikasi menjadi sangat
mudah dan cepat dengan adanya Pattern Platform yang dapat mempercepat proses pembuatan aplikasi
yang sudah disediakan pada MIP Server.

Nama Proyek: Yama (http://yama.java.net)

2. MIP Client

Solusi mobile application baik menggunakan aplikasi android yang dikembangkan sebagai client dari
integrasi MIP.

Nama Proyek: Midas (http://midas.java.net)




Created By Meruvian Cloud Team                                                                65
Lampiran B :




         Tertarik Untuk Implementasi Clustering di
                                 Environtment Anda ?
                                       Hubungi kami di :


                                  Email :   cs@meruvian.org
                                    Phone : 021-985 644 17




Created By Meruvian Cloud Team                                  66

Implementasi clustering pada jee container

  • 1.
    Implementasi Clustering Pada JEE Container Dikembangkan oleh : Email : cs@meruvian.org Phone : 021-985 644 17
  • 2.
    Daftar Isi Daftar Isi.......................................................................................................................................... 2 Bagian 1. Mengenal Cluster ........................................................................................................... 3 1.1 Pengertian Cluster .......................................................................................................... 3 1.2 Macam-macam Tipe Cluster ........................................................................................... 3 Bagian 2. Mengapa Menggunakan Cluster .................................................................................. 6 Bagian 3. Mengenal JEE Container .............................................................................................. 8 3.1 Pengertian JEE Container ............................................................................................... 8 3.2 Instalasi JEE Container .................................................................................................. 9 Bagian 4. Deploy Java Web Application (Yama) .......................................................................... 17 4.1 Menyiapkan Kebutuhan Aplikasi ................................................................................... 17 4.2 Deploy Yama diJEE Container ....................................................................................... 21 Bagian 5. Implementasi Cluster Pada Java Container ............................................................... 30 5.1 Load Balance JEE Container dengan WebServer .......................................................... 30 5.2 Fail Over dan Session Replication ................................................................................. 31 5.3 Implementasi Load Balance, Fail Over dan Session Replication Pada Container ........ 32 5.3.1 Apache Tomcat .................................................................................................. 33 5.3.2 Glassfish ............................................................................................................ 42 5.3.3 Jboss .................................................................................................................. 52 Lampiran A : Meruvian Integrated Platform(MIP) versi.1.0 ..................................................................... 62 Created By Meruvian Cloud Team 2
  • 3.
    Bab 1 Mengenal Cluster 1.1 Pengertian Cluster Clustering merupakan sebuah metode untuk menghubungkan beberapa resource sistem untuk bekerja secara bersama-sama layaknya sebuah single sistem. Teknologi clustering telah ada sejak dekade 1980-an yang awalnya digunakan pada sistem VMS (Virtual Memory System), yaitu sebuah Operating System yang diciptakan oleh Digital Equipment Corporation (DEC) yang nantinya akan dikenal dengan OpenVMS Pada umumnya teknologi clustering ini dimanfaatkan untuk load balance trafik pada sebuah situs atau aplikasi dengan trafik yang tinggi.Namun pada perkembangannya cluster digunakan untuk melakukan paralel processing yang mana metode ini dimanfaatkan oleh Hadoop. 1.2 Macam-macam Tipe Cluster Pada implementasinya cluster terbagi menjadi dua metode, yaitu : • vertical clustering • horizontal clustering Created By Meruvian Cloud Team 3
  • 4.
    Vertical Clustering Vertical clustermerupakan sebuah model untuk menjalankan beberapa member cluster-nya berada dalam satu sistem.Pada Pada tipe vertical cluster ini kita dapat menjalankan failover yang berjalan pada level application server.Namun tidak pada level physicial server karena tipe ini menggunakan sebuah single server. Horizontal Clustering Horizontal cluster merupakan sebuah tipe cluster yang member cluster-nya berada pada sistem yang berbeda. Pada tipe horizontal cluster, failover dapat dilakukan baik pada level physical server. Created By Meruvian Cloud Team 4
  • 5.
    Mixed Clustering Tipe inimerupakan tipe gabungan antara horizontal cluster dan vertical cluster.Dengan lebihnya resource yang dimiliki tipe ini mempunyai kemampuan untuk menghandle failover baik dari level physiclal atau application server. Created By Meruvian Cloud Team 5
  • 6.
    Bab 2 Mengapa Menggunakan Cluster ? Cluster merupakan sebuah terobosan yang sangat vital di era teknologi ini.Dengan semakin banyaknya kebutuhan user dalam pemrosesan sebuah informasi, resource penyedia informasi harus siap mengganti metode yang digunakan dari menggunakan single mesin menjadi mesin cluster untuk meningkatkan performa dan juga mempercepat proses request dari user. Ada beberapa hal yang mendasari mengapa paradigma teknologi beralih dari single mesin ke cluster mesin diantaranya : • Untuk membuat sebuah redundancy pada mesin cluster untuk mencegah terjadinya sistem down.Jikapun salah satu sistem mengalami down maka akan ada server replikasi pada server lain yang sedang berjalan.Inilahyang biasanya disebut dengan istilah failover Created By Meruvian Cloud Team 6
  • 7.
    Untuk meningkatkan performa aplikasi. Dengan metode cluster ini, server – server yang tergabung dalam sebuah cluster akan bekerja bersama-sama dalam memproses request dari user dalam jumlah banyak.Dengan demikian pemprosesan data yang ada pada cluster berjalan akan lebih cepat dibanding dengan pemrosesan pada single mesin. Dengan adanya metode cluster tersebut, permasalah mengenai server down ataupun peningkatan performa pada pemrosesan data yang besar akan teratasi. Created By Meruvian Cloud Team 7
  • 8.
    Bab 3 Mengenal JEE Container 3.1 Pengertian JEE Container JEE Container merupakan sebuah interface yang menyediakan dukungan untuk komponen- komponen aplikasi JEE, untuk me-manage dan men-deploy aplikasi java enterprise. JEE menyediakan EJB container dan Web container di dalamnya.EJB container digunakan untuk mengelola dan mengeksekusi Enterprise Bean.Sedangkan Web Container digunakan untuk mengelola dan mengeksekusi servet. Tipe package yang dapat berjalan pada JEE Container berupa Enterprise Archive (EAR), Java Archive (JAR) dan Web Archive (WAR). Beberapa macam JEE Container yang populer di kalangan java developer : • Apache Tomcat • Jetty • Glassfish • Jboss • Weblogic • dll Untuk JEE container yang akan kita gunakan pada bab-bab selanjutnya untuk keperluan clustering dan Created By Meruvian Cloud Team 8
  • 9.
    high availability adalahApache Tomcat, Glassfish dan Jboss. Selanjutnya kita akan membahas langkah-langkah instalasi, deploy aplikasi ke dalam container sampai dengan membuat cluster. 3.2 Instalasi JEE Container A. Instalasi JAVA Adapun langkah-langkah untuk menginstal java adalah sebagai berikut : 1. Download JDK dari http://www.oracle.com/technetwork/java/javase/downloads/ . 2. Setelah master installasi di dapat lakukan untar. $ tar xcvf jdk-xxx-linux-xxx.tar.gz 3. Setelah itu akan didapatkan file eksekusi jdk jdk-xxx-linux-xxx.sh , salin file tersebut ke /opt. $ sudo chmod 777 /opt $ cp jdk-xxx-linux-xxx.sh /opt $ sudo chmod +x /op/ jdk-xxx-linux-xxx.sh 4. Run file .sh untuk memulai instllasi jdk. $ cd /opt $ ./ jdk-xxx-linux-xxx.sh 5. Proses installasi tadi akan membentuk sebuah folder berisi file java , rename-lah folder tersebut agar lebih mudah untuk proses-proses selanjutnya. $ mv jdkx_xxx/ Java 6. Jika proses sukses lakukan pengeditan .bashrc dan profile untuk mengkonfigurasi JAVA_HOME. $ nano /home/meruvian/.bashrc Tambahkan baris berikut di bagian paling bawah : Created By Meruvian Cloud Team 9
  • 10.
    JAVA_HOME=/opt/Java PATH=$PATH:$JAVA_HOME/bin $ sudo nano /etc/profile Tambahkan juga baris tadi di bagian paling bawah Jangan untuk menyimpan konfigurasi di atas. 7. Log out exit dari terminal untuk menerapkan hasil konfigurasi , jika benar lakukan perintah : $ java -version java version "1.x.x" Java(TM) SE Runtime Environment (build 1.6.0_23-b05) Java HotSpot(TM) Server VM (build 19.0-b09, mixed mode) Ini menandakan bahwa JAVA_HOME berhasil diterapkan di sistem dan siap  digunakan. B. Apache Tomcat Apache Tomcat merupakan software opensource untuk implementasi teknologi java servlct dan java server pages.Java container ini berada di bawah lisensi apache.Versi terkahir Apache Tomcat ketika buku ini ditulis adalah Apache Tomcatv7.029. Untuk download, bisa kunjungi alamat http://tomcat.apache.org/ Instalasi 1.download apache tomcat versi tar.gz dari http://tomcat.apache.org/ 2.extrak file apache-tomcat-7.0.29.tar.gz dengan perintah : $ tar xzf apache-tomcat-7.0.29.tar.gz 3.masuk ke folder apache-tomcat-7.0.29/bin, kemudian tambahkan mode executable untuk semua file .sh yang ada di dalam folder bin $ cd apache-tomcat-7.0.29/bin $ chmod +x *.sh 4.jalankan file catalina.sh atau startup.sh untuk menjalankan tomcat container $ ./catalina.sh atau Created By Meruvian Cloud Team 10
  • 11.
    $ ./startup.sh Selanjutnya aksesbrowser dan ketikkan url http://localhost:8080/ sehingga akan muncul halaman seperti di bawah ini C. Glassfish Glassfish adalah sebuah aplikasi open source yang awalnya dikembangkan oleh Sun Micro System untuk platform Java EE dan sekarang telah disponsori oleh Oracle Corporation dengan versi terbaru dinamai Oracle Glassfish Server.Glassfish telah mendukung berbagai Enterprise seperti JavaBeans,JPA,JavaServer Faces,JMS,RMI,JavaServer Pages,servlet,dll. Ini memungkin pengembang (developer) untuk membuat aplikasi yang portabel dan terukur dan terintegrasi.Glassfish juga menyediakan optional componen yang dapat ditambahkan. Instalasi Adapun langkah-langkah installasinya adalah sebagai berikut : 1. Download versi terbaru Glassfish dari http://glassfish.java.net/downloads/ . 2. Unzip master Glassfish yang telah didownload tadi. $ unzip Glassfish.zip Created By Meruvian Cloud Team 11
  • 12.
    3. Selanjutnya adalahyang bisa dilakukan melalui halaman admin dari web browser disebut DAS (Domain Administration Server) yang diaktifkan melalui shell Glassfish (asadmin).Domain standar yang disediakan oleh Glassfish adalah domain1. $ cd Glassfish/bin $ ./asadmin change-admin-password Enter admin user name [default:admin] > admin Enter admin password> [enter] Enter new admin password> [password baru] Enter new admin password again> [password baru] 4. Kemudian aktifkan secure-admin untuk menjalankan Glassfish dalam mode aman. $ ./asadmin start-domain domain1 Enter admin user name>[admin] Enter admin password> [masukkan password] $ ./asadmin enable-secure-admin Kemudian restart Glassfish : $ ./asadmin restart-domain domain1 Successfully restarted the domain Command restart-domain executed successfully. Atau melalui Web browser dengan alamat http://localhost:4848 , port 4848 adalah port standar yang digunakan oleh Glassfish agar dapat diakses via web browser oleh pengguna. Pada awalnya akan muncul peringatan SSL yang memberitahukan bahwa enable-secure-admin telah diterapkan. Created By Meruvian Cloud Team 12
  • 13.
    K Kemudian akan muncul halaman login Glassfish , login dengan username admin dan password yang sudah dibuat sebelumnya. Created By Meruvian Cloud Team 13
  • 14.
    Kemudian akan munculhalaman admin Glassfish untuk keperluan administrasi server.Untuk melihat bahwa Glassfish telah berjalan akses juga http://localhost:8080 Created By Meruvian Cloud Team 14
  • 15.
    C. Jboss Jboss meuapakanapplication server yang mengimplementasikan Java EE di bawah lisensi GNU LGPL.JBoss dikembangkan oleh oleh Jboss, salah satu divisi dari Red Hat.Versi terakhir saat buku ini ditulis adalah versi 7.1 Jboss terbaru dapat didownload dari http://www.jboss.org/jbossas/downloads Instalasi • Unduh jboss-as-7.1.2.Final.zip dari situs resminya di http://www.jboss.org/jbossas/downloads. • Ekstrak file tersebut ke dalam folder dengan perintah unzip $ unzip jboss-as-7.1.2.Final.zip • masuk ke dalam direktori jboss. $ cd Jboss-as-7.1.2 • Buat user admin untuk aplikasi jboss #./bin/add-user.sh <a> ManagementRealm <b> ApplicationRealm #Pilih yang <a> Enter the details of the new user to add. Realm (ManagementRealm) : <Enter> Username : admin Password : ****** Re-enter Password : ****** The username 'admin' is easy to guess Are you sure you want to add user 'admin' yes/no? yes About to add user 'admin' for realm 'ManagementRealm' Is this correct yes/no? yes • Jalankan Web Server JBOSS dengan menggunakan perintah di bawah ini. $ ./bin/domain.sh • Tunggu beberapa saat hingga Jboss selesai menjalankan semua servicenya. Created By Meruvian Cloud Team 15
  • 16.
    Buka web server Jboss di web browser dan masukkan link berikut untuk mengakses Administrator. http://localhost:9990/console/App.html • Login dengan user dan password admin yang telah dibuat sebelumnya untuk login ke dalam dashboard. Created By Meruvian Cloud Team 16
  • 17.
    Bab 4 Deploy Java Web Application (Yama) Pada bab ini kita akan mencoba untuk melakukan deploy aplikasi web kita ke dalam JEE container yang telah kita siapkan pada bahasan sebelumnya. Untuk aplikasi yang akan kita deploy pada bab ini adalah sebuah framework java berbasis web dengan database mysql yang kita sebut dengan Yama (untuk informasi lebih detail mengenai yama bisa dibaca di lampiran). Untuk itu kita akan melakukan beberapa persiapan seperti instalasi database, membuat database di mysql, export project ke dalam bentuk war sampai pada tahapan deployment pada JEE Container. 4.1 Menyiapkan Kebutuhan Aplikasi a. Instalasi Database Mysql Untuk kebutuhan database kita memilih Mysql karena database ini cukup powerfull meskipun pada dasarnya Yama bisa terhubung dengan berbagai macam database baik SQL Database maupun No-SQL Database. Untuk instalasi database ketikkan perintah di bawah ini di terminal : Created By Meruvian Cloud Team 17
  • 18.
    $ sudo apt-getinstall mysql-server Tunggu beberapa menit untuk proses instalasi paket sampai kita menemui window untuk mengkonfirmasi username dan password root database kita Masukkan password untuk user root, lalu tekan enter. Masukkan kembali untuk konfirmasi password user root, tekan enter untuk menyetujui. Ketikkan perintah mysql -u root -p pada terminal untuk masuk ke mysql console : Created By Meruvian Cloud Team 18
  • 19.
    $ mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 39 ... ... mysql> b. Membuat Database Mysql Selanjutnya kita akan membuat database di Mysql untuk aplikasi Yama akan kita deploy nantinya. Untuk membuat database ikuti step-step di bawah ini : 1.Membuat database dengan nama “yama” mysql> create database yama; Query OK, 1 row affected (0.00 sec) 2.Membuat privelege database yama untuk user dengan nama 'yama' mysql> grant all on yama.* to yama@localhost identified by 'yama'; Query OK, 0 rows affected (0.00 sec) 3.Menampilkan database mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | yama | +--------------------+ 3 rows in set (0.00 sec) c. Konfigurasi Database di Yama Sebelum user mengeksport aplikasi user menjadi .war terlebih dahulu user perlu memastikan bahwa Created By Meruvian Cloud Team 19
  • 20.
    konfigurasi database yanguser gunakan sudah sesuai dengan database yang berada di Azure. Pada Yama, user dapat melihat konfigurasi database dengan mengakses file db.properties yang ada di src/main/resources Buka file db.properties dan sesuaikan dengan konfigurasi database yang telah kita buat sebelumnya : db.url=jdbc:mysql://localhost:3306/yama db.driver=com.mysql.jdbc.Driver db.username=yama db.password=password Pada konfigurasi di atas kita menggunakan database yama, dengan username yama dan password password. d. Export .WAR Project Created By Meruvian Cloud Team 20
  • 21.
    Yama menggunakan maven,untuk itu user bisa mendapatkan file war dengan dengan mengakses klik kanan pada project terpilih Run As Maven Build Lalu isikan perintah clean verify pada textbox goals.Klik tombol Run. Selanjutnya buka folder target dan kita telah berhasil membuat file WAR yang akan kita deploy di JEE Container nantinya. 4.2 Deploy Yama di JEE Container a. Apache Tomcat Pada tahap ini kita akan melakukan deployment yama yang telah kita export ke dalam bentuk .WAR ke dalam Apache Tomcat yang telah kita install pada bab sebelumnya. Ikuti langkah-langkah di bawah ini untuk melakukan deploy yama di apache tomcat : • Copy kan file .war ke dalam directory apache tomcat/webapps Created By Meruvian Cloud Team 21
  • 22.
    $ cp yama.war apache-tomcat-7.0.29/webapps • Jalankan apache-tomcat dengan mengeksekusi ./catalina.sh atau ./startup.sh ./catalina.sh run (menjalankan tomcat dengan menampilkan log) atau ./startup.sh (menjalankan tomcat sebagai service di background) • Akses browser dan arahkan url ke http://localhost:8080/yama Login dengan username admin dan password admin sebagai user dan password default. b.Glassfish Adapun langkah-langkah mendeploy Yama di Glassfish adalah sebagai berikut : Jalankan glassfish dengan perintah ./asadmin start-domain $ ./asadmin start-domain Akses dashboard glassfish melalui browser dengan alamat http://localhost:4848 Created By Meruvian Cloud Team 22
  • 23.
    Pilih Application kemudianklik Deploy untuk memulai deployment Kemudian masuk halaman Deploy Application Created By Meruvian Cloud Team 23
  • 24.
    Pilih file .waryang akan kita deploy dengan klik tombol choose file Kemudian pada halaman berikutnya pastikan bahwa Targets diarahkan ke server. Created By Meruvian Cloud Team 24
  • 25.
    Kemudian klik OKuntuk memulai deploy. Jika proses berhasil , maka akan kembali ke halaman daftar aplikasi , dan di bagian terdapat aplikasi yama yang sudah di deploy. Klik Laucnh untuk mengakses aplikasi Selanjutnya kita akan dibawa ke halaman yang menunjukkan url dari aplikasi yama yang telah kita deploy. Klik url tersebut sehingga kita mendapati halaman front end dari aplikasi yama seperti di bawah ini : Created By Meruvian Cloud Team 25
  • 26.
    c.Jboss Di bawah ini akan di jelaskan bagaimana langkah-langkah melakukan deployment file .WAR (dalam hal ini kita menggunakan Yama) ke dalam Jboss.Pada tulisan ini Jboss yang digunakan adalah Jboss application server versi 7.1.2. Langkah-langkah deploy yama.war ke dalam Jboss: • Unduh jboss-as-7.1.2.Final.zip dari situs resminya di http://www.jboss.org/jbossas/downloads. • Ekstrak file tersebut ke dalam folder dengan perintah unzip $ unzip jboss-as-7.1.2.Final.zip • masuk ke dalam direktori jboss. $ cd Jboss-as-7.1.2 • Buat user admin untuk aplikasi jboss #./bin/add-user.sh <a> ManagementRealm <b> ApplicationRealm #Pilih yang <a> Created By Meruvian Cloud Team 26
  • 27.
    Enter the detailsof the new user to add. Realm (ManagementRealm) : <Enter> Username : admin Password : ****** Re-enter Password : ****** The username 'admin' is easy to guess Are you sure you want to add user 'admin' yes/no? yes About to add user 'admin' for realm 'ManagementRealm' Is this correct yes/no? yes • Jalankan Web Server JBOSS dengan menggunakan perintah di bawah ini. $ ./bin/domain.sh • Tunggu beberapa saat hingga Jboss selesai menjalankan semua servicenya. • Buka web server Jboss di web browser dan masukkan link berikut untuk mengakses Administrator. http://localhost:9990/console/App.html • Masukkan user dan password admin yang sebelumnya telah dibuat. • Klik Manage Deployments pada tab Domain. Klik Add Content, klik Choose File, dan arahkan ke direktori file .war yama berada, klik Next. Created By Meruvian Cloud Team 27
  • 28.
    Otomatis aplikasi akan mendapatkan key algorithm yang berbeda setiap aplikasi yang dideploy, klik Save. • Klik next untuk memulai pendeployan, tunggu beberapa saat, sampai proses selesai. • Setelah semua proses selesai, jalankan aplikasi yama di web browser dengan mengakses alamat url http://localhost:8080/yama Created By Meruvian Cloud Team 28
  • 29.
    Created By MeruvianCloud Team 29
  • 30.
    Bab 5 Implementasi Clustering Pada Java Container Pada bab ini kita akan membahas tentang bagaimana mengimplementasikan clustering pada beberapa JEE Container yang telah kita install pada bab sebelumnya. 5.1 Load Balance J2EE Container dengan Webserver Created By Meruvian Cloud Team 30
  • 31.
    Load Balance adalahpembagian beban pada server agar server dapat berjalan seimbang.Contohnya jika pengguna mengakses sebuah situs halaman dengan domain tertentu maka paket request akan sampai di server, kemudian load balancer yang telah dikonfigurasi meneruskan request ke aplikasi-aplikasi yang telah disesuaikan domainnya untuk diproses , kemudian paket data dikembalikan lagi ke pengguna melalui port HTTP (80).Selain itu load balance juga bertujuan untuk menyembunyikan port container seperti 8080 dari akses publik Pada bahasan ini kita menggunakan Apache2 sebagai webserver yang digunakan untuk forntend load balance.Untuk urusan load balancing ini Apache2 mempunya beberapa module seperti mod_jk, mod_proxy ataupun module lain yang mempunyai fungsi sama. 5.2 Failover dan Session Replication FailOver adalah metode clustering dimana jika server utama mengalami DOWN, maka dengan otomatis sistem akan mengalihkannya ke server lain yang sedang UP. Metode penting bagi server yang bekerja dengan hit yang besar. Lalu bagaimana cara server utama memindahkan paket-paket yang telah dikirim oleh client ke Created By Meruvian Cloud Team 31
  • 32.
    server yang lainketika server utama down ? Session Replication jawabnya Session Replication, yaitu sebuah metode replikasi paket data pada instance server yang berbeda.Metode inilah yang digunakan pada cluster untuk memindahkan paket data ke server yang lain ketika server utama mengalami down. 5.3 Implementasi Load Balance, Failover dan Session Replication pada Java Container Sebelum ke tahap selanjutnya ada baiknya kita mempersiapkan beberapa keperluan lain yang akan kita gunakan untuk percobaan cluster ini : A. Apache2 Install apache2 sebagai webserver yang akan kita gunakan sebagai frontend load balance. $ sudo apt-get install apache2 Setelah proses instalasi selesai, buka browser dan ketikkan url http://localhost untuk memastikan bahwa Apache2 Webserver sudah berjalan. Created By Meruvian Cloud Team 32
  • 33.
    5.3.1 Apache Tomcat A.LoadBalancing Kali ini kita akan mencoba membuat sebuah load balancing antara apache tomcat dengan menggunakan HAProxy Untuk itu kita memerlukan 2 buah apache tomcat v 7 dengan ketentuan beberapa port yaitu : Port Tomcat 1 Tomcat 2 Shutdown 8005 8105 Http 8080 8180 Created By Meruvian Cloud Team 33
  • 34.
    Ajp 8009 8109 Untuk mengganti port tersebut, kita bisa mengedit file server.xml yang berada di dalam folder apache-tomcat/conf Cari pada bagian di bawah ini, dan ganti sesuai dengan keterangan di atas : shutdown <Server port="8005" shutdown="SHUTDOWN"> Http <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> AJP <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> Selanjutnya jalankan masing-masing tomcat untuk memastikan bahwa tomcat berjalan dengan baik. Apache Tomcat pertama dengan port http 8080 Apache Tomcat ke dua dengan port http 8180 Created By Meruvian Cloud Team 34
  • 35.
    Konfigurasi HAProxy Buka terminaldan eksekusi perintah di bawah ini : download haproxy $ wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.18.tar.gz extrack haproxy $ tar -zxf haproxy-1.4.18.tar.gz install haproxy $ cd haproxy-1.4.18 $ make install Ketikkan perintah haproxy untuk memastikan bahwa haproxy berjalan dengan baik: $ haproxy HA-Proxy version 1.4.18 2011/09/16 Copyright 2000-2011 Willy Tarreau <w@1wt.eu> Usage : haproxy [-f <cfgfile>]* [ -vdVD ] [ -n <maxconn> ] [ -N <maxpconn> ] [ -p <pidfile> ] [ -m <max megs> ] Created By Meruvian Cloud Team 35
  • 36.
    -v displays version; -vv shows known build options. -d enters debug mode ; -db only disables background mode. -V enters verbose mode (disables quiet mode) -D goes daemon -q quiet mode : don't display messages -c check mode : only check config files and exit -n sets the maximum total # of connections (2000) -m limits the usable amount of memory (in MB) -N sets the default, per-proxy maximum # of connections (2000) -p writes pids of all children to this file -sf/-st [pid ]* finishes/terminates old pids. Must be last arguments. Buat folder haproxy di dalam /etc untuk menyimpan file konfigurasi haproxy $ sudo mkdir /etc/haproxy $ sudo nano /etc/haproxy/haproxy.cfg Isikan dengan konfigurasi di bawah ini : global log 127.0.0.1 local0 log 127.0.0.1 local1 notice maxconn 4096 daemon defaults log global mode http option httplog option dontlognull retries 3 option redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 Created By Meruvian Cloud Team 36
  • 37.
    frontend http-in bind*:80 default_backend servers backend servers option httpchk OPTIONS / option forwardfor stats enable stats refresh 10s stats hide-version stats scope . stats uri /admin?stats stats realm Haproxy Statistics stats auth admin:pass cookie JSESSIONID prefix server tomcat1 127.0.0.1:8080 cookie JSESSIONID_SERVER_1 check inter 5000 server tomcat2 127.0.0.1:8180 cookie JSESSIONID_SERVER_2 check inter 5000 Perlu di ingat bahwa pada stats auth admin:pass adalah username dan password untuk authentifikasi ketika kita masuk ke haproxy manager server tomcat1 127.0.0.1:8080 cookie JSESSIONID_SERVER_1 check inter 5000 server tomcat2 127.0.0.1:8180 cookie JSESSIONID_SERVER_2 check inter 5000 Pada bagian yang bercetak tebal di atas adalah port http dari tomcat1 dan tomcat2 yang kita masukkan ke dalam cluster. Perlu di ingat, bahwa HaProxy yang kita konfigurasi menggunakan port 80, jadi matikan terlebih dahulu apache webserver yang sedang berjalan untuk menghindari crash. Konfigurasi membaca file konfigurasi file yang ada di haproxy.cfg $ sudo haproxy -f /etc/haproxy/haproxy.cfg Created By Meruvian Cloud Team 37
  • 38.
    Open browser danakses url : http://localhost/admin?stats Login dengan username dan password yang telah kita buat sebelumnya di file haproxy.cfg Warna merah pada service tomcat1 dan tomcat2 menandakan bahwa tidak ada tomcat yang sedang berjalan.Jika di system terdapat tomcat yang tercluster yang sedang berjalan maka warna dari service akan berubah menjadi hijau. Sekarang kita jalankan apache tomcat1 $ apache-tomcat-6.1/bin/catalina.sh run Pada HAProxy browser akan tampak, bahwa satu service tomcat kita telah running Selanjutnya pastikan dua buah tomcat yang telah kita konfigurasi berjalan.Kita akan coba akses url host Created By Meruvian Cloud Team 38
  • 39.
    kita untuk memastikanbahwa cluster dan load balancing yang kita konfigurasi berhasil. Masuk ke browser dan akses url http://localhost atau http://localhost/yama Request yang dikirim oleh client akan diarahkan oleh HaProxy ke dalam Tomcat yang sedang berjalan di dalam cluster. Created By Meruvian Cloud Team 39
  • 40.
    B. Fail Over Untuk konfigurasi Apache-tomcat untuk keperluan failover cukup mudah.Sekarang pada masing-masing apache tomcat yang telah kita konfigurasi pada bagian sebelumnya, edit file server.xml di dalam folder ${TOMCAT_HOME}/conf/server.xml. Tambahkan baris berikut di dalam file tersebut: <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> C. Session Replication Untuk mereplikasi aplikasi Yama yang akan kita deploy ke dalam apache tomcat, cukup tambahkan tag <distributable/> di dalam file web.xml di dalam folder WEB-INF. <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <distributable/> … ... </web-app> Selanjutnya deploy seperti biasa dengan memindahkan file aplikasi dalam bentuk yama.war ke dalam folder webapps di dalam apache tomcat. Kita bisa melakukan beberapa skenario untuk memastikan bahwa konfigurasi berhasil dengan • akses http://localhost/yama Created By Meruvian Cloud Team 40
  • 41.
    login dengan username : admin password :admin • Matikan server2 sementara server1 tetap hidup Server 1 Server 2 Up Down • Buka kembali browser dan pastikan bahwa kita tidak perlu login kembali meskipun ada satu server yang kita matikan. • Selanjutnya hidupkan Server2 dan matikan Server1 Server 1 Server 2 Down Up • Buat Crud Item di dalam form yama, dan pastikan ketika kita melakukan save data tersimpan.Hal ini menunjukkan bahwa failover dan session replikasi kita berhasil terkonfigurasi antar server tersebut Created By Meruvian Cloud Team 41
  • 42.
    5.3.2 Glassfish Pada bagianini akan dibahas bagaimana cara melakukan cluster load balancing, fail over dan session replication dengan menggunakan glassfishv3. A. Load Balancing 1.Pastikan bahwa apache2 telah terinstall dengan benar. 2.Pastikan juga bahwa Glassfish sudah berjalan dengan baik. http://localhost:8080 Created By Meruvian Cloud Team 42
  • 43.
    3.Aktifkan modul proxy_http. $ sudo a2enmod proxy_http $ sudo service apache2 restart 4.Kemudian lakukan perubahan pada file konfigurasi apache2 di /etc/apache2/apache2.conf $ sudo nano /etc/apache2/apache2.conf masukkan baris berikut di baris paling bawah LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so 5.Buat Virtual Host baru untuk mengatur Glassfish agar di-load balance oleh apache2. $ sudo nano /etc/apache2/sites-available/glassfish dengan isi : <VirtualHost *:80> ServerName glassfish.meruvian.com ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ ErrorLog /var/log/apache2/glassfish.error.log LogLevel warn CustomLog /var/log/apache2/glassfish.access.log combined </VirtualHost> glassfish.meruvian.com adalah nama host dimana Glassfish berjalan. Untuk menambahkannya edit /etc/hosts , dan tambahkan : Created By Meruvian Cloud Team 43
  • 44.
    127.0.0.1 glassfish.meruvian.com 6.Kemudian enable konfigurasi virtual host tadi . $ sudo a2ensite glassfish $ sudo /etc/init.d/apache2 restart 7.Restart kembali Glassfish : $ cd Glassfish/bin/ $ ./asadmin restart-domain 8.Akses http://glassfish.meruvian.com , jika berhasil maka akan muncul halaman seperti di bawah ini : 9. Dalam penerapan dalam aplikasi Yama,jika konfigurasi load balance benar dan Yama telah di deploy sebelumnya maka Yama bisa langsung diakses di http://glassfish.meruvian.com/yama Created By Meruvian Cloud Team 44
  • 45.
    B. Fail Over Glassfishv3 memiliki fitur GMS (Group Management Service) yang memang berfungsi untuk mengatur beberapa metode clustering seperti failover dan session replication dengan adanya menu baru yaitu 'Cluster'.Adapun langkah-langkah dalam mengkonfigurasi failover pada glassfish adalah sebagai berikut : 1. Pastikan Glassfish A dan B sudah dapat berjalan dengan baik pada port masing-masing (4848 dan 4838 ,8080 dan 8081).Pastikan juga bahwa load balance juga sudah berjalan baik seperti tutorial sebelumnya. 2. Pertama buatlah cluster pada Glassfish A dengan perintah : $ ./asadmin create-cluster meruvian_local_cluster 3. Kemudian buat instance dalam cluster di meruvian_local_cluster : $ ./asadmin create-local-instance –cluster meruvian_local_cluster local1 4. Setelah beralihlah ke direktori Glassfish B dan buat instance pada cluster meruvian_local_cluster : $ ./asadmin –port 4848 create-local-instance –cluster meruvian_local_cluster local2 [OUTPUT] JMX_SYSTEM_CONNECTOR_PORT=28692 JMS_PROVIDER_PORT=27682 Created By Meruvian Cloud Team 45
  • 46.
    HTTP_LISTENER_PORT=28086 ASADMIN_LISTENER_PORT=24854 JAVA_DEBUGGER_PORT=29015 IIOP_SSL_LISTENER_PORT=23826 IIOP_LISTENER_PORT=23706 OSGI_SHELL_TELNET_PORT=26672 HTTP_SSL_LISTENER_PORT=28187 IIOP_SSL_MUTUALAUTH_PORT=23926 Command create-local-instance executed successfully. 5. Pastikan bahwa kedua instance telah berhasil dibuat . 6. Kemudian start cluster pada Glassfish A : $ asadmin start-cluster meruvian_local_cluster 7. Kemudian start instance local2 di Glassfish B: $ asadmin start-local-instance --node localhost-domain1 --sync normal local2 8. Pastikan keduanya sudah berjalan : 9. Untuk memastikan cluster berjalan , testing lah dari segi aplikasi yaitu dari Yama. Pada aplikasi Yama yang sudah berjalan tambahkan target ke cluster meruvian_local_cluster. Created By Meruvian Cloud Team 46
  • 47.
    Untuk menambahkan pilihmanage target , dan add pada meruvian_local_cluster,kemudian Save 10. Kemudian akses melalui Web Links . Created By Meruvian Cloud Team 47
  • 48.
    [local1] http://glassfish1.meruvian.com:28085/yama menyatakanbahwa aplikasi yama telah dideploy di Glassfish A. [local1] http://glassfish1.meruvian.com:28086/yama menyatakan bahwa aplikasi yama sudah dideploy di Glassfish B. 11. Untuk testing aplikasinya , klik pada http://glassfish1.meruvian.com:28085/yama dan http://glassfish1.meruvian.com:28086/yama . Created By Meruvian Cloud Team 48
  • 49.
    12. Untuk memastikanbahwa failover berjalan , matikan service pada Glassfish A , kemudian akses kembali pada port 28085 dimana aplikasi yama berjalan di Glassfish A. Glassfish A Glassfish B Down UP Seharusnya jika failover berhasil maka aplikasi Yama tetap bisa dijalankan, aplikasi CRUD Yama juga tetap berjalan Created By Meruvian Cloud Team 49
  • 50.
    13. Jika ingindipadu dengan load balance , maka lakukan konfigurasi ulang pada /etc/apache2/sites-available/glassfish dan mengarahkan ProxyPass dan ProxyPass Reverse ke http://localhost:28085/ . Kemudian restart konfigurasi apache2 $ sudo service apache2 restart 14. Kemudian akses kembali http://glassfish.meruvian.com C. Session Replication Untuk session replication sudah secara otomatis tercluster pada konfigurasi GMS di langkah failover sebelumnya. Tapi untuk memastikan bahwa session replication berhasil lakukan edit pada web.xml di Glassfish A dengan perintah : $ nano glassfish/domain/domain1/application/yama/WEB-INF/web.xml Edit web.xml pada aplikasi dan tambahkan tag <distributable/> Created By Meruvian Cloud Team 50
  • 51.
    <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <description>Testing Session</description> <display-name>meruvian</display-name> <distributable/> <session-config> <session-timeout> 30</session-timeout> </session- config> </web-app> Tambahkan juga glassfish-web.xml pada direktori yang sama: <?xml version="1.0" encoding="UTF-8"?> <glassfish-web-app error-url=""> <session-config> <cookie-properties> <property name="cookieDomain" value="meruvian.com"/> </cookie-properties> </session-config> </glassfish-web-app> Kemudian restart kembali Glassfish A. Untuk mengetest session replication buat juga skenario dengan menginputkan data di form CRUD di saat service Glassfish A dan B dalam keadaan UP. Glassfish A Glassfish B UP UP Created By Meruvian Cloud Team 51
  • 52.
    Masukkan data padaform Matikan service Glassfish A $./asadmin stop-domain Jika session replication yang sudah dipadu dengan load balance dan failover berhasil maka ketika tombol Save dipilih maka aplikasi tetap berjalan dan memasukkan semua data pada form ke Database , dan kemudian akan menampilkan hasilnya. Created By Meruvian Cloud Team 52
  • 53.
    5.3.3 JBoss Pada tahapini akan dijelaskan cara membangun clustering vertikal dengan menggunakan container Jboss AS7 Final dan dengan aplikasi Yama. Sebelumnya , diperlukan beberapa aplikasi yang perlu dipersiapkan sebelum membangun clustering, antara lain : • Untuk membangun clustering secara vertikal diperlukan beberapa kebutuhan antara lain: • Untuk server menggunakan Sistem Operasi Ubuntu 12.04 Precise • Menggunakan Jboss AS7.1 FInal • Menggunakan Java6 • Menggunakan aplikasi yama • Menggunakan MySQL sebagai database aplikasi yama • Menggunaan mod_cluster untuk load balancing dan session replication Skenario yang akan dijalankan adalah sebagai berikut : • Menggunakan standalone mode dalam membangun cluster vertikal antara 2 node di dalam server yang sama • Konfigurasi akan difokuskan pada file standalone-ha.xml • Menggunakan mod_cluster sebagai load balancing dan session replication • Menggunakan IP kelas C, yaitu 192.168.2.20 dan port 8180 dan 8280 Created By Meruvian Cloud Team 53
  • 54.
    A. Load Balance Dibawah ini merupakan langkah-langkah membangun load balancing di Jboss AS7, aplikasi yang digunakan untuk load balancing adalah mod_cluster. • Untuk aplikasi kontainer yang gunakan adalah Jboss AS7 dan file yang digunakan adalah jboss-as-7.1.0.Final.tar.gz yang dapat diunduh di http://www.jboss.org/jbossas/downloads. • Ekstrak file tersebut ke dalam folder /opt. Dengan perintah tar -zxvf • Buat dua node dengan menggunakan nama standalone-node1 dan standalone-node2 • Buat user admin untuk kedua node dengan menggunakan perintah di bawah ini #./bin/add-user.sh <a> ManagementRealm <b> ApplicationRealm #Pilih yang <a> Enter the details of the new user to add. Realm (ManagementRealm) : <Enter> Username : admin Password : ****** Created By Meruvian Cloud Team 54
  • 55.
    Re-enter Password :****** The username 'admin' is easy to guess Are you sure you want to add user 'admin' yes/no? yes About to add user 'admin' for realm 'ManagementRealm' Is this correct yes/no? yes • Ubah konfigurasi standalone.conf yang berada di direktori /bin pada setiap node. ... JAVA_OPTS="$JAVA_OPTS -Djboss.server.default.config=standalone- ha.xml" • Berikan nama setiap node Standalone-node1 <server name="node1" xmlns="urn:jboss:domain:1.2"> Standalone-node2 <server name="node2" xmlns="urn:jboss:domain:1.2"> • mod_cluster yang digunakan dalam clustering ini adalah versi 1.2.0 Final, unduh file mod_cluster versi terbaru di http://www.jboss.org/mod_cluster/downloads/ • Pilih bundle yang binaries linux2-x86, unduh kemudian ekstrak pada direkori /opt • Konfigurasi file httpd.conf dengan konfigurasi dibawah ini. Listen 192.168.2.20:80 <IfModule manager_module> CreateBalancers 1 Maxsessionid 1 <VirtualHost 192.168.2.20:80> <Directory /> Order deny,allow Deny from all Allow from 192.168.2. </Directory> <Location /mod_cluster_manager> SetHandler mod_cluster-manager Order deny,allow Deny from all Allow from 192.168.2. Created By Meruvian Cloud Team 55
  • 56.
    </Location> LogLevel debug ProxyPass /yamabalancer://yama/ stickysession=JSESSIONID|jsessionid nofailover=On ProxyPassReverse /yama balancer://yama/ <Location /yama> SetHandler yama </Location> KeepAliveTimeout 60 MaxKeepAliveRequests 0 ManagerBalancerName yama AdvertiseFrequency 5 EnableMCPMReceive AllowDisplay On </VirtualHost> </IfModule> • Pastikan port :80 tidak sedang digunakan oleh aplikasi lain misalnya apache, jalankan aplikasi dengan perintah di bawah ini. $ sudo ./sbin/apachectl start • Jalankan aplikasi di web browser dengan menggunakan link berikut http://192.168.2.20/mod_cluster_manager • Tambahkan fungsi proxy-list pada konfigurasi domain:modcluster Created By Meruvian Cloud Team 56
  • 57.
    <subsystem xmlns="urn:jboss:domain:modcluster:1.0"> <mod-cluster-config advertise-socket="modcluster" proxy- list="192.168.2.20:80" connector=”ajp”> • Pada domain:weld ubah ip adress lokal interfaces menjadi ip address server <subsystem xmlns="urn:jboss:domain:weld:1.0"/> </profile> <interfaces> <interface name="management"> <inet-address value="$ {jboss.bind.address.management:192.168.2.20}"/> </interface> <interface name="public"> <inet-address value="${jboss.bind.address:192.168.2.20}"/> </interface> <interface name="unsecure"> <inet-address value="$ {jboss.bind.address.unsecure:192.168.2.20}"/> </interface> • Ubah port pada domain:weld dengan menambahkan 100 untuk standalone-node1 dan 200 untuk standalone-node2 <socket-binding name="ajp" port="8109"/> <socket-binding name="ajp" port="8209"/> • Tes pada salah satu server jboss $ cd /opt/standalone-node1/bin/ $ sudo ./standalone.sh -u 230.0.0.4 -Djboss.server.base.dir=../standalone • Buka aplikasi yama yang telah di load balancer di web browser dengan url berikut: http://192.168.2.20/yama Created By Meruvian Cloud Team 57
  • 58.
    B. Fail Over JbossApplication Server memiliki fitur Clustering dan Failover, dengan adanya fitur failover, kemungkinan downtime server bisa diminimalisir, fungsi failover di Jboss hampir sama dengan fungsi failover pada umumnya, Berikut tahapan menggunakan failover di Jboss. • Pastikan server standalone-node1 dan standalone-node2 sudah berjalan dengan baik. • Pastikan juga Load Balance telah berjalan • Untuk mengecek kedua node telah berjalan dan port node yang digunakan dapat mengakses aplikasi mod_cluster di web browser Created By Meruvian Cloud Team 58
  • 59.
    Buka aplikasi yama yang telah di load balancing di web browser • Login ke dalam aplikasi dengan username dan password admin • Uji Failover dengan mematikan salah satu node, misal standalone-node2 dengan menekan tombol Ctrl + C. • Jika aplikasi tetap berjalan, berarti failover telah berjalan di cluster vertikal • Uji dengan sebaliknya, misal mematikan standalone-node2 dan standalone-node1 dalam keadaan menyala Created By Meruvian Cloud Team 59
  • 60.
    C. Session Replication Untuk menggunakan session replication pada setiap node, hanya perlu menambahkan beberapa konfigurasi melanjutkan konfigurasi di load balancing. • Tambahkan konfigurasi instance-id pada konfigurasi domain:web Standalone-node1 <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual- server="default-host" instance-id="node1" native="false"> Standalone-node2 <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual- server="default-host" instance-id="node2" native="false"> • Tambahkan fungsi sticky session pada konfigurasi domain:modcluster <subsystem xmlns="urn:jboss:domain:modcluster:1.0"> <mod-cluster-config advertise-socket="modcluster" balancer="yama" sticky-session="true" sticky-session- force="false" proxy-list="192.168.2.20:80" connector=”ajp”> <dynamic-load-provider history="9" decay="2"> <load-metric type="cpu"/> </dynamic-load-provider> </mod-cluster-config> </subsystem> • Jalankan kedua node dengan perintah di bawah ini. Created By Meruvian Cloud Team 60
  • 61.
    Cek kedua node telah berjalan dan aplikasi yama telah dideploy pada mod_cluster • Buka aplikasi yama yang telah di load balancer di web browser dengan url berikut: • Buat User baru di tab CRUD EXAMPLE dan sebelum menekan tombol SAVE, tes terlebih dahulu session replication tiap node, matikan salah satu node, misal standalone- node2. • Klik SAVE • Jika aplikasi tetap berjalan, berarti session replication telah berjalan di cluster vertikal • Uji dengan sebaliknya, misal mematikan standalone-node2 dan standalone-node1 dalam keadaan menyala Created By Meruvian Cloud Team 61
  • 62.
    Created By MeruvianCloud Team 62
  • 63.
    Lampiran A : Meruvian Integrated Platform(MIP) versi.1.0 Pengantar Jauh sebelum Meruvian didirikan, sampai saat buku ini dibuat, yaitu 2001 dibawah BlueOxygen, sampai ditahun 2010 diputuskan Meruvian mengembangkan engine yang serupa tetapi lebih ringan dan memiliki skalabilitas. Konsep pengembangan adalah membuat sebuah engine atau platform yang memudahkan pengembangan, dan telah menjadi dasar dari solusi sejak didirikannya, kami menyebutnya MIP (Meruvian Integrated Platform) Meruvian Integration Platform(MIP) merupakan platform integrasi berbasis RESTful yang digunakan untuk menciptakan solusi pengembangan aplikasi secara lebih cepat. MIP terdapat 2 core model yaitu Yama dan Midas. Dalam platform ini Yama digunakan sebagai server dan Midas sebagai client(Aplikasi Android), keduanya berkomunikasi satu sama lain dengan menggunakan mekanisme REST. MIP merupakan platform yang bersifat opensource dengan menggunakan Apache License. Sehingga dapat dengan mudah dikembangkan. MIP juga mendukung teknologi berbasis cloud dan middleware sehingga dapat dengan mudah dikolaborasikan. Arsitektur yang digunakan pada MIP Server atau Yama dapat diintegrasikan dengan berbagai komponen mengacu 3 layer yaitu Model View Controller. Hibernate dipilih sebagai solusi Model, Spring sebagai IoC dan Struts2 sebagai Controller. Kemudian layer diatasnya akan menghasilkan output berupa JSON/XML --merupakan sebuah plugins REST untuk Struts2, dapat diakses di http://s2restplugins-java.net) -- yang dapat diintegrasikan dengan Android, Browser atau mobility Created By Meruvian Cloud Team 63
  • 64.
    Arsitektur Yama Sekilas mengenaiMIP : -) Pengembangan aplikasi secara lebih cepat -) Total REST Platform – Consumer & Producer -) Solusi lengkap: Cloud, Middleware untuk pengembangan solusi mobile -) Integration Project dari IAAS ke PAAS maupun ke SAAS dan diintegrasikan dengan aplikasi mobile -) OpenSource menggunakan Apache License -) Terintegrasi dengan program Link-&-Match Meruvian Adapun fitur-fitur pada MIP, meliputi : Created By Meruvian Cloud Team 64
  • 65.
    1. MIP Server MIPServer yang dikembangkan berbasis REST Service yang dapat diintegrasikan dengan MIP Client yang berupa aplikasi mobile. Mekanisme pengembangannya berupa platform integrasi (SpringMVC, Hibernate, JPA), (Struts2, Hibernate, JPA). Sehingga, untuk pengembangan aplikasi menjadi sangat mudah dan cepat dengan adanya Pattern Platform yang dapat mempercepat proses pembuatan aplikasi yang sudah disediakan pada MIP Server. Nama Proyek: Yama (http://yama.java.net) 2. MIP Client Solusi mobile application baik menggunakan aplikasi android yang dikembangkan sebagai client dari integrasi MIP. Nama Proyek: Midas (http://midas.java.net) Created By Meruvian Cloud Team 65
  • 66.
    Lampiran B : Tertarik Untuk Implementasi Clustering di Environtment Anda ? Hubungi kami di : Email : cs@meruvian.org Phone : 021-985 644 17 Created By Meruvian Cloud Team 66