• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
2. konsep restfull platform
 

2. konsep restfull platform

on

  • 1,763 views

 

Statistics

Views

Total Views
1,763
Views on SlideShare
1,749
Embed Views
14

Actions

Likes
3
Downloads
0
Comments
0

1 Embed 14

http://www.techgig.com 14

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    2. konsep restfull platform 2. konsep restfull platform Document Transcript

    • Konsep RESTfull platform berbasis MVCREST vs SOAPengembangan Solusi InteroperabilitasPendahuluanInteroperabilitas menjadi sangat penting saat ini, dikarenakan banyak hal baik secara internalmaupun eksternal. Secara internal diantaranya adalah implementasi sistem yang bervariasi,dikarenakan disengaja atau tidak disengaja, sehingga integrasi antara sistem menjadi sangat sulit.Buku ini adalah sebuah perjalanan panjang pengembangan sebuah platform sistem terbuka danOpen Source, yang diharapkan dapat menjadi media kolaborasi berbagai pihak. Proyek inidiberinama Cimande yang merupakan sebuah seni pengobatan lokal dari Jawa Barat, release publicpertama adalah Juni 2001, proyek dimulai pada tanggal 12 january 2001.Pendekatan awal dari proyek ini adalah berusaha untuk melakukan pemetaan dari strukturorganisasi perusahaan dengan teknologi yang modular dan standar berbasis Java EE. Dalamperjalanannya berkembang menjadi solusi yang berarsitektur dimulai dari menggunakan modelpengembangan MVC (Model-View-Controller) sampai memiliki fitur RESTful. Mekanisme inimemungkinkan membuat Cimande menjadi sebuah platform pengembangan yang bernuansaaristektur dan memiliki fitur langsung menjadi layanan untuk interoperablitas. Aristektur MVCProyek Cimande versi MVC adalah sebuah pengembangan dari awal, sedangkan mekanismeinteroperabilitas dimulai dari sebuah proyek bernama PASIR (Program Aplikasi Sistem Informasidan Interoperabilitas), yang merupakan proyek pemerintah bagian dari program IGOS Enterprise,yang memungkinkan setiap departemen dapat melakukan pertukaran data. Yang pada akhirnya
    • melahirkan Cimande 2.0, yang merupakan sebuah aplikasi MVC-REST. Pada bab 6 akan dibuatmodul yang memungkinkan integrasi dengan Joget, sebuah XPDL OpenSource, yangdikembangkan rekan kita dari Malaysia (Open Dynamic), yang mana engine awal XPDLdikembangkan oleh Together dari Swedia. Mekanisme MVC dengan Workflow adalah sebuahrealisasi dari framework WARS, yang notabene adalah kata lain dari MVC-Workflow. Arsitektur MVC CimandeBerikut adalah definisi layanan web yang menjadi fondasi interoperabilitas:“A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in amachine-processable format (specifically WSDL). Other systems interact with theWeb service in a manner prescribed by its description using SOAP messages,typically conveyed using HTTP with an XML serialization in conjunction withother Web-related standards. ”W3C Web Services Architecture WG, http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/“Service Oriented Architecture is a paradigm for organizing and utilizingdistributed capabilities that may be under the control of different ownershipdomains. It provides a uniform means to offer, discover, interact with and usecapabilities to produce desired effects consistent with measurable preconditionsand expectations.”OASIS SOA Reference Model, http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-rmBandingkan dengan definisi dari Gartner mengenai ekonomi, yang merupakan variasi dari definisiSOA dari OASIS.“An Economy is a paradigm for organizing and utilizing distributed capabilitiesthat may be under the control of different ownership domains. It provides auniform means to offer, discover, interact with and use capabilities to producedesired effects consistent with measurable preconditions and expectations.” NickGall, VP, Gartnerhttp://tech.groups.yahoo.com/group/service-orientated-architecture/message/906524Jadi yang menarik dari interoperabilitas ini adalah kekuatan ekonomi yang dimunculkan,pertukarannya adalah sebuah pasar yang sangat dinamis dalam dunia digital. Dengan mekanismeplatform, bayangkan berapa besar kekuatan perubahaan dan peluang yang dihasilkannya.
    • Konsep Dasar InteroperabilitasKonsep dasar dari interoperabilitas adalah pertukaran data dari dua atau lebih sistem, sebenarnyateknologi yang memungkinkan melakukan interoperabilitas ini bukan hanya harus melalui Websaja, tetapi juga dapat melakukan layanan online lainnya seperti FTP, WebDav.Walaupun promosi kuat dari vendor SOA, menggeser persepsi bahwa interoperabilitas itu melaluistandar yang dikembangkan WS-I, sebuah badan yang mengeluarkan spesifikasi khusus WebServices yang mengacu pada SOAP. Yang mana saat ini lembaga tersebut telah ditutup dan dileburmenjadi bagian dari OASIS, dengan kata penutup, telah selesai melengkapi semua pekerjaannya.Padahal kita tahu interoperabilitas adalah teknologi baru yang sangat dinamis. Apakah ini adalahkematian dari standar WS-I dalam solusi. Dimana kita tahu standar SOAP tidakmengimplementasikan standar HTTP yang telah digunakan oleh semua pemakai internet searahdengan lahirnya internet itu sendiri. SOAP vs RESTSOAP menciptakan sebuah protokol yang dapat berjalan diatas HTTP itu sendiri. Redudansi bukan?REST yang merupakan disertasi dari Roy Fieldman menjawab semua hal ini, salah satu tokohdibelakang lahirnya Internet, yang merupakan juga pencipta standar HTTP. Jadi jangan kagetbilamana ditahun-tahun mendatang solusi SOAP akan mulai ditinggalkan digantikan oleh solusiREST. Tentu saja buku ini akan dapat menjadi referensi bagaimana ini semua terjadi.PASIR (Program Aplikasi Sistem Informasi dan Inte(R)operabilitas)Bandingkan dengan definisi PASIR berikut ini:PASIR (Program Aplikasi Sistem Informasi dan Inte(R)operabilitas) adalah sebuahinsiatif berkelanjutan untuk mengembangkan sebuah sistem interoperabilitas antarsolusi egoverment, sehingga memungkinkan terjadinya interaksi data antara sistemyang dikembangkan menggunakan teknologi yang berbeda-beda.Pasir memungkinkan pulau-pulau informasi yang dikembangkan baik menggunakan teknologi lamasampai yang baru dapat berkolaborasi.
    • Pasir akan memberikan nilai tambah paling baik bilamana terjadi pertukaran data bukan hanya darisatu sistem ke sistem lain, tetapi berbentuk rantai perpindahan data. ` ` ` Sistem A Sistem B Sistem C Alur Informasi A ke B ke CInisiatif PASIR memungkinkan sistem yang bukan bagian dari alur informasi umum dapatberinteraksi. Dimana solusi interoperabilitas tersebut bersifat modular. Dengan sistem keamanantingkat tinggi memungkinkan data dapat diakses oleh pihak lain tanpa pemilik data ketakutan terjadipencurian data. ` Sistem B ` ` Sistem C Sistem A PASIR ` Sistem D Solusi PASIR dengan 4 entitas sistem yang berinteraksiInteroperabilitas dengan RESTREST ini adalah sebuah disertasi dari Roy Fieldman, mengenai kemampuan HTTP untuk menjadiplatform interoperablitas, dan memungkinkan implementasi interoperabilitas berbasis resource ataudapat juga disebut implementasi interoperabilitas mengacu pada kata benda dengan header dariinformasi adalah metadatanya, berbeda dengan implementasi SOA yang berbasis pada kata kerjadan memiliki surat atau “envelop” sebagai meta data informasinya.Hampir semua perusahaan dotcom, menggunakan REST sebagai bentuk implementasiinteroperabilitasnya, bertolak belakang dengan vendor penyedia layanan interoperabilitas,menggunakan SOA.
    • Berikut adalah contoh dari implementasi layanan online Google, yang memungkinkan dirubahmenjadi sumber layanan solusi yang kita hendak kembangkan. Hanya dibutuhkan Gdata API,sebuah API yang membantu programmer menghubungkan sistem yang dikembangkan denganlayanan Google. Google Data APIBagi Anda yang berkecimpung didunia Java, akan mengenai Devoxx, yaitu konferensi terbesarkomunitas Java di Eropa yang dikelola oleh BeJUG (Belgian JUG), dinahkodai oleh StephanJenssen, juga telah menyediakan layanan REST, berikut adalah beberapa client dari layanan RESTuntuk mengakses server Devoxx.com. Devoxx REST SolutionKalau kita lihat lebih dalam semua layanan ini adalah memiliki sebuah fitur yang mirip yaitumempertukarkan informasi dari server ke client, dimana servernya berada di internet. Diagramdibawah ini akan menjelaskan secara lebih teknis bagaimana mekanisme interoperabilitas terjadiantara server dengan client, dengan metadata XML, JSON atau parsing HTML.
    • Kalau kita bandingkan antara REST dg SOA, silahkan mengacu pada diagram berikut: Web Services StandardDapat dibayangkan banyak sekali standar didalam web services, dan terbalik dengan REST yanghanya mengadopsi HTTP saja. Kontrakdiksi kan.Berikut adalah sejarah bagaimana perkembangan WS-* dan REST.
    • REST vs RPCAkar dari WS-*•The Enterprise•RPC, COM, CORBA, RMI, EJB•Transaction Systems•Controlled Environment•Top-down ApproachAkar dari REST•The Internet Text formats•Wire Standards•FTP, POP, SMTP•Bottom-up ApproachPendekatan yang menarik dikaji dari REST vs WS* /SOA adalah adalah pendekatan “enterprise”pada SOA/WS*. Artinya standar ini dikeluarkan oleh lembaga penyedia solusi “enterprise” yangnotabene adalah perusahaan paket software, bandingkan dengan REST yang diimplementasikanoleh perusahaan internet untuk memungkinkan pihak lain mengintegrasikan sistemnya ataumengakses sistemnya. Nah WS itu kepanjangan dari web service, artinya layanan on internet.Apakah vendor enterprise ini melayani internet?Kovergensi antara dunia internet dan penyedia piranti lunak, adalah sumber dari pertemuan antarasejarah akar WS-* dengan REST. Lebih dari dua dasawarsa solusi WS-* ini berkembang dari hanyaRPC yang menjadi media komunikasi mainframe, berevolusi menjadi layanan yang diharapkandapat menyelesaikan inteoperabilitas antara sistem. Ternyata, kekompleksan dan akar yang berbedamenumbuhkan tanaman yang berbeda. Yang mana kita tahu semuanya berkerja dan dikirim melalui
    • IP (Internet Protocol).Sebuah pernyataan menarik dari Stefan dari InfoQ, “If web services are supposed to work onInternet scale, they should be inspired by the Web, not by Distributed Objects”.Tentu saja ini terjadi karena para vendor solusi WS-* hendak menyelamatkan aset mereka yangtelah telah puluhan tahun menjadi landasan operasional perusahaan-perusahaan besar. Migrasi kestandar baru – HTTP usianya lebih muda dari RPC – adalah sangat memerlukan effort yang sangatbesar. Ini mungkin yang menjadi alasan, mengapa lahirnya WS-*.REST vs (for) SOA, Stefan, InfoQ, 2008SOA dan REST sebenarnya secara final output dari sisi bisnis adalah sama, dan ini semua terjadihanya pada level aristektur semata. Tetap dalam dunia internet, aristektur menjadi sangat pentingkarena sebuah aristektur yang benar akan mampu menahan semua kegiatan pertukaran data. Yangmana dalam dunia internet sebuah solusi internet diakses oleh 2-3 user sampai ratusan juta, sebagaicontoh adalah Facebook yang saat buku ini tidulis diakses oleh 500 juta user.Berikut adalah layanan REST yang disediakan beberapa penyedia.Everybody HTTP Servers, Clients, Proxies, Libraries, ...Google Base Gdata Calendar Document Lists Blogger Notebook PicasaAmazon Simple Storage Service (S3) Queue Service Flexible Payment SearchSun/Oracle JSR 311
    • JerseyIBM Abdera Project ZeroMicrosoft Astoria WCFREST API atau Web APITujuan dari REST API•Create a Java API for building applications that are on the Web easily Follow REST principles andbest practices•Format-independent (not only XML) HTTP-centric (no protocol independence) Container-independentApproach One class per resource “type” Methods to handle HTTP requests Use of Java 5Annotations to specify ‣ URI Mapping‣ Mapping to HTTP methods‣ Mapping of URI components, HTTP headers, HTTP entities to method parameters and returntypes‣ MIME type information@Path("/customers/")public class CustomersResource { @GET @Produces("text/plain") public String getAsPlainText() { return toString() + "nn"; }}JSR 311: JAX-RS: The Java™ API for RESTful Web Services, Final Oct 2008http://jcp.org/aboutJava/communityprocess/edr/jsr311/index.htmlREST dalam MVCREST yang telah diterangkan pada sebelumnya adalah sebuah konsep bagaimana merubah sebuahinformasi menjadi sesuatu yang dapat diolah kembali menjadi sumber informasi, yang mana adalah
    • sebuah mekanisme dari teknologi HTTP yang telah menjadi standar internet yang dipakai olehsetiap pengakses internet. Konsep SOA berbasis WS-I yang telah dipromosikan lebih dari satudekade merupakan standar terbuka lainnya, dan mengapa kita harus membuat implementasi lainnyabilamana kita dapat mengembangkan dari sistem yang telah dikembangkan dan sama-sama hasilakhirnya adalah solusi yang dapat melakukan interoperabilitas data.Bab ini akan menjelaskan bagaimana membuat sebuah RESTfull platform, artinya sebuah fondasipengembangan yang hasil akhirnya adalah REST.Terimakasih kepada team Struts2 yang menjadi komponen pengubah informasi menjadi solusimetadata berbasis REST, yang outputnya dapat berbentuk JSON, XML ataupun metadata lainnya.Mekanisme plugins Struts2 memungkinkan mengembangkan plugin tambahan bilamana output darihasil pemrosesan data yang baik dapat berbentuk JSON ataupun XML adalah kurang, tentu sajadengan membuat plugin baru.Implementasi dari solusi berbasis REST harus mengacu pada arsitektural yang menjadi fondasinya,dan saat ini solusi berbasis web mengacu pada MVC. MVC merupakan sebuah mekanismepemisahan antara model data, output data dan logika dalam controller. Jadi dapat dikatakanmengembangkan REST didunia MVC adalah sebuah mekanisme yang viewernya adalah metadatadan penulisan eksekusi aplikasi yang dikembangkan mengacu pada HTTP, sepertihttp://domain/pelanggan/1, yang berarti menampilkan data dari pelanggan dengan kode identifikasi1.Mekanisme Modularitas MVC
    • REST sebagai Web APIScalable• Fault-tolerant• Recoverable• Secure• Loosely coupled
    • REST vs ESBbilamana kita telah membandingkan REST dengan SOA, adalah tidak adil bilamana kita tidakmencari lebih jauh mengenai teknologi interoperabilitas lainnya yaitu ESB singkatan dari EnterpriseService Bus.ESB merupakan sebuah container, dan dalam beberapa tahun terakhir saat buku ini ditulis, dijualterkadang dalam satu paket produk bernama SOA Suite.Tetapi dalam perkembangannya ESB yang bekerja mengacu pada adaptor baik itu layanan internetatau intranet, memungkinkan terjadi pertukaran data lebih dari satu layanan menjadi layanan lagi.ESB yang bekerja layaknya sebuah pintu tongkang penganti jalur dalam rel kereta api, telahmenjadi sebuah solusi yang sangat penting.ESB menutupi ketidak flexibilitas dari REST atau SOA WS-*, dimana kekuatannya adalahmemungkinkan menggabungkan lebih dari satu layanan baik itu berjenis REST atau pun SOA WS-*. Malah dalam implementasinya mulai dari FTP, folder, mailbox email sampai sebuah protokolpropietary dapat digabungkan menjadi satu.ESB seperti alat penggabung beberapa sumber data informasi menjadi informasi, kekuataannyaadalah logikanya tidak diprogram didalam aplikasi tetap didalam container ESB. Ini yang menjadiperbedaan, bilamana kita hendak menggabungan beberapa data sumber dalam REST, akan sangatsulit, dan kalaupun ada harus melalui injection. Serta logikanya dikeluarkan dalam rule engine.Integrasi beberapa layanan menjadi satu layanan, bilamana membentuk sebuah flow, dapatmenggunakan BPEL (Business Process Execution Language), sebuah XML lain yang bertugasmendefinisikan sumber data, logika sampai alur langkah pengambilan data informasi.Dapat dikatakan BPEL adalah sebuah pemograman diatas ESB terhadap sumber data yang berbasis
    • layanan.