Archive for » September 6th, 2009«

Interoperabilitas Cross-Aplikasi Dengan Service Oriented Architecture

SOA adalah sebuah kerangka kerja untuk mengintegrasikan proses bisnis dan mendukung infrastruktur teknologi informasi dan menstandarisasi komponen-komponen layanan yang dapat digunakan kembali dan digabungkan sesuai dengan prioritas bisnis. SOA bersifat loosely coupled (tingkat ketergantungan antar komponen rendah), higly interoperable (mudah dioperasikan), reusable (dapat digunakan kembali), dan interoperability (dapat berkomunikasi antar platform). SOA menawarkan beberapa keuntungan, yaitu (Erl, 2005):

  • Bersifat standard.
  • SOA dengan teknologi web service bersifat lebih interoperable.
  • SOA dapat didefinisikan sebagai function, object, dan method.
  • Karena sifat platform yang independent maka perusahaan atau organisasi dapat menggunakan perangkat lunak dan perangkat keras yang lebih bebas sesuai dengan pilihan mereka.
  • Tidak tergantung pada satu vendor tertentu saja. Sifat loosely coupled menjadikan SOA dapat mengintegrasikan komponen yang memiliki cohesion yang rendah.
  • SOA mendukung pengembangan yang terus menerus, distribusi, dan maintenance yang bertahap.
  • Perusahaan dapat menggunakan perangkat lunak yang telah mereka punyai dan menggunakan SOA untuk membuat aplikasi tanpa harus mengganti aplikasi yang sudah ada. Sifat interoperability menjadikan SOA dapat diterapkan pada sistem informasi yang dinamis.

Interoperabiltas yang dalam IEEE Standard Computer Dictionary didefinisikan sebagai “The ability of two or more systems or components to exchange information and to use the information that has been exchanged”, secara teknis menggambarkan kemampuan dua atau lebih sistem untuk saling tukar menukar data atau informasi dan saling dapat mempergunakan data atau informasi yang dipertukarkan tersebut.

Interoperabilitas bukanlah berarti penentuan atau penyamaan penggunaan platform perangkat keras, atau perangkat lunak semisal operating system tertentu misalnya, bukan pula berarti penentuan atau penyeragaman database yang akan dipergunakan dalam penyimpanan data, dan juga bukan berarti penentuan atau penyeragaman penggunaan bahasa pemrograman dalam pengembangan sistem informasi pemerintahan. Interoperabilitas harus dapat dicapai dalam keragaman penggunaan perangkat keras dan perangkat lunak baik operating system, database dan bahasa pemrograman yang tersedia saat ini dan khususnya yang telah dipergunakan di LIPI.

Interoperabilitas dalam keragaman ini hanya dapat dicapai melalui standarisasi format pertukaran data, yang secara teknis saat ini banyak dilakukan dengan menggunakan basis XML. Setiap pihak yang terkait berkewajiban menggunakan standard yang telah ditetapkan sebagai acuan bersama.

Sebelum sistem database tersedia, adalah sangat sulit untuk berbagi pakai data atau file yang dibuat oleh beberapa aplikasi secara independen dimana sangat tergantung akan jenis aplikasi dan platorm yang digunakan. Untuk mengatasi kesulitan ini, file-file yang otonomi dirubah menjadi koleksi yang tersentral sebagai sebuah database. Pendekatan ini mulai dilakukan pada era 70’an. Karena perkembangan kebutuhan, teknologi, infrastruktur, harga hardware maka model pendekatan interoperabilitas menjadi selalu berubah dari waktu ke waktu.Tujuan dari sistem terintegrasi adalah untuk memberikan sebuah antar muka (interface) dari berbagai sumber data.

Secara umum pendekatan interoperabilitas dan integrasi adalah :

  1. Membantu pemakai dalam aktivitasnya sehingga dapat meningkatkan kecepatan dan kualitas kerja.
  2. Meningkatkan unjuk kerja sistem dan ketersediaan data yang memperhatikan faktor kebersamaan dan keamanan dalam motivasi data terdistribusi.
Category: SOA  Leave a Comment
Gambaran arsitektur SOA

SOA (service oriented architecture, arsitektur berorientasi layanan) adalah suatu gaya arsitektur sistem yang membuat dan menggunakan proses bisnis dalam bentuk paket layanan sepanjang siklus hidupnya.  SOA juga mendefinisikan dan menentukan arsitektur TI yang dapat menunjang berbagai aplikasi untuk saling bertukar data dan berpartisipasi dalam proses bisnis. Fungsi-fungsi ini tidak terikat dengan sistem operasi dan bahasa pemrograman yang mendasari aplikasi-aplikasi tersebut.

SOA membagi fungsi-fungsi menjadi unit-unit yang berbeda (layanan), yang dapat didistribusikan melalui suatu jaringa dan dikombinasikan serta digunakan ulang untuk membentuk aplikasi bisnis. Layanan-layanan ini saling berkomunikasi dengan mempertukarkan data antar mereka atau dengan mengkoordinasikan aktivitas antara dua atau lebih layanan.

Logical view of SOA Reference Architecture

Layer 1 OPERATIONAL SYSTEMS

Di layer ini meliputi sistem operasional yang telah ada disuatu perusahaan yang membantu aktifitas bisnis. Sistem operasional terdiri atas semua aplikasi buatan, system yang ada, system transaction-processing, serta database.

Layer 2 SERVICE COMPONENT LAYER

Komponen di layer ini disesuaikan dengan contract yang didefinisi oleh service yang ada di layer services. konsumer tidak menyadari service component, yang menenkapsulasi compleksitas dalam implementasi. keuntungan dari komponen facade ini adalah fleksibilitas terhadap perubahan system operasional tanpa merubah service definition.

Layer 3 SERVICES LAYER

dalam layer ini meliputi semua services yang di definisi. definisi dari setiap service, seperti informasi syntatic dan semantic dijelaskan di layer ini. sedangkan informasi syntactic adalah dasar dari seluruh operasi dari service, seperti input output pesan, dan definisi dari kesalahan service, sedangkan informasi semantic adalah dasar dari polis service, seperti service management desicions, service access requirements, dan sebagainya.

Layer 4 BUSINESS PROCESS LAYER

bisnis proses menjelaskan bagaimana sebuah bisnis berjalan. proses bisnis dalam representasi IT tentang bermacam-macam aktifitas yang terkoordinasi dan terkolaborasi di dalam enterprise untuk membentuk suatu fungsi bisnis tingkat tinggi yang spesifik. layer ini mewakili proses seperti orchestration atau composition of loosely coupled services. layer ini juga bertanggung jawab atas semua managemen lifecycle dari proses beserta dengan orchestration dan choreography.

Layer 5 COMSUMER LAYER

layer ini menggambarkan berbagai saluran dimana fungsi-fungsi IT disalurkan.saluran tersebut dapat berupa tipe user yang berbeda beda seperti contohnya, komsumer external dan internal yang mengakses kemampuan aplikasi melalui mekanisme pengaksesan seperti B2B system, portals, rich clients, dan bentuk lainnya.

untuk sementara 5layer tersebut saja yang dijelaskan.. beberapa layer lainnya akan dijelaskan di kesempatan mendatang..

dan maaf jika salah dalam menerjemahkan arti.. soalnya bukunya dalam bahasa inggris.. ^^v

Category: SOA  Leave a Comment
The most important SOA concepts

Services

Services menyediakan fungsionalitas bisnis , seperti aplikasi untuk perjalanan bisnis, permohonan untuk pinjaman, dll.
Hal ini berbeda jauh dari fungsionalitas yang ada di technology-oriented functionalities , seperti mengambil atau meng-update data 1 satu tabel dalam database.
Services dalam SOA harus menyediakan nilai bisnis , menyembunyikan rincian implementasi, , and be autonomous.
Service consumers adalah entitas perangkat lunak, yang memanggil service dan menggunakan fungsi2nya.

Interfaces

Service consumers mengakses service melalui Interfaces.
Interfaces merupakan kontrak antara service provider and service consumer
The interface terpisah dari implementasi.
Deskripsi interface menyediakan dasar untuk pelaksanaan service oleh service provider dan dasar untuk pelaksanaan service consumers.

Messages

Operasi-operasi didefinisikan sebagai seperangkat pesan.
Pesan menentukan data yang akan dipertukarkan dan menggambarkannya dalam sebuah platform dan bahasa yang bebas sebagai cara menggunakan skema.
Services hanya mempertukarkan data yang berbeda jauh dari pendekatan object-oriented dan komponen,dimana behavior (implementation code) dapat juga dipertukarakan.
WSDL adalah bahasa service description yang memenuhi kriteria SOA.

Synchronicity

Service consumers mengakses layanan melalui service bus. Hal ini dapat berupa sebuah transport protocol , seperti SOAP, atau ESB.
Service consumers dapat menggunakan komunikasi yang sinkron atau asinkron mode komunikasi untuk meminta/menjalankan operasi services.
dalam mode sinkron, sebuah operasi service mengembalikan respon ke service consumer setelah proses selesai.
service consumer harus menunggu proses selesai.
Biasanya kita menggunakan mode sinkron dengan operasi pengolahan lengkap dalam waktu singkat.

Dalam modus asynchronous, service operation tidak mengembalikan response kepada consumer, tetapi dapat mengembalikan acknowledgement(pengakuan/informasi) sehingga konsumen mengetahui bahwa operasi telah berhasil dijalankan.

Jika respons diperlukan, biasanya digunakan pemanggilan balik dari service kepada consumer yang digunakan. Dalam skenario, korelasi antara pesan diperlukan.

Loose Coupling

Melalui self-describing interface, secara kasar, pertukaran dari struktur data mendukung synchronous and asynchronous mode komunikasi, loose coupling dari services (service yang saling tidak tergantung) tercapai.
Loosely coupled services adalah service yang terbuka hanya pada ketergantungan yang diperlukan dan mengurangi semua jenis ketergantungan buatan.
Hal ini sangat penting ketika service akan pakai sering berubah.
Ketergantungan yang Minimal ini menjamin bahwa akan ada jumlah perubahan yang minimal juga untuk service lainnya ketika satu service dimodifikasi. 
Pendekatan seperti meningkatkan Robustness, membuat sistem lebih tahan terhadap perubahan, dan mempromosikan untuk menggunakan kembali service yang ada.

Registries

Untuk menyederhanakan dan mengotomatisasi mencari layanan yang sesuai, jasa layanan dijaga/dipelihara/didaftarkan pada service registries yang bertindak sebagai daftar direktori.
Service providers mempublikasikan services di registries.
service consumers mencari layanan di registries.
Pencarian dapat dilakukan berdasarkan nama, fungsi layanan, atau proses bisnis properti. UDDI adalah contoh layanan registri.

Quality of Service

Services biasanya memiliki keterkaitan dengan atribut kualitas service. Termasuk atribut seperti keamanan, pesan yang dapat diandalkan, transaksi, korelasi, manajemen, policy , dan persyaratan lainnya. Infrastruktur harus menyediakan dukungan untuk atribut ini.
Attribut dr kualitas service cukup penting dalam sistem informasi yang besar. Dalam web services, attribute dr kualitas service dibungkus oleh spesifikasi WS-*,seperti WS-Security, WS-Addressing, WS-Koordinasi, dll Kualitas dr service juga disediakan oleh ESB.

Composition of Services into Business Processes

Terakhir, dan mungkin yang paling penting, konsep SOA adalah komposisi dari services dalam proses bisnis. Service ini terdiri dalam urutan tertentu dan mengikuti 1 set aturan untuk memberikan dukungan kepada proses bisnis.
Komposisi dari service memungkinkan kita untuk memberikan dukungan bagi proses bisnis secara fleksibel dan relatif mudah. Hal ini juga memungkinkan kita untuk mengubah proses bisnis dengan cepat , karena memberikan dukungan untuk perubahan permintaan/persyaratan dengan lebih cepat dan dengan sedikit usaha.
Untuk komposisi, kita akan menggunakan bahasa yang didedikasikan, BPEL, dan sebuah mesin yang definisi proses bisnis yang akan di eksekusi.
Hanya ketika kita mencapai level dari “service composition” kita dapat menyadari semua manfaat SOA.

The figure bellow shows the architectural view of SOA and positions the above-mentioned concepts:

empty_puzzle_soa_architecture

Let us now fill the technologies into the above picture to understand the connection between SOA concepts and technologies that provide means for their realization. So, it is essential that technologies are used according to the guidelines provided by SOA concepts:
fill_puzzle_soa_architecture

Category: SOA  Tags: ,  2 Comments
Defining SOA (Service Oriented Architecture)

Dari artikel IBM

SOA adalah pendekatan untuk mendesign software yang meleburkan aplikasi bisnis kedalam pembagian ‘services’ yang dapat digunakan secara bebas oleh aplikasi-aplikasi dimana aplikasi tsb merupakan 1 bagian dan computing platforms dimana mereka berjalan.

SOA adalah sebuah teknik menarik developer yang menginginkan bisnis model yang terbaik.

Note :
Computing Platforms are software client applications that you can run on your computer and that host various, often unrelated, project applications

Dari Ebook Matjaz B. Juric

SOA adalah pendekatan architecture terbaru yang berkaitan dengan integrasi, pengembangan, dan pemeliharaan Sistem Informasi perusahaan yang kompleks.
SOA bukanlah sebuah arsitektur baru yang radikal, melainkan evolusi yang terkenal akan arsitektur terdistribusi dan metode integrasi.

SOA mendefinisikan konsep, arsitektur, dan kerangka kerja proses, untuk mengaktifkan efisien biaya pengembangan, integrasi, dan pemeliharaan sistem informasi melalui pengurangan kompleksitas, dan stimulasi akan integrasi dan bisa digunakan kembali.

Dari Bernhard Borges, Kerrie Holley, and Ali Arsanjani:

SOA adalah gaya arsitektur yang mendukung layanan loosely coupled untuk memungkinkan fleksibilitas bisnis dalam pengoperasian, cara teknologi-agnostik. SOA terdiri dari gabungan bisnis layanan yang mendukung kemudahan dan konfigurasi ulang yang dinamis proses bisnis end-to-end realisasi dengan menggunakan berbasis antarmuka “service description”.

Note :
Agnostik adalah paham tentang bahwa di dunia ini memang benar ada suatu kekuatan besar lainnya selain kekuatan manusia.

SOA lebih dari 1 set teknologi. SOA tidak secara langsung dikaitkan dengan beberapa teknologi, meskipun sering diimplementasikan dengan web service.

Dari Pak Norman Sasono

SOA adalah Service Oriented Architecture. Suatu gaya Arsitektur(arsitektur dr SOA akan kami bahas pada posting berikutnya) dimana solusi merupakan penyususun dr service-service (Composition of service).
Service disini adalah Bisnis Functionality(bukan low level programming API) dan tidak perduli dibangun dengan platform/teknologi apapun.
Service bisa tersebar dibeberapa aplikasi terpisah, yang masing-masing memiliki batasan (boundary) yang explicit(terbuka) dan masing-masing aplikasi autonomous.
Servicepun harus bisa berkomunikasi satu dengan yang lain, melalui sebuah protokol yang umum.
Service memiliki interface yang terpisah dari implementasi dan interdace disini harus mendukung protok yang umum (saat ini protokol seperti web service) dan implementasi dapat diubah dari satu platform/teknologi/product ke platform/teknologi/product.