bab 1 client server (finished)

of 17/17
Bab 1 Client Server POKOK BAHASAN: Pengenalan Android Service Client Server TUJUAN PEMBELAJARAN: Setelah mempelajari materi dalam bab ini mahasiswa diharapkan mampu: Mengenali service Client Server pada android Dapat mengimplementasikan Client Server pada Client Side Dapat mengimplementasikan Client Server pada Server Side DASAR TEORI 1. Client-Server Client-Server merupakan sebuah paradigma dalam teknologi informasi yang merujuk kepada cara untuk mendistribusikan aplikasi ke dalam dua pihak: pihak klien dan pihak server. Dalam model Client-Server, sebuah aplikasi dibagi menjadi dua bagian yang terpisah, tapi masih merupakan sebuah kesatuan yakni komponen klien dan komponen server. Komponen klien juga sering disebut sebagai front-end, sementara komponen server disebut sebagai back-end. Komponen klien dari aplikasi tersebut dijalankan dalam sebuah workstation dan menerima masukan data dari pengguna. Komponen klien tersebut akan menyiapkan data yang dimasukkan oleh pengguna dengan menggunakan teknologi pemrosesan tertentu dan mengirimkannya kepada komponen server yang dijalankan di atas mesin server, umumnya dalam bentuk request terhadap beberapa layanan yang dimiliki oleh server. Komponen server akan menerima request dari klien, dan

Post on 14-Aug-2015

80 views

Category:

Documents

6 download

Embed Size (px)

TRANSCRIPT

Bab 1

Client ServerPOKOK BAHASAN: Pengenalan Android Service Client Server

TUJUAN PEMBELAJARAN:Setelah mempelajari materi dalam bab ini mahasiswa diharapkan mampu: Mengenali service Client Server pada android Dapat mengimplementasikan Client Server pada Client Side Dapat mengimplementasikan Client Server pada Server Side

DASAR TEORI1. Client-Server Client-Server merupakan sebuah paradigma dalam teknologi informasi yang merujuk kepada cara untuk mendistribusikan aplikasi ke dalam dua pihak: pihak klien dan pihak server. Dalam model Client-Server, sebuah aplikasi dibagi menjadi dua bagian yang terpisah, tapi masih merupakan sebuah kesatuan yakni komponen klien dan komponen server. Komponen klien juga sering disebut sebagai front-end, sementara komponen server disebut sebagai back-end. Komponen klien dari aplikasi tersebut dijalankan dalam sebuah workstation dan menerima masukan data dari pengguna. Komponen klien tersebut akan menyiapkan data yang dimasukkan oleh pengguna dengan menggunakan teknologi pemrosesan tertentu dan mengirimkannya kepada komponen server yang dijalankan di atas mesin server, umumnya dalam bentuk request terhadap beberapa layanan yang dimiliki oleh server. Komponen server akan menerima request dari klien, dan langsung memprosesnya dan mengembalikan hasil pemrosesan tersebut kepada klien. Klien pun menerima informasi hasil pemrosesan data yang dilakukan server dan menampilkannya kepada pengguna, dengan menggunakan aplikasi yang berinteraksi dengan pengguna. 2. SOAP Web Service SOAP adalah spesifikasi protokol untuk bertukar informasi terstruktur dalam pelaksanaan Web Services dalam jaringan komputer. SOAP bergantung pada Extensible Markup Language (XML) untuk format pesannya, dan biasanya bergantung pada protokol Application Layer lainnya, terutama Hypertext Transfer Protocol (HTTP) dan Simple Mail Transfer Protocol (SMTP), untuk negosiasi pesan dan transmisi.

SOAP terdiri dari tiga bagian: SOAP envelope construct mendefinisikan suatu framework menyeluruh untuk mengungkapkan apa isi yang ada dalam pesan, siapa yang harus menerimanya, dan apakah pesan itu opsional atau wajib. SOAP encoding rules mendefinisikan mekanisme serialisasi yang dapat digunakan untuk bertukar contoh aplikasi - didefinisikan tipe data. SOAP RPC representation mendefinisikan sebuah konversi yang dapat digunakan untuk mewakili prosedur panggilan jarak jauh dan tanggapan. Struktur SOAP Message Berikut ini adalah struktur SOAP Message: Envelope adalah element paling atas dari dokumen XML yang mewakili pesan. Header adalah element yang mendefinisikan beberapa atribut yang dapat digunakan untuk menunjukkan siapa yang harus berurusan dengan fitur dan apakah opsional atau wajib Body merupakan wadah untuk informasi wajib ditujukan untuk penerima akhir pesan. Bagian Body SOAP mendefinisikan satu elemen, Fault digunakan untuk pelaporan kesalahan.

Contoh SOAP Message SOAP Message dalam HTTP Request DIS SOAP Message dalam HTTP Response

34.5 Spesifikasi Spesifikasi SOAP mendefinisikan kerangka pesan yang terdiri dari: SOAP Processing Model mendefinisikan aturan untuk memproses pesan SOAP. SOAP Extensibility Model mendefinisikan konsep fitur SOAP dan modul SOAP. SOAP Underlying Protocol Binding Framework mendefinisikan sebuah peraturan untuk menggambarkan sebuah ikatan pada sebuah protocol utama yang dapat digunakan untuk bertukar SOAP Message dengan SOAP Node. SOAP Message Construct mendefinisikan struktur dari SOAP Message. Model Proses Model pengolahan SOAP menggambarkan model pemrosesan terdistribusi node SOAP dan bagaimana penerima SOAP memproses pesan SOAP. Node SOAP berikut didefinisikan: SOAP Sender Node SOAP yang mentransmisikan pesan SOAP. SOAP Receiver Node SOAP yang menerima pesan SOAP. SOAP Message Path Gabungan Node SOAP melalui mana pesan SOAP tunggal lewat. Initial SOAP sender (Originator) Pengirim SOAP yang berasal pesan SOAP pada titik awal jalur pesan SOAP. SOAP intermediary Sebuah perantara SOAP adalah penerima dan pengirim SOAP, dan ditargetkan dari dalam pesan SOAP. Ini memproses blok header SOAP ditargetkan dan bertindak untuk meneruskan pesan SOAP terhadap penerima SOAP utama. Ultimate SOAP receiver Penerima SOAP yang merupakan tujuan akhir dari pesan SOAP. Hal ini bertanggung jawab untuk memproses isi dari tubuh SOAP dan setiap blok header SOAP ditargetkan pada hal itu. Dalam beberapa situasi, sebuah pesan SOAP mungkin tidak mencapai penerima SOAP utama, misalnya karena masalah pada perantara SOAP. Penerima SOAP utama tidak bisa juga menjadi perantara SOAP untuk pesan SOAP yang sama.

Diagram Arsitektur Web Service WSDL - SOAP

3.

Server Side (NuSOAP) Intro NuSOAP adalah sekelompok kelas PHP yang memungkinkan pengembangan untuk membuat dan menerima layanan web SOAP. NuSOAP tidak memerlukan ekstensi PHP khusus. Versi rilis saat ini (0.6.7) dari NuSOAP mendukung banyak spesifikasi SOAP 1.1. Telah dapat menghasilkan WSDL 1.1 dan juga menerima untuk digunakan dalam serialisasi. Kedua layanan rpc/encoded dan document/literal telah support dalam NuSOAP. Namun, harus dicatat bahwa NuSOAP tidak menyediakan cakupan dari SOAP 1.1 dan WSDL 1.1 yang lengkap beberapa implementasi lain, seperti .NET dan Axis Apache. Instalasi Untuk dapat melakukan percobaan pada Server Side NuSOAP ada beberapa aplikasi yang harus disiapkan, antara lain; Web developer Application = Adobe Dreamweaver Web Service Application = Xampp Untuk mendownload library NuSOAP: http://sourceforge.net/projects/nusoap/ Cara mengimport library NuSOAP pada project Dreamweaver: 1. Download library pada link diatas. 2. Setelah selesai mendownload, ekstrak file. 3. Masukkan dalam folder direktori yang sama dengan project server side.

Untuk dapat mencoba hasil Server Side dari program yang telah kita buat, gunakan SOA Client Add-On pada Web Browser Mozila Firefox. Membuat Server Side Untuk dapat membuat program Server Side, kita diharuskan untuk memahami inti dari program tersebut, antara lain: Library NuSOAPrequire_once('lib/nusoap.php');

untuk memasukkan (include) library NuSOAP pada project. Server SOAP$server = new soap_server;

untuk membuat server SOAP yang baru untuk tiap project.

Setting [email protected]>configureWSDL(nama_method);

untuk setting WSDL yang akan dijadikan sebagai Server. Register ke server SOAP$server->register( );

Untuk registrasi isi dari server SOAP, yaitu antara lain : - nama method - parameter input - parameter output - namespace - SOAP Action - style - use Fungsi SOAPfunction nama($parameter) {return nilai_return;}

Untuk mendefinisikan method sebagai fungsi php yang akan menghasilkan return value pada Client Side. Script tambahan

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA)?$HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA);

Berguna sebagai permintaan untuk memanggil layanan Client Server. (Harus ada dalam coding)

4.

Client Side (KSOAP) Intro KSOAP adalah API dari SOAP yang cocok untuk J2ME, berbasis kXML. Kita dapat menggunakan kSOAP pada Android untuk mengakses layanan SOAP berbasis web dengan mudah. KSOAP mendukung fitur SOAP paling sering digunakan dan cukup untuk Web Services kebanyakan yang saat ini tersedia. Saat ini, hampir semua aplikasi kSOAP utama dan alat didasarkan pada kSOAP yang mendukung subset inti SOAP. Instalasi Untuk mendownload library kSOAP: http://kSOAP2-android.googlecode.com/svn/m2repo/com/google/code/kSOAP2-android/kSOAP2-androidassembly/2.6.5/kSOAP2-android-assembly-2.6.5-jar-with-dependencies.jar Cara mengimport library KSOAP2 pada project Android: 1. Pertama-tama, download terlebih dahulu library KSOAP2 pada link diatas. 2. Pindahkan kSOAP2.jar hasil download dalam sebuah folder yang dapat diakses. 3. Klik kanan pada Android Project yang ingin diimport library KSOAP2. 4. Pilih Properties. 5. Dalam Properties window, pilih Java Build Path > Libraries > Add External JARs. 6. Cari dan pilih file kSOAP2.jar yang telah didownload tadi. Kemudian klik Open dan terakhir klik OK. Membuat Client Side Untuk dapat membuat program Client Side, kita diharuskan untuk memahami inti dari program tersebut, antara lain: Parameter Message SOAP SOAP_ACTION = alamat URL yang merupakan gabungan dari lokasi file PHP Server dan Method_Name. METHOD_NAME = nama operasi pada WSDL Server. NAMESPACE = namespace dari Web Service. URL = alamat URL dari WSDL Server yang terakhirnya ditambah ?wsdl.String NAMESPACE = ""; String METHOD_NAME = "";

String SOAP_ACTION = ""; String URL = "http://10.0.2.2/ " ; atau String URL = "http://www. " ;

10.0.2.2 merupakan alamat localhost dari Web Service Komputer yang akan diakses emulator Android karena emulator Android tidak dapat mengakses domain localhost. Proses Pengiriman Nilai Parameter ke Web ServerPropertyInfo pi = new PropertyInfo(); pi.setName("name"); pi.setValue(input); pi.setType(String.class); Request.addProperty(pi);

PropertyInfo adalah variable untuk memasukkan nilai parameter yang mau dikirim ke web service. Kemudian yang akan digabung kedalam variable Request. SoapSerializationEnvelope Class Bagian Envelope pada SOAP dibuat dengan menggunakan class SoapSerializationEnvelope dan Request ditambahkan pada Body dalam Envelope.SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.setOutputSoapObject(request);

Karena Web Service yang digunakan adalah berbasis .NET, diperlukan setting .dotNet property disetting TRUE pada Envelope.envelope.dotNet = true;

HttpTransportSE Class HttpTransportSE digunakan untuk membuat panggilan sebenarnya dari metode layanan Web, amplop yang lulus sebagai parameter. Hasilnya adalah diambil dari bagian respon dari amplop.HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); androidHttpTransport.call(SOAP_ACTION, envelope);

TUGAS PENDAHULUANPahamilah langkah-langkah yang ada pada prosedur percobaan. Kemudian buatlah flowchart untuk aplikasi yang akan di buat.

TUGAS PRAKTIKUMBuatlah sebuah aplikas Client Server menggunakan NuSOAP pada Server Side dan KSOAP pada Client Server. Server Side Pertama-tama, kita kerjakan Server Side terlebih dahulu. Dengan menggunakan NuSOAP, program dapat terhubung dan memproses data untuk Client. 1. Buatlah sebuah file php bernama server.php, yang berisi sebagai berikut.

Pada Server Side, kita membuat sebuah Server WSDL yang dikonfigurasi untuk method hello.$server->configureWSDL('hello');

Pada program Server Side, kita mendaftarkan isi dari Server, yaitu: Nama method : hello Parameter input : variable name bertipe string Parameter output : variable return bertipe string Namespace : helloworld SOAP Action : helloworld/hello

Style Use

: RPC : encoded

$server->register( 'hello', array('name' => 'xsd:string'), array('return' => 'xsd:string'), 'uri:helloworld', 'uri:helloworld/hello', 'rpc', 'encoded' ); Definisikan

// // // // // //

input parameters output parameters namespace SOAP Action style use

method hello sebagai fungsi php, yang akan memproses parameter input dan akan mengelola parameter output yang akan dikirmkan pada Client Side.function hello($name) { return 'Hello, ' . $name; }

2. Untuk menguji kebenaran hasil Server Side, dapat menggunakan Add-On pada Mozilla Firefox, yaitu SOA Client. Klik kanan pada halaman web, pilih SOA Client > Access Web Service. Kemudian masukkan alamat file php yang ditambah dengan ?wsdl.

Tampilan wsdl Server pada SOA Client

3. Masukkan nilai inputan, kemudian klik Invoke. Maka muncullah hasil dari file server.php sebagai Server Side.

Tampilan hasil percobaan program wsdl Server pada SOA Client

Client Side Setelah Server Side selesai dibuat, kita kerjakan Client Side. Dengan menggunakan KSOAP, program dapat terhubung dan menerima data dari server. 1. Buatlah sebuah project Android baru. Untuk layout main.xml, isi program sebagai berikut.

Sehingga tampilan layout akan terlihat seperti berikut.

2. Untuk ClientSOAPActivity.java yang merupakan java class utama. Yang berisi sebagai berikut.public class ClientSOAPActivity extends Activity { String NAMESPACE = "http://10.0.2.2/soap/hello"; String METHOD_NAME = "hello"; String SOAP_ACTION = "http://10.0.2.2/serverB/server.php/hello"; String URL = "http://10.0.2.2/serverB/server.php?wsdl"; String input = null; TextView tvOutput; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.main); final EditText etInput = (EditText) findViewById(R.id.etInput); Button bOK = (Button) findViewById(R.id.bOK); tvOutput = (TextView) findViewById(R.id.tvOut); bOK.setOnClickListener(new OnClickListener(){ public void onClick(View arg0) { // TODO Auto-generated method stub input = etInput.getText().toString(); getSoap(); } }); } private void getSoap(){ SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME); PropertyInfo pi = new PropertyInfo(); pi.setName("name"); pi.setValue(input); pi.setType(String.class); Request.addProperty(pi); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.dotNet = true; envelope.setOutputSoapObject(Request); HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); try { androidHttpTransport.call(SOAP_ACTION, envelope); Object response = envelope.getResponse(); String result = response.toString(); //System.out.println(result); tvOutput.setText(result); } catch(Exception e) { e.printStackTrace(); } } }

Pada Client Side, kita isikan parameter penghubung dengan Server Side, yaitu: NAMESPACE = namespace dari Web Service, yaitu helloworld/hello. SOAP_ACTION = alamat URL yang merupakan gabungan dari lokasi file PHP Server dan Method_Name, yaitu http://10.0.2.2/serverB/server.php/hello. METHOD_NAME = nama operasi pada WSDL Server, yaitu hello. URL = alamat URL dari WSDL Server dan terakhirnya ditambah ?wsdl, yaitu http://10.0.2.2/serverB/server.php?wsdl.

Karena kita menggunakan Web Service localhost, maka alamat url menggunakan 10.0.2.2 untuk alamat Web Service computer kita.String NAMESPACE = "http://10.0.2.2/helloworld/hello"; String METHOD_NAME = "hello";

String SOAP_ACTION = "http://10.0.2.2/serverB/server.php/hello"; String URL = "http://10.0.2.2/serverB/server.php?wsdl";

3. Pada AndroidManifest ditambahkan permission untuk mengakses internet.

Sehingga hasil dari program Client Side sebagai berikut.

LAPORAN RESMIBuatlah laporan hasil percobaan di atas. Laporan berisikan dasar teori, langkah-langkah percobaan, hasil percobaan, analisa percobaan, dan analisa kegunaan dari aplikasi yang telah dibuat.