Tag-Archive for » SOA FUNDAMENTAL «

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.

Tangible Benefit of Using SOA

Inovasi membutuhkan perubahan dan SOA memudahkannya.
Saya memulai dengan kata2 ini dari artikel blog yang saya baca dan SOA sangatlah erat dengan inovasi.^^

Melihat karakternya (dalam renacana,kami akan membahas karakter SOA,yang akan di post oleh rekan skripsi saya), SOA saat ini banyak diminati perusahaan-perusahaan keuangan dan perbankan. Namun, industri asuransi dan telekomunikasi juga banyak yang mengadopsi teknologi SOA. Hal ini disebabkan fleksibilitas dan arsitektur yang ditawarkan SOA cukup handal untuk mengurangi berbagai hambatan interaksi antar software dan memotong rangkaian proses dalam sebuah jaringan yang kadang cukup berbelit.

keuntungan SOA yang dihadirkan bervariasi, yaitu:

  • Akselerasi proses bisnis
  • Ekstensi kemampuan mengkolaborasikan bagian dalam dan luar bisnis
  • Fleksibelitas dan efisiensi
  • Inovasi
  • Penggalan laporan TI, kekurangan dan resikonya
  • Pemakaian ulang fungsi dan interface
  • Reduksi kompleksitas
  • Reduksi biaya
  • Menjaga ketentraman kompetisi global

SOA bekerja seperti charger (sbg contoh : charger laptop, charger HP) untuk semua fungsi, atau dengan kata lain SOA membangun interface yang bisa diakses oleh berbagai macam software. Selama ini, sebuah software dibangun dengan cara mengikat data dan alat pemrosesnya dalam satu rangkaian.

Tentu saja, semakin banyak software yang dibutuhkan akan membuat perusahaan mengeluarkan uang dan tenaga lebih banyak lagi. Demikian pula dengan semakin banyaknya lalulintas data antar software tersebut yang secara otomatis akan meningkatkan ongkos perusahaan. Teknologi SOA bertugas untuk meringankan masalah tersebut dengan cara mengurangi hambatan integralisasi.

Sesungguhnya apa yang dijanjikan oleh SOA tidak hanya terbatas pada penghematan biaya dan tenaga dari upaya pembangunan aplikasi, namun pada akhirnya adalah terwujudnya suatu organisasi yang mampu dengan cepat mengadaptasi proses-proses bisnis didalamnya agar mampu menjawab tuntutan pasar terkini.

dari Ebook Thomas Erl yang saya baca, Keuntungan yang bisa di dapat dapat berupa :

  • Memperbaiki integrasi (dapat melakukan pertukaran), SOA dapat membuat solusi yang terdiri dari layanan Service-Service.
    Biaya ataupun usaha dalam mengintegrasikan “cross-application” diturukan secara significan ketika aplikasi berintegrasi dengan SOA
  • Bisa di gunakan ulang, menggunakan ulang service yang sudah ada dapat mengurangi biaya dan usaha dalam membuat solusi service-oriented
  • Mempersingkat arsitektur dan solusi,
    Konsep menyusun adalah salah satu bagian mendasar dari SOA. Keuntungan dari hal ini memiliki potensi untuk mengurasi proses yang berlebihan dan mengurangi kebutuhan akan kemampuan (skill-set)
  • meningkatkan investasi warisan
    “warisan” di sini bisa di katakan adalah sebuah teknologi yang sudah di kembangkan pada masa sekarang ataupun sebelumnya yang sudah berjalan dengan baik, dimana dengan SOA kita tetap terus menggunakan “warisan” ini (karena sudah bisa di gunakan untuk integrasi ke SOA).
    Dan dapat terus kita lanjutkan penggunaannya .Lanjutkan …. 🙂
  • Menetapkan standar representasi data XML,
    hal ini dapat mengurangi biaya dan tenaga dimana dalam mengembangkan aplikasi menggunakan representasi data berupa standar xml.
  • Investasi terfokus pada komunikasi infrastruktur,
    SOA memungkinkan organisasi untuk mengembangkan infrastruktur enterprise-wide dengan berinvestasi pada satu set teknologi yang bertanggung jawab untuk komunikasi. (maybe : Biztalk).

    Biaya infrastruktur komunikasi dapat berkurang, karena hanya satu teknologi komunikasi yang diperlukan.

  • Alternatif “Best-of-breed” ,
    Beberapa kritik paling keras terhadap IT meletakkan departemen terkait dengan batasan-batasan yang diberlakukan oleh platform teknologi yang dipakai,dmn kemampuannya untuk memenuhi otomatisasi bisnis sebuah organisasi ada syarat-syaratnya.

    SOA tidak akan memecahkan masalah ini sepenuhnya.
    Karena vendor SOA membentuk kerangka komunikasi yang netral, hal ini akan membebaskan departemen TI yang dirantai ke satu pengembangan

  • Kecepatan dalam Organisasi,
    Banyak service oriented didasarkan pada asumsi bahwa apa yang kita bangun hari ini akan berkembang dari waktu ke waktu (berubah/berinovasi). Perubahan dapat mengganggu, mahal, dan berpotensi merusak lingkungan TI tidak fleksibel.
    Salah satu manfaat utama SOA yang dirancang dengan baik adalah untuk melindungi organisasi dari dampak evolusi ini. Ketika terjadi perubahan, kualitas penggunaan dan interoperabilitas diharapkan kembali menjadi seperti biasa.

    Sehingga Biaya dan upaya untuk adaptasi dengan bisnis atau perubahan yang terkait dengan teknologi akan berkurang.
    Namun, semua ini hanya dapat dicapai melalui perancangan yang tepat dan standardisasi.

CMIIW 🙂

Sincerely yours,

Rudy Yulianto

Category: SOA  Tags: ,  2 Comments
About Services Part 2

Dari tulisan sebelumnya,
Service di katakan mengkapsulkan/membungkus logika yang menjadi suatu pekerjaan yang akan dijalankan oleh suatu proses, juga terdiri dari beberapa langkah.

Service juga di katakan memiliki relasi dengan service lainnya dan di perantarai oleh service description

Pada artikel ini saya ingin topik lanjutan dr ebook Thomas Erl yang saya baca , yaitu sbb:

Services Communicate

services_communicate

Setelah service berkomunikasi dengan mengirimkan message, mk service tersebut kehilangan kontrol akan message tsb (what happens to the message thereafter).
Karena hal inilah, message perlu seperti service dapat bebas berdiri sendiri / (autonomous).
Karena hal itu, sebuah message dapat dilengkapi dengan kecerdasan untuk bs mengurus bagian processing logic nya sendiri.

Service yang menyediakan service description dan ber komunikasi via messages membentuk sebuah arsitektur dasar/sederhana.
Sejauh ini, arsitekture tesebut, tampak sama dengan arsitektur lama yang disalurkan, yang mensuport messaging dan pembagian interface dr processing logic
Perbedaannya adalah 3 komponen inti yang di design yaitu :

  • Services
  • Descriptions
  • Messages

Design Services

services_design

Aspek2 dr prinsip Service-Oriented untuk design dan definisi:

  • Service yang bersifat bebas(loosely Coupled) , service yang memelihara sebuah relasi dimana ketergantungan diminimalisasikan
  • Service Contract, service yang melekat pada sebuah persetujuan komunikasi, yang umumnya didefinisikan oleh satu atau lebih service description dan oleh document-document berkaitan
  • Service autonomy yang memiliki control penuh akan logika yang dikapsulkan.
  • Service abstraction diluar dr apa yg dideskripsikan di service contract, service menyembunyikan logika dari manapun.
  • Service reusability, service ini dibagi kedalam beberapa service dengan maksud untuk dapat digunakan ulang
  • Service composability, koleksi dari service-service dapat di
    kordinasikan dan dirakit menjadi gabungan service.
  • Statelessness Service,
    Service meminimalkan ketahanan akan informasi spesifik untuk sebuah aktivitas
  • Kemampuan menemukan Service (Service discoverability) ,
    service yang didesign untuk mengeluarkan deskripsi sehingga service yang dicari dapat ditemukan dan ditafsirkan via discovery mechanisms yang tersedia.

Built Services

Seperti yang sudah disebutkan di post saya sebelumnya, syarat service oriented dan macam2 abstrak model SOA sudah ada sebelum WEb Service “tiba” -> diluncurkan 🙂
Bagaimanapun juga tidak ada 1 pun kemajuan teknologi yang sangat lengkap dan sukses ,dalam mendaftarkan SOA tanpa web service.
Tapi sekarang ini semua perusahaan platforms sekarang mendukung pembuatan dari solusi service oriented dan kebanyakan melakukannya dengan memahami bahwa SOA menyediakan dukungan didasari dengan menggunakan web service.
Oleh karena itu, sementara ini kita benar2 mengakui bahwa untuk dapat mencapai SOA tidak memerlukan web service.

CMIIW 😀

Sincerely yours,

Rudy Yulianto

About Services

Saya mengambil bahan pembuka, dari sebuah artikel blog yang mengatakan sbb :

Melihat tren para vendor besar, tren ke arah SOA juga telah terlihat nyata. Masing-masing memiliki jagoannya masing-masing. Oracle, IBM, dan Weblogic. Ini artinya, dengan investasi besar di SOA, mereka percaya pada SOA sebagai masa depan seperti dulu Oracle berjargon, “Because we believe in Java”. Di dunia open source pun, salah satu vendor terbesarnya, Apache Software Foundation, juga telah membuat tool-tool SOA-nya.

Jadi, apakah kita akan masih berkutat pada fanatisme sempit macam Java versus MS .net?
Tantangan ke depan kita adalah bagaimana membuat dua platform ini berkomunikasi dan bekerja sama dengan baik. Salah satu medianya adalah SOA. Sudah saatnya kita ngomong tentang Web Service, BPEL, atau ESB (Enterprise Service Bus). Untuk masa depan.

SOA = Service Oriented Architecture.
Apakah yang di maksud Service di sini, saya ingin mencoba menggali lebih dalam mengenai service.
Douglas K. Barry yang mengatakan Service merupakan sebuah fungsi yang di definisikan dengan baik yang tidak bergantung pada keadaan service yang lain.

Dari Ebook Thomas Erl yang saya baca ada beberapa penjelasan mengenai service yang di bagi kedalam beberapa bagian :

Service Mengkapsulkan( encapsulate ) Logika

Encapsulate Logic

Focus kepada service ini bisa menjadi kecil atau besar, karena itu ukuran / ruang lingkup dari logika yang di wakili oleh service dapat berubah2. Logika Service dapat meliputi logika yang di sediakan oleh service lainnya.

Solusi yang bersifat otomatis berjalan, terdiri dari service-service, dimn setiap service dapat meng-kapsulkan(encapsulate) suatu pekerjaan yang di tampilkan / di jalankan oleh suatu proses atau sub-proses yang juga terdiri dari beberapa langkah.

Relasi Service

Encapsulate Relate

di dalam SOA, service dapat di gunakan oleh service lainnya atau program lainnya. kita perlu mengetahui dan sadar akan inteaksi dari service-service tsb
Kesadaran ini tercapai saat kita menggunakan Service Description

sebuah Service Description di dalam Service merupakan format dasar terpenting untuk mendirikan/menentukan nama service, hasil yang diharapkan(passing parameter)/dikembalikan(return value),

Pola service yang menggunakan Service Description terbentuk sebagai (menghasilkan) relasi yang di klasifikasikan sebagai penggabungan sesuatu yang memiliki sifat bebas (loosely Coupled)

dalam suatu service untuk berinteraksi dan menyelesaikan sesuatu yang berarti, mereka perlu saling bertukar informasi. sebuah komunikasi dalam framework, memungkinan untuk melayani mereka (service-service tersebut) untuk dapat memiliki hubungan yang bersifat bebas(loosely Coupled).
Sehingga framework seperti itu sangatlah diperlukan.

CMIIW 😀

Sincerely Yours,

Rudy Yulianto

Service Oriented Analogy

umumnya di suatu perusahaan yang berorientasi kepada pelayanan menyediakan pelayanan, dimana pelayanan tsb bisa digunakan oleh banyak konsumennya.
umumnya bisnis di perusahaan ini meliputi komunitas bisnis –> mungkin mksdnya ‘proses bisnis’
Masuk akal, jika komunitas bisnis dari perusahaan tsb, tidak di pakai oleh sebuah bisnis outlet (jika di artikan sebagai ‘saluran’ atau ‘bagian yang lbh kecil’)
Dengan menguraikan komunitas bisnis menjadi lebih khusus (menjadi 1 outlet ), mk kita mencapai sebuah lingkungan dimana ada bbrp outlet yang dapat dijalankan(didistribusikan).

penggabungan outlet dengan architecture, mk dalam konotasi teknis disebut “Service-Orientation”.

Sehingga “Service-Oriented Architecture” adalah syarat yang mewakili model dimana ada automation logic dibagi menjadi lebih kecil, menjadi unit-unit logika–> dalam SOA dikenal sebagai SERVICE.
Umumnya unit-unit tersebut mencakup bagian/potongan besar dari business automation logic.
Masing-masing unit tersebut bisa di jalankan (didistribusikan).

Dengan pembagian ini, kita dapat menghindari sebuah model yang memiliki hubungan/koneksi yang padat, dmn dpt menghasilkan ketergantungan juga.

Dengan mengizinkan bisnis2 mengurus service2 nya sendiri,secara tidak langsung kita juga mengizinkan service2 tersebut, untuk berkembang dan bertumbuh secara tidak bergantung dengan service lainnya. 😀

Meskipun kita mengizinkan service2 tsb untuk berkembang di antara outlet, kita kita msh perlu memastikan mereka setuju untuk mengikuti perjanjian dasar. Contoh analogy nya : kita membuat code untuk 1 fungsi , berdasarkan parameter yang ada di fungsi tsb, contoh lainnya, keseragaman pekerja berbicara dengan bahasa yang sama kepada para pelanggan.

Kesamaannya, SOA mengizinkan setiap unit logika2 (proses bisnis) untuk tidak terisolasi/tergantung dengan lainnya.
Unit2 logika ini, perlu menyesuaikan dengan prinsip2(standarisasi) yang mengizinkan mereka untuk di kembangkan secara bebas (tidak tergantung 1 dengan yang lainnya)

CMIIW 😀

Sincerely yours,

Rudy Yulianto

Category: SOA  Tags: ,  2 Comments
PERTAMA X TTNG SOA

dari referensi ebook thomas erl yang saya baca (IMHO),
SOA adalah sebuah konsep.
syarat SOA : bisa ada setiap waktu, dapat digunakan di keadaan yang berbeda serta tujuan yang berbeda pula.

keberadaan SOA tersebut mewakili sebuah pendekatan yang memfocuskan pada suatu pemisahan. What this means ? 😀
pemisahan di sini,mngkn mengartikan sebuah proses yang di pisah2.
dimana diperlukan logika yang dapat menyelesaikan suatu problem yang dapat membuat nya (bisnis tsb) dibagun lebih baik lagi, carried out (mngkn mksdnya bs di modify), dimana pemisahan ini dimatangkan/didalami ke dalam suatu kumpulan yang lebih kecil, menjadi bagian2 lain yang saling berkaitan. 🙂

Pendekatan ini lebih mengutamakan teknologi dan solusi yang dapat di jalankan secara otomatis yang dapat di gunakan untuk memecahkan macam2 problem.

CMIIW 😀

Sincerely yours,

Rudy Yulianto

Category: SOA  Tags:  Leave a Comment