Kamis, 24 Juni 2010

Analogi SOA


Kesan tentang SOA yang saya peroleh dari teman-teman adalah: RUMIT dan SULIT. Bisa dimaklumi. Selama ini, setiap muncul konsep baru di bidang Teknologi Informasi (TI) akan membuat dahi para praktisi TI mengkerut. Konsep-konsep baru yang sering begitu cepat muncul, dan mendapat sambutan hangat, belum juga membuat hidup kita lebih mudah.

Begitu anda mulai mempelajari dan mendalami SOA (Service Oriented Architecture), kesan rumit dan sulit akan dengan cepat berkurang. Jika konsep-konsep terdahulu sulit dipahami orang di luar TI, tidak demikian dengan SOA.  Kosakata yang dipakai dalam konsep SOA tidak lagi terlalu teknis TI, tapi sudah lebih dekat dengan kosataka bisnis. Kata service itu sendiri lebih bersifat bisnis jika dibanding object atau component.

Dengan lebih dekatnya konsep-konsep TI dengan konsep-konsep Bisnis diharapkan kerjasama erat antara praktisi TI (programmer, system analyst, software architect) dan praktisi Bisnis (sales, marketer, bagian produksi, akuntan, para manajer dan eksekutif) akan menjadi jauh lebih baik. Kerjasama ini sangat dibutuhkan demi terwujudnya realisasi investasi TI untuk kemajuan dunia bisnis khususnya dan peradaban manusia pada umumnya.

Untuk memudahkan penggambaran tentang konsep SOA, ada baiknya jika kita gunakan analogi berikut ini. Ambillah sebuah kota di Indonesia, Jakarta untuk gampangnya. Setiap warga Jakarta, dalam konteks SOA, bisa disebut sebagai sebuah service. Seorang tukang sapu memberikan service (jasa) kebersihan, sales girl memberikan service penjualan, kasir menerima uamg pembayaran dari pelanggan, kurir memberikan layanan pengantaran barang belanjaan, akuntan menyiapkan laporan keuangan organisasi, manajer mengelola organisasi, dan banyak lagi contoh service yang dimiliki/disediakan oleh warga kota.

Setiap warga, siapa saja, bisa juga bertindak sebagai konsumen (consumer) bagi service yang tersedia. Pada umumnya, tiap penyedia (provider) service juga bisa bertindak sebagai consumer. Sebagai contoh, seorang tukang sapu kantor bertindak sebagai consumer pada saat dia beli gorengan dari seorang service provider, penjual gorengan. Dan satu hal yang sangat penting dalam konsep SOA adalah bahwa consumer tidak harus tahu bagaimana cara provider melaksanakan service. Seorang penumpang Trans Jakarta (terkenal dengan “busway”) tidak harus tahu bagaimana cara menjalankan bus Trans Jakarta. Kalau ditarik ke dunia TI, sebelum ada konsep dan teknologi SOA, seorang programmer yang akan menggunakan suatu object atau software component, dia harus tahu object atau component itu dibuat dengan apa, Java atau .Net atau yang lain? Dan konsumen juga harus tahu detil-detil teknis object atau component yang akan dia pakai. Dalam SOA, consumer suatu service tidak harus tahu service itu dibuat dengan apa dan bagaimana cara membuatnya. Hal ini menghasilkan salah satu keunggulan yang sangat penting dari SOA, yakni independensi, tidak ada saling tergantung antara konsumen dan provider dalam teknis meminta dan menyediakan service.

Terkait dengan independensi di atas, provider bisa secara bebas mengubah, memperbaiki atau menyempurnakan service, dan konsumen tidak perlu melakukan perubahan dalam cara mengkonsumsi service yang telah diubah atau diperbaiki tersebut. Sebagai contoh, pada waktu menggunakan jasa pengiriman barang, kita sebagai konsumen tidak perlu mengubah cara kita meminta jasa itu meskipun pemberi jasa mengubah cara pengangkutan barang dari menggunakan truk menjadi menggunakan kereta api. Yang menjadi perhatian konsumen adalah bahwa barang yang dia kirim harus sudah di tangan penerima dalam waktu tiga (3) hari misalnya. Persyaratan harus sampai dalam waktu tiga hari tadi, dalam konsep SOA, disebut sebagai service contracts. Dan soal contracts ini tidak berpengaruh pada cara konsumen menggunakan service. Diskusi tentang service contracts akan dibicarakan pada tulisan yang akan menyusul kemudian di blog ini.

Kembali ke individu sebagai service. Beberapa service individual bisa digabung menjadi service yang lebih besar, yang lebih kompleks, tetapi tetap bisa dinamakan sebagai sebuah service. Jika Anda memperhatikan sebuah Mall di Jakarta atau di mana saja, sebetulnya ia adalah sebuah service besar yang merupakan gabungan dari banyak service kecil seperti tukang kebersihan, sales, kasir, pengantar barang, manajer dan sebagainya. Dalam SOA, proses penggabungan dan penyelarasan banyak service menjadi sebuah sercive baru yang lebih kompleks dinamakan service composition (orchestration, coreography). Alat atau tools yang paling popular saat ini dan menjadi salah satu standar dalam SOA adalah BPEL (Business Process Execution Language). Detil mengenai BPEL ini akan dibicarakan dalam tulisan terpisah di blog Samz ini.

Beberapa service besar seperti diterangkan di atas masih bisa digabung menjadi sebuah service yang lebih besar lagi. Mall, Dinas Perdagangan, Kantor Pajak, Dinas PU dan yang lain-lain saling berinteraksi menjadi sebuah service yang dinamakan Kota. Begitu seterusnya: desa, kota dan propinsi bergabung menjadi sebuah service yang dinamakan Negara.

Dalam SOA, ada satu konsep yang dinamakan granularity. Service sederhana atau tunggal tetapi secara teknis lebih berkaitan dengan infrastruktur aplikasi, misalnya tabel database, sering digolongkan sebagai fine-grained service. Penambahan data pelanggan (ID, Nama, Alamat), pengambilan data pelanggan, data persediaan (Kode Barang, Nama, Harga Satuan, Jml Persediaan) dan sejenisnya, masing-masing bisa digolongkan sebagai fine-grained service. Beberapa fine-grained service ketika di-orkestrasikan menjadi service yang lebih kompleks digolongkan sebagai coarse-grained service. Jadi misalnya service data pelanggan, service data persediaan dan mungkin service sederhana lain misalnya service pengecekan kartu kredit di-orkestrasikan menjadi satu service baru, sebutlah Sales Order, service baru ini tergolong coarse-grained service.

Beberapa pengertian lain dalam konsep SOA akan dituliskan dalam beberapa tulisan mendatang. Sementara pengenalan tentang SOA diawali dulu dari Analogi seperti yang digambarkan di atas. Mudah-mudahan tulisan ini mudah dipahami bagi orang yang bahkan masih sangat awam dengan dunia Teknologi Informasi sekalipun.

Dari membaca penggambaran di atas, masihkah Anda membayangkan bahwa yang namanya Service sebagai bagian utama dari Service Oriented Architecture (SOA) sebagai sesuatu yang rumit dan sulit? Silahkan beri komentar atau ajukan pertanyaan sekitar service sebagaimana digambarkan di atas sebagai awal diskusi mengenai SOA. Semoga bermanfaat.

Samsurizal Rahmat




22 komentar:

  1. Sebuah pengantar kosep SOA yang sangat bagus, sederhana dan mudah dimengerti.

    BalasHapus
  2. Sebuah pengantar kosep SOA yang sangat bagus, sederhana dan mudah dimengerti.

    BalasHapus
  3. Thanks Priyoto. Anda tertarik dan mulai mempelajari SOA?

    BalasHapus
  4. Excellent Pak Sam, cara yang bagus untuk menjelaskan suatu konsep yang baru walau dari segi istilah SOA sudah disebut-sebut 2-3 tahun yang lalu, penjelasan yang sangat 'earthly' sehingga dapat dengan mudah dimengerti dan kayaknya saya harus banyak belajar lagi dari Pak Sam dalam hal memberikan penjelasan yang lugas spt ini. Well done Pak Sam, Bravo !

    BalasHapus
  5. Wah tersanjung saya dapat komentar dari salah satu pakar SOA di Indonesia yang sudah malang melintang di dunia TI. Thanks Pak Ozzy.

    Bagi-bagi dong pengalaman Pak Ozzy yang selama ini sudah banyak memberikan Training dan Konsultansi SOA.

    BalasHapus
  6. Wah.. analogi yang bagus, sedikit lagi hampir mengenai analogi nya Thiomas Erl :)
    Perkenalkan saya adalah fans berat SOA ini walaupun baru seumur jagung kenalan sama SOA.

    Pak Sam, terus buat analogi yang mudah dicerna seperti ini ya.. Misal untuk istilah2 umum di SOA -> loose coupling, reusability, usability, stateless dll.

    *mode berharap

    BalasHapus
  7. Bung Robert, rupanya Anda telah mempelajari buku-bukunya Thomas Erl. Analogi yang saya buat memang terinspirasi dari bukunya, saya coba sesuaikan dengan kondisi kita di Indonesia.

    Mengenai harapan Anda, itu juga harapan saya. Mudah-mudahan saya ada ketersediaan waktu yang memadai untuk itu. Atau bung Robert bersedia menyumbang tulisan? nanti saya undang sebagai penulis tamu.

    Salam "MU" ya bung..., kemarin Piala Dunia njagoin siapa?

    BalasHapus
  8. WC kemarin jagoin Inggris. #sedih
    Salam MU juga bung,
    Wah untuk jadi penulis tamu saya merasa belum mampu Sir, blog sendiri aja seperti rumah kosong..
    :))

    Saya ada pertanyaan Sir seputar service ini, bisa beri gambaran Sir tentang "Software as Service "???

    BalasHapus
  9. Saya suka dengan penggambaran SOA bapak, sangat membumi , saya sendiri bingung menjelaskan konsep SOA ke anak buah saya. begitu membaca artikel bpk, dalam hati iya bener memang seperti itu, saya mohon ijin untuk copy paste ke blog saya ya pak ?

    BalasHapus
  10. jadi kalo saya tarik kesimpulannya, apapun yang dilakukan developer untuk menyampaikan atau mempermudah layanan TI adalah haknya, dan yang oenting SLA nya bsa tercapai bener tidak ya?? sam

    BalasHapus
  11. Paham dengan konsep SOA,
    cuman masih bingung teknis penggunaannya...
    Adakah best praktis dg step by step implementasi dengan SOA Suit 11g?

    BalasHapus
  12. saya baru 1 bulan ini mempelajari SOA , walau awam , tapi saya dengan senang hati mengangkat topik ini ke dalam tugas akhir saya , dan sapai saat ini saya sedang belajar tentang permodelan BPML dan SMOF , entah salah entah benar dan saya masih meraba , mohon bapak bisa share bila ada yang keliru . terima kasih :D

    BalasHapus
  13. saya baru 1 bulan ini mempelajari SOA , walau awam , tapi saya dengan senang hati mengangkat topik ini ke dalam tugas akhir saya , dan sapai saat ini saya sedang belajar tentang permodelan BPML dan SMOF , entah salah entah benar dan saya masih meraba , mohon bapak bisa share bila ada yang keliru . terima kasih :D

    BalasHapus
  14. Kalau mau training Java+SOA dimana ya?

    BalasHapus
  15. mantap mas penjelasannya.. thanks ya.. ditunggu tulisan berikutnya..
    :)

    BalasHapus
  16. konsep yang mudah di mengerti terima kasih :))

    BalasHapus
  17. wahh kereen ,saya baru mulai belajar SOA,dan dari analogi yang disampaikan bapak jadi keliatan mudah banget,makasih penjelasannya

    BalasHapus
  18. mas, mau nanya..training basic/fundamental soa di mana ya? company ku ingin implement soa. tks b4.

    BalasHapus
  19. Pemaparannya asik. Terima kasih mas samz

    BalasHapus
  20. Assalammualaikum wr wb, salam kenal pak Samsurizal Rahmat, Alhamdulillah setelah membaca artikel Analogi SOA saya merasa lebih bisa memahami SOA sebelumnya saya merasa SULIT dan RUMIT sehingga sekarang saya timbul semangat untuk mencoba membaca dan mempelajari SOA lagi. Pada kesempatan ini saya mohon ijin kepada Bapak untuk copas (copy paste) artikel2 pada Blog pak Samsurizal Rachmat sebagai salah satu referensi dalam pembuatan presentasi saya tentang SDP (Service Delivery Platform). Demikian atas ijin Bapak saya ucapkan terimakasih.

    BalasHapus
  21. terima kasih atas analoginya pak samsurizal, saya yang baru belajar tentang SOA merasa sangat terbantu

    BalasHapus
  22. analoginya sangat bermanfaat buat saya, terima kasih

    BalasHapus