Minggu, 10 Agustus 2008

The 3rd Map Info User Forum Indonesia 2008

Ketika kita kerja pastinya ada saat dimana pikiran butek, gak bisa mikir, gak kreatif, badan capek, jalanan becek, trus mo pulang gak ada ojek... hehe kok jadi nyasar ke motto nya Cinta laura wakakakakak... yang pasti pikiran perlu di upgrade supaya gw sebagai generasi muda bisa mengeluarkan ide2 cemerlang terobosan baru di bidang Information Technology..... akhirnya gw dapat tawaran seminar "The 3rd Map Info User Forum Indonesia 2008" pada tanggal 5 agustus 2008 dari temen kantor gw... wah keren juga tuch free lagi apa sich yang gak asyik kalo free ... dapet makan gratis minum gratis lumayan hehe.... siapa tau dapet kenalan gratis... hehe jangan mikir jorok dulu hihi kenalan bussines di bidang IT maksudnya.. maklum kita kan nyari yang romantis alias Rokok makan gratis.. waaakss kok jadi ngelantur nich... hihi ya udah gw lanjutin lagi nich .. Topik nya menarik Abiz yo pastinya.. topik dibuka Gunawan Rianto Presiden Direktur PT Duta Astakona Girinda tentang "Introduction to Mapinfo User Forum Indonesia 2008" keren juga waktu gw liat apa hubungannya dengan IT ya... waks, Kemudian Keynote speaker oleh Ir. Cahyana Achmadjayadi Director General Application Telematic DEPKOMINFO hehe ketemu lagi sama orang government..., kemudian dilanjutkan oleh Ben Rippingale Sales Director Pitney Bowes Mapinfo SE Asia beliau datang jauh2 dari Australia topik yg dibahas adalah MapInfo Future Technology and Direction wah dari situ banyak yg gw dapet ilmu nya tapi sayang aplikasi ini gak free alias bukan Open Source... yg open source ada gak ya... hihi ngarep... tampilan visual ini 3d dan kuereeen bgt dech untuk sebuah software untuk membuat aplikasi. abis itu coffe break dan makan siang... wueeeeenakee mak nyozzzz

Ternyata banyak selama ini programer IT dalam membuat database itu selalu yang tradisional... aplikasinya dari VB, PHP, Delphi pokoknya dari berbasis desktop sampai sampai berbasis Web... semuanya hanya tampilan tradisional... tanpa adanya interface yang canggih... dan itu membuka pikiran gw karena selama ini gw buat program pasti cuma garbage in garbage out... misal data dinput keluar output.. jadi hanya keluar huruf atau kata2 ketika kita membutuhkan informasi.

Padahal kita bisa memanfaatkan Aplikasi dari MapInfo yang bisa digunakan untuk aplikasi web mapping.. kita bikin database tampilannya mapping.. keren kan misal gw pengen cari jumlah pegawai di daerah "A" maka visualisasi nya dengan mapping tadi akan memberikan informasi data dan juga visual mapping.. hmmmm agak sulit juga ya menjelaskannya karena kita terbiasa membuat program masukin data keluarnya data sich... hihii

Selain itu Kita bisa mencari wilayah atau anak cabang yang diinginkan dari perusahaan anda... tinggal click region yg diinginkan maka akan muncul informasi yg kita dapatkan praktis lagi setahu gw program seperti ini sudah banyak di adopt di luar negri kaya di USA contohnya NASA pokoknya untuk mendapatkan informasi visualisasi nya MAPPING apalagi kalo terhubung via Satelite dan terhubung dengan CCTV diseluruh dunia keren bgt jadi inget film SmallVille ... musuh nya clarck Kent yaitu Lex Luthor bisa mendapatkan Informasi Dari fasilitas Mapping tadi atau mungkin Matrix Reloaded ya kira kira seperti itu lah aplikasi Mapinfo itu bisa diterapkan Di indonesia

Pasti temen2 atau sodara2 bertanya-tanya database nya menggunakan apa? jangan kuatir database bisa menggunakan SQL Server, MySQL, MS ACCESS, PostgreSQL, bahkan Ms Excell hihi karen software ini punya ODBC yatiu Open Database Connection gitu dech..

cuma yang gw kurang puas ya itu tadi Softwarenya gak Free. tapi kalo dipikir2 sich sebanding lah dengan aplikasinya keren kok.. tapi klo mau coba aja softwarenya cari di Glodok.. hehe
nich gw kasih tau produk nya Mapinfo :

1. Mapinfo Professional
2. Mapinfo MapBasic
3. Mapinfo MapXtreme for Java Edition
4. Mapinfo MapXtreme for Windows
5. Mapinfo MapXMobile
6. Mapinfo SpatialWare
7. Mapinfo Exponare
8. Mapinfo Envinsa
9. Mapinfo Discover
10 Mapinfo Compass
11 Mapinfo Street Pro Indonesia

Have a nice try and be the best programer ..
Chayo..


tabik
Achmad Supandi, S.Kom
Database Of HRD Meteorological and Geophysical Agency

Rabu, 09 Juli 2008

MESSAGING WEB SERVICES USING SOAP

Puyeng juga yech disuruh bikin Paper sama Pak Adang Suhendra, yang berhubungan dengan SOAP he :D omong2 soal SOAP (sabun) jadi inget tebakan gokil nich... Sabun sabun apa yang bau hehe ? ................ jawabnya Sabuntar-sabuntar lu kentut, sih! wkwkwkwk buat ilangin stres dikit... he :D balik lagi akhirnya gw fokus untuk ngerjain tuch paper gw kutak kutik coding, tanya temen gw Ibnu Triyono akhirnya gw dapet simple ajaah pake PHP yang Open Source (GPL) gitu dech... nich gw kasih tapi kalo ada saran yang lebih baik lebih bagus karena gw masih belajar hihihi :D


MESSAGING WEB SERVICES USING SOAP

Achmad Supandi

Email : Vai_andi@bmg.go.id

Abstrak

Web Services adalah sebuah komponen layanan aplikasi yang dapat diakses melalui protokol terbuka yang memanfaatkan Web melalui Simple Object Access Protocol (SOAP) dengan bahasa Web Services Description Language (WSDL) dan teregistrasi dalam Universal Discovery Description and Integration (UDDI). Web services mendukung komunikasi antar aplikasi dan integrasi aplikasi dengan menggunakan XML dan Web. XML (eXtensible Markup Language) adalah sebuah standar untuk mendefinisikan data dalam format yang sederhana dan fleksibel.

Pada penulisan ini penulis memfokuskan pemanfaatan web melalui Simple Object Acces Protocol (SOAP). Permasalahan utama adalah disini terletak beberapa perbedaan dalam hal implementasi SOAP, di mana message SOAP yang dihasilkan oleh suatu toolkit belum tentu dapat diterima dan digunakan oleh pihak lain yang menggunakan platform berbeda. Banyak hal yang menyebabkan terjadinya masalah – masalah tersebut, dan tidak selalu hal tersebut merupakan masalah yang ada di SOAP itu sendiri, melainkan juga masalah – masalah dalam menginterpretasikan kode – kode syntax HTTP maupun syntax dari XML itu sendiri. Implementasi SOAP sendiri kemudian disadari tidaklah mudah dan sesederhana yang dibayangkan. Karena SOAP sendiri tidak lebih dari sekedar spesifikasi, yang mencoba untuk mendeskripsikan dan mendefinisikan setiap aspek dan mekanisme yang ada dalam sebuah RPC. Hal ini yang kemudian banyak membuat kerancuan dan kebingungan ketika seorang developer pertama kali mempelajari SOAP. Selain harus membiasakan diri dan menjadi fasih dengan spesifikasi SOAP, seorang developer juga harus fasih dengan spesifikasi dari tool atau program yang digunakan untuk menghasilkan sebuah message SOAP dan juga untuk membaca serta mengartikan sebuah message SOAP yang diterima. Benar, seorang developer akan memerlukan software atau tool untuk dapat berinteraksi dengan SOAP.

Dengan adanya sistem ini kita bisa dengan mudah mengirim report pertukaran data secara otomatis meskipun dari jarak yang sangat jauh dan kita dapat mengatur waktu. Sistem ini bisa diterapkan untuk individu yang ingin mendapatkan report secara otomatis maupun Instansi pemerintah atau perusahaan-perusahaan.


Kata Kunci : otomatis, soap, XML

1. PENDAHULUAN

Setelah pembahasan mengenai Web Services semakin ramai dibicarakan orang, hal ini menjadi pertanda bahwa konsep keterbukaan antar aplikasi semakin diterima dengan baik. Setiap orang semakin menyadari akan pentingnya interoperabilitas antar berbagai aplikasi lintas platform. Hal ini dipicu dan didorong oleh berbagai bentuk model bisnis baru yang mulai diterapkan dalam dunia bisnis. Adalah ecommerce atau ebusiness yang memungkinkan terjadinya transaksi antar banyak pihak tanpa dihalangi oleh batasan geografi maupun batasan platform yang digunakan yang dimanfaatkan oleh para pelaku bisnis untuk mengembangkan pasar yang tadinya tidak pernah terpikirkan.

Akan tetapi, mewujudkan cita – cita tersebut adalah sebuah jalan panjang dengan berbagai tantangan yang harus dihadapi. Era reformasi atau keterbukaan di dunia TI ternyata juga tidaklah mudah. Konsep web services akan dapat berhasil dan berjalan baik apabila banyak hal yang disyaratkan terpenuhi. Salah satu penerapan web services adalah interoperabilitas atau disingkat interop, yakni melakukan sebuah proses pengaktifan fungsi atau pemanggilan sebuah method (method call) secara remote atau biasa dikenal dengan istilah Remote Procedure Call (RPC). Interop menjadi rumit dan penuh tantangan karena banyak pihak akan saling berinteraksi, dan setiap pihak yang akan berinteroperasi haruslah memenuhi berbagai kesepakatan. Yang paling utama dalam masalah interoperabilitas adalah mengenai :

1. Protokol transport yang digunakan untuk saling mengirimkan message.

2. Mekanisme untuk mengirimkan message yang berisikan berbagai parameter untuk mengaktifkan sebuah panggilan prosedur jarak jauh. Dan menerima response dari program yang diaktifkan.

3. Mengartikan setiap pesan yang diterima.

Sesungguhnya, upaya – upaya yang dilakukan untuk mewujudkan sebuah interop yang handal telah dan terus dilakukan oleh berbagai vendor. Teknologi – teknologi seperti Distributed Component Object Model (DCOM) dari Microsoft, CORBA, Internet Inter-ORB Protocol (IIOP) dari Object Managemen Group dan masih banyak lainnya adalah contohnya. Namun, tidak ada satupun dari berbagai inisiatif dan teknologi tersebut yang dapat diterima dengan mudah oleh para developer untuk membangun aplikasi – aplikasi yang saling berinteroperasi. Tantangan dan hal – hal seperti yang disebutkan di atas terlalu menyulitkan untuk dapat diimplementasikan, dan semakin sulit ketika teknologi – teknologi tadi coba disatukan atau diintegrasikan dengan teknologi yang berasal dari platform yang berbeda.

2. METODE SOAP

Kalau sekarang konsep web services dapat diterima, dan hanya dalam kurun waktu yang sangat singkat telah dilalui sebuah kurva belajar oleh para developer untuk mempelajari dan menerima konsep ini, tentunya ada hal yang cukup istimewa di sini. Protokol yang digunakan untuk menjalankan konsep web services dikenal dengan nama Simple Object Access Protocol atau yang biasa disingkat SOAP. SOAP menjadi sangat mudah diterima oleh berbagai pihak – terutama oleh berbagai vendor TI – dikarenakan protokol ini memanfaatkan berbagai teknologi yang sudah ada sebelumnya dan sudah banyak digunakan. Misalnya untuk protokol transport, yang paling banyak digunakan adalah HTTP, walaupun dimungkinkan untuk menggunakan protokol transport lainnya. Sedangkan untuk format data atau message digunakan XML yang tidak diragukan lagi manfaat dan perannya di dalam pertukaran data. Dengan demikian, tidaklah terlalu mengherankan bila kemudian SOAP dianggap sebagai solusi penyelamat untuk mengatasi berbagai masalah yang dihadapi oleh teknologi – teknologi pendahulunya.

1. MODEL IMPLEMENTASI

Implementasi SOAP sendiri kemudian disadari tidaklah mudah dan sesederhana yang dibayangkan. Karena SOAP sendiri tidak lebih dari sekedar spesifikasi, yang mencoba untuk mendeskripsikan dan mendefinisikan setiap aspek dan mekanisme yang ada dalam sebuah RPC. Hal ini yang kemudian banyak membuat kerancuan dan kebingungan ketika seorang developer pertama kali mempelajari SOAP. Selain harus membiasakan diri dan menjadi fasih dengan spesifikasi SOAP, seorang developer juga harus fasih dengan spesifikasi dari tool atau program yang digunakan untuk menghasilkan sebuah message SOAP dan juga untuk membaca serta mengartikan sebuah message SOAP yang diterima. Benar, seorang developer akan memerlukan software atau tool untuk dapat berinteraksi dengan SOAP.

Di sinilah terjadi persaingan dalam hal implementasi SOAP, di mana beberapa vendor mengeluarkan seperangkat tool untuk menghasilkan dan menerima message SOAP seperti Microsoft yang mengeluarkan SOAP Toolkit dan sekarang sudah mencapai versi 2.0, Apache SOAP, PERL/SOAP Lite Client, dan sebagainya. Di sini terletak beberapa perbedaan dalam hal implementasi SOAP, di mana message SOAP yang dihasilkan oleh suatu toolkit belum tentu dapat diterima dan digunakan oleh pihak lain yang menggunakan platform berbeda. Banyak hal yang menyebabkan terjadinya masalah – masalah tersebut, dan tidak selalu hal tersebut merupakan masalah yang ada di SOAP itu sendiri, melainkan juga masalah – masalah dalam menginterpretasikan kode – kode syntax HTTP maupun syntax dari XML itu sendiri.

Salah satu sekian banyak Simple object acces protokol (SOAP) modul yang penulis gunakan adalah NUSOAP dari PHP_curl. CURL adalah suatu command line tool yang sangat terkenal. CURL memungkinkan kita melakukan komunikasi langsung dengan berbagai protokol terkenal di internet. CURL mendukung protokol seperti FTP (File Transfer Protocol), FTPS (FTP/SSL), HTTP (Hyper Text Transfer Protocol), HTTPS (HTTP/SSL), SCP (Secure Copy Protocol), SFTP (Secure FTP), TFTP (Trivial FTP), Telnet, dan sebagainya. Untuk lengkapnya mengenai CURL dapat dilihat di website CURL.

Sering sekali kita sebagai programmer PHP ingin menggunakan protokol-protokol ini secara customized dan belum ada library PHP yang mendukungnya. Untuk itu modul curl/libcurl adalah solusi yang paling cocok untuk kita.

Setting CURL untuk Web

1. Untuk mengaktifkan curl pada distribusi PHP kita maka perlu kita pastikan bahwa library curl sudah ada dan kita perlu edit php.ini. Pada contoh saya, setting CURL yang akan saya tunjukkan di bawah ini menggunakan distribusi php dari paket XAMPP windows. Asumsi bahwa distribusi XAMPP terinstall di folder c:\xampp.

2. Edit file php.ini yang terdapat pada direktori C:\xampp\apache\bin\php.ini dan cari baris dengan entri seperti di bawah ini :

;extension=php_curl.dll
dan hilangkan tanda titik koma di depannya sehingga menjadi :
extension=php_curl.dll
Setelah diubah, simpan file tersebut dan restart server w
eb Anda.

3. Tes di konfigurasi curl Anda dengan php_info() function dan lihat apakah modul curl sudah di-load dengan baik. Apabila modul tersebut sudah aktif maka pada informasi php_info() akan terlihat baris seperti pada gambar di bawah.

4. PENUTUP

SOAP (Simple Object Access Protocol) adalah standar untuk bertukar pesan-pesan berbasis XML melalui jaringan komputer atau sebuah jalan untuk program yang berjalan pada suatu sistem operasi (OS) untuk berkomunikasi dengan program pada OS yang sama maupun berbeda dengan menggunakan HTTP dan XML sebagai mekanisme untuk pertukaran data.

SOAP menspesifikan secara jelas bagaimana cara untuk meng-encode header HTTP dan file XML sehingga program pada suatu komputer dapat memanggil program pada pada komputer lain dan mengirimkan informasi, dan bagaimana program yang dipanggil memberikan tanggapan.

SOAP adalah protokol ringan yang ditujukan untuk pertukaran informasi struktur pada lingkup desentralisasi, dan terdistribusi. SOAP menggunakan teknologi XML utuk mendefinsiskan rangka kerja pemesanan terekstrensi di mana menyediakan konstruksi pesan yang dapat dipertukarkan pada protokol berbeda. Rangka kerja dirancang bebas dari model pemrograman dan spesifikasi implementasi semantik.

SOAP Syntax Rules

· A SOAP message MUST be encoded using XML

· A SOAP message MUST use the SOAP Envelope namespace

· A SOAP message MUST use the SOAP Encoding namespace

· A SOAP message must NOT contain a DTD reference

· A SOAP message must NOT contain XML Processing Instructions

Yang patut disyukuri adalah, walaupun beberapa masalah terus ditemukan, namun jumlah kesuksesan dari hasil uji coba dan implementasi langsung di berbagai project terus menunjukkan angka yang lebih tinggi, sehingga keyakinan akan keuntungan yang dihasilkan dari implementasi SOAP dibandingkan teknologi pendahulunya tetap diyakini oleh berbagai pihak sebagai solusi yang lebih baik. Di samping tentu saja, upaya – upaya untuk menstandarisasikan mekanisme menjadi lebih universal juga terus dilakukan.

Listing Program SOAP


$client = new soapclient('https://222.124.145.222/tps/service.asmx?WSDL', true);

$result = $client->call($service_name, array('fStream'=>$xml_data,'Username' => $service_username, 'Password'=>$service_password));

//ini adalah hasilnya

$hasil = $result['CoCoCont_TesResult'];

print_r($result);

$sql_change = "UPDATE `tps_cococont_header` SET `SENT` = '1' WHERE `REF_NUMBER` = '$ref_num' ";

$rs_change = $db_int->execute($sql_change);

if($result){

//common::alert_to("Pengiriman data dengan Ref Number $ref_num Berhasil", "index.php?module=xmlGenerator&action=listKirimKontainer");

switch($hasil){

case "Proses berhasil":

$sql_change = "UPDATE `tps_cococont_header` SET `SENT` = '1' WHERE `REF_NUMBER` = '$ref_num' ";

$rs_change = $db_int->execute($sql_change);

echo "berhasil";

break;

case "User Tidak Dikenal !!":

break;

case "Validasi data XML anda tidak benar":

Result

kontainer_xml_template.xml

xml version="1.0" encoding="UTF-8" ?>

- <DOCUMENT xmlns="cococont.xsd">

- <COCOCONT>

- <HEADER>

<KD_DOK>{$kd_dok}KD_DOK>

<KD_TPS>{$kd_tps}KD_TPS>

<NM_ANGKUT>{$nm_angkut}NM_ANGKUT>

<NO_VOY_FLIGHT>{$no_voy_flight}NO_VOY_FLIGHT>

<CALL_SIGN>{$call_sign}CALL_SIGN>

<TGL_TIBA>{$tgl_tiba}TGL_TIBA>

<KD_GUDANG>{$kd_gudang}KD_GUDANG>

<REF_NUMBER>{$ref_number}REF_NUMBER>

HEADER>

- <DETIL>

{section name=list loop=$item}

- <CONT>

<NO_CONT>{$item[list].no_cont}NO_CONT>

<UK_CONT>{$item[list].uk_cont}UK_CONT>

<NO_SEGEL>{$item[list].no_segel}NO_SEGEL>

<JNS_CONT>{$item[list].jns_cont}JNS_CONT>

<NO_BL_AWB />

<TGL_BL_AWB />

<NO_MASTER_BL_AWB />

<TGL_MASTER_BL_AWB />

<ID_CONSIGNEE />

<CONSIGNEE />

<BRUTO>{$item[list].bruto}BRUTO>

<NO_BC11 />

<TGL_BC11 />

<NO_POS_BC11 />

<KD_TIMBUN>{$item[list].kd_timbun}KD_TIMBUN>

<KD_DOK_INOUT />

<NO_DOK_INOUT />

<TGL_DOK_INOUT />

<WK_INOUT>{$item[list].wk_inout}WK_INOUT>

<KD_SAR_ANGKUT_INOUT>{$item[list].kd_sar_angkut}KD_SAR_ANGKUT_INOUT>

<NO_POL />

<FL_CONT_KOSONG>{$item[list].fl_cont_kosong}FL_CONT_KOSONG>

<ISO_CODE>{$item[list].iso_code}ISO_CODE>

<PEL_MUAT>{$item[list].pel_muat}PEL_MUAT>

<PEL_TRANSIT>{$item[list].pel_transit}PEL_TRANSIT>

<PEL_BONGKAR>{$item[list].pel_bongkar}PEL_BONGKAR>

<GUDANG_TUJUAN>{$item[list].gudang_tujuan}GUDANG_TUJUAN>

CONT>

{/section}

DETIL>

COCOCONT>

DOCUMENT>

Daftar Pustaka

[1]Tutang, SOAP (Simple Object Access Protocol)http://www.pranata.lipi.go.id/index.php/2007/06/05/soap-simple-object-access-protocol-2/ Jun 5th 2007

[2] Madhusudhan Govindaraju, Sriram Krishnan, Kenneth Chiu, Aleksander Slominski, Dennis Gannon, Randall Bramley ” XCAT 2.0: A Component-Based Programming Model for Grid Web Services” Department of Computer Science

[3] http://www.ibnoe.web.id/2005/08/07/simple-object-access-protocol.aspx

ya kira2 gitu dech kalo ada saran yang lebih baik monggo wasalam