Uncategorized

Mengenal Web Service, Salah Satu Teknologi Web

Web service merupakan suatu komponen software yang merupakan selfcontaining, aplikasi modular self-describing yang dapat dipublikasikan, dialokasikan, dan dilaksanakan pada web. Web service adalah teknologi yang mengubah kemampuan internet dengan  menambahkan kemampuan transactional web, yaitu kemampuan web untuk saling berkomunikasi dengan pola program-to-program (P2P). Fokus web selama ini didominasi oleh komunikasi program-to-user dengan interaksi business-to-consumer (B2C), sedangkan transactional web akan didominasi oleh program-to-program dengan interaksi business-to-business.

gambar web service

Gambar 1 merupakan blok bangunan web service yang mana menyediakan fasilitas komunikasi jarak jauh antara dua aplikasi yang merupakan layer arsitektur web service.

a. Layer 1 : protokol internet standar yang digunakan sebagai sarana transportasi adalah HTTP dan TCP/IP.

b. Layer 2 : Simple Object Access Protocol (SOAP) berbasiskan XML dan digunakan untuk pertukaran informasi antar sekelompok layanan.

c. Layer 3 : Web service Definition Language (WSDL) digunakan untuk mendiskripsikan attribute layanan.

d. Layer 4 : Universal Description, Discovery and Integration, yang mana merupakan direktori pusat untuk deskripsi layanan.

 

Web service adalah sebuah software yang dirancang untuk mendukung interoperabilitas interaksi mesin-ke-mesin melalui sebuah jaringan. Web service secara teknis memiliki mekanisme interaksi antar sistem sebagai penunjang interoperabilitas, baik berupa agregasi (pengumpulan) maupun sindikasi (penyatuan). Web service memiliki layanan terbuka untuk kepentingan integrasi data dan kolaborasi informasi yang bisa diakses melalui internet oleh berbagai pihak menggunakan teknologi yang dimiliki oleh masingmasing pengguna. Sekalipun mirip dengan Application Programming Interface (API) berbasis web, web service lebih unggul karena dapat dipanggil dari jarak jauh melalui internet. Pemanggilan web service bisa menggunakan bahasa pemrograman apa saja dan dalam platform apa saja, sementara API hanya bisa digunakan dalam platform tertentu. Web service dapat dipahami sebagai Remote Procedure Call (RPC) yang mampu memproses fungsi-fungsi yang didefinisikan pada sebuah aplikasi web dan mengekspos sebuah API atau User Interface (UI) melalui web. Kelebihan web service adalah: 1) lintas platform, 2) language independent, 3) jembatan penghubung dengan database tanpa perlu driver database dan tidak harus mengetahui jenis DBMS, 4) mempermudah proses pertukaran data, serta 5) penggunaan kembali komponen aplikasi. Berdasarkan konsep hubungan dan penyampaian informasi, web service dikembangkan melalui empat model arsitektur, masing-masing berorientasi pada message, action, resource, dan policy. Pengembangan model yang diturunkan berdasarkan orientasi pada action (Service Oriented Model/SOM)) menghasilkan Services Oriented Architecture (SOA), yaitu model arsitektur berbasis layanan. Sementara pengembangan model yang diturunkan berdasarkan orientasi pada resource (Resource Oriented Model/ROM) menghasilkan Resource Oriented Architecture (ROA), yaitu model arsitektur berbasis sumberdaya informasi.

Dalam perkembangannya, model web service memiliki dua metode yang berorientasi pada layanan dan sumberdaya informasi, yaitu: SOAP (Simple Object Access Protocol) dan REST (REpresentational State Transfer). Impementasi model SOA telah banyak dilakukan dan dikembangkan oleh banyak vendor (misal: Microsoft, Sun dan IBM, melalui dukungan platform infrastruktur .Net dan Java). Proses layanan dengan arsitektur SOAP memiliki tiga komponen utama, yaitu: 1) service provider, 2) service requester, dan 3) service broker, serta komponen pendukung yaitu: 1) XML, 2) SOAP-XML (terdiri atas header dan body), 3) WSDL, serta 4) UDDI. Metode REST telah dikembangkankan oleh Fielding yang didasari oleh empat prinsip utama teknologi, yaitu: 1) Resource identifier through Uniform Resource Identifier (URI), 2) uniform interface (sumberdaya CRUD menggunakan operasi PUT, GET, POST, dan DELETE), 3) self-descriptive messages (sumberdaya tidak terikat sehingga dapat mengakses konten HTML, XML, PDF, JPEG, plain text, meta data, dll), serta 4) stateful interactions through hyperlinks (bersifat stateless). Metode REST lebih sederhana karena menggunakan format standar (HTTP, HTML, XML, URI, MIME), namun jika diperlukan proses pertukaran data, maka konten berupa teks dari hasil eksekusi web service dapat diolah dalam format teks (seperti XML atau HTML) dengan menggunakan utilitas komunikasi data berupa koneksi socket protokol HTTP. Utilitas ini umumnya tersedia dalam pustaka komunikasi pada bahasa pemrograman (seperti Java, Visual Basic, Delphi, PHP, ASP, dan JSP).

Model web service memberikan layanan untuk proses pertukaran data antar sistem informasi yang merupakan bentuk implementasi konsep interoperabilitas. Model layanan web service setidaknya melibatkan dua hal penting, yakni:

1. Problem utama pada format data. Selama ini problem ini diselesaikan menggunakan format netral yaitu XML, yaitu sebuah format dokumen yang mampu menjelaskan struktur dan semantik (makna) dari data yang dikandung oleh dokumen, lebih fokus pada substansi data, struktur data dan semantik data yang ditransfer tidak “hilang”, dan telah menjadi standar defacto pertukaran data antar sistem.

2. Problem pada mekanisme pertukaran data. Solusi masalah ini dapat menggunakan Service-Oriented Architecture (SOA), yaitu sebuah skema yang memungkinkan komunikasi antar sistem dilakukan secara loosely-coupled, artinya masing-masing pihak tidak memiliki ketergantungan yang tinggi satu sama lain. Dalam SOA, komunikasi didasarkan pada konsep layanan menggunakan prinsip client-server, ada yang menyediakan layanan dan yang lain bisa meminta layanan. Permintaan layanan dilakukan dengan cara memanggil fungsi yang merepresentasikan layanan tersebut. Apabila fungsi dipanggil, maka aplikasi penyedia layanan wajib memberikan layanannya ke aplikasi pemanggil. Keunggulan SOA adalah detil internal yang terlibat dalam pemanggilan fungsi layanan

sepenuhnya disembunyikan. Ada interface yang memisahkan secara tegas bagian publik (boleh diketahui oleh aplikasi lain) dan bagian privat (aplikasi lain tidak perlu tahu). Dengan interface tersebut, aplikasi client tidak perlu tahu tentang detil internal, namun cukup mengetahui sintaks fungsinya saja. SOA bisa mengakomodasi kepentingan server yang tidak perlu menunjukkan detil data yang sensitif/rahasia, sementara client tetap bisa meminta data yang diinginkannya kepada server.

Sumber

Sutanta, Edhy. 2012. Kebutuhan Web Service Untuk Sinkronisasi Data Antar Sistem Informasi Dalam E-GOV Di Pemkab Bantul Yogyakarta. Jurtik-STMIK Bandung (Edisi Mei 2012)

Deviana, Hartati. 2011. Penerapan XML Web Service Pada Sistem Distribusi Barang. Jurnal Generic

Standard
Web

Jadwal Tepat Waktu Dalam Rekayasa Kebutuhan Aplikasi Web

Ilustrasi Waktu (sumber foto: www.vectorstock.com)

Ilustrasi Waktu (sumber foto: http://www.vectorstock.com)

“Aplikasi web akan tersedia secara online pada tanggal 1 Oktober 2013”. Ya, bagaimana tanggapan developer web jika mereka dikejar deadline untuk penyelesaian aplikasi web pada tanggal yang disebutkan tadi.

Rekayasa kebutuhan pada aplikasi web memberikan developer berupa gambaran dimana mereka harus membutuhkan untuk perencanaan pada aplikasi web. Setelah perencanaan dengan klien, maka ada pula persyaratan yang harus dipenuhi oleh developer yang diminta oleh klien.

Persyaratan semisal “Aplikasi web akan tersedia secara online pada tanggal 1 Oktober 2013” menjelaskan properti yang harus dipenuhi atau jasa yang akan disediakan oleh sistem. Persyaratan tersebut dapat dijelaskan lebih rinci sebagai berikut:

  • Kondisi atau kemampuan yang dibutuhkan oleh klien untuk memecahkan masalah atau mencapai suatu tujuan
  • Kondisi atau kemampuan yang harus dipenuhi dan dimiliki oleh sistem sesuai kontrak, standar, spesifikasi yang disepakati oleh klien
  • Representasi didokumentasi dari kondisi atau kemampuan

Kategori dalam rekayasa kebutuhan itu terbagi menjadi fungsional yang artinya teknis, kemampuan dan layanan yang disesuaikan sistem. Sedangkan non fungsional itu menggambarkan tingkat kualitas yang diinginkan.

Banyak pembuatan aplikasi web yang bersifat proyek design-to-schedule, dimana semua aktifitas keputusan harus memenuhi suatu deadline proyek yang telah ditetapkan oleh developer dan klien. Negosisasi dan penentuan prioritas menjadi sangat krusial pada keadaan selesainya aplikasi web.

Standard
Web

Mengenal Rekayasa Web (Web Engineering)

Rekayasa Web atau dikenal dengan istilah Web Engineering, jika kita mendengar dan membaca rekayasa web pasti dipikiran kita apakah dia sama dengan Rekayasa Perangkat Lunak?

Rekayasa Web (atau Web Engineering) dapat dikatakan sebagai salah satu cabang independen dari rekayasa perangkat lunak (software engineering). Engineering secara umum berarti aplikasi praktis dari saing untuk dunia komersil atau industri dengan tujuan agar perancangan aplikasi menjadi lebih baik, lebih cepat, lebih murah dan lebih aman.

Rekayasa Web merupakan versi teradaptasi dari pendekatan rekayasa perangkat lunak. Rekayasa web ini menawarkan pendekatan yang cepat, meski demikian menawarkan kerangka kerja yang terdisiplin untuk mengembangkan sistem-sistem dan aplikasi-aplikasi berbasis Web yang berkualitas industri [1].

Ketika developer web masih berpikir tidak perlu perancangan formal dalam membuat aplikasi web, maka hal ini tidak bisa dikatakan salah. Memang dengan perancangan biasa saja atau malah tidak memiliki perancangan pun bisa membuat aplikasi web, tetapi itu untuk aplikasi web yang relatif sederhana. Bagaimana ketika membuat aplikasi web yang isinya itu ratusan bahkan ribuan yang penting untuk keberhasilan sebuah bisnis organisasi/perusahaan, maka perancangan pada aplikasi web tersebut tidak bisa dianggap remeh dan itu diperlukan.

Realita dari perkembangan aplikasi-aplikasi web di atas mengarah pada pendekatan yang diajukan oleh Nielsen yaitu “idealisme rekayasa untuk menyelesaikan permasalahan-permasalahan yang kelak akan dihadapi oleh para pelanggan.” Rekayasa web mengadopsi filosofi ini dan sesungguhnya ada banyak pendekatan yang tidak terlalu rinci untuk perancangan aplikasi-aplikasi web yang memungkinkan para pengembang untuk mencapainya.

Rekayasa web sendiri mempunyai pengertian sebagai usaha perancangan untuk aplikasi-aplikasi web yang pada dasarnya memerlukan aktivitas-aktivitas teknis dan nonteknis yang di dalamnya mencakup beberapa hal yang penting yaitu: penetapan tampilan aplikasi-aplikasi web, pembuatan rancangan estetika antar muka pengguna, pendefinisian struktur arsitektur aplikasi web secara keseluruhan, pengembangan isi dan fungsionalitas yang berada dalam arsitektur aplikasi web dan perencanaan navigasi yang ada di dalam suatu aplikasi web. Perancangan pada dasarnya merupakan aktivitas rekayasa yang memungkinkan terbentuknya produk yang berkualitas tinggi.

Siapa yang melakukan rekayasa web? Yang melakukan ini adalah rekayasawan-rekayasawan web, perancang-perancang grafis, pengembang-pengembang isi, serta para stakeholder lainnya ikut berperan serta dalam pembuatan model-model perancangan aplikasi-aplikasi web.

Ada 6 langkah utama dalam perancangan aplikasi web yang semuanya dikendalikan oleh informasi yang diperoleh melalui pemodelan spesifikasi-spesifikasi kebutuhan.

perancangan

6 langkah utama dalam perancangan web

Suatu model perancangan yang memuat di dalamnya isi, estetika, arsitektur, antarmuka, navigasi, dan permasalahan-permasalahan perancangan pada peringkat komponen, merupakan produk kerja utama yang dihasilkan selama perancangan aplikasi-aplikasi web dilaksanakan.

Aplikasi Web (Web Application/Web App) berbeda dari software lain karena hal-hal dibawah ini:

  • Network Intensive. Sifat dasar dari WebApp (aplikasi web) adalah aplikasi ini ditujukan untuk berada di jaringan dan memenuhi kebutuhan komunitas yang berbeda.
  • Content-Driven. Sebagian besar fungsi dari WebApp adalah untuk menyajikan informasi dalam bentuk teks, grafik, audio, dan video ke end-user.
  • Continuous Evolution. Selalu berkembang secara terus-menerus.
  • Document-oriented. Halaman-halaman situs yang statis akan tetap ada sekalipun sudah ada pemrograman web dengan Java atau yang lain.

Selain itu aplikasi web memiliki karakteristik seperti berikut ini:

  • Immediacy. Diperlukan segera untuk memenuhi ditayangkan, dipasarkan dalam waktu singkat.
  • Security. Untuk melindungi isi yang sensitif dan menyediakan pengiriman data yang aman, keamanan suatu aplikasi web harus diterapkan pada seluruh infrastruktur yang mendukung aplikasi web dan termasuk dalam aplikasi web sendiri.
  • Aesthetics. Daya tarik utama aplikasi web adalah tampilan dan keindahan. Jika aplikasi web digunakan untuk memasarkan suatu produk maka sisi aestetika harus diperhatikan sebagaimana sisi teknis.

Rekayasa web sangat penting, mengapa? Dengan perancangan dan produk-produk kerja yang dihasilkannya memungkinkan kita untuk membuat suatu model yang dapat dinilai kualitasnya dan dapat diperbaiki sebelum isi dan kode dibentuk, sebelum pengujian-pengujian dilakukan, dan sebelum para pengguna akhir yang berjumlah besar terlibat. Perancangan adalah tempat dimana kualitas aplikasi-aplikasi web ditentukan.

[1] Pressman, R., and D. Lowe, Web Engineering: A Practitioner`s Approach, McGraw-Hill, 2008

Pressman, R. Rekayasa Perangkat Lunak: Pendekatan Praktisi (Edisi 7, Buku Satu), Penerbit Andi, 2010

Proboyekti, Umi. Rekayasa Web Untuk Rekayasa Perangkat Lunak TI UKDW.

Standard