BAB II DASAR TEORI
2.1
Internet
Internet yang akan dibahas di sub bab ini meliputi Pengertian Internet, Sejarah Internet, World Wide Web (WWW), HyperText Markup Language (HTML), dan Uniform Resource Locator (URL).
2.1.1 Pengertian Internet
Internet adalah sistem jaringan komputer yang meluas ke seluruh dunia terdiri dari jaringan – jaringan dan berbagai tipe komputer yang saling berhubungan (Hahn, 1996, p2). Internet merupakan jaringan komputer dunia yang meliputi jutaan komputer. Komputer – komputer tersebut dapat saling bertukar informasi (Samuel & Rahmayanto, 1997, p. 1). Internet adalah suatu jaringan dari jaringan yang mempunyai cakupan internasional, menghubungkan jutaan orang pada lebih dari 100 negara (Green, 2000, p. 255). Internet adalah sebuah jaringan global yang berkembang sangat cepat terdiri dari ribuan jaringan bisnis, pendidikan, dan penelitian yang menghubungkan jutaan sistem komputer dan para penggunanya berada pada banyak negara (O’Brien, 2001, p. 179).
7
Internet adalah sebuah jaringan komputer yang sangat besar yang terdiri dari jaringan – jaringan kecil yang saling terhubung yang menjangkau seluruh dunia (Oetomo, 2001, p. 10). Internet adalah jaringan telekomunikasi dan elektronik raksasa yang terhubung dengan komputer – komputer bisnis, agen – agen pemerintahan, sekolah – sekolah, dan organisasi – organisasi lain di seluruh dunia dimana pertukaran informasi yang tidak terlihat dengan bebas, tidak ada kepemilikan dan menggunakan protokol – protokol (Turban et al., 2003, p. 200). Internet dapat didefinisikan sebagai sekumpulan jutaan jaringan komputer yang saling berhubungan satu sama lain melalui router yang menggunakan protokol TCP / IP dan saling berbagi nama serta alamat. Untuk semua jaringan dan komputer yang beroperasi didalam internet memiliki prosedur dan protokol standar sehingga dapat saling berkomunikasi satu dengan yang lainnya. Sekumpulan protokol yang digunakan di internet dikenal sebagai TCP / IP. Internet Protocol (IP) merupakan protokol yang digunakan oleh router untuk mengatur paket – paket informasi yang ada. Jaringan individual mungkin saja tidak menggunakan protokol TCP / IP namun router yang menghubungkan jaringan tersebut dengan internet (disebut juga gateway) harus mengirim paket dengan menggunakan IP. Transmission Control Protocol (TCP) merupakan suatu protokol yang digunakan oleh komputer untuk mengirim dan menerima informasi. Fungsi dari TCP adalah memecah informasi menjadi beberapa paket dimana setiap paket ditandai dengan informasi pengirim dan penerima guna memastikan bahwa paket – paket tersebut tiba dan digabungkan kembali pada komputer penerima. Jika IP kehilangan paket maka tugas TCP adalah meminta mengirimkan ulang paket tersebut (Perrit, 2006, p. 26).
8
2.1.2 Sejarah Internet
Perkembangan teknologi internet pertama kali berawal pada pertengahan tahun 1970. Ketika itu, organisasi Defense Advance Research Projects Agency (DARPA) menemukan dan meneliti jaringan packet switching yang kemudian dikenal dengan nama ARPANET. Pada tahun 1979, salah satu objek penelitian DARPA fokus pada protokol TCP / IP. Protokol ini kemudian berkembang menjadi protokol utama pada internet. Setahun berikutnya, protokol TCP / IP mengalami transformasi yang sangat pesat. Protokol yang baru digunakan ARPANET menjadi backbone dari jaringan yang baru. Lebih dari itu, banyak sekali peneliti yang menggunakan protokol ini. Pada tahun 1983, setiap komputer yang terhubung dengan ARPANET telah menggunakan protokol TCP / IP (Dix et al., 1997, p. 99). Universitas di Amerika Serikat tertarik untuk mengadopsi protokol yang dikembangkan oleh DARPA didalam penelitian mereka. Mereka mencoba untuk mengembangkan protokol ini pada sistem operasi yang paling sering digunakan saat itu yaitu Unix. University of Carolina adalah salah satu universitas yang berhasil mengukir prestasi dalam proyek pengembangan protokol TCP / IP. Melalui bagian khusus pengembangan aplikasi mereka, Berkeley Software Distribution, universitas ini berhasil mengembangkan paket protokol TCP / IP yang lebih baik dari protokol yang pernah dikembangkan oleh DARPA. Tidak hanya itu saja, mereka juga menemukan socket sebagai program aplikasi yang digunakan untuk mengakses protokol komunikasi. Aplikasi inilah yang kemudian menjadi aplikasi yang paling sering digunakan untuk mengakses TCP / IP.
9
Perkembangan internet juga terbantu dengan ditemukannya konsep Domain Name System (DNS) oleh University of Wisconsin. Dengan adanya konsep ini, akses komputer kedalam ARPANET menjadi lebih mudah karena cukup menggunakan nama komputer saja. Pada tahun 1985, terbentuklah sebuah proyek besar dengan nama National Science Foundation Network (NSFNET) yang merupakan gabungan dari enam pusat super komputer di Amerika Serikat dengan ARPANET dimana semua bagian dari NSFNET menggunakan protokol TCP / IP dalam komunikasinya. Didukung dengan kecepatan jaringan yang tinggi, NSFNET kemudian mengalami perkembangan yang semakin pesat. Jaringan inilah yang sekarang dikenal dengan internet. Pada tahun 1992, perkembangan internet semakin terpacu dengan dikenalkannya layanan World Wide Web (WWW) kepada umum.
2.1.3 World Wide Web (WWW)
World Wide Web (WWW) adalah bagian dari internet yang menggunakan fungsi transportasi internet melalui arsitektur client / server untuk mengatasi semua tipe dari informasi digital. Termasuk didalamnya teks, hypermedia, grafik, dan suara (Turban et al., 2003, p. 23). WWW atau lebih sering dikenal dengan sebutan website merupakan sebuah sistem yang menghubungkan dokumen – dokumen hypertext yang dapat diakses
melalui internet. Keberhasilan
perkembangan website menimbulkan banyak asumsi bahwa website adalah internet namun kenyataannya kedua hal tersebut berbeda.
10
Internet dapat dianalogikan sebagai jaringan jalan elektronik yang saling terhubung satu sama lainnnya di seluruh dunia sedangkan website merupakan salah satu dari sekian banyak layanan yang menggunakan jalan tersebut (internet). Website merupakan layanan internet yang paling populer diantara layanan – layanan lainnya sejak awal dikenalkan hingga saat ini. World Wide Web Consortium (W3C) merupakan sebuah organisasi yang mengembangkan standar untuk website. W3C dikelola oleh Laboratory for Computer Science di Massachusetts Institute of Technology (MIT). Ada 4 (empat) jenis utama website yaitu (Chaffey et al., 2003, p. 22) : a. Transactional e-commerce site. Jenis ini menyediakan produk – produk dan layanan – layanannya untuk dibeli secara online. Model bisnis utamanya adalah penjualan produk – produk atau layanan – layanan tersebut. Website ini juga menyediakan informasi untuk konsumen yang lebih memilih untuk membeli produk atau layanan secara online. b. Service-oriented relationship building website. Website ini menyediakan informasi untuk merangsang pembelian dan membangun hubungan dengan konsumen. Produk biasanya tidak tersedia untuk pembelian secara online. Informasi diberikan melalui website dan enewsletter. Model bisnis utamanya adalah melalui peningkatan penjualan offline dan meneliti konsumen potensial.
11
c. Brand-building site. Website ini dibangun untuk meningkatkan brand experience. Produk biasanya tidak tersedia untuk pembelian secara online walaupun merchandise mungkin saja diperjualbelikan secara online. d. Portal or media site. Website ini menyediakan informasi mengenai berita dengan berbagai topik yang berbeda. Portal didefinisikan sebagai pintu gerbang menuju informasi dengan beberapa layanan seperti mesin pencari, direktori, berita, dan lain – lain. Informasi ini dapat berasal dari website itu sendiri ataupun dari website lainnya. Portal memiliki cara yang berbeda dalam memperoleh keuntungan termasuk penggunaan iklan, komisi penjualan, dan penjualan data pengunjung. Seluruh halaman WWW yang dipelihara oleh organisasi atau individu dapat disebut sebagai website (Laudon & Laudon, 2004, p. 19). Seluruh halaman WWW suatu perusahaan atau individu secara kolektif dikenal sebagai website. Dengan demikian, kita dapati website meliputi seluruh halaman WWW yang berhubungan dengan suatu organisasi atau individu (Rainer et al., 2006, p. 142). Website digunakan sebagai mekanisme komunikasi antara pemilik situs dan pemakainya. Bisa juga antara pemakai. Pemilik situs biasanya membuat beberapa peraturan untuk interaksi sementara pemakai situs menggunakan isi atau fasilitas yang disediakan pada situs. Pemilik situs menyediakan informasi untuk dikonsumsi oleh pemakai.
12
Situs dapat digolongkan berdasarkan organisasi antara lain (Powell, 2002, p. 6) : a. Komersial. Suatu situs yang dibangun dan dijalankan oleh suatu organisasi atau individu untuk keuntungan komersial ataupun promosi penjualan produk dan jasa. b. Pemerintah. Situs yang berhubungan dengan organisasi pemerintah. Tujuan pembuatan situs adalah memenuhi kebutuhan sosial maupun hukum. c. Pendidikan. Situs yang berhubungan dengan organisasi pendidikan dan digunakan untuk menunjang pendidikan ataupun tujuan penelitian. d. Amal. Situs dibuat untuk mempromosikan tujuan dari suatu organisasi nirlaba atau kegiatan amal. e. Pribadi. Situs dibuat untuk ekspresi orang atau suatu group. Biasanya merupakan bentuk ekspresi diri.
2.1.4 HyperText Markup Language (HTML)
HyperText Markup Language (HTML) adalah sistem yang digunakan untuk menciptakan halaman dan dokumen yang disajikan pada web (Ellsworth & Ellsworth, 1997, p. 37).
13
HTML dapat juga dikatakan sebagai sebuah dokumen yang memuat kalimat – kalimat yang diproses oleh browser sehingga ditayangkan di layar ketika dipanggil dari internet. HTML sendiri merupakan sebuah dokumen dalam format ASCII dan dapat dibuat dengan sembarang perangkat lunak pengolah teks (Bustami, 1999, pp. 13-14). HTML digunakan untuk membangun sebuah halaman web. Sekalipun banyak orang menyebutnya sebagai bahasa pemrograman, HTML sebenarnya sama sekali bukan bahasa pemrograman karena seperti tercermin dari namanya, HTML adalah suatu bahasa penanda (mark up). HTML digunakan untuk melakukan penandaan terhadap sebuah dokumen teks. Tanda tersebut digunakan untuk menentukan format dari teks yang ditandai (Kurniawan, 2001, p. 7).
2.1.5 Uniform Resource Locator (URL)
Sebuah nama yang terhubung pada sebuah alamat IP dalam DNS disebut juga dengan Uniform Resource Locator (URL). URL mengidentifikasikan sebuah simpul pada internet secara unik (Zeid, 2000, p. 10). URL terdiri dari 3 (tiga) komponen. Bagian pertama URL (bagian sebelum kedua slash) menentukan tool atau metode akses internet seperti gopher, telnet atau FTP, dan HTTP yang merupakan metode akses yang paling banyak digunakan. Setelah tanda titik 2 (dua) (:), terdapat 2 (dua) garis miring yang menunjukkan bahwa yang mengikutinya adalah alamat mesin. Didalamnya terdapat spesifikasi port, ditunjukkan oleh tanda titik 2 (dua) dan angka.
14
Setelah alamat situs pada URL, terdapat tanda garis miring dan daftar direktori file atau sumber daya lain. URL menunjuk 1 (satu) titik di internet. URL menetapkan protokol transfer, lokasi mesin secara tepat, letak file didalam mesin dan dokumen nama yang harus ditayangkan (Ellsworth & Ellsworth, 1997, p. 42).
2.2
Interaksi Manusia dan Komputer
Interaksi Manusia dan Komputer yang akan dibahas di sub bab ini meliputi Pengertian Interaksi Manusia dan Komputer serta Delapan Aturan Emas Perancangan.
2.2.1 Pengertian Interaksi Manusia dan Komputer
Interaksi manusia dan komputer adalah disiplin ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk digunakan oleh manusia serta studi fenomena – fenomena besar yang berhubungan dengannya. Suatu program yang interaktif dan baik harus bersifat user friendly (Shneiderman, 1998, p. 8). 5 (lima) kriteria program yang user friendly (Shneiderman, 1998, p. 15) : a. Waktu belajar yang tidak terlalu lama. Berapa lama waktu yang diperlukan bagi penguna pada umumnya untuk mempelajari bagaimana menggunakan perintah yang berhubungan dengan suatu task.
15
b. Kecepatan penyajian informasi yang tepat. Berapa lama waktu yang diperlukan untuk menjalankan suatu task. c. Tingkat kesalahan penggunaan yang rendah. Berapa banyak dan apa saja kesalahan yang dilakukan pengguna dalam melaksanakan suatu task. d. Penghafalan sesudah melampaui jangka waktu. Berapa lama pengguna dapat mempertahankan pengetahuan mereka setelah jangka waktu tertentu. Retensi dapat dihubungkan dengan waktu belajar dan frekuensi penggunaan memegang peranan penting dalam hal ini. e. Kepuasan pribadi. Mencari tahu apakah pengguna sering menggunakan berbagai aspek dari sistem. Jawabannya dapat diperoleh dari wawancara atau survei tertulis yang memuat skala kepuasan dan tempat bagi jawaban bebas.
2.2.2 Delapan Aturan Emas Perancangan
Untuk merancang sistem interaksi manusia dan komputer yang baik harus memperhatikan 8 (delapan) aturan utama yaitu (Shneiderman, 1998, p. 74) : a. Strive for consistency (berusaha untuk konsisten). Urutan yang konsisten dari aksi – aksi seharusnya digunakan pada situasi – situasi yang mirip. Terminologi yang sama seharusnya digunakan dalam prompt, menu, dan help screen. Perintah konsisten seharusnya dijalankan secara menyeluruh kecuali seperti tidak adanya pengulangan password atau konfirmasi perintah delete harus dapat dipahami dan terbatas jumlahnya.
16
b. Enable frequent user to use shortcuts (memungkinkan para pengguna rutin untuk menggunakan shortcut). Para pengguna berkeinginan untuk mengurangi jumlah interaksi – interaksi dan untuk meningkatkan langkah dari interaksi, singkatan – singkatan, kunci – kunci khusus, perintah – perintah tersembunyi. c. Offer informative feedback (memberikan umpan balik yang informatif). Bagi setiap aksi operator, seharusnya terdapat beberapa sistem bolak – balik. Bagi aksi rutin dan aksi tambahan, tanggapan dapat sederhana, sedangkan bagi aksi – aksi tidak rutin dan utama, tanggapan seharusnya lebih kuat. Presentasi visual dari objek – objek penting menyediakan suatu lingkungan yang sesuai untuk menunjukkan perubahan secara eksplisit. d. Design dialogs to yield closure (merancang dialog untuk menghasilkan keadaan akhir). Urutan aksi dapat diorganisasikan menurut kelompok yang terdiri dari awal, tengah, dan akhir. Umpan balik yang informatif kepada pengguna ketika penyelesaian sekelompok aksi dapat memberikan kepuasan bahwa sistem telah menyelesaikan keinginan mereka dengan baik. Hal ini memberikan kesan yang baik kepada pengguna sehingga mereka akan berusaha mempertahankan penggunaan sistem tersebut.
17
e. Offer simple error handling (menyediakan penanggulangan error yang sederhana). Jika suatu kesalahan dibuat, sebaiknya sistem mengetahui kesalahan dan membuatnya mudah, mekanisme yang dapat dipahami dalam mengatasi kesalahan. Pengguna sebaiknya tidak mengetik kembali seluruh perintah tetapi lebih baik hanya membenarkan bagian yang salah. f. Permit easy reversal of actions (mengijinkan pengembalian aksi / undo yang mudah). Sebanyak mungkin, aksi – aksi sebaiknya dapat dikembalikan ke awal. Fitur ini mengurangi ketidaknyamanan karena pengguna mengetahui bahwa kesalahan dapat diulang. Hal ini memberanikan penjelajahan terhadap pilihan – pilihan yang tidak dikenal. Kesatuan dari kemampuan untuk pengembalian mungkin sebagai sebuah aksi sendiri, sebuah data entry, atau sebuah kumpulan utuh dari aksi – aksi. g. Support internal locus of control (mendukung pengendalian secara internal). Operator – operator berpengalaman memiliki keyakinan bahwa mereka bertanggung jawab terhadap sistem dan sistem menanggapi terhadap aksi mereka. Aksi yang tidak umum, urutan data entry yang tidak sesuai, kesulitan dalam memperoleh informasi yang dibutuhkan, dan ketidakmampuan untuk menghasilkan ketidakpuasan.
aksi
yang
meyakinkan
semua
ketidaknyamanan
dan
18
h. Reduce short term memory load (mengurangi beban ingatan jangka pendek). Keterbatasan dari pemrosesan informasi manusia pada memori jangka pendek membutuhkan tampilan – tampilan yang dapat dijaga dengan mudah, tampilan halaman yang banyak dapat digabung, frekuensi pergerakan window dapat dikurangi, dan waktu pelatihan yang cukup dapat dibagikan untuk codes, mnemonics, dan urutan dari aksi – aksi. Di saat yang tepat, akses online untuk form – form sintaks perintah, singkatan – singkatan, kode – kode, dan informasi lainnya sebaiknya disediakan.
2.3
Layanan
Layanan yang akan dibahas di sub bab ini meliputi Pengertian Layanan serta Kualitas Layanan.
2.3.1 Pengertian Layanan
Layanan adalah suatu tindakan atau kegiatan yang diberikan oleh 1 (satu) pihak kepada pihak lain dimana pada dasarnya kegiatan tersebut tidak memiliki wujud karena tidak dapat dilihat, diraba, didengar, atau dicium sebelum layanan tersebut dibeli. Dalam prakteknya, pelayanan dapat dihasilkan melalui atau tanpa melalui media fisik. Pelayanan juga tidak menghasilkan kepemilikan (Kotler, 2003, p. 14).
19
Layanan
adalah
suatu
kegiatan
yang
memiliki
beberapa
unsur
ketidakwujudan yang dapat diberikan oleh suatu pihak kepada pihak lainnya dan memberikan berbagai manfaat bagi pihak – pihak tersebut. Dengan kata lain, layanan adalah suatu kegiatan tak berwujud dimana penggunanya mendapatkan suatu tingkat kepuasan dari kegiatan tersebut dan tidaklah berkaitan dengan status kepemilikan dan dalam kebanyakan kasus tidak dapat disimpan atau dipindahkan. Disinilah terlihat karakteristik unik dari sebuah layanan yaitu layanan tidak berwujud, layanan tidak dapat dipisahkan, layanan bergantung pada orang yang memberikan layanan, dan layanan tidak disimpan (Musanto, 2004, p. 34). Layanan memiliki karakteristik yaitu (Kotler & Keller, 2006, p. 215) : a. Intangibility. Layanan tidaklah seperti produk fisik yang dapat dilihat, dikecap, dirasakan, didengar, ataupun dicium. b. Inseparability. Pada umumnya layanan diproduksi dan dikonsumsi secara bersamaan. c. Variability. Layanan sangat bervariasi karena sangat dipengaruhi oleh siapa yang menyediakan, pada waktu kapan disediakan, dimana layanan disediakan, dan kepada siapa layanan disediakan. d. Perishability. Layanan tidak dapat disimpan sehingga akan menjadi masalah pada saat permintaan bertambah.
20
2.3.2 Kualitas Layanan
Kualitas didefinisikan sebagai keseluruhan ciri serta sifat dari suatu produk atau layanan yang berpengaruh pada kemampuannya untuk memuaskan kebutuhan yang dinyatakan atau yang tersurat. Kualitas harus dimulai dari kebutuhan pelanggan dan berakhir pada persepsi pelanggan. Pelangganlah yang mengonsumsi dan menikmati jasa organisasi sehingga merekalah yang seharusnya menilai (Kotler, 2003, p. 84). Ada sepuluh aspek kualitas layanan yaitu (Zeithaml, 1990, p. 178) : a. Tangible. Penampilan fisik dari personalia dan materi komunikasi. b. Reliability. Kemampuan untuk melaksanakan layanan yang dijanjikan secara bertanggung jawab dan akurat. c. Responsiveness. Keinginan untuk membantu pelanggan dan menyediakan layanan yang cepat. d. Competency. Memiliki kemampuan atau pengetahuan yang diperlukan untuk melaksanakan layanan. e. Courtecy. Sopan santun, hormat, dan bersahabat dari personalia penghubung. f. Credibility. Dapat dipercaya dan pemurah dari penyedia layanan.
21
g. Security. Bebas dari bahaya dan keraguan. h. Access. Kemudahan dihubungi dan dedikasi. i. Communication. Selalu berusaha untuk memberikan informasi dalam bahasa yang mudah dimengerti dan selalu mau mendengarkan keluhan pelanggan. j. Understanding the customer. Selalu berusaha untuk mengerti pelanggan dan kebutuhannya. Ada 2 (dua) faktor yang mempengaruhi kualitas layanan yaitu expected service dan perceived service. Apabila layanan yang diterima atau dirasakan (perceived service) sesuai dengan yang diharapkan maka kualitas layanan dipersepsikan baik dan memuaskan. Jika layanan yang diterima melampaui harapan pelanggan maka kualitas layanan dipersepsikan sebagai kualitas yang ideal. Sebaliknya, jika layanan yang diterima lebih rendah daripada yang diharapkan maka kualitas layanan dipersepsikan buruk. Baik buruknya kualitas layanan bergantung pada kemampuan penyedia layanan dalam memenuhi harapan pelanggannya secara konsisten (Parasuraman et al., 1990, p. 15).
22
2.4
Mashup
Mashup adalah suatu situs web atau aplikasi web yang mengombinasikan isi dari lebih dari 1 (satu) sumber untuk memproduksi sesuatu yang benar – benar baru (Meza & Zhu, 2008, pp. 65-76). Hasil situs web yang diciptakan mashup menyediakan sesuatu yang baru atau bermanfaat dibandingkan dengan isi dari masing – masing sumber. Kata mashup sesungguhnya berasal dari industri musik dimana itu mengacu pada pencampuran 2 (dua) atau banyak lagu dari rekaman musik atau instrumen musik supaya menciptakan lagu yang benar – benar baru. Konsep mashup pada web bukanlah hal baru. Sejak permulaan web, orang – orang telah mengumpulkan informasi dari berbagai sumber dan menggabungkan itu bersama dengan kode HTML untuk menyajikan bentuknya yang lebih baru dan lebih berguna. Selama tahapan – tahapan awal pengintegrasian isi web ketika web masih muda, pengembang perlu secara manual mengumpulkan dan mengoding informasi kedalam halaman HTML. Mashup menggunakan web itu sendiri sebagai platform pemrograman dan pengiriman isi. Mashup mengakses data atau informasi secara langsung dari situs web dan secara programatik menciptakan situs web atau aplikasi web dinamis yang baru, menampilkan data mereka yang lebih terintegrasi atau lebih bermanfaat. Sekali proses mashup telah didirikan, itu akan secara otomatis membaca, memproses, menampilkan, dan meng-update isi dan data yang dikumpulkan dari sumber – sumber yang berbeda untuk pengguna akhir dalam bentuk suatu situs web. Bandingkan dengan tahap awal integrasi isi web, tidak ada campur tangan secara manual pada tahap apapun.
23
Untuk memulai menciptakan mashup, ada 3 (tiga) komponen penting yaitu (Meza & Zhu, 2008, pp. 65-76) : •
Isi dan sumber data. Ini adalah pondasi dari mashup manapun. Tanpa isi dan data, suatu mashup tidak berarti. Isi dan data diperoleh melalui API, Web feeds, atau screen scraping techniques. Sekarang ini, banyak penyedia telah mengambil langkah untuk membuat isi dan data mereka lebih mudah diakses. Beberapa telah mengembangkan API (Application Programming Interfaces) untuk memberi pengembang akses kepada isi dan data melalui protokol web seperti REST (Representational State Transfer) dan juga melalui Web Services. Yang lain menyediakan web feeds (dokumen XML sederhana untuk content syndication) dalam format populer seperti RSS atau Atom sebagai alat pengaksesan isi dan data mereka. Melalui penggunaan API dan Web feeds, pengembang diberikan akses ke isi dan data dari sistem backend dan dapat berkumpul dan menerima data ini secara programatik. Tetapi tidak semua sumber data menyediakan alat seperti itu. Untuk mendapatkan isi dari penyedia ini, suatu teknik yang dikenal dengan screen scraping musti dilakukan. Screen scraping adalah proses penerimaan serangkaian campuran data kasar dan pengekstraksian dan memformatnya ke suatu struktur data pengembang. Secara perbandingan, API dan Web feeds menyediakan sumber informasi yang lebih handal sebagaimana mereka disediakan langsung oleh data yang asli.
24
•
Algoritma atau proses mashup. Ini adalah dimana keajaiban terjadi dan dimana mashup mendapatkan namanya. Selama langkah perancangan ini, isi dan data dari sumber yang berbeda diintegrasikan. Proses mashup mungkin berada pada server atau klien atau kombinasi keduanya. Pada sisi server, mashup dapat di-deploy menggunakan teknik server side scripting seperti CGI, PHP, ASP, dan lain – lain. Pada sisi klien, mashup dapat dihasilkan langsung dari browser pengguna akhir melalui teknologi scripting seperti JavaScript.
•
Platform presentasi. Ini adalah dimana pengguna akhir akan melihat produk akhir mashup dan berinteraksi dengan isi mashup. Platform presentasi akan berinteraksi dengan pengguna akhir, mengeksekusi proses mashup, dan lalu menghasilkan isi mashup.
2.5
Mashup di Web
Dengan pesatnya pertumbuhan mashup di internet, banyak yang dapat diklasifikasikan kedalam tipe berikut yaitu : •
Map mashup;
•
Photo and video mashup;
•
Search mashup;
•
News mashup.
25
Jumlah terbanyak dari mashup saat ini adalah map mashup. Ini dikarenakan tersedianya API tools dan akses API ke penyedia layanan peta online seperti Google Maps, Yahoo Maps, Microsoft Virtual Earth, dan AOL MapQuest. Pengembang map mashup musti terlebih dahulu memperoleh informasi geografis seperti latitude dan longitude untuk data set mereka lalu mengemas data kedalam customized online map. 1 (satu) contoh pemetaan mashup skala besar adalah HousingMaps.com dimana mengemas real estate listings dari Craigslist dengan Google Maps. Ketika Google pertama kali meluncurkan layanan pemetaan mereka, tidak ada API yang ada untuk menangkap datanya. Kemudian, 1 (satu) ditambahkan, dan layanan online lainnya segera menyusul. Faktanya, memang ada API untuk berbagai layanan. Beberapa pengembang melakukan mashup dengan foto API dan video API dengan informasi foto dan video. Yang lain melakukan mashup dengan mencari API atau consumer market place API, news source Web feeds dan lebih banyak lagi. Teknologi seperti RSS dan Atom feeds untuk news stories membuat itu mungkin untuk dipersonalisasikan pengiriman isi beritanya langsung kepada pengguna akhir.
26
2.6
Pengembangan Mashup
Pengembangan Mashup yang akan dibahas di sub bab ini meliputi Web Mashup, Pendekatan Pengembangan Mashup, Pengembangan Mashup Manual, Alat Bantu Pengembangan Mashup, Mencirikan Pendekatan Mashup, Model Komponen, Model Penggabungan, Lingkungan Pengembangan, serta Lingkungan Waktu Dijalankan.
2.6.1 Web Mashup
Web
mashups
adalah
aplikasi
web
yang
dihasilkan
dengan
menggabungkan isi, presentasi, atau fungsionalitas aplikasi dari sumber web berlainan. Tujuannya adalah menggabungkan sumber – sumber ini untuk menciptakan aplikasi atau layanan baru. Isi dan presentasi biasanya dalam bentuk RSS atau Atom feeds, XML, HTML, Shock Wave Flash (SWF), atau elemen grafik lainnya. Ketersediaan API umumnya (JavaScript sebagai contoh) menyediakan fungsionalitas aplikasi. Isi, fungsionalitas, dan presentasi dilekatkan bersama dalam cara yang berbeda melalui JavaScript didalam browser, bahasa server-side scripting seperti Hypertext Preprocessor (PHP) atau Ruby, atau bahasa tradisional seperti Java atau C# (Yu, 2008, pp. 44-53). “Mashup” telah menjadi satu dari sekian kata kunci paling hangat dalam area aplikasi web. Banyak perusahaan dan institusi bergegas menyediakan solusi mashup. Ditengah hiruk – pikuk ini, sulit membedakan antara mashup dan upaya penggabungan tradisional.
27
2.6.2 Pendekatan Pengembangan Mashup
Pengembangan mashup berbeda dari pengembangan aplikasi tradisional berbasis komponen karena mashup melayani kebutuhan situasional spesifik dan terdiri dari teknologi web yang paling baru saat ini yaitu mudah digunakan (easyto-use) seperti Representational State Transfer (RESTful) Web Services atau RSS / Atom feeds. Dengan situasi demikian, web adalah lingkungan alami mereka. Aplikasi The HousingMaps (www.housingmaps.com) di Gambar 2.1 adalah contoh keberhasilan mashup. Itu menggabungkan daftar – daftar properti dari Craigslist dengan data peta dari Google Maps untuk membantu orang berpindah dari 1 (satu) kota ke kota lainnya dan mencari tempat tinggal. Ketika orang melakukan browsing melalui daftar properti, alamat properti tidak memberikan cukup informasi jika mereka belum mengenal tempat baru. HousingMaps memberikan daftar properti dan memplot informasi properti dan lokasi pada peta menggunakan popup cloud.
28
Gambar 2.1 The HousingMaps
2.6.3 Pengembangan Mashup Manual
Kita dapat secara manual mengembangkan aplikasi seperti mashup menggunakan teknologi pemrograman web konvensional. Namun, alat – alat mashup yang tepat dapat menguntungkan pengembangan tersebut bahkan hingga membiarkan pengguna akhir mengarang mashup mereka sendiri (Yu, 2008, pp. 44-53).
29
Umumnya, penggabungan aplikasi dan data enterprise kedalam suatu aplikasi memerlukan kemampuan pemrograman dan pengetahuan tentang schemes dan semantik sumber data atau konvensi protokol bisnis untuk pertukaran pesan. Untungnya, teknologi baru seperti Ajax dan RESTful services, RSS dan Atom telah menyederhanakan
pengembangan
mashup.
Tambahan,
intelligent
source
components membantu penggabungan isi, logika aplikasi, dan antar muka. Sayangnya, pengembangan mashup tradisional masih menjadi hak prerogatif pengembang. Anggaplah seseorang tidak memiliki alat bantu pengembangan spesifik, apa saja yang secara manual telah meliputi mengembangkan suatu aplikasi seperti HousingMaps ? Orang tersebut haruslah akrab dengan 2 (dua) sumber aplikasi (yaitu Craigslist dan Google Maps) dan mengidentifikasi bagaimana dia akan menggunakan kembali ataupun mengekstrak data dari 2 (dua) situs tersebut. Google Maps menyediakan JavaScript API sedangkan Craigslist menyediakan para daftarnya melalui RSS. Untuk mengekstrak data property dan alamat, dia musti mem-parse dan menginterpretasikan RSS feed dari Craigslist. Untuk mengonfigurasikan penanda yang dapat diklik (clickable markers) yang akan menampilkan informasi properti dalam suatu popup cloud window saat diklik, dia musti berinteraksi dengan Google Maps JavaScript API. Untuk memunculkan automatic popup, dibutuhkan fungsi JavaScript yang menanggapi pemilihan properti dan bereaksi dengan cara menarik Google Maps API untuk memilih penanda yang dimaksud. Meskipun Google Maps memiliki user interface sendiri, membiarkan pemakai menyeleksi properti yang dibungkus oleh Craigslist menyiratkan bahwa dia harus menentukan format yang tepat.
30
Terakhir, dia musti menata 2 (dua) komponen sedemikian rupa untuk membentuk user interface aplikasi gabungan. Intrik dan perlakuan menghabiskan waktu seperti itu mencegah pemakai dari membuat mashup mereka sendiri.
2.6.4 Alat Bantu Pengembangan Mashup
Untuk mempercepat keseluruhan proses pengembangan mashup tapi juga memungkinkan pengguna akhir yang masih awam agar menggabungkan aplikasi web mereka sendiri, alat – alat pengembangan yang menjurus ke mashup dan kerangka kerjanya telah banyak bermunculan. Alat ini datang dengan aneka ragam fitur dan campuran dari pendekatan gabungan pula. Dengan melihat lebih dekat akan membuat kita mengidentifikasi tantangan penelitian untuk mencirikan fenomena mashup. Untuk tujuan presentasi, berikut adalah alat bantu (Yu, 2008, pp. 44-53) : a. Yahoo Pipes. Yahoo Pipes (http://pipes.yahoo.com) memungkinkan pengguna mencampur popular data feeds untuk menciptakan data mashups melalui visual editor. Sebuah pipe adalah suatu jalur pemrosesan data terdiri dari satu sumber atau banyak sumber data. Sebagai contoh : RSS / Atom feeds atau XML dan 1 (satu) set operator yang saling berhubungan yang masing – masing melakukan tugas tertentu. Termasuk juga operator untuk memanipulasi data feeds (sebagai contoh : pengurutan atau penyaringan) dan operator untuk fitur seperti pengulangan, kalimat biasa (regular expression), atau perhitungan.
31
Juga mendukung fitur lebih lanjut seperti ekstraksi lokasi (sebagai contoh : geocoordinates diidentifikasi dan dikonversi dari informasi lokasi yang ditemukan dalam fragmen teks) atau ekstraksi istilah (sebagai contoh : keywords). Yahoo Pipes bertujuan agar pengguna merancang pemrosesan data yang menyaring, mengubah, memperkaya, dan menggabungkan data feeds dan diungkap sebagai RSS feeds. Pikirkan
bagaimana
Yahoo
Pipes
dapat
menolong
pengembangan
HousingMaps sebagai contoh. Karena Yahoo Pipes tidak menyediakan user interface, Yahoo Pipes mengeluarkan suatu RSS feed. Kita tidak dapat mengimplementasikan user interface yang ditunjukkan dalam Gambar 2.1. Maka dari itu, kita dapat menggunakan Yahoo Pipes untuk memproses Craigslist feed dan mengidentifikasi informasi lokasi (geocodes) dengan cara mengutak – atik pengekstrak lokasi Yahoo Pipes. Kita dapat menggunakan informasi lokasi yang telah teridentifikasi tersebut untuk memperbesar Craigslist feed dengan suatu link yang membolehkan pemakai untuk menampilkan alamat properti pada peta dengan cara mem-passing geocodes kepada Google Maps. b. Google Mashup Editor (GME). GME
(http://editor.googlemashups.com)
menyediakan
template-based
environment bagi pengembangan mashup. Ia menawarkan modul standar agar pengguna untuk encapsulate dan menata letak data eksternal. Sebagai contoh : modul daftar mewakili RSS / Atom feed sebagai daftar, sedangkan modul item mewakili item tunggal dalam feed. Modul dapat membangkitkan predefined events yang modul lain dapat menangkap dan bertindak dengan tepat.
32
Penciptaan mashups melibatkan pengembangan template antar muka pengguna yang mengandung campuran XML control tags dan HTML / CSS layout bersama dengan kode tempelan JavaScript. Saat dijalankan, GME mengisi template antar muka pengguna dan mempresentasikan mereka sebagai halaman web. Untuk aplikasi HousingMaps, kita dapat mengintegrasikan Craigslist feed dengan menggunakan suatu modul daftar dan menggunakan bagian modul tersebut untuk menunjukkan rincian properti tertentu. Modul peta Google Mashup Editor secara native mendukung Google Maps. Saat pemakai mengklik pada suatu properti dalam modul Craigslist, modul tersebut memancarkan suatu event “select”, dimana modul peta dapat menangkap pop up cloud window tepat diatas penanda dan menampilkan informasi mengenai properti yang di-select tersebut. Kita harus melekatkan modul Craigslist dan Google Maps kedalam user interface template yang menspesifikasikan tata letak (layout) aplikasi mashup secara aktual. c. Microsoft Popfly. Popfly (www.popfly.ms) menawarkan component-based, lingkungan visual untuk pengembangan mashup. Reuseable component atau blok – blok dapat bertindak sebagai perantara antara Web services atau JavaScript. Blok memiliki operasi dengan masukan dan keluaran yang ditetapkan dalam deskriptor XML. Suatu blok boleh bertindak sebagai permukaan layar yang adalah sepotong antar muka pengguna yang mengambil data dari blok lain dan menampilkannya, membolehkan pengguna berinteraksi dengan mereka dan membolehkan pengembang mashup untuk menata letak aplikasi.
33
Untuk membangun aplikasi HousingMaps, kita perlu 3 (tiga) blok yaitu : •
Blok RSS feed untuk Craigslist feed;
•
Blok peta;
•
Blok tabel.
Jika kita menggunakan Virtual Earth (http://microsoft.com/virtualearth) daripada menggunakan Google Maps, ketiga blok diatas telah disediakan. Kita musti menyeret (drag) blok kepada permukaan rancangan mashup lalu menghubungkan keluaran operasi getItems dari blok RSS kepada 2 (dua) tampilan blok milik RSS dan Virtual Earth. Mengonfigurasikan initial set of markers secara tepat mungkin membutuhkan pengembangan blok RSS lebih lanjut bersama – sama dengan operasi JavaScript yang tepat pula. d. Intel Mash Maker. Intel
Mash
Maker
(http://mashmaker.intel.com)
menyediakan
suatu
lingkungan penggabungan data dari sumber beranotasi halaman web berdasarkan kekuatan dan ketepatan browser plug-in. Daripada mengambil masukan dari sumber data terstruktur seperti RSS atau Atom, Mash Maker memungkinkan pengguna menganotasikan struktur halaman web saat browsing dan menggunakan anotasi tersebut untuk menggali isi dari halaman anotasi. Pengguna mahir dapat memanfaatkan gabungan structure editor untuk memasukkan ekspresi Xpath menggunakan FireBug’s DOM Inspector (plug-in di Firefox Web browser).
34
Mengomposisikan mashup dengan Intel Mash Maker terjadi melalui paradigma copy-and-paste, didasarkan pada 2 (dua) mode penyatuan (merging) isi yaitu : •
Whole page merging dimana pemakai menyisipkan (insert) 1 (satu) halaman isi sebagai suatu header kedalam halaman lain;
•
Item-wise merging dimana pemakai mengombinasikan isi dari 2 (dua) halaman pada row level didasarkan pada tambahan user annotations.
Kita dapat menggunakan 2 (dua) teknik tersebut untuk menyatukan lebih dari 2 (dua) halaman. Untuk contoh HousingMaps, kita pertama – tama menganotasikan struktur halaman Craigslist yang tepat karena Intel Mash Maker beroperasi pada isi HTML reguler daripada beroperasi pada RSS. Kemudian, kita satukan halaman Craigslist dengan halaman Google Maps dengan menggunakan mekanisme copy-and-paste. Secara spesifik, kita mengadopsi item-wise merging karena kita mem-plot setiap bagian (item) dari halaman Craigslist sebagai suatu penanda (marker) individual pada peta. e. Quick and Easily Done Wiki (QedWiki). QedWiki (http://services.alphaworks.ibm.com/qedwiki) adalah proposal IBM untuk “mashup maker” berbasis wiki. Sepenuhnya berjalan didalam client browser
dan
membolehkan
akses
ke
(http://services.alphaworks.ibm.com/mashuphub).
IBM’s Hub
Mashup
Hub
mendukung
penciptaan data feeds dan widget antar muka pengguna dan memasukkan data Mashup Fabric untuk aplikasi intranet (Damia) untuk perakitan dan pemanipulasian data. Sebagai lingkungan wiki, itu memungkinkan pengguna mengubah, segera melihat, dan mudah berbagi mashups.
35
Mashups dirakit dari JavaScript atau PHP yang menentukan perilaku mashup. Widget mewakili komponen aplikasi dan mungkin atau tidak mungkin memiliki antar muka pengguna. Untuk merakit suatu mashup, pengguna memilih tata letak halaman kemudian menyeret dan menjatuhkan widget ke halaman grid dan memodifikasi mereka secara interaktif. Untuk mengembangkan aplikasi HousingMaps dengan Quick and Easily Done Wiki, pengguna terlebih dahulu menciptakan suatu halaman wiki yang baru dan menyeleksi tata letak grid-nya. Dalam kasus ini, pengguna memilih suatu tata letak yang membolehkan pemakai menempatkan Google Maps dan tawaran perumahan secara bersebelahan (dalam dua kolom). Pengguna lalu mencari widget GoogleMap dalam widget palette, menyeret (drag) widget tersebut keatas tata letak grid dan menjatuhkan (drop) widget tersebut diatas kolom sebelah kiri. Penulis menggunakan LoadFeed widget untuk mengakses Craigslist RSS feed dan mempopulasikan suatu ShowData widget dengan tawaran perumahan (dengan cara memberitahukan ShowData widget bahwa widget ini harus menyumberkan atau menjadi sumber data dari LoadFeed widget). Untuk lokasi properti pada peta, sekarang pengguna dapat dengan mudah menyeret alamat dari ShowData widget saat waktu dijalankan (at runtime) dan menjatuhkan alamat tersebut kedalam GoogleMap widget.
36
2.6.5 Mencirikan Pendekatan Mashup
Alat – alat tersebut berbeda dalam 2 (dua) aspek yaitu (Yu, 2008, pp. 4453) : a. Pengembangan mashup; b. Perangkat lunak yang mengimplementasikan pengembangan tersebut. Seperti kebanyakan dalam penggabungan data dan aplikasi, pencirian pengembangan mashup dilakukan dengan cara melihat objek penggabungan (model komponen) dan bagaimana objek tersebut dilekatkan bersama (model penggabungan). Sebagai perangkat lunak, adalah penting untuk melihat secara terpisah pada dukungan waktu perancangan (lingkungan pengembangan) dan dukungan waktu dijalankan (lingkungan waktu dijalankan) yang tersedia.
2.6.6 Model Komponen
Model komponen menentukan kealamian dari komponen dan pengaruh bagaimana mereka dapat dilekatkan bersama yang artinya bagaimana mereka dapat digabungkan. Antar muka komponen yang sudah terdefinisi dengan baik sebagai contoh, memfasilitasi reusability sedangkan antar muka komponen yang fleksibel memastikan extensibility (Yu, 2008, pp. 44-53).
37
Kita mencirikan suatu model komponen menggunakan 3 (tiga) properti berikut : a. Type. Suatu komponen dapat berupa data (DA), logika aplikasi (AL), atau antar muka pengguna (UI) tergantung pada apakah dia berperan sebagai murni sumber data, komponen yang menyediakan akses kepada logika aplikasi, atau komponen yang juga menyediakan antar muka pengguna kepada pengguna. b. Model’s interface. Suatu komponen bisa mengekspos antar muka create-read-update-delete (CRUD), API dalam bahasa pemrograman spesifik atau dalam IDL / WSDL, XML / HTML, atau bisa saja mengekspos elemen antar muka pengguna kepada pengguna akhir. Komponen bisa juga mengekspos gabungan dari elemen ini. c. Extensibility. Menjelaskan apakah pengguna dapat menciptakan komponen baru atau memperbanyak model komponen untuk mengakomodasikan kebutuhan aplikasi spesifik seperti operasi baru. Yahoo Pipes mendukung komponen DA (data) dan AL (logika aplikasi) melalui operator yang menyediakan akses kepada RSS / atom feeds dan eksternal Web Services. Komponen DA memiliki read-only interface, dan eksternal Web Services memiliki RESTful interface berdasarkan pada JavaScript Object Notation (JSON) atau RSS. Model komponen Yahoo Pipes tidak dapat diubah – ubah alias sudah tetap.
38
Google Mashup Editor mendukung komponen DA (data), AL (logika aplikasi), UI (antar muka pengguna). Komponen DA umumnya diantarmukakan melalui markup, komponen AL melalui JavaScript, dan komponen UI melalui keduanya yaitu markup dan JavaScript. Model komponen Google Mashup Editor biasanya sudah fleksibel. Popfly juga mendukung komponen DA, AL, UI. Semua komponen diantarmukakan menggunakan JavaScript, dan model komponen ini biasanya sudah extensible. Intel Mash Maker mendukung komponen DA yang diekstrak dari annotated Web pages (sebagai contoh : tabel dan peta). Antar muka mereka dapat diinterpretasikan sebagai penanda XML, dan model komponen ini biasanya sudah tetap. QedWiki berfokus terutama pada komponen UI (Mashup Hub mendukung komponen DA dan AL). Komponen dilengkapi dengan antar muka JavaScript dan dapat dieksten. Dalam penggabungan tradisional, komponen extensible application-level dengan application-specific API akan mengarakteristikkan Web Services. Aplikasi data integration lebih cenderung dikarakteristikkan oleh komponen data-driven yang sering sekali tetap atau memiliki ekstensibilitas terbatas. Sebagai contoh : aplikasi Extract, Transform, Load (ETL) memiliki 1 (satu) set yang banyak dari modul built-in yang mengerjakan operasi join atau lookup pada relational database atau dokumen XML. Custom behavior biasanya didukung melalui komponen generic SQL.
39
2.6.7 Model Penggabungan
Model penggabungan menentukan bagaimana komponen digabungkan untuk membentuk mashup, dengan asumsi komponen yang tersedia dapat dibaca. Untuk memfasilitasi penggabungan pengguna akhir, model penggabungan harus sesederhana mungkin (Yu, 2008, pp. 44-53). Model penggabungan memiliki beberapa karakteristik yaitu : a. Bedakan model’s output type. Sama seperti model komponen, model penggabungan dapat berupa DA, AL, atau UI tergantung pada apakah penggabungan menyediakan data, API, atau aplikasi dengan antar muka pengguna. b. Orchestration style. Komponen orkestrasi menyiratkan penspesifikasian bagaimana kita akan mendefinisikan dan mensinkronisasikan eksekusi komponen. Ada 3 (tiga) pendekatan utama yaitu : •
Flow-based style. Mendefinisikan orkestrasi sebagai pengurutan atau pemesanan parsial antara tugas atau komponen dan diekspresikan melalui flow chart-like formalisms.
•
Pendekatan event-based menggunakan model publish-subscribe. Mereka tentu berguna untuk memelihara sinkronisasi perilaku antara komponen.
40
•
Layout-based style. Komponen dengan atau tanpa antar muka pengguna disusun didalam tata letak aplikasi gabungan secara umum. Setiap perilaku komponen dispesifikasikan secara individu dengan pembukuan untuk reaksi komponen lain terhadap interaksi pengguna.
c. Model’s data-passing style. Ada 2 (dua) pendekatan yaitu : •
Dataflow. Dimana data mengalir dari komponen ke komponen.
•
Blackboard. Dimana data ditulis ke variabel yang melayani sebagai sumber dan target operasi komponen. Hampir sama dalam bahasa pemrograman. Sebuah penggabungan dapat berupa instance-based atau continuous.
Model instance-based adalah model service composition tradisional dimana kedatangan pesan tertentu mengaktifkan 1 (satu) instance dari composition dan sistem mengeksekusi instance tersebut didalam thread dan context utama yang sama (hampir sama seperti suatu program yang berjalan). Secara konseptual, model continuous memiliki 1 (satu) instance per komponen dalam model composition. Setiap komponen bekerja sebagai suatu thread, memproses input data feed dan mentransformasikan atau menyaringnya untuk menghasilkan output.
41
Properti lainnya berhubungan dengan exceptions dan transactions. Model composition mungkin atau tidak mungkin mendukung penanganan (handling) exception dan transaction. Jika didukung, exception handling dapat mengikuti pendekatan throw-and-catch (gaya dari Java) atau dapat berupa rule based (menggunakan Event-Conditional-Action [ECA] rules yang dipasangkan dengan composition). Transactions, jika didukung, selalu mengikuti beberapa variasi dari model Saga. Yahoo Pipes adalah kemungkinan terbaik untuk merepresentasikan DA output (pipes adalah RSS feeds). Graphical modelling language Yahoo Pipes adalah flow-based. Data juga diberikan melalui data flows. Pipes merupakan instance-based. Yahoo Pipes tidak menyediakan exception handling atau mendukung transactions. Google Mashup Editor memproduksi UI output. Google Mashup Editor merupakan event-based dan mencapai data passing melalui parameter event didalam data flow. Komponen UI merupakan continuous. Google Mashup Editor tidak mendukung exceptions dan transactions. Popfly memproduksi UI output. Popfly menggunakan gaya orkestrasi event-based dan pendekatan data flow untuk data passing. Komponen Popfly merupakan continuous. Seperti Google Mashup Editor, Popfly tidak mendukung exceptions dan transactions.
42
Intel Mash Maker fokus pada UI output. Dalam Intel Mash Maker, isi – isi dilekatkan bersama – sama dalam gaya layout-based (whole page merging) atau dalam gaya flow-like (item-wise merging). Intel Mash Maker menggunakan data yang diekstrak dari annotated Web pages dalam gaya blackboard. Model instance Intel Mash Maker hampir serupa dengan instance-based dan Intel Mash Maker tidak mendukung exceptions dan transactions. Seperti Google Mashup Editor, Popfly, dan Intel Mash Maker, QedWiki juga memproduksi UI output. QedWiki mengajukan gaya orkestrasi layout-based dan komponen mem-passing data dalam gaya blackboard. Widgets merupakan continuous. QedWiki tidak mendukung exceptions atau transactions. Penggabungan tradisional biasanya flow-based (seperti halnya Business Process Execution Language [BPEL] dan kebanyakan proses ETL) dengan model data XML-based mengikuti pendekatan blackboard untuk Service-Oriented Architecture (SOA) dan model data relational dengan data flow untuk ETL. Keduanya menggunakan model instance-based instantiation. Namun, dalam SOA, instance diciptakan bersama dengan kedatangan pesan tertentu (seperti pemesanan pembelian) sedangkan dalam ETL, instance diciptakan secara berkala atau periodik (untuk setiap ekstraksi data). Penggabungan tradisional memproduksi DA atau AL output sedangkan mashup mencakup beberapa bentuk penggabungan di tingkat UI. Dalam istilah exception dan transaction, penggabungan tradisional menawarkan exception handling seperti Java dan dukungan transaction seperti Saga, dengan didefinisikan terlebih dahulu (predefined) tetapi jenis extensible exception (sebagai contoh : kesalahan SOAP dalam BPEL atau kesalahan DB dalam ETL).
43
2.6.8 Lingkungan Pengembangan
Karakteristik lingkungan pengembangan alat mashup mempengaruhi efisiensi pengembangan mashup dan menentukan keberhasilan alat tersebut. Alat mashup sangat berperan dalam dukungan kepada pengguna. Beberapa alat untuk pengembang sedangkan lainnya lebih mengarah kepada pengguna akhir. Beberapa properti mencirikan lingkungan pengembangan mashup (Yu, 2008, pp. 44-53) : •
Environment’s interface paradigm and target users. Alat – alat mashup dapat mendukung perancangan melalui antar muka yang berbeda / paradigma pemodelan seperti fitur visual drag-and-drop, textual editor, atau gabungan keduanya. Antar muka dapat menargetkan rata – rata pengguna web, pengguna mahir, atau pemrogram.
•
System requirement. Eksekusi alat – alat mashup mungkin membutuhkan modul tambahan spesifik, plug-ins, atau fitur browser yang ketidakhadirannya mungkin mencegah penggunaan instrumen. Yahoo Pipes menyediakan murni visual drag-and-drop Ajax editor yang
ditargetkan kepada pengguna dengan kemampuan pemrograman dasar. Editor dieksekusi
dalam
standard
Web
browser
dengan
dukungan
untuk
XMLHttpRequest JavaScript object. Google Mashup Editor browser-based textual Ajax editor dengan syntax highlighting dan automatic tag completion ditargetkan kepada programmer. Google Mashup Editor dapat dieksekusi dalam standard Web browser.
44
Microsoft Popfly menawarkan graphical dan textual editor dengan dukungan drag-and-drop kepada pengguna Web. Popfly didasarkan pada teknologi Microsoft Silverlight, mandatory browser plug-in. Intel Mash Maker mendukung antar muka pengguna point-and-click yang membolehkan pengguna mahir dan programmer menganotasikan halaman dan pengguna web awam mengekstrak dan menyatukan data melalui copy-and-paste. Intel Mash Maker membutuhkan dedicated plug-in yang mengeksten browser dengan fitur mashup. QedWiki datang dengan antar muka easy-to-use drag-and-drop kepada pengguna mahir. Dalam antar muka ini, komponen segera divisualisasikan. QedWiki berjalan dalam standard Web browser dan tidak membutuhkan plug-ins apapun. Tidak seperti mashup tools ini, teknologi penggabungan tradisional menawarkan desktop development applications dibandingkan dengan browserbased. Teknologi tersebut membutuhkan pembelajaran lebih lanjut karena teknologi itu lebih menakjubkan dan kaya fitur. Pendekatan tradisional, yang selalu menargetkan programmer, menawarkan tidak adanya end-user data integration ataupun application integration.
45
2.6.9 Lingkungan Waktu Dijalankan
Setiap alat mashup juga menyediakan lingkungan waktu dijalankan (runtime environment) yang memungkinkan eksekusi alat mashup dan menentukan bagaimana akan dikirim kepada pengguna. Ada 4 (empat) properti dalam lingkungan waktu dijalankan yaitu (Yu, 2008, pp. 44-53) : a. Deployment style. Sama seperti aplikasi web konvensional, kita dapat menyebarkan aplikasi mashup sendirian pada web server apapun yang dikelola oleh pengembang mashup atau melalui web server pihak ketiga. b. Runtime location. Kita dapat merakit mashups pada sisi server (sebagai contoh : PHP atau Ruby), sisi client (sebagai contoh : didalam web browser melalui JavaScript), atau keduanya. c. System requirement. Eksekusi mashup dapat bergantung pada ketersediaan tambahan browser plugins atau extensions. d. Scalability. Ada 3 (tiga) perspektif yaitu : •
Jumlah sumber data;
•
Jumlah model (gabungan);
•
Jumlah pengguna.
46
Secara umum, pendekatan client-side tidak luput dari masalah scalability. Mashup dieksekusi pada client. Jadi, tidak ada masalah yang muncul (kecuali dari overload pada sumber data itu sendiri, tetapi ini diluar dari kendali mashup). Disini, masalah scalability berhubungan dengan jumlah instance dan jumlah pengguna dan kompleksitas mashup (yang mana adalah jumlah sumber dan hubungan data processing). Dalam semua kasus, pendekatan client-side menggunakan teknik scalability yang sama sebagaimana yang dilakukan penggabungan tradisional atau aplikasi web, bersandar pada teknik workflow scalability untuk engine-based runtimes dan pada scalability aplikasi web untuk web-application-based runtimes. Komposisi
Yahoo
Pipes
ditaruh
pada
Yahoo
server.
Sistem
mengkomputasikan dan merakit pipes pada sisi server (secara engine-based), jadi mengeksekusi suatu pipe tidak membutuhkan persyaratan sistem apapun pada client. Namun, server-side engine yang mengeksekusi pipes mungkin menderita jika banyak pipes sedang berjalan, jika banyak pengguna mengakses pipe yang sama, atau jika pipe terdiri dari ratusan sumber. Google Mashup Editor ditaruh pada Google server. Mashup dieksekusi pada sisi server dan tidak memerlukan persyaratan sistem apapun. Sistem mengkompilasi mashup kedalam aplikasi web konvensional. Popfly mashup ditaruh pada Microsoft server. Eksekusi dari aplikasi Popfly muncul pada sisi client dan biasanya membutuhkan availability dari Silverlight plug-in. Eksekusi client-side memfasilitasi scalability karena penggabungan multi sumber terjadi kebanyakan pada sisi client.
47
Intel Mash Maker mashup ditaruh pada client PC dan dieksekusi didalam web browser menggunakan Mash Maker plug-in. Meskipun hal tersebut kelihatannya tidak seperti kebanyakan jumlah sumber yang akan dimashup, Mash Maker seharusnya dapat menskalasikan secara tepat. Halaman – halaman QedWiki ditaruh pada IBM server. Mashup dieksekusi kebanyakan pada sisi client dan standard Web browser dapat mengeksekusi halaman QedWiki. Wiki engine mungkin akan menghitung beberapa kesulitan yang terjadi jika wiki engine tersebut mengintegrasikan sebagian besar sumber. Pelaksanaan SOA atau ETL biasanya memiliki centralized engine server yang menjalankan process definition dengan cara menerbitkan services atau data storages. Mendistribusikan workload yang kelebihan engines dapat menjamin scalability.
2.7
Mengeksploitasi
Linked Data
untuk
Membangun
Aplikasi Web
Mengeksploitasi linked data untuk membangun aplikasi web yang akan dibahas di sub bab ini meliputi Linked Data serta Prinsip Linked Data.
48
2.7.1 Linked Data
Banyak pengembang web saat ini menggunakan API seperti dari Google atau Facebook untuk membangun dan meningkatkan aplikasi web mereka. Dengan banyak cara, API ini dirancang seperti XML, JavaScript Object Notation (JSON), dan lain sebagainya. Pengembangan aplikasi berdasarkan web 2.0 mashup sering kali memberatkan dan tidak berskala dengan baik. Selain memerlukan upaya berulang kali mempelajari antar muka baru, yang disebut dengan data ciptaan dikunci dalam masing – masing platform. Proyek komunitas Linking Open Data (LOD) adalah inisiatif yang baru – baru ini mengubah situasi secara dramatis. Menggunakan teknologi data dasar web seperti sekumpulan RDF (www.w3.org/TR/rdf-concepts/) bersama – sama dengan URI disebut prinsip – prinsip data terkait (linked data principles). Beberapa sumber data seperti Wikipedia sekarang tersedia bagi pengembang yang jelas – jelas memiliki keuntungan dari sekumpulan linked data yang berdasarkan pada model data umum. Contoh penggunaan linked data (Hausenblas, 2009, pp. 68-74): a. Faviki (www.faviki.com). Faviki adalah alat social bookmarking yang membolehkan pengguna melabelkan (tag) halaman web dengan label semantik berasal dari Wikipedia. Dalam kasus Faviki, teknologi data web dan data memberikan ruang yang tidak ambigu untuk pengidentifikasian konsep.
49
Gambar 2.2 menunjukkan alat tersebut menggunakan URI dari Dbpedia, versi yang saling terkait diantara Wikipedia dalam RDF. Untuk pelabelan (tagging) dalam Gambar 2.2, http://dbpedia.org/resource/Internet digunakan sebagai label.
Gambar 2.2 Faviki
50
b. Dbpedia mobile. Dbpedia mobile yang Gambar 2.3 tunjukkan adalah aplikasi yang menarik bagi lingkungan mobile. Pada dasarnya, itu adalah aplikasi client yang location-centric bagi perangkat mobile berdasarkan sinyal perangkat GPS. Dbpedia dapat memberikan peta penunjukkan lokasi terdekat dari sekumpulan data (data sets).
Gambar 2.3 DBpedia mobile c. BBC Baru – baru ini, BBC mengumumkan rilis situs beta Music baru (www.bbc.co.uk/music/beta)
dibangun
di
Musicbrainz
(http://
musicbrainz.org) metadata dan pengidentifikasi. Situs ini menarik music metadata seperti artis terkait dari Musicbrainz dan mengambil teks pengantar bagi biografi artis dari Wikipedia melalui sambungan Dbpedia. Dalam Gambar 2.4 menunjukkan contoh halaman bagi Madonna (www.bbc.co.uk/ music/artists/79239441-bfd5-4981-a70c-55c3f15c1287).
51
Gambar 2.4 BBC
52
2.7.2 Prinsip Linked Data
Ada 4 (empat) prinsip linked data (Hausenblas, 2009, pp. 68-74) : a. Semua item harus diidentifikasi menggunakan URI; b. Semua URI harus dereference-able artinya dengan menggunakan HTTP, URI membolehkan siapapun (manusia atau mesin) untuk mencari suatu item yang telah diidentifikasikan melalui URI; c. Mencari suatu URI lebih mengarah kepada data lebih juga dikenal sebagai prinsip follow-your-nose; d. Link ke URI dalam sekumpulan data lainnya harus dimasukkan untuk mengaktifkan penemuan data (data discovery) lebih lanjut. Berbeda dengan visi web semantik yang baku, link data secara umum adalah penerbitan data secara terstruktur dalam RDF dengan menggunakan URI daripada fokus pada level ontology atau inference. Penyederhanaan ini hanyalah sebagai web sederhana dengan pendekatan akademis yang telah ditetapkan dari sistem hypertext yaitu menurunkan tingkat pembawa data masuk untuk penyedia data (Hausenblas, 2009, pp. 68-74). Proyek
Linking
Open
Data
atau
LOD
(http://esw.w3.org/
topic/SweoIG/TaskForces/CommunityProjects/LinkingOpenData) adalah upaya kolaborasi terbuka diinisiasikan oleh W3C Semantic Web Education dan Outreach Community Project. Bertujuan mengungkapkan data dari web dengan penerbitan keberadaan sekumpulan data dalam RDF pada web dan menciptakan berbagai link diantara mereka. Proyek mulai pada awal 2007 dengan jumlah sekumpulan data sederhana.
53
Saat ini, proyek meliputi lebih dari 60 sekumpulan data berbeda (lihat Gambar 2.5) dengan pasangan milyaran RDF lipat tiga dan jutaan link semantik pada waktu itu. Ini mewakili implementasi dari prinsip linked data.
Gambar 2.5 LOD Cloud
54
Dalam LOD cloud, kita dapat mengelompokkan jenis semantik link kedalam (Hausenblas, 2009, pp. 68-74) : a. Person-related link Seperti
floaf:knows
dari
Friend
of
a
Friend
(FOAF)
vocabulary
(http://xmlns.com/foaf/0.1/). b. Spatial link. Seperti
geo:lat
dari
Basic
Geo
vocabulary
(WGS84
lat
/
long
www.w3.org/2003/01/geo/). c. Temporal link. Seperti Dublin Core’s dc:created property (http://dublincore.org/documents/ dcmi-terms/) atau Event Ontology’s event:time property (http://purl.org/NET/ c4dm/event.owl). d. Jenis link seperti dc:isPartOf untuk merepresentasikan struktur semantik. e. Jenis link lain seperti scovo:dimension dari Statistical Core Vocabulary (SCOVO http://purl.org/NET/scovo). Bayangkan bahwa kita adalah seseorang yang menjalankan Web site, http://example.org/cw/ yang topiknya adalah ”Cold War”. Mari asumsikan bahwa site tersebut dikuasai oleh popular software seperti Wordpress atau Drupal. Site tersebut telah beberapa kali mengelola hal pada berbagai aspek dari Cold War yaitu politik, negara, konflik, dan lain sebagainya. Sebagai pengelola site tersebut, kita telah mendengar tentang linked data dan ingin menggunakan linked data untuk memperkaya isi web site kita.
55
Apa saja langkah – langkah yang diperlukan ? Untuk mengeksploitasikan linked data sets, kita musti pertama kali menyiapkan data kita sendiri dan kemudian menyeleksi target data sets yang tepat untuk interlinking.
2.7.3 Menyiapkan Data
Data yang ingin kita gunakan tersedia dalam format non RDF seperti relational data atau XML. Format yang sebenarnya tidaklah bermasalah sepanjang data dibuat terstruktur dan schema dapat dikenali. Untuk membuat data kita Web-of-data-compliant, kita musti pertama – tama mencetak yang artinya menugaskan URI kepada entitas. Apa saja yang dapat dibandingkan dari apa saja yang Dbpedia lakukan, kita akan mengidentifikasi entitas didalam spasi URI http://example.org/cw/resource/. Sebagai contoh : http://example.org/cw/resource/conflict. Representasi RDF, dilain pihak akan terletak
pada
http://example.org/cw/rdf,
sebagaimana
didalam
http://example.org/cw/rdf/conflict. Versi di benak manusia akan menjadi didalam http://example.org/cw/html/ spasi, seperti http://example.org/cw/html/conflict. Panduan mendalam tentang bagaimana untuk mempublikasikan linked data pada Web (http://linkeddata.org/docs/how-to-publish) menjelaskan keseluruhan proses pempublikasian secara jelas termasuk pencetakan URI, penyeleksian vocabulary, dan hal deployment.
56
Tantangan selanjutnya adalah untuk mengambil 1 (satu) atau lebih vocabularies yang ada dan memperluas mereka sebagaimana diperlukan untuk tujuan kita sendiri. Pengalaman Hausenblas mengatakan kepada kita bahwa kita harus reuse vocabularies yang ada dan extend mereka jika diperlukan daripada berbalik menemukan masing – masing aplikasi. Sebagai pengelola Cold War site, kita telah menganalisis entitas dan relasi yang muncul dalam isi kita dan telah mengidentifikasi kebutuhan untuk merepresentasikan orang, daerah geografis, dan kejadian. Langkah terakhir dalam persiapan data adalah memutuskan kapan untuk mengeksposkannya. Beberapa pilihan tersedia untuk deploy RDF data yaitu dokumen RDF / XML stand-alone, XHTML + RDFa (www.w3.org/TR/xhtmlrdfa-primer/) yang membiarkan kita menempelkan RDF graph didalam dokumen HTML menggunakan atribut, atau SPARQL endpoints yang membiarkan agen melakukan query RDF store melalui bahasa SPARQL (RDF ekuivalen dengan bahasa relasional query SQL) (Hausenblas, 2009, pp. 68-74). Sebagai operator site Cold War, kita dalam posisi yang nyaman. Plug-ins tersedia untuk sistemnya, yang membiarkan kita mengekspos data hanya dengan beberapa perubahan konfigurasi saja.
57
2.7.4 Linked Data Discovery and Usage
Mari jawab pertanyaan bagaimana menemukan dan menyeleksi target data sets untuk interlinking yang kita dapat gunakan untuk memperkaya isi. Dalam prinsipnya, kita dapat belajar isi linked data set dengan cara menerapkan prinsip follow-your-nose yang adalah dengan menginspeksi isinya langkah demi langkah dengan cara mengikuti URI. Tugas ini memang susah payah dan sangat berat dalam hal waktu dan sumber daya. Dengan semantic indexers seperti Sindice, sekarang kita dapat ide tentang apa yang data set tawarkan tanpa langkah followyour-nose. Lebih lanjut, jika SPARQL endpoint dipadukan dengan semantic sitemaps extension, kita dapat query data set dan belajar tentang internalnya. Namun, berbicara tentang scalability, keringkasan, dan kenyamanan, follow-yournose mungkin bukanlah kata terakhir. Berdasarkan semantic sitemaps, Hausenblas menanggapi bagaimana menyikapi isu discovery ini menggunakan voiD (Vocabulary of Interlinked Datasets). voiD memperkenalkan kelas dan properti untuk secara formal mendeskripsikan isi data set dan bagaimana itu melakukan interlink dengan data set lainnya. Berkenaan dengan interlinking, penyedia data set mendeskripsikan link type dan quantity. Sebagai pengelola site Cold War, kita mungkin ingin menginspeksi LOD cloud (sebagaimana di Gambar 2.5) menggunakan browser Web of data seperti Tabulator atau OpenLink Data Explorer (http://linkeddata. uriburner.com/ode/)
dan
semantic
search
engine
seperti
Sindice
(http://sindice.com) untuk secara manual menemukan dan menyeleksi target data set.
58
Mari bayangkan untuk site Cold War, kita telah mengambil 2 (dua) data set yaitu untuk data people-related kita menggunakan DBpedia, dan untuk data geografis kita menggunakan Geonames. Di satu sisi, keputusan ini membuat Anda kelihatannya mengintegrasikan data dari data set yang telah disebutkan sebelumnya. Di sisi lain, keputusan tersebut memunculkan agen baru yaitu manusia dan mesin. Untuk mengonsumsi RDF data, gunakan SPARQL. Setup yang lengkap adalah sebagai berikut : penyedia data mengekspos datanya melalui interface standar seperti XHTML + RDFa atau SPARQL endpoint, dan konsumen memilih format terbaik terserah mereka. Seorang manusia yang menggunakan web browser akan mengonsumsi sebuah representasi XHTML sedangkan sebuah agen mesin seperti indexer atau content syndicator sepertinya akan condong kepada RDF serialization seperti RDF / XML.
2.7.5 Tools dan Libraries untuk RDF Data Management
Untuk mengekspos data relasional pada Web sebagai RDF, kita harus menggunakan
framework
seperti
server
D2R
(Database
to
RDF)
(http://www4.wiwiss.fu-berlin.de/bizer/d2r-server) atau Triplify (http://triplify.org /overview). Tools ini membuat deployment close-to-instant berdasarkan konfigurasi sederhana dan pemetaan RDF. Di dunia enterprise, 2 (dua) pilihan telah ada yaitu platform Talis (www.talis.com/platform/) tersedia sebagai SaaS (Software as a Service) dan OpenLink’s Virtuoso (http://virtuoso.openlinksw. com/), suatu middleware and database engine.
59
Dalam
project
Hausenblas,
dia
menggunakan
ARC2
(http://arc.semsol.org/), PHP library gratis untuk pemrosesan RDF yang menargetkan sistem xAMP. Daftar komprehensif dari Web-of-data tools, frameworks,
dan
libraries
tersedia
pada
http://esw.w3.org/topic/
SemanticWebTools.
2.8
Platform Online untuk Web API dan Service Mashup
Mashup tumbuh dengan subur pada pemrograman web. Developer menciptakan mashup dengan mengombinasikan komponen web sites dan aplikasi yang ada. Walaupun perkembangbiakan mashup menawarkan banyak peluang, kurangnya standardization dan compatibility memberikan tantangan yang dapat dipertimbangkan. Untuk menyikapi hal tersebut, IBM Sharable Code online service platform menggunakan Domain Specific Language (DSL) yang menyediakan struktur dan perancangan yang umum untuk mashup untuk sharing dan reuse komponen mashup (Maximilien et al., 2008, pp. 32-44). Sekarang ini web dapat diprogram. Fakta ini telah difasilitasi dan dipercepat oleh ketersediaan web data sebagai XML feeds yang terstruktur seperti RSS dan Atom serta oleh interaksi aplikasi web eksternal melalui Application Programming Interfaces (API). Banyak situs web baru dan aplikasinya mengekspos
data
feeds
atau
lebih
banyak
advanced
API’s
seperti
Representational State Transfer (REST) services atau Atom publishing protocol (AtomPub) (Maximilien et al., 2008, pp. 32-44).
60
Mashup mengombinasikan views, data, dan logic dari existing web sites atau aplikasi untuk menciptakan aplikasi baru yang fokus pada masalah situational ephemeral (situasi sesaat). Sekarang ini developer menggunakan beraneka ragam Web API untuk menciptakan banyak mashup yang bertujuan untuk memecahkan segala jenis masalah mulai dari esoteric mashups (masalah mashup yang hanya diketahui dan dipahami oleh beberapa orang tertentu saja). Namun, ada juga kegunaan mashup secara umum seperti hal yang menawarkan informasi cuaca dan mapping services. Mashup directories dan marketplaces membolehkan
pengguna
untuk
meranking
dan
mendiskusikan
mashup.
ProgrammableWeb.com adalah salah satu contoh direktori tersebut. Sejak April 2008, direktori tersebut telah membuat lebih dari 3,000 mashup dan lebih dari 740 API yang berbeda – beda (Maximilien et al., 2008, pp. 32-44). Banyaknya mashup yang tersedia menumbuhkan kemunculan web, tetapi mashup juga memunculkan tantangan baru yang melingkupi (Maximilien et al., 2008, pp. 32-44) : •
Mashup sekarang ini adalah solusi satu – satunya, kurangnya pendekatan – pendekatan terhadap arsitektur dan perancangan;
•
Banyak mashup serupa yang menggunakan API yang sama tetapi tidak berbagi satu sama lain. Maximilien et al. (2008, pp. 32-44)
mengembangkan online mashup
platform yang menawarkan pendekatan untuk merancang mashup, berbagi bagian mereka, dan memfasilitasi manajemen mereka (http://services.alphaworks.ibm. com/isc).
61
Developer dapat juga menggunakan mashup untuk memecahkan masalah web integration dan service composition. Didalam analisis selanjutnya, perbandingan informal menunjukkan bahwa platform ini bekerja lebih baik, dalam beberapa aspek, dibandingkan terhadap mashup platform lainnya. IBM Sharable Code platform mencoba untuk menyediakan comprehensive solution untuk creating, reusing, deploying, dan managing Web API mashup. Secara konsep, mashup adalah aplikasi web baru yang repurpose existing Web data dan API. Mashup yang baik mencakup 3 (tiga) aspek yang sesuai dengan perancangan aplikasi web yang baik yaitu data models, views, dan interaction controller. Maximilien et al. (2008, pp. 32-44) mengimplementasikan platform mereka sebagai koleksi dari Ruby on Rails (RoR) web application dan API. Semuanya dilapisi oleh relational database. Gambar 2.6 menunjukkan high-level platform overview dengan berbagai macam aplikasi web dan API. Domain Specific
Language
(DSL)
memiliki
well-defined
grammar
dan
mengimplementasikannya menggunakan beberapa bahasa lainnya atau parser sendiri, compiler, dan code-generation engine. Maximilien et al. (2008, pp. 32-44) memilih RoR karena fleksibelitas sintaksnya dan fitur yang dinamis. Platform tersebut terdiri dari 3 (tiga) RoR web application. Inti dari platform tersebut adalah DSL engine yang mengambil DSL-defined mashup dan generate kode yang perlu untuk RoR web application. Maximilien et. al. mengekspos engine sebagai Web API. Platform tersebut juga mengandung creator dan community applications yang membolehkan pengguna menciptakan dan berbagi mashup.
62
Gambar 2.6 Overview Sharable Code Platform
2.8.1 Mashup Creator
Gambar 2.7 menunjukkan user interface utama mashup creator. Proyek pengguna dapat mengandung banyak mashup. Semuanya mengikuti struktur DSL. Creator tool menyediakan fasilitas dasar untuk browsing DSL, create konstruksi DSL yang baru melalui wizard, search, dan reuse bagian DSL dengan mudah baik dari project pengguna sendiri atau dari pengguna lainnya. Ketika pengguna mencari keyword tertentu, creator menyediakan sekumpulan indexed items yang pengguna dapat tambahkan langsung ke proyek. Sistem membuat index menggunakan nama konstruksi DSL atau deskripsi dan tag milik pengguna sendiri. Istilah pencarian ”new” menghasilkan komponen news-related dan menyediakan fasilitas one-click add (Maximilien et al., 2008, pp. 32-44).
63
Setelah membuat dan menguji mashup, pengguna dapat deploy IBM Sharable Code mashup sebagai packaged RoR web applications atau Ruby gems (www.rubygems.org), yang mana mereka dapat men-download dan menginstal pada server lokal mereka sendiri atau pada remote server. Satu – satunya persyaratan adalah server tersebut memiliki RoR framework dan relational database seperti DB2 atau MySQL. Semua ketergantungan lainnya dimasukkan dalam application gem atau di-download ketika gem menginstal.
Gambar 2.7 Mashup Creator User Interface. DSL (Domain-Specific Language) code Mashup Creator User Interface. DSL (Domain-Specific Language) code ditunjukkan ditengah. Sebelah kiri, tree navigation membuatnya mudah bagi pengguna untuk browsing bagian DSL. Kotak search di sebelah kanan atas membolehkan
pengguna
mencari
bagian
DSL
menambahkan mereka kepada project mereka saat ini.
sepanjang
project
dan
64
2.8.2 Mashup Community
IBM Sharable Code Community adalah RoR web application yang berbagi (share) deployed mashup. Tujuan primer aplikasi ini adalah membangun komunitas pengguna mashup dan menciptakan katalog mashup. Anggota komunitas dapat mendiskusikan dan meranking mashup, baik secara manual menambahkan mashup kepada komunitas ataupun menyuruh mereka secara otomatis ditambahkan ketika mereka melakukan deploy dari mashup creator (Maximilien et al., 2008, pp. 32-44).
2.8.3 Domain-Specific Language (DSL)
Contoh platform dan language yang baik yang developer dapat gunakan untuk mengimplementasikan DSL adalah Smalltalk Seaside (www.seaside.org) framework. Seperti RoR, Seaside menyediakan framework lengkap untuk membuat aplikasi web. Namun, framework seperti lingkungan Smalltalk lainnya juga mengandung tool yang membolehkan pengguna untuk browse, edit, dan modify hasil code aplikasi web secara langsung dalam web browser mereka. Charles Simonyi dan rekan sekoleganya di Intentional Software (www.intentsoft.com) membuat serangkaian tool yang lengkap. Pendekatan mereka didasarkan pada DSL tetapi lebih generic daripada Maximilien et al. (2008, pp. 32-44) dan mengusahakan untuk membolehkan DSL kepada berbagai variasi domain.
65
DSL adalah ”mini” language yang dibangun diatas hosting language yang menyediakan syntax dan semantic umum untuk merepresentasikan concept dan behavior domain tertentu. Umumnya, menggunakan atau merancang DSL membantu developer memenuhi 1 (satu) tujuan atau lebih yaitu : •
Mencapai higher-level abstraction. DSL memungkinkan programming pada level lebih tinggi daripada konstruksi host language atau libraries. Juga membolehkan developer merepresentasikan domain concepts, actions, dan behaviors secara langsung dalam syntax baru;
•
Menulis code yang pendek dan tepat. Ini adalah efek samping dari programming di level abstraction lebih tinggi. Program DSL biasanya lebih kecil daripada yang sesuai dengan mereka dalam general-purpose programming language;
•
Menciptakan syntax yang sederhana dan alami. Hal ini memacu untuk menulis code yang mudah ditulis dan dibaca;
•
Membuat program dengan mudah. Karena DSL memungkinkan ekspresi dari konstruksi yang memetakan secara langsung kepada domain. Hal itu membuat programming lebih mudah (untuk aplikasi domain) daripada menggunakan general-purpose language;
•
Menghasilkan code. Ini adalah fungsi primer DSL. Intinya, sistem menerjemahkan pernyataan DSL saat runtime kedalam code yang menggunakan language dan libraries di sistem tersebut.
66
2.8.4 Evaluasi
Maximilien et al. (2008, pp. 32-44) menganalisis code yang dihasilkan untuk 3 (tiga) mashup sederhana untuk jenis Web API yang berbeda – beda. Analisis tersebut tidaklah terlalu komprehensif, tetapi lebih kepada menawarkan ide seberapa banyak waktu developer dapat mengharapkan untuk berhemat melalui programming mashup mereka higher-level language seperti DSL. Tabel 2.1 meringkas initial code generation statistics untuk 3 (tiga) mashup sederhana. Data tersebut menyarankan bahwa menggunakan tool ini mengizinkan programmer menciptakan representasi yang umum dan dapat digunakan kembali untuk mashup mereka sebaik berhemat waktu pengembangan, sebagaimana rasio rata – rata untuk code yang dihasilkan adalah lebih dari 75 %. Penghematan ini datang terutama dari fakta bahwa menggunakan DSL dan tool ini membuat kita menghasilkan mashup (Maximilien et al., 2008, pp. 32-44) : •
Memasang class – class seperti XML dan JSON (Javascript Object Notation) parsing, REST, Atom, AtomPub, dan RSS proxy;
•
Pemetaan database dan migrasi class untuk memindahkan elemen – elemen data kedalam database;
•
Controller dan view code bersama dengan metode pemetaan kepada konstruksi – konstruksi step, mediation, dan wiring.
67
Tabel 2.1 Initial Code Generation Statistics untuk Contoh IBM Sharable Code Mashup.*
Platform ini mengandung web-based tools seperti mashup creator tool yang mengandung berbagai wizard untuk memfasilitasi beberapa hasil konstruksi DSL. Sebagaimana Gambar 2.8 tunjukkan, developer dan menggunakan creator tool untuk menghasilkan berbagai konstruksi DSL (termasuk API, data, dan service) untuk Atom feed dengan cara mengeluarkan feed dan menyeleksi data fields yang data deklarasi butuhkan. Tool ini mengeluarkan Atom feed dan pengguna dapat menyeleksi data fields yang diperlukan dengan cara deklarasi data.
Gambar 2.8 IBM Sharable Code-Creator Wizard Tabel 2.2 menunjukkan bagaimana tool tersebut dibandingkan dengan mashup tool yang populer pada 5 (lima) kriteria. Language dan platform memiliki beberapa keterbatasan penting. Beberapa keterbatasan ini berdasarkan pendekatan general DSL-based. Meskipun platform membiarkan pengguna mengindikasikan
68
batasan otomatis service-data caching dalam DSL, ini bukanlah generic solution. Perpanjangan konstruksi definisi DSL API dapat membiarkan pengguna mengindikasikan services dan operations data mana yang sistem harus tampung, dan kebijakan penampungan mana yang harus digunakan (Maximilien et al., 2008, pp. 32-44). Tabel 2.2 Subjective Mashup Tool Comparison
Keterbatasan penting lainnya adalah bahwa DSL tidak secara langsung memasukkan primitives untuk deskripsi user interface. Setiap mashup tidak melilit secara implisit hal terkait dengan view oleh nama yang sama. Ini adalah pilihan perancangan. Maximilien et. al. memilih RoR platform sebagai basis dan ingin melebarkan fasilitas view. 1 (satu) keuntungan dari pilihan ini adalah bahwa view Maximilien et al. (2008, pp. 32-44) dapat menjadi halaman HTML kompleks yang dapat bekerjasama dengan fitur lebih lanjut seperti Ajax callbacks. Namun, pemisahan view-controller ini berarti bahwa Maximilien et al. (2008, pp. 32-44) harus kadangkala memasukkan logic didalam view templates. Memasukkan logic yang kompleks dan manipulasi data dalam views dapat mengalahkan tujuan DSL dan menduplikasikan beberapa isinya. Adalah terlalu cepat untuk mengatakan jika masalah ini akan menyebar dengan luas ketika tool tersebut luas digunakan. Maximilien et al. (2008, pp. 32-44) mungkin dapat meredakan ini dengan cara membolehkan graphical-based tool untuk membantu pengguna melakukan kustomisasi mashup user interface mereka sendiri.