link: Mananging Consultant

Cari Blog Ini

Jumat, 06 Mei 2011

http Subversion

Setting http Subversion di Ubuntu

install svn di server
sudo apt-get install subversion
buat repository
sudo mkdir /home/svn
sudo mkdir /home/svn/project
sudo chmod -R 777 /home/svn
svnadmin create /home/svn/project
pastikan apache2 dan kawan2 telah terinstall (sudo tasksel), kemudian install modul svn untuk apache2
sudo apt-get install libapache2-svn
konfigurasi repository yang sudah kita buat
edit file /etc/apache2/mods-enabled/dav_svn.conf, menjadi seperti ini (sesuaikan dengan repository yg dibuat)
DAV svn
SVNPath /home/svn/project
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd
#
Require valid-user
#
untuk akses repository tanpa password hilangkan tanda (#) pada config diatas.
buat file password di /etc/apache2/dav_svn.passwd dan tambahkan user pada file password tersebut
sudo htpasswd -cmb /etc/apache2/dav_svn.passwd user password
restart apache2
sudo /etc/init.d/apache2 restart
atau
sudo service apache2 restart
import project yg akan dibuat subversionnya ke repository yang telah dibuat
svn import -m “Project” /var/www/project/ http://localhost/svn/project
tes apakah subversion yg kita buat berhasil melalui browser
http://localhost/svn/project
untuk melakukan editing/modifikasi file pada repository, kita bisa menggunakan aplikasi RapidSVN
sudo apt-get install rapidsvn
setelah install RapidSVN lakukan chekout untuk membuat working copy repository di komputer kita.
Selesai.

EAR Deployment

Arsitektur Java Enterprise

Aplikasi Enterprise umumnya memiliki arsitektur layer, dimana setiap layer memiliki tanggungjawab berbeda. Java Enterprise mempunyai 3 layer, yaitu:
  • Presentation layer : Melakukan penanganan tampilan dan interaksi dengan user,
  • Business layer : Melakukan eksekusi business logic,
  • Database layer : Berfungsi menangani storage.
Keuntungan layering:
  1. Menyederhanakan problem, agar tidak terlalu kompleks
  2. * Masing-masing layer memiliki tanggung jawab berbeda
    * Masing-masing layer dapat didevelop oleh developer yang berbeda
  3. Fleksibel
  4. *presentation dan business layer dapat ditangani dengan menggunakan produk software berbeda dan berada pada komputer yang berbeda
Teknologi yang digunakan:
  • Presentation layer : HTML, Javascript, JSP, JSF, Servlets
  • Business layer : EJB (Enterprise JavaBeans)
    * session beans, message-driven beans
    * persistence sublayer: entity, persistence provider
  • Database layer : Relational Database
    e.g.: mySQL, Oracle
Deployment: Thick vs Thin client
  • Thick : Aplikasi disisi client, didevelop  dengan Teknologi Swing/Java Desktop
  • Thin : Web-based application, interaksi client memakai browser
Interaksi antar komponen: Remote vs Local
Interaksi antar komponen/layer pada Aplikasi Java Enterprise dapat berupa:
  • Remote : jika berada pada proses/komputer berbeda
  • Local : jika berada pada proses/JVM yang sama
Web Server: Glassfish
Glassfish: Enterprise Java application server yang bersifat opensource
  • Dikembangkan oleh Sun
  • Java EE reference implementation
Tutorial tentang Glassfish akan saya coba hadirkan pada posting berikutnya
Application Packaging Format
  • Sebuah aplikasi Java Enterprise dikemas dalam format *.ear.
  • Ear terdiri atas 1 atau lebih modul, dan deskriptor aplikasi
  • Modul dapat berupa:
  • *Web module, EJB module, App. Client module, Resource Adapter module
    *Setiap modul memiliki deskriptor masing-masing
Struktur Ear
Root
|
+——–Resource Adapter Module
|
+——–App Client Module
|
+——–EJB Module
|
+——–Web Module
|
+——–META-INF——–application.xml, sun-application.xml
Deskriptor
  • Deskriptor : informasi tentang modul/aplikasi yang terdapat pada sebuah modul/aplikasi
  • Deskriptor ada 2 macam:
  • * Standar Java EE            : application.xml, ejb-jar.xml, web.xml
    * Spesifik implementasi : sun-application.xml, sun-ejb-jar.xml
  • File konfigurasi (format xml)
    *ear : application.xml (sun-application.xml) berisi deskripsi modul yang ada dalam sebuah aplikasi (tidak diperlukan)
    *ejb : ejb-jar.xml (sun-ejb-jar.xml)
    deskripsi enterprise beans & konfigurasinya (dapat menggunakan anotasi pada EJB 3)
    *web : web.xml (sun-web.xml)
    konfigurasi web app, context parameter servlet, servlet mapping, filter, filter mapping security constraint

Installing Subversion

Installing Subversion

After you have installed and properly set up Apache 2.0, the Subversion installation process is straightforward. We provide instructions here, highlighted by a configure script with Mac OS X specific parameters.
To install Subversion, complete the following steps:
1. Download the Subversion source code (not the Mac OS X binaries).
Note: At the time of this writing, the latest stable version of Subversion was version 1.2.3 (subversion-1.2.3.tar.gz).
2. Open Terminal in Mac OS X, and then extract the package.
tar xvfz subversion-1.2.3.tar.gz
cd subversion-1.2.3
3. Run the following command to configure the distribution for compilation:
./configure –prefix=/usr/local \
–mandir=/usr/local/share/man –with-ssl \
–with-apxs=/usr/local/apache2/bin/apxs –with-zlib \
–enable-swig-bindings=no –without-berkeley-db \
–with-apr=/usr/local/apache2 \
–with-apr-util=/usr/local/apache2
4. Note: If you did not install gcc prior to running configure, you will get an error here. Run the make command, and then run the sudo make install command.
make
sudo make install
Note: You must use sudo to run the make install command.
Subversion executables are installed into /usr/local/bin, which is not in the default path in Mac OS X Server v10.4. To add /usr/local/bin to a user’s default path, create a .profile file in your home directory (or simply add the line if you already have a .profile file):
cd ~
echo ‘export PATH=”$PATH:/usr/local/bin”‘ >> .profile

Subversion (SVN)

POSTED BY ADMIN ON MARCH - 22 - 2011 0 COMMENT

Apa itu Subversion?

Subversion Logo
Apache Subversion atau SVN adalah software kontrol revisi yang pertama kali diinisiasi oleh CollabNet Inc.Programmer yang tiap harinya berkutat dengan source code tentu pernah merasakan bagaimana repotnya jika melakukan kesalahan pada kode yang berujung bencana bagi aplikasi yang sedang dibangun, adanya software kontrol revisi semacam Subversion ini membantu programmer untuk memelihara versi dari tiap – tiap file proyek yang sedang dikerjakannya. Subversion mencatat perubahan isi file, penambahan, penghapusan, dan penggantian nama tiap file. Adanya pencatatan ini memungkinkan seseorang yang menggunakan Subversion untuk melihat runutan perubahan yang dilakukannya, dan jika diperlukan mengembalikan versi yang terdahulu dari proyek yang sedang dikerjakannya. Subversion secara luas digunakan pada banyak proyek – proyek open source seperti: Apache Software Foundation, Free Pascal, FreeBSD, GCC, Django,Ruby, Mono, SourceForge, ExtJS, Tigris.org, PHP dan MediaWiki. Hosting proyek berbasis Subversion juga sudah banyak disediakan seperti: Google Code, BountySource, CodePlex, dan XP-Dev

Penggunaan Subversion dalam tim developer

Karena Subversion adalah software yang multiuser, maka Subversion juga memudahkan kerja tim developer software. Setiap developer dalam sebuah tim, memiliki versi kerja nya masing – masing, setiap anggota tim selesai melakukan pekerjaan, ia akan melakukan “commit” ke server SVN, secara otomatis, perubahan yang ia lakukan tersebut, baik penambahan, perubahan isi file, atau penghapusan file akan dicatat oleh server SVN, dan anggota – anggota tim developer software yang lain dapat mengupdate versi kerjanya dari server SVN untuk mendapatkan versi kerja yang paling mutakhir. Setiap perubahan di SVN server akan digabungkan secara otomatis dengan versi kerja, jika terjadi konflik dalam penggabungan, maka disediakan juga tool untuk melakukan merge. Dengan pengelolaan source code yang seperti ini, maka seluruh tim memiliki versi kerja yang sama.

Fitur lainnya

Selain fitur tersebut diatas, Subversion juga mendukung Branching (duplikasi obyek, file, maupun direktori yang berada dibawah kontrol revisi sehingga modifikasi dapat berjalan paralel di kedua cabang), dan Tagging(Memungkinkan pengguna untuk menandai status/keadaan proyek yang berada dibawah kontrol revisi). Pada dasarnya, ada 2 bagian penting dalam SVN, yaitu SVN Client dan SVN Repository. SVN Client merupakan software yang digunakan user untuk mengakses repository, sedangkan SVN repository sendiri merupakan server yang berisi data-data yang dimanage. Segala perubahan terhadap data di repository dicatat oleh SVN. Dalam menggunakan SVN ini, data dalam repository dapat dicopy ke client agar user dapat mengolah data tersebut secara lokal, biasanya disebut “Checkout”. Kemudian data di lokal tersebut, setelah diolah, dapat dikirim kembali ke repository untuk keperluan version control, dan agar dapat diakses rekan kita, biasanya disebut “Commit”. Mengenai SVN Repository, di internet ada banyak sekali yang menyediakan layanan tersebut, baik yang berbayar maupun yang tidak, tentu dengan fasilitas yang berbeda. Dengan menggunakan layanan tersebut, maka kita tinggal meletakkan data/file yang akan kita buat versioning-nya di repository, kemudian dapat kita akses melalui SVN client di PC kita. Beberapa SVN Hosting yang menyediakan layanan tersebut

Penerapan

Pada banyak sistem Unix, Subversion telah terintegrasi dan dan dapat dengan mudah diinstall serta diakses menggunakan command “svn” melalui konsol Unix. Pada sistem Windows software client yang paling populer digunakan adalah Tortoise SVN. Tortoise SVN mengintegrasikan dirinya dengan explorer sehingga memudahkan penggunaan. Server Subversion sendiri tersedia untuk platform AIX, Debian Linux, Fedora Linux, FreeBSD, HP-UX, NetBSD, OpenBSD, Mac OS X, Red Hat Linux, Solaris, SUSE Linux, Ubuntu Linux dan juga Windows.

Kamis, 05 Mei 2011

Instalasi Trac SVN


Instalasi Trac

Mulai beberapa minggu ini, ArtiVisi kebanjiran project. Ini tentu harus dikelola dengan baik. Semua orang harus bekerja se-efisien mungkin. Menjadi tugas saya sebagai manager untuk memudahkan orang-orang bekerja.
Opa Abe Lincoln pernah bilang gini, jauh sebelum mas Barry masuk sekolah di SD Besuki, Menteng.
If I had eight hours to chop down a tree, I’d spend six hours sharpening my axe
So be it ….
Hal pertama yang harus dilakukan sebelum mulai bekerja adalah mempersiapkan environment. Ada beberapa tools yang dapat digunakan untuk mempercepat kegiatan software development, terutama di Java. Ini pernah saya bahas di artikel ini.
Subversion sudah terinstal sejak hari pertama ArtiVisi buka warung. Bahkan sebelum websitenya jadi, repository sudah siap digunakan dan diamankan melalui prosedur backup. Ant-Ivy juga sudah terinstal dan terkonfigurasi. Tinggal menunggu terisi dengan *.jar external dari repository ibiblio dan repository springsource.
Hal berikutnya adalah mempersiapkan bug tracker dan project management tools. Karena saya menggunakan Eclipse, maka kriteria pemilihan bug tracker tentu saja adalah kompatibilitasnya dengan Mylyn. Bugzilla cuma bisa untuk bug-tracker, jadi saya pilih saja Trac.
Berikut langkah instalasi di Ubuntu Gutsy Server.

Instalasi Trac

Instalasi Trac tidak sulit, cukup satu baris perintah saja.
  1. sudo apt-get install trac libapache2-mod-python python-setuptools  
Selanjutnya, kita konfigurasi VirtualHost Apache. Saya buatkan satu subdomain khusus yang namanya trac.artivisi.com. Jadi, kita buat file/etc/apache2/sites-available/trac.artivisi.com.
Subdomain ini nantinya akan menampung data Trac untuk banyak project. Jadi, kita harus mengkonfigurasi parent path yang menyatakan folder tempat data trac untuk masing-masing project disimpan.
Berikut isi filenya.
  1. <Location /trac>  
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/lib/trac
PythonOption TracUriRoot /trac
Selanjutnya, kita konfigurasi otentikasinya supaya mengacu ke LDAP tempat menyimpan username dan password Subversion. Jadi username dan password untuk svn commit sama dengan untuk login ke Trac.
  1. <LocationMatch "/trac/[^/]+/login">  
AuthType Basic
AuthName "ArtiVisi Trac Server"

AuthBasicProvider ldap
    AuthLDAPURL url-ldap-server
AuthLDAPBindDN dn-untuk-apache-login-di-ldap
AuthLDAPBindPassword password-dn-tersebut

AuthzLDAPAuthoritative off

Require valid-user
Sekarang konfigurasi Apache sudah selesai. Jangan lupa me-restart apache.
  1. sudo /etc/init.d/apache2/restart  
Berikutnya, membuat project baru.

Membuat Project

Misalnya kita ingin membuat project bernama hello-world. Sebagai root, masuk ke folder /var/lib/trac. Kemudian buat projectnya. Jangan lupa tambahkan user administratornya sekaligus.Terakhir, ganti kepemilikan folder sesuai dengan user yang digunakan proses webserver.
  1. sudo -i  
  2. cd /var/lib/trac  
  3. trac-admin hello-world initenv  
  4. trac-admin hello-world permission add endy TRAC_ADMIN  
  5. chown -R www-data.www-data hello-world  
Langkah di atas akan menginisialisasi Trac dengan satu username –yaitu endy– sebagai administrator. Selanjutnya, kita edit konfigurasinya agar setiap perubahan bug/task akan mengirim notifikasi ke email. Edit file /var/lib/trac/hello-world/conf/trac.ini
  1.   
smtp_enabled = true smtp_default_domain = artivisi.com smtp_from_name = ArtiVisi Trac Server smtp_from = artivisi.dev@gmail.com smtp_replyto = artivisi.dev@gmail.com
smtp_server = smtp.gmail.com smtp_port = 587 smtp_user = artivisi.dev smtp_password = rahasia_dong use_tls = true
Pada konfigurasi di atas, kita menggunakan Gmail yang gratis dan mudah. Kita buat account di Gmail bernama artivisi.dev dan kita berikan password rahasia_dong.
Selesai sudah. Sekarang silahkan browse ke URLnya.

Plugin WebAdmin

Sebagai tambahan, kita bisa menambahkan plugin webadmin supaya kita bisa menambah user dan mengatur permission melalui interface web.
Ubuntu secara default menginstal Trac versi 0.10, jadi kita harus menginstal plugin WebAdmin secara manual. Di versi 0.11 Trac sudah menyertakan WebAdmin secara default.
Instalasi dijalankan langsung dari subversion repository.
  1. sudo easy_install http://svn.edgewall.org/repos/trac/sandbox/webadmin/  
Untuk menjalankan plugin, kita perlu membuat file/etc/trac/trac.ini. Berikut isinya.
  1. [components]  
  2. webadmin.* = enabled  
Voila, nanti akan muncul tombol admin setelah kita login.