Thursday, November 22, 2007

INVOKE WEB SERVICE LINTAS BAHASA PEMROGRAMAN

Web Service
Web service merupakan aplikasi yang terdiri dari sekumpulan application logic, object dan method-method yang terletak pada suatu server yang diakses menggunakan protokol HTTP dan SOAP. Tujuan dari aplikasi ini adalah untuk memudahan beberapa aplikasi atau komponennya untuk saling berhubungan dengan aplikasi lain yang tidak terikat oleh platform dan tidak terikat oleh bahasa pemrograman. Kita dapat menggunakan web service untuk keperluan data terdistibusi sehingga setiap client yang mengakses dapat memanfaatkan dengan mudah tanpa mengetahui platform dan bahasa pemrograman yang digunakan.
Kemudahan ini karena web service menggunakan format data XML dalam mendistribusikan data dari server ke client yang mengakses menggunakan protokol SOAP sehingga setiap client yang mengakses data akan terhubung dengan server seolah – olah memanggil fungsi yang ada di lokal. Pada topik ini penulis malakukan uji coba cara untuk melakukan invoke ASP.NET web service melalui java dan juga sebaliknya.


Akses Web Service Java dengan VB.NET

Instalasi Apache Axis
Apache Axis merupakan SOAP Engine dan salah satu toolkit untuk web service java. Di dalam apache axis sudah terdapat library yang digunakan untuk develop java yang akan di akses oleh client. Untuk mendapatkan apache axis bisa download di http://ws.apache.org/axis. Pada saat tulisan ini dibuat penulis menggunakan axis versi terbaru yaitu axis 1.4.

Untuk menjalankan Axis penulis menggunakan Apache Tomcat 1.5 dan untuk instalasinya apache Tomcat ikuti tinggal di ekstrak ke direktori. Jangan lupa untuk mengistal Java SDK untuk frameworknya. Setelah instalasi tomcat selesai maka selanjutnya install Apache Axis,langkahnya sebagai berikut :
1. Ekstrak file axis yang telah di download (pada saat uji coba penulis meletakkan semua hasil instalasi di direktori C:\). Setelah itu akan terbentuk file sebagai berikut :
…\DIRECTORI\axis-1_4
\docs
\lib
\sample
\webapps
\axis
2. Copy semua file library axis yang ada di dalam folder axis-1_4\lib ke dalam library tomcat. Jangan lupa untuk menambahkan file activation.jar, karena apache axis tidak menyertakan file library activation.jar. Untuk mendapatkan file activation.jar bisa cari di internet dengan cara googling dan download file tersebut kemudian letakkan di dalam library tomcat.
3. Copy folder axis di dalam folder webapp\axis ke directory C:\. Sehingga tersusun directory sebagai berikut C:\axis
4. Buat mapping path pada tomcat TOMCAT_HOME\conf\Catalina\localhost\axis.xml dan tulis script di bawah ini :



Buat file java dengan nama Hello.java dan buat scrip di bawah ini kemudian simpan :

public class Hello
{
public String getMsg(String msg)
{
return ("Heloo “ + msg + “Ini Web Service Java");
}
}

Metode JWS
Pada contoh kali ini penulis menggunakan metode JWS untuk deployment axis karena metode ini merupakan metode deployment yang paling mudah. Dengan menggunakan metode JWS, deployment web service sangat mudah hanya dengan membuat file java biasa dan simpan file tersebut di bawah folder CONTEXT_PATH/axis dan rename akhiran .java dengan .jws. Sebagai contoh file Hello.java menjadi Hello.jws dan untuk mengakses WSDL dari web service dengan url http://localhost:8080/axis/Hello.jws?WSDL. Setelah selesai lakukan uji coba dengan start Apache Tomcat dan panggil seperti contoh URL sebelumnya maka akan muncul tampilan sebagai berikut :

Gambar 1. Tampilan wsdl dari Web Service Java.
Akses Client Web Service dengan .NET
Setelah selesai sukses membuat Java Web Service sekarang kita melakukan invoke data dari client. Pada uji coba ini penulis menggunakan VB.NET untuk melakukan akses data web service. Langkah untuk mamanggil fungsi web service adalah sebagai berikut :
1. Lakukan web reference dengan melakukan discovery pada http://localhost:8080/axis/Hello.jws?wsdl
2. Gunakan script di bawah ini untuk memanggil fungsi web service

Dim ws As New jws1.HelloService
MsgBox(ws.getMsg(TextBox1.Text))

Hasilnya akan tampak pada gambar di bawah ini yang menunjukkan bahwa akses web service java dengan akses client dari VB.NET telah berhasil.

Akses Web Service .NET dengan Java
Untuk mengakses web service .NET dengan Java langkahnya tidak teralu berbeda jauh. Karena semua web service manggunakan metode yang sama untuk distribusi data yaitu XML. Ok nggak usah lama – lama lagi, mari kita mulai untuk mempraktekkan cara invoke web service .NET melalui Java. Berikut code dari .NET Web Service
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols

_
_
Public Class Service
Inherits System.Web.Services.WebService

_
Public Function HelloWorld() As String
Return "Hello FRIENDS Ini Web Service .NET"
End Function

End Class
Pertama kita membutuhkan library untuk mendapatkan informasi SOAP dari web service .NET. Beberapa library yang kita butuhkan antara lain mail.jar, soap.jar, activation.jar dan xerces.jar. Library tersebut berfungsi sebgai SOAP engine untuk menangkap dan mengkonversi type data dari Web Service .NET. O iya, distribusi data XML Web Service sedikit berbeda dengan Web Service yang lain termasuk Web Service Java. .NET menggunakan mekanisme XMLSerializer untuk melakukan distribusi data di mana informasi yang di kirimkan melalui Web Service .NET di konversi menjadi binary. Hal ini yang membedakan Web Service .NET berbeda dengan yang lain namun memiliki keunggulan yaitu memiliki performance yang lebih tinggi dibandingkan dengan yang lain karena datanya di rubah dulu menjadi binary. Untuk itu perlu dilakukan Deserialisasi terlebih dahulu sebelum di lakukan invoke. Untuk melakukan Desirialisasi data XML berikut code program yang digunakan :
package WebServicesClient;

import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.net.*;
import org.apache.soap.*;
import org.apache.soap.messaging.*;
import javax.activation.*;
import java.io.*;

public class wsnet extends HttpServlet implements Servlet {

private URL m_url = null;
private String m_soapUri = "";
private Message m_strMsg_ = new Message ();
private Envelope m_envelope = new Envelope ();
private DataHandler m_strReturnMsg = null;
private PrintWriter out = null;

public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}

public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
out = resp.getWriter();
this.m_url = new URL
("http://localhost:1684/WebSite10/Service.asmx");
try
{
out.print(GetCustomerData ());
}
catch(Exception e)
{}
}

public synchronized void setWebServiceURL (URL url)
{
this.m_url = url;
}
public synchronized URL getWebServiceURL ()
{
return this.m_url;
}
public synchronized String GetCustomerData () throws SOAPException {
String strReturn = "";
if (this.m_url == null)
{
throw new SOAPException (Constants.FAULT_CODE_CLIENT,
"URL tidak ditemukan");
}
this.m_soapUri = "http://ws.pdawir.iseng/getData";
MsgBody ourBody = new MsgBody ();
this.m_envelope.setBody (ourBody);
m_strMsg_.send (this.getWebServiceURL(),
this.m_soapUri, this.m_envelope);
try
{
this.m_strReturnMsg = this.m_strMsg_.receive();
strReturn=this.m_strReturnMsg.getContent().toString();
}
catch (Exception exception)
{
exception.printStackTrace ();
}
return strReturn;
}

}

Code di atas digunakan untuk melakukan deserialisasi data XML yang dikirimkan oleh .NET Web Service yang hasilnya berupa data dalam bentuk SOAP, seperti tampak pada gambar di bawah ini :
Hasil deserializer data xml .NET menjadi SOAP
Jika proses Deserializer berhasil maka akan tampak seperti pada gambar di atas dan siap untuk dilakukan invoke. Untuk melakukan invoke data web menggunakanan code seperti contoh di bawah ini dan hasilnya akan tampak seperti gambar di bawah
String endPoint = "http://localhost:9080/WSNET/servlet/WebServicesClient.wsnet";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endPoint));
call.setOperationName("getMsg");
call.addParameter("op1", XMLType.XSD_STRING, ParameterMode.IN);
call.setReturnType(XMLType.XSD_STRING);
String msg = (String) call.invoke( new Object[]{""});
out.println(msg);

Wednesday, March 7, 2007

JAVA BUKAN PRODUK, JAVA ADALAH KOMUNITAS



Mungkin dari sekilas judul di atas sedikit agak kontroversi bagi rekan-rekan JUG, namun bagi saya tidak karena sekarang hal ini sangat wajar melihat metode perkembangan java yang dirasakan menjamur ke setiap orang berbeda dengan perkembangan bahasa pemrograman yang lain. Hal ini tentunya sangat beralasan mengingat java saat ini berkembang pesat melalui berbagai komunitas secara global maupun lokal dikampus-kampus, perusahaan-perusahaan baik kecil maupun besar. Perkembangan java sendiri sampai saat ini sudah tidak dapat dihitung jumlahnya, komunitas di sekolah, kampus, berbagai perusahaan yang fokus di open source, maupun perusahaan yang mandiri ingin membangun sistem informasi perusahaan dengan produk open source terutama dengan java karena kemampuan API yang sangat banyak dan komplek menjadikan java sebagai sebuah solusi yang sangat handal.


Dari perkembangan JAVA saat ini, saya sangat jarang melihat java sebagai sebuah produk, dimana sebuah produk merupakan barang yang dihasilkan oleh sebuah perusahaan yang nantinya akan dijual atau diperkenalkan oleh perusahaan kepada konsumen yang membutuhkan dengan harapan imbal balik yang sepadan dengan barang yang ditawarkan. Namun JAVA tidak, JAVA lebih menekankan sebuah barang yang diberikan kepada setiap orang tanpa mengharapkan imbal balik dari pemakai. Setiap orang bisa memakai java tanpa harus membayar atau memberikan timbal balik kepada pihak pembuat.

Dari perkembangan teknologi JAVA saat ini sangat jarang adanya penggunaan iklan atau penawaran produk untuk menarik para developer menggunakan JAVA, namun mereka yang menggunakan java merupakan orang-orang yang lebih merasakan kelebihan JAVA dibanding dengan yang lain, sehingga di JAVA tidak pernah ada istilah “Iklan Lebih Baik Dari Produk”. JAVA sendiri berkembang pesat berkat komunitas yang merasakan kelebihan JAVA itu sendiri dibanding menggunakan produk lain, JAVA tidak memaksakan produk kepada para developer, jika developer menggunakan JAVA silahkan, jika tidak juga tidak apa-apa karena tidak ada yang rugi meskipun tidak ada yang menggunakan.

Monday, March 5, 2007

Mengintip Sistem Keamanan pada IBM Web Sphere V 5.1

Administrasi dan Konfigurasi IBM Web Sphere

Mungkin bagi pembaca pernah mendengar saat dijelaskan oleh dosen waktu kuliah Aplikasi Internet di kampus namun belum pernah mencoba atau tau seperti apa aplikasi IBM Web Sphere ini. IBM Web Sphere sendiri merupakan aplikasi web server yang digunakan untuk menjalankan aplikasi Java berbasis web dan aplikasi ini tidak gratis sehingga kita harus membeli jika ingin implementasi yang sesungguhnya. Meskipun aplikasi ini tidak gratis, tidak ada salahnya jika kita mengenal aplikasi ini sekedar untuk menambah koleksi pengetahuan tentang aplikasi berbasis web. Jika ada yang ingin mencoba menjalankan aplikasi web server ini silahkan download di web site www.ibm.com.


Aplikasi web server ini sangat komplek dan banyak fitur-fitur di dalamnya maka penulis hanya menjelaskan tentang sistem keamanan dari IBM Web Sphere. Salah satu kelebihan IBM Web Sphere ini adalah dapat berjalan dibanyak OS seperti Windows, Linux, IBM AIX, Sun Solaris, HP-UX, IBM OS/400 karena dibangun di atas platform Java. Aplikasi IBM Web Sphere terdiri dari 2 bagian aplikasi utama yaitu IBM HTTP Server dan Container. IBM HTTP Server merupakan aplikasi yang menjalankan daemon port 80 yang akan diakses oleh pengunjung web site di mana request setiap pengunjung akan diterima terlebih dahulu oleh IBM HTTP Server kemudian diteruskan kepada container yang mengekskusi setiap aplikasi java yang terdapat pada virtual host-virtual host yang ada dibelakang layer IBM HTTP Server. Hal ini memungkinkan aplikasi dapat lebih aman dibandingkan dengan pengguna direct terhadap aplikasi yang terinstal pada server karena dipisahkan oleh layer-layer aplikasi yang terpisah.



Pada dasarnya sistem keamanan yang ada pada IBM Web Sphere di bagi menjadi dua macam yaitu:

1. Demilitarized Zone(DMZ)
DMZ pada IBM Web Sphere dibagi menjadi 3 segmen utama yaitu public network, DMZ, dan Enterprise Network.

Public Network merupakan sistem keamanan IBM Web Sphere pada bagian luar yang langsung berhadapan dengan pengunjung situs. Public Network merupakan level aplikasi yang dapat diakses oleh pihak luar atau pengunjung web site. Pada bagian ini semua request dari pengunjung akan dilayani namun tidak secara langsung mengakses level Enterprise Network. Semua request dari user akan ditampung dulu pada level DMZ yang kemudian akan diteruskan pada level Enterprise Network.


DMZ atau juga disebut sebagai HTTP server merupakan aplikasi yang berdiri sendiri yang menjembatani antara Public Network dan Enteprise Network. Setiap HTTP server memiliki Web Sphere Servlet Redirector yang menghubungkan dengan setiap Web Sphere Aplication Server pada Enterprice Network. DMZ Web Sphere bertugas melakukan manajemen tehadap web aplikasi yang terinstal, manajemen memori aplikasi, mengatur trafik request dati pengunjung web site, firewall dan lain-lain.



2. Authentication dan Authorization
Sistem keamanan ini melakukan pengecekan pada level user name dan password setiap user yang akan masuk ke dalam Enterprise Network untuk melakukan administrasi terhadap web aplikasi berdasarkan hak akses masing-masing user. IBM Web Sphere ini juga dapat dikonfigurasi atau di integrasikan dengan menggunakan Lightweight Directory Access Protocol(LDAP) yang menyediakan kemampuan manajemen keamanan terpusat.

Dengan kemampuan sistem keamanan yang terintegrasi ini memungkinkan pengggunaan sistem keamanan aplikasi satu atap atau Sigle Sign On. Dengan demikian setiap user tidak perlu melakukan log in berulang kali untuk mengakses aplikasi yang berbeda-beda(aplikasi HR, Acounting, Email, Intranet, dll), cukup sekali melakukan log in maka user dapat melakukan aktifitas manajemen data dan informasi melalui aplikasi yang tersedia sesuai dengan hak akses masing-masing.

Demikian uraian singkat mengenai sistem keamanan IBM Web Sphere semoga bermanfaat bagi para pembaca. Thanks :)

Manajemen File Menggunakan WebDav Server



Deskripsi :
Web Dav merupakan aplikasi client-server yang memungkinkan user menyimpan file melalui browser menggunakan protokol http. Dengan menggunakan web dav user dapat dengan mudah melakukan download dan upload menggunakan browser.

Saat ini pengaruh perkembangan internet sangat pesat di mana pemanfaatan internet ini bahkan sangat bermacam-macam karena kemudahan yang dimiliki dan sangat murah. Internet selain digunakan untuk melakukan kegiatan publikasi informasi juga bisa dimanfaatkan sebagai media kirim-surat, chatting, melakukan kontrol terhadap aplikasi jarak jauh, monitor pekerjaan, dan lain sebagainya. Hal ini tentunya sangat memudahkan pekerjaan kita sehari-hari sehingga pekerjaan dapat dilakukan tanpa harus datang ke lokasi atau menunggu sekian lama untuk menyampaikan informasi kepada masyarakat luas. Media internet bisa juga digunakan untuk melakukan sharing data/file melalui internet di mana antar orang dapat saling bertukar data atau informasi dengan cepat dan mudah. Salah satu cara yaitu dengan menggunakan Web Dav Server.

Dalam melakukan uji coba kali ini saya menggunakan aplikasi Sun Web Server versi 6.1 seperti tampak pada gambar 1.1 di mana dapat diperoleh secara gratis dari web site http://www.sun.com/. Dalam menggunakan aplikasi web dav ini tidak semua web server memiliki fitur web dav. Jika ingin mencoba silahkan lihat dulu spesifikasi fitur yang dimiliki oleh web server. Saya menggunakan Sun Web Server karena sudah mendukung dan memiliki fitur web dav dan sangat mudah untuk dikonfigurasi.

Web Dav merupakan aplikasi yang digunakan untuk melakukan manajemen file menggunakan port HTTP. Web dav ini memiliki cara kerja yang mirip dengan aplikasi FTP yang juga digunakan untuk melakukan manajemen file menggunakan media internet atau local net. Dengan Web Dav seolah-olah kita dapat meyimpan atau melakukan manajemen data melalui internet meskipun server tempat penyimpanan aplikasi beda tempat.

Dengan menggunakan web dav kita dapat melakukan manajemen data file melalui windows explorer, atau browser. Manajemen akan terasa lebih mudah karena dengan media browser kita dapat melakukan penyimpanan dan download file dengan cara drag n drop (geser file dari server ke local net seperti copy paste pada windows explorer namun menggunakan media browser atau sebaliknya). jika anda ingin melakukan manajemen file yang terintegrasi dengan windows explorer maka tinggal melakukan mapping pada windows explorer sehingga manajemen data yang ada dilocal dan di server dapat terintegrasi.

Cara melakukan konfigurasi dan instalasi menggunakan web dav adalah sebagai berikut :
- Download aplikasi web dav
- Instal dan letakkan hasil instalasi pada c:/Sun/WebServer6.1
- Setelah selesai melakukan instalasi maka terdapat root directory pada c:/Sun/WebServer6.1
- lakukan konfigurasi dengan memanggil url http://localhost:8888/
- muncul halaman seperti tampak pada gambar 1.1
- untuk melakukan setup aplikasi yang digunakan sebagai dav directory buat dulu file project webdav.war(nama optional)

Sebelum melakukan instalasi aplikasi web dav directory buat dulu file project yang digunakan untuk menghasilkan file aplikasi web dav(.war). karena web dav yang digunakan pada aplikasi web server Sun hanya mendukung file (berekstensi *.war). Setelah membuat project langsung dikonfigurasi web dav server menggunakan web dav deploy web application seperti terlihat pada gambar 1.5.
Setelah melakukan deploy dan konfigurasi ACL(Access Control List) dapat diakses melalui web site atau melalui windows explorer seperti gambar 1.8