Archive for the Category »Management «

Pro WCF Practical Microsoft SOA Implementation

Introducing SOA

Hari ini, bisinis memerlukan untuk menjadi cepat (agile) dan adaptasi dengan cepat. SOA adalah design principle yang dapat membantu mengalamatkan keperluan bisnis.
SOA adalah koleksi dari service yang di definisikan dengan baik, dimana masing-masing individual service dapat di nodifikasi secara independent (secara bebas) dari service lainnya untuk membantu merespon setiap perkembangan kondisi pasar bisnis.
Tidak seperti tradisional point-to point architecture, implementasi SOA membandingkan satu atau lebih aplikasi yang loosely coupled(tidak saling terikat) dan interoperable (yang dapat digunakan bersama dalam waktu yang sama)

Beberapa batasan untuk message yang didesign menggunakan SOA:

  • Descriptive
    Message perlu dideskripsikan sebagai pengganti perspektive
  • Limited Structure
    Untuk beberapa provider lain, untuk mengerti request mereka perlu mengerti format, structure, dan data types yang digunakan. Ini juga menganjurkan kita untuk menggunakan simple types, dimana merupakan platform netral.
  • Extensibility
    Message perlu bisa dilakukan perluasan(perubahan). Hanya ini yang menyediakan kemudahan yang membuat implementasi SOA menjadi cepat, dan lebih murah dibandingkan implementasi Object Oriented.
  • Discoverability
    Consumer dan provider message memerlukan message untuk bisa ditelusuri(dicari), sehingga mereka mengetahui apa yang dihasilkan dari sana dan bagaimana mengkonsumsi service yang ada.

Kerugian mengintegrasikan Banyak aplikasi pada perbedaan jaringan :

  • Transport
    Jaringan tidak dapat diprediksi dan dapat menjadi lambat
  • Data Format
    Mempertanyakan 2 aplikasi yang run pada 2 platform yang berbeda dan menggunakan programming languages yang berbeda
  • Change
    Kita mengetahui aplikasi perlu untuk berubah untuk menjaga akan setiap perkembangan
    Kebutuhan bisnis. Ini berarti solusi integrasi perlu memastikannya untuk menjaga perubahan ini dan meminimalkan ketergantungan antar system.

Keuntungan menggunakan Message :

  • Cross Platform Integration
    Message dapat menjadi “penerjemah yang universal” diantara macam-macam platform dan languages, mengizinkan masing-masing platform untuk bekerja dengan respective native type data.
  • Asynchronous Communication
    Message biasa mengizinkan untuk “fire-and-forget”(yang langsung ditutup setelah dipakai) style of communication
  • Reliable Communication
    Message diturunkan menggunakan style “store-and-forward” untuk pengiriman, dimana mengizinkan message-message untuk dapat dipercaya daripada RPC.
  • Mediation
    Message dapat diperlakukan sebagai mediator(penengah) ketika menggunakan Pola mediator dimana aplikasi yang tidak terhubung perlu berkomunikasi dengan system message dan tidak untuk semua aplikasi lainnya.
  • Thread Management
    Berkaitan dengan Komunikasi Asynchronous, ini berarti satu aplikasi tidak dapat menghalangi aplikasi lainnya untuk selesai.
  • Remote Communication
    Message dapat menggantikan kebutuhan untuk serialization dan de-serialization yang yang diakibatkan ketika 1 aplikasi memanggil aplikasi lainnya. Proses serializing sebuah object untuk ditransfer kejaringan disebut marshaling. Sedangkan proses de-serializing disebut unmarshaling.
  • End-to-End Security
    Tidak seperti RPC, message dapat mentransfer “complete security context” untuk konsumen menggunakan kombinasi dari header dan tokens. Ini meningkatakn kemampuan untuk menyediakan butir-butir kecil control yang lebih terkait dengan authentication dan authorization.
  • Message adalah “cornerstones” dari SOA.
    Message membuat kamu dapat membuat system yang tidak saling bergantung (loosely system) yang dapat menjangkau banyak operating system.
    SOA menyadari message tidak hanya fasilitas untuk keperluan bisnis tetapi dapat menyediakan “context” tentang message (security context, informasi routing dari message,dimana kita memerlukan garansi pengiriman message)

    Introducing Windows Communication Foundation

    Kita perlu menjawab beberapa pertanyaan untuk memastikan desain service
    jelas:

    • Service apa yang Anda butuhkan?
    • Service apa saja yang tersedia untuk kita konsumsi?
    • Service apa akan beroperasi bersama-sama?
    • Service pengganti apa saja yang tersedia?
    • Dependensi apa yang ada diantara service dan service versi lainnya?


    Service providers adalah komponen yang execute beberapa business logic, didasarkan pada input dan output yang telah ditetapkan sebelumnya dan mengakses fungsi ini melalui SOA.

    Consumer di sisi lainnya, adalah seperangkat component yang tertarik menggunakan satu atau lebih service yang ditawarkan provider.

    Repository berisi deskripsi dari service,dimana provider mendaftarkan service mereka dan konsumen mencari service yang disediakan.

    Service orientation adalah sebuah business-driven “modeling strategy” yang mendefinisikan kemampuan bisnis (bisnis functionality), dalam hal loosely coupled autonomous business systems (services), yang mempertukarakn informasi berdasarkan pesan.

    Dalam WCF, Service didasarkan pada 4 prinsip dasar :

    • Prinsip 1 : Batasannya(boundaries) Jelas
      Crossing boundaries adalah operation yang mahal dapat mengangkat macam-macam element : data marshaling, security, physical location, dll.

      Beberapa prinsip design yang perlu diingat :

      • Know Your Bondaries
        Di definisikan dengan baik dan dipublishkan public interface adalah focus utama dari service dan semua interaksi yang terjadi menggunakannya.
      • Service Should be Easy to consume
        Para Developer mudah untuk mengkonsumsinya (service tsb), selain itu service interface sebaiknya memungkinkan untuk dari waktu ke waktu tanpa merusak keberadaan consumer dari service
      • Avoid Remote Procedure Call (RPC) interfaces
        Sebaiknya gunakan pesan yang expisit
      • Keep the service surface area small
        Menyediakan sedikit public interfaces yang menerima message yang didefinisikan dengan baik dan yang meresponse juga dengan sebuah message yang didefinisikan dengan baik. Karena tingkat pertumbuhan public interfaces, menjadi semakin sulit untuk mengkonsumsi dan maintain Service.
      • Don’t expose implementation details
        Detail harus disimpan internal, jika tidak, akan mengarah pada tight coupling antara consumer dan service.
    • Prinsip 2 : Service adalah Autonomous
      Service adalah mandiri dan bertindak independent dalam segala aspect, seperti deploying, versioning, dll.
      Layanan perlu diisolasi dan dipisahkan untuk mencapai tujuan mereka Autonomous(berdiri sendiri)

      Beberapa prinsip design yang perlu diingat :

      • Service versioning dan service deployment adalah berdiri sendiri dari system dimana mereka di deploy.
      • Kontrok untuk 1x publish, sebaiknya tidak berubah
      • Mengadopsi pendekatan pessimistic dan Service isolate dari kegagalan.
    • Prinsip 3 : Services Share Schema dan Contract, BUKAN Class

      Interaksi service harus menggunakan policies, schemas, and behaviors, bukan CLASS yang disediakan secara tradisional sebagian besar fungsi ini.
      Service Contract sebaiknya berisi : message formats ( defined using an XML schema ), beberapa WS-Policy requirements, beberapa BPEL yang mungkin diperlukan.
      Tantangan terbesar yang Anda hadapi adalah stabilitas service, setelah service dipublish.
      akan sulit untuk mengubahnya dikemudian hari , tanpa mempengaruhi salah satu konsumen.

      Beberapa prinsip design yang perlu diingat :

      • Service contracts constituting data, WSDL, dan policy tidak berubah dan tetap stabil.
      • Contracts sebaiknya dijelaskan secara explicit (se- bisa mungkin), ini akan memastikan bahwa tidak ada kebingungan maksud dan penggunaan service.Penambahan Contract haruslah didefinisikan untuk versi yang lebih baru dan untuk server dimasa mendatang
      • Jika pelanggaran kontrak tidak dapat dihindari, maka gunakan versioning service
      • Jangan mengekspose representasi data internal ke public, public data scheme harus mutlak.
    • Prinsip 4 : Service Compatibility Is Based on Policy
      Kadang-kadang Kita tidak akan dapat meng-expresikan semua service interaction melalui WSDL saja.

      Policy expressions pada dasarnya memisahkan struktur dan semantic compatibility.
      Dengan kata lain, mereka memisahkan “apa yang dikomunikasikan” dan “Bagaimana / pesan apa yang dikomunikasikan.”

      Policy assertion mengidentifikasi behavior dari sebuah policy entity dan menyediakan domain-specific semantics.

      Ketika merancang sebuah service, kita perlu memastikan bahwa policy assertions adalah eplicit.

    • Keempat prinsip orientasi pelayanan menyediakan seperangkat prinsip-prinsip mendasar, ketika kita akan merancang layanan. Ketika akan mendefinisikan service, selalu lebih mudah jika bekerja dengan sesuatu requirement yang telah didefinisikan dengan baik, karena mengizinkan kita untuk mendefinisikan scope yang didefinisikan dengan baik.

      Ketika mendefinisikan layanan dari awal, akan sangat membantu untuk mengkategorikan services sesuai dengan yang ditetapkan dari model service bisnis yang ada sudah dibentuk dalam organisasi.
      Karena model sudah menetapkan beberapa konteks dan tujuan dalam batas mereka,
      itu membuat lebih mudah untuk merancang service baru.

      Selain itu, nama service juga harus mempengaruhi penamaan operasi individu dalam service.
      sebuah service bernama baik akan sudah membentuk konteks dan makna yang jelas dari service, dan operasi individu harus dirasionalisasi agar tidak membingungkan atau bertentangan dengan service.
      Juga, karena konteks didapatkan, operasi sebaiknya juga harus mencoba untuk menghindari standar penamaan yang membingungkan membingungkan.

      Sebagai contoh, jika Anda memiliki service yang melakukan stock operations, maka salah operasi harus menjadi GetQuote bukannya GetStockQuote, karena konteks telah ditetapkan.

      Demikian pula, jika kita menggunakan kembali service, maka menghindari penamaan operasi setelah beberapa tugas tertentu, bukan berusaha menjaga penamaan yang generik mungki

      WCF memudahkan bagi pengembang untuk menciptakan layanan yang mematuhi prinsip service Oriented

      Web Service sebagai KUNCI yang memungkinkan technology untuk SOA

      Web service adalah hanya 1 macam contoh dalam implementasikan Service. Web Service hanyalah catalyst untuk implemtasi SOA.
      Web Service tidak memiliki definisi yang universal.
      Sebuah web service adalah sebuah pemrograman component aplikasi yang mengakses lewat standar web protocol.

      Kuncinya adalah :

      1. Standar Protocol
      Contoh :HTTP, SMTP, FTP, dll.
      2. Service Description
      Web service perlu mendeskripsikan interface mereka secara detail sehingga client mengetahui secara pasti bagaimana cara untuk mengkonsumsi function yang disediakan oleh service. Deskripsi ini biasa disediakan via XML document yang disebut WSDL Document.
      3. Finding services
      User perlu mengetahui bahwa web-service ada dan dimana tempat untuk mencarinya sehingga client dapat mem-bind web-service dan menggunakan fungsinya. Salah satu cara untuk mengetahui sercive ada(EXIST) adalah dengan connect ke “YELLOW PAGES” (merupakan implementasi dari Repository UDDI – Universal Discovery, Description, and Integration -), dimana terdapat public dan private UDDI nodes.


      INTRODUCING SOAP

      SOAP adalah komunikasi protocol ringan untuk web-service berdasarkan pada XML SOAP mengijinkan kita untuk memanggil fungsi pada remote machine tanpa mengetahui specific details dari platform atau software yang run pada machine tsb.

      XML digunakan untuk merepresentasikan data(SOAP Schema).

      Karakteristik SOAP :

      1. Extensible
      2. Bekerja pada banyak standarisasi pada protocol-protokol network
      3. independent (bebas) pada suatu bahasa pemrograman atau platform model.

      Pola pertukaran message:

      1. One Way
      2. Request-Response
      3. Dan lain-lain


      SOAP Message


      4 Bagian dari SOAP Message :

      1. SOAP Envelope
      Merupakan Root Element dari message. 2 Bagiannya adalah header dan body.
      2. SOAP Message

      3 Typenya :

      • request messages
      • response messages
      • fault messages

      3. RPC Pattern
      4. SOAP Bind


      Request- Response SOAP Message memiliki 2 Message :

      1. Request Message dikirim ke service
      2. Response Message yang dikirimkan balik ke client

      Beberapa Rule untuk menulis SOAP Message:

      1. Harus dicodekan dalam XML
      2. Harus menggunakan SOAP envelope namespace
      3. Harus menggunakan SOAP encoding namespace
      4. Tidak dapat mengandung DTD (Document Type Definition)reference
      5. Tidak dapat mengandung instruksi proces XML

      SOAP Faults

      Ketika terjadi Exception (penangkapan pesan kesalahan/error) perlu dikembalikan ke service.
      Ini membutuhkan tempat menggunakan fault element dalam SOAP response.

      Fault element harus mengandung :

      a. Faultcode element
      b. FaultString element

      Fault Message mengandung detail exception (seperti : error code,description,dll)


      SOAP Message Format

      2 Type dari SOAP Message Format :

      • Document
      • RPC

      2 Cara untuk serialize data ke XML:

      1. Menggunakan literal XML Schema Definition
      2. Menggunakan SOAP Encoding Rules

      WSDL (Web Service Description Language: Mendescripsikan service end point)

      WSDL memberikan standar kepada web serive, untuk menentukan interface dan mengizinkan integrasi.
      Apakah End Point ?
      W3C mendefinisikan Endpoint sebagai assosiasi diantara interface binding yang dispesifikasi seluruhnya dengan network address, dispesifikasi oleh URI, yang dapat digunakan untuk komunikasi dengan instance dari web-service.

      EndPoint adalah entity dimana client terhubung menggunakan specific protocol dan format data ketika menggunakan service.

      WSDL

      WSDL adalah bentuk dasar dari web-service.
      WSDL adalah format yang mendeskripsikan web-service.
      WSDL mirip dengan IDL (Interface Description Language).
      WSDL mendeskripsikan public interface dari web-service termasuk metadata, seperti : Protocol bindings,message format, dan lain-lain.


      WSDL terdiri dari 3 bagian :

      1. Definition
      Di expresikan dengan XML dan termasuk semua type data dan definisi message.

      2. Operation
      Operasi mendeskripsikan action/aksi dari message yang disupport oleh web-service dan dapat menjadi 1 dari 4 type berikut ini :


      Struktur dari WSDL Document :



      Terdiri atas : Abstract definition dan Concrete description.

      Data Type Definitions adalah container yang menggunakan beberapa type system seperti XSD.

      Message definition adalah type definition dari data yang akan dikomunikasikan.

      Operation adalah deskripsi dari aksi yang didukung oleh service dan mengandung satu atau lebih data type dan message definition.

      Port type adalah satu set operasi yang didukung oleh lebih dari 1 end point.

      Port adalah single endpoint yang didefinisikan sebagai kombinasi dari binding dan alamat network.

      3. Service Bindings
      Service bindings menghubungkan type port ke port.
      Sebuah port didefinisikan dengan mengasosiasikan sebuah alamat jaringan dengan port type.
      Sebuah service dapat mengandung multiple port.

      Dynamically Discovering Web Services

      UDDI adalah protocol directory yang bebas platformnya, digunakan untuk mendeskripsikan service , mencari dan meng-integrasikan business service via internet.
      UDDI berdasarkan pada industry protocol standar, seperti : HTTP, XML, SOAP,dan lain lain.
      UDDI mendeskripsikan detail dari service menggunakan WSDL dan mengkomunikasikannya melalui SOAP

      UDDI mengandung 3 bagian :

      a. White Page
      Mengandung detail dari perusahaan dan informasi contract

      b. Yellow Page
      Mengandung Kategori Industri berdasarkan pada standarisasi taxonomis seperti North America Industry Classification System

      c. Green Page
      Mengandung detail dari teknikal yang mendeskripsikan interface melalui WSDL sehingga consumer memiliki cukup informasi mengenai bagaimana untuk menggunakan service dan apakah yang dibutuhkan.

      Sending Messages Between Loosely Coupled
      Systems

      Untuk mencapai Service Orientation, kita perlu kemampuan untuk mengirimkan message dari satu service kelainnya.
      Dalam context WCF , Service Invocation adalah mekanisme general untuk mengirimkan message diantara sebuah entity yang request service dan entity lainnya yang menyediakan service.
      Ini penting untuk dimengerti bahwa ini bukan masalah dimana provider dan consumer secara fisik ada, mereka dapat berada di machine yang sama secara fisik atau melintasi planet lain 
      Bagaimanapun, dari service execution perspective, ini merupakan masalah dan WCF mengisi jarak infrastructure ini.

      Langkah-langkah consumer mengirimkan message kepada provider meliputi :

      1. Mencari relevant service yang mengekspos function yang diingini.
      2. Mencari type dan format dari message dimana service akan menerimanya.
      3. Mempelajari beberapa spesifik metadata yang mungkin diperlukan sebagai bagian dari message(contoh : untuk transaksi atau security)
      4. Mengirimkan message ke provider dengan semua relevant data dan metadata.
      5. Process response message dari service dalam cara yang tepat.

      Life Cycle dari XML web service memiliki 8 step:



      1. Client connect ke internet dan mencari directory service yang digunakan
      2. Client connect ke directory service dengan urutan query yang dijalankan
      3. Client menjalankan query yang relevant terhadap directory service untuk mencari web-service yang menyediakan function yang diinginkan
      4. Perusahaan web-service yang berhubungan dipanggil untuk memastikan service masih valid dan tersedia.
      5. Deskripsi bahasa untuk web-service yang berhubungan diambil dan dikirimkan kembali ke client
      6. Client membuat instance baru dari XML web-service melalui proxy class
      7. client serialize argument secara Runtime dari method service kedalam SOAP Message dan mengirimkannya melalui jaringan ke web-service.
      8. Method yang diexekusi,dimana sekelompok value yang dikembalikan,termasuk parameter out.

      INTRODUCTION WCF BASIC

      WCf dikenal sebagai indigo,mengatur komunikasi infrastruktur antara Windos Vista dan Windows XP dan Windwos 2003 melalui .Net Framework 3.0.

      WCF menyediakan infrastruktur komunikasi yang mengizinkan kita untuk membuat beragam aplikasi melalui simple model

      INTRODUCING Microsoft Remote Object Invocation Model

      Microsoft mulai dengan DCOM(Distributed Component Object Model), dimana perkembangan dari COM (Component Object Model), sehingga .Net memiliki teknologi seperti .Net Remoting dan XML Web Service

      Microsoft Mendevelop COM untuk membuat aplikasi dapat berinteraksi dengan lainnya dan untuk mempromosikan reuseability.

      COM mengizinkan software komponen untuk saling berkomunikasi dengan lainnya.

      Masing-masing komponen meng-exposes functionnya melalui interface dan diidentifikasi oleh GUIDs (Global Unique Identifiers). Keuntungan menggunakan COM adalah perbedaan komponen yang didevelop dengan bahasa yang berbeda dapat menulis komponen software ini dan interaksi dengan lainnya menggunakan IUnknown dan standar intercface COM lainnya.

      DCOM memberikan kesempatan untuk mendistribusikan komponen kita melintasi perbedaan lokasi tergantung kebutuhan aplikasi

      Introducing .NET Remoting

      Melalui COM dan DCOM dapat menyediakan reusability dan distributed platform, mereka juga

      Umumnya, perusahaan membeli perangkat lunak yang rumit dan menginvestasikan banyak uang dalam membangun jembatan antara komponen-komponenyang ada.
      Kerumitan dan kesulitan lain akan segera muncul ketika solusi ini perlu diperpanjang lebih lanjut. Layanan web memecahkan masalah ini dengan mengandalkan standar dan protokol terbuka yang diterima secara luas.

      Why Are Web Services the Preferred Option?

      Sayangnya, dengan technology yang sudah ada, kita akan menemukan berbagai macam batasan, terutama dengan interoperability diantara platform-platform. Sebagai contoh, jika kamu mencoba untuk mendeploy sebuah aplikasi COM+ untuk berkomunikasi melewati firewall atau melewati smart router atau batasan organisasi, kamu akan mencari beberapa perbedaan yang terlihat jelas.

      Web Service adalah cara lain untuk membuat aplikasi terdistribusi.
      Faktor web service pembeda dari teknologi terdistribusikan lainnya adalah bahwa daripada mengandalkan proprietary standar atau protokol, web service bergantung pada standar web yang terbuka (seperti SOAP, HTTP, dan XML). Standar terbuka ini diakui dan diterima secara luas di seluruh industri. Web Service telah mengubah bagaimana aplikasi didistribusikan dibuat. Internet telah menciptakan permintaan akan technology yang loosely coupled dan interoperable. sebelum layanan web, sebagian besar dari teknologi terdistribusi bergantung pada paradigma berorientasi objek, tetapi Web telah menciptakan kebutuhan untuk komponen terdistribusi yang autonomous dan platform independen.

      XML web service yang dirancang dengan interoperabilitas dalam pikiran dan mudah dipanggil dari non-Windows platform. Hal ini umum bingung akan web services with .NET Remoting. Web Service dan. NET Remoting yang terkait, tetapi web service memiliki model pemrograman yang lebih sederhana
      daripada. NET Remoting. Dengan kata lain, mereka berdua terlihat seperti dari tingkat tinggi dalam tingkat arsitektur, tetapi mereka berbeda dalam cara mereka bekerja. Sebagai contoh, mereka berdua memiliki cara yang berbeda dari data serializing ke dalam pesan. NET Remoting mendukung komunikasi berbasis RPC secara default, dan layanan web mendukung komunikasi berbasis message secara default.
      Web service bergantung pada XML Schema untuk type data , dan. NET Remoting bergantung pada CLR. Anda dapat menggunakan. NET Remoting untuk membangun layanan web, tapi Web Services Description Language (WSDL) yang dihasilkan oleh. NET Remoting ini tidak secara luas diadopsi dan mungkin akan diabaikan oleh beberapa klien.

      Melalui web service, Microsoft ingin mencapai yang terbaik dari 2 dunia- Web development dan component-based development.
      Web Service adalah langkah pertama menuju service orientation, yang merupakan seperangkat prinsip panduan untuk mengembangkan aplikasi terdistribusi digabungkan secara loosely coupled. SOA adalah visi service yang telah mendefinisikan interface dengan baik. interface loosely coupled ini berkomunikasi melalui pesan-pesan yang dideskripsikan oleh XSD (XML Schema Definition) dan melalui pesan pola-pola yang digambarkan oleh WSDL. Ini menyediakan dasar arsitektur yang besar untuk membangun aplikasi terdistribusi. Karena web service dan kliennya adalah independen satu sama lain, mereka perlu mematuhi hanya ke standar dokumen XSD dan WSDL untuk berkomunikasi.

      What Does WCF Solve?



      Unification of existing technologies


      Interoperability across platforms

      Kunci Architecture Spesifikasi web Service adalah WSDL.
      Oleh karena itu, WCF berbicara bahasa dari kumpulan web service terbaru protokol
      untuk mencapai interoperabilitas yang mulus di seluruh platform.


      WCF As a Service-Oriented Development Tool

      WCF adalah model pemrograman pertama yang dibangun dari bawah ke atas untuk memberikan pengembangan aplikasi service-oriented yang eksplisit
      dan siap menghadapi masa depan business oriented. Service oriented bukan teknologi tetapi adalah sebuah konsep desain. Service oriented hari ini merupakan best practice untuk membangun aplikasi terdistribusi.
      Terknology terdistribusi yang baru juga harus mendukung extensibility yang memadai sehingga ketika aplikasi yang mengunakan technology baru telah selesai dibuat, mereka dapat dengan cepat digunakan tanpa harus merubah seluruh platform yang sudah ada

      Meskipun mungkin tampak mengejutkan, salah satu bagian yang paling menarik dari merancang service adalah memutuskan bagaimana seharusnya mengekspos fungsinya untuk dunia luar.


      Exploring New Features in WCF

      1. Developer Productivity

      WCF meningkatkan produktivitas pengembang dalam beberapa cara dengan menyederhanakan pengembangan aplikasi berorientasi service.
      Sebelumnya, developer, dipaksa untuk belajar API yang berbeda untuk
      membangun komponen terdistribusi. Tidak dapat disangkal bahwa pengembang yang baik dalam membangun komponen service mungkin tidak efisien pada saat membangun remote components menggnakan .NET Remoting.
      Salah satu aspek terbaik WCF adalah bahwa developer yang menggunakan teknologi yang sudah ada, akan menemukan fitur favorit mereka di dalamnya, dan semua developer, akan mendapatkan keuntungan dari arsitektur yang konsisten. WCF mendukung model pemrograman deklarative dan imperative akan membuat Anda jarang menulis code, yang menawarkan kemungkinan lebih sedikit kesalahan. Aplikasi yang memerlukan ratusan sampai ribuan baris kode sebelum WCF, sekarang dapat dicapai dalam beberapa baris
      code.
      2. Attribute-Based Development
      WCF adalah pipa mesin pesan yang sederhana, jelas, dan fleksibel programming model yang duduk di bagian atas mesin pesan ini.
      Anda juga mendapatkan kesempatan untuk menggunakan file-file konfigurasi
      yang dapat berubah pada saat runtime. Paling sederhana dan termudah adalah WCF mendukung untuk programming model attribute-based.
      Salah satu tujuan utama dari SOA adalah untuk memisahkan kode aplikasi dari infrastruktur message. Developer menentukan persyaratan infrastruktur secara declarative dengan mendekorasi class service dengan atribut custom tetapi tidak
      benar-benar menulis kode infrastruktur apapun.
      Dalam istilah yang sederhana, kita dapat memikirkan sebuah atribut sebagai string yang sederhana atau penjelasan. Atribut hanya deklaratif tag, ketika diterapkan pada classes, methods, properties, dan sebagainya, memberikan
      informasi yang layak tentang perilaku ke CLR dan merupakan cara untuk menambahkan metadata saat runtime.
      Kita dapat melihat metadata melalui alat untuk membaca metadata seperti ILDASM. Dalam WCF, attribute merupakan pusat utama dari programming model dan diperlakukan dalam kelas utama (VIP).
      Dasar model attribute ini bukanlah hal baru, jika kita membuat web service menggunakan .NET maka kita akan familiar dengan attribute [WebMethod].
      WCF telah memperluas dukungan ke pemrograman deklaratif dalam mesin Message. Sehingga, ketika kita membutuhkan dukungan transaksi atau keamanan, Anda hanya perlu menghias class service dengan atribut yang specific, dan mesin olah pesan akan memberikan kepada kita infrastruktur yang diperlukan untuk mencapai hasil yang diinginkan.

      Pemrograman berbasis atribut merupakan cara terbaik untuk mendapatkan sesuatu dengan baik dengan Mesin WCF , tetapi kita juga tidak boleh melupakan kekuatan model object WCF.

      Coexisting with Existing Technology

      1. Hosting Services
      Sebuah kelas yang mengimplementasikan service WCF biasanya dikompilasi menjadi sebuah library dan karenanya diperlukan proses ke host services.

      WCF telah dibuat dengan sebuah visi yang memungkinkan endpoint secara mulus tersedia untuk segala macam skenario dan dengan demikian siap untuk memenuhi segala kebutuhan. Sebuah komponen dapat WCF
      host di setiap jenis lingkungan di. NET 3.0, baik itu aplikasi console, aplikasi Windows,atau IIS.
      2. Migration/Integration with Existing Technology
      WCF menjadi cara untuk generasi penerus mendevelop aplikasi terdistribusi, yang telah mengangkat rasa ingin tahu para developer untuk bekerja pada technology terdistribusi yang ada. Ini benar bahwa aplikasi yang sudah ada akan terkena dampaknya di waktu dekat ini. Sudah ada aplikasi yang dibangun diatas ASMX, WSE, dan System.EnterpriseService.
      Ini adalah pertanyaan penting yang kamu pikirkan tentang WCF :
      a. Akankah aplikasi baru yang di develop menggunakan WCF bekerja dengan aplikasi yang sudah ada?
      b. Dapatkah aplikasimu yang sudah ada di upgrade dengan WCF?
      Jawaban untuk pertanyan-pertanyaan ini adalah dapat dan dapat.


      3. Components vs. Services
      Reusability adalah kunci untuk sukses dalam lingkungan terdistribusi. Kebanyakan architecture focus kepada jalan untuk memaximalkan komponen digunakan dalam pola yang mudah dan efeicient.
      Component adalah compile code. ini dapat dirakit untuk membuat aplikasi dan juga untuk dideploy.
      Service digunakan secara luas dalam berbagai context. Dalam service oriented, istilah service melekat pada 4 prinsip dari service orientation dan service diversikan,dideploy,dioperasikan dan diamankan secara bebas dalam gaya message oritented.

      WCF memudahkan bagi developer untuk menciptakan service yang mematuhi prinsip service oriented.
      SOA adalah dunia Message bukan object.


      4. Support of Visual Studio 2005



      5. One Service,Multiple Endpoints
      Pengembangan service sangat diperngaruhi oleh transportasi yang kita gunakan. Setelah mendefinisikan service, kita haruslah menentukan beberapa info penting seperti apa service ini, seperti :
      a. apa yang service ini dapat lakukan
      b. bagaimana bisa mengakssesnya
      c. dimana itu tersedia

      Ketiga informasi ini di kemas dalam endpoint.

      Satu service dapat memiliki beberapa endpoint(multiple), hal ini dapat membuatnya interoperable untuk beberapa kebutuhan aplikasi.

      Masing-masing endpoint ini dapat berbeda dalam hal:

      a. alamat
      b. persyaratan dalam hal binding
      c. kontrak yang akan dilaksanakan (implement)


      6. Integration Technologies
      Biztalk server adalah kunci technology dan merupakan penganggung jawab dalam penyelarasan service WCF.

      Unifying Distributed Technologies

      WCF memiliki akar dalam sejumlah technology seperti :

      1. ASMX
      Web service adalah component dari web yang dapat di akses melalui standar terbuka seperti : SOAP dan HTTP. Teknology dibagikan sebelumnya memiliki 2 masalah utama :
      a. Interoperability
      b. Crossing Firewall
      Web Service adalah sebuah class yang mewarisi sifat System.Web.Services.WebService dan mengandung method yang diexpose dengan atribut [WebMethod].

      Untuk mengakses setiap komponen remote, anda memerlukan :

      a. transport protocol
      b. message protocol
      c. Mekanisme Serialization untuk client dan server
      SOAP adalah pilihan dan merupakan default message protocol, dan juga mengandung HTTP.Get.XML dan HTTP.Post.XML web service menggunakan xml Serialization.


      2. MSMQ
      3. WSE
      WSE adalah 1 set class library. WSE adalah add-on dari .Net Framework yang mendukung WS-* specification (WS-Security,WS-Routing,DIME,WS-Attachment,dan lain-lain)


      4. Enterprise Services

      How Do You Unify All These Technologies?

      Kebanyakan dari teknologi terdistribusi memiliki dasar konsep yang sama. Bagaimanapun juga, semuanya menyediakan service yang unique untuk produk
      ( jika perlu antrian, gunakan MSMQ atau System.Messaging, jika perlu transaksi gunakan System.EnterpriseService, jika perlu security gunakan WSE ). Sebagai programmer kita dipaksa untuk memilih.
      Bagaimanapun juga, kita memerlukan 1 teknology terdistribusi untuk kemampuan yang lebih besar untuk mengatasi masalah yang ada (stack) dan menyediakan solusi dengan mudah dan flexible programming model.
      WCF melakukan pekerjaan terbaiknya dalam menyediakan programming model yang tergabung, dimana kamu dapat menggabungkan perbedaan fungsi tsb kedalam aplikasi kita.(jika kita perlu antrian, cukup menambahkan atribut WCF Service Contract, jika kita perlu security dalam berkomunikasi, cukup tambahkan atribute security yang sesuai/tepat untuk authentication dan privacy, jika kita memerlukan dukungan transaksi, cukup tambahkan attribute transaksi)


      References:
      Pro WCF Practical Microsoft SOA Implementation

      by :
      Chris Peiris, Dennis Mulder, Shawn Cicoria, Amit Bahree, Nishith Pathak

    Category: SOA  Tags:  Leave a Comment
    OVERVIEW BTS (BIZTALK SERVER) 2009

    Apakah biztalk itu –> ini pertanyaan saya ketika mendengar nama yang sangat asing ini..^^
    tentu saja sempat saya menebak2, saya kira ini adalah suatu bahasa pemrograman, lalu saya cb tanya2, lalu dapat info, merupakan sebuah server 🙂
    sehingga saya pny pandangan biztalk = machine komp (yang berbentuk sedemikian rupa sehingga di fungsikan mirip server)

    setelah saya baca literature buku dan artikel2, saya mulai mencoba menginstall BTS (Biztalk Server) 2009(thx msdnaa), yang merupakan sebuah software.
    Kata2 server sama seperti SQL “Server”, sql merupakan tools dr microsoft.

    Singkat kata biztalk seperti itu.

    Berikut ini adalah penjabaran mengenai BTS 2009

    Product Biztalk Server server pertama kali di release adalah Biztalk Server 2000.
    Biztalk adalah :

    • sebuah platform yang handal akan SOA mu dan
      membuat kesempatan baru untuk membuat lingkuanganmu lebih agile(cepat,cerdas ) dan flexibel.
    • Sebuah solusi teknologi yang menyadari tujuan dan visi dari arsitektur bisnis, SOA tidak dapat diimplementasikan hanya dengan kertas dan pensil 🙂
    • Sebagai host platform
    • Produk Microsoft yang berkelas Enterprise (skala besar), dimana memungkinkan integrasi proses melintasi melintasi entity yang berbeda (entity di sini meliputi : Organisasi, platform, aplikasi)
    • Tidak hanya merupakan sebuah produk yang membantu implementasi service oriented

    Note :
    SOA dapat dengan sukses dibangun, TANPA menggunakan BTS (Biztalk Server) .

    Biztalk 2009 Menawarkan WCF Adapter dan Sql Server Adapter.

    Biztalk menggunakan teknologi adapter-adapter ini untuk :

    • Menghubungkan perbedaan entity (meliputi : Organisasi, platform, aplikasi)
    • Membuat integrasi akan :

      1. Data
      2. Event
      3. Process
      4. Service

    Software Adapter

    • Kita menggunakannya ketika establish(mendirikan/membangun) komunikasi antara 2 komponen yang secara umum tidak dapat berkolaborasi.
    • Biztalk Adapter dibangun dengan framework yang umum dimana hasilnya ada dalam system terintegrasi yang dapat di konfigurasi TANPA CODING.

    4 Adapter yang umum :
    1. File System
    2. MSMQ
    3. HTTP
    4. SMTP

    Biztalk berhasil menyelesaikan masalah di 3 area :
    EAI (Enterprise Application Integration)
    Menghubungkan aplikasi-aplikasi yang secara umum tidak dapat berkomunikasi satu dengan yang lainnya
    EAI_APP

    Mengisi Aturan (Role) B2B (Business To Business)
    Memfasilitasi komunikasi lintas organisasi yang berbeda
    B2B

    BPA(Business Process Automation)
    Sejarahnya dari procedure workflow yang manual dan sekaran diubah kedalam process yang bisa di eksekusi
    BPA
    Note :
    Biztalk sebaiknya dapat ditargetkan untuk solusi yang mempertukarkan message (pesan) secara real-time.
    Pola dari proses Publish dan Subcribe :
    1. Sebuah Paradigma message asynchronous (tidak teratur), dimana pengirim dari message(PUBLISHER) tidak diprogram untuk mengirimkan message kepada specific receivers (SUBSCRIBER)
    2. Message yang dipublish adalah karakteristik ke dalam Class, tanpa pengetahuan akan “SUBSCRIBER yang mungkin ada di sana”
    3. SUBSCRIBER mengexpresikan ketertarikan satu atau lebih class dan hanya menerima message yang tertarik, tanpa pengetahuan akan “apakah PUBLISHER ada di sana”.

    Cara Kerja Biztalk
              Received Processing by pipelines publish
    Message —- > Biztalk Adapter —- > MAPS —– > Message Box
    MessageBox

    Message Box Database membentuk sesuatu dengan menyediakan :

    • Keawetan (Durability)
    • Kenyaataan (Reliability)
    • Kemampuan mengukur (Scalability)

    Message dipublish ke Biztalk server dapat menyebar(fan out) ke lusinan SUBSCRIBER, yang dapat tidak tertarik akan aplikasi yang melakukannya(publishing it).
    Definisi Message adalah :

    • Data diproses melalui Message Engine dari biztalk server
    • Data diantar sebagai document XML
    • Merupakan sebuah flat file atau document yang berisikan kata-kata

    Isi dari Message , dapat berupa :
    – Sebuah command , contoh : InsertCostumer
    – Sebuah document contoh : Invoice
    – Sebuah event ,contoh :VendorAdded();

    Message dapat memiliki sebuah type yang berkaitan dengannya, dimana difenisikan dengan unik dalam message bus.
    Type tersebut adalah type yang berbeda dalam xmlnamespace dan root node name. dan seperti object dari Class dalam OOP.
    Definisi Message context adalah :

    • atribut penting lainnya (Property Bag) dari message dalam biztalk server.
    • Satu set dari nama / nilai property (termasuk meta data yang digunakan untuk publish message dan attribute dari message tsb), yang menunggu dikirim ke message selama masih ada di dalam Biztalk.

    Definisi Promoted Properties adalah

    • Property dalam message context, yang dapat dilihat di Biztalk Engine, oleh karena itu dapat digunakan untuk menunjukan keputusan.

    Definisi Receive Location adalah

    • Sesuatu yang dikonfigurasi untuk endpoint yang actual yang menerima message
    • Sesuatu yang menggunakan adapter untuk mengetahui bagimana untuk menggunakan inbound message
    • Sesuatu yang bisa di konfigurasi untuk menggunakan file adapter
    • Sesuatu yang menyimpan path file untuk memonitor

    Note:
    -Adapter memberikan tanda (stamps) sebuah set nilai ke dalam message contract
    -Receive Location memiliki receive pipeline yang penting dan diasosiasikan dengan mereka(receive locations)
    Definisi PipeLine adalah :
    Sebuah sequential set dari operasi yang ditunjukan pada inbound message disiapkan untuk bisa dibagi dan diproses oleh biztalk server

    Tujuan Pipeline adalah :
    – Decript
    – Unzip
    – Validasi Struktur XML

    Aturan Penting dari pipeline adalah untuk:
    – mengindentifikasi tipe dari inbound message
    – menaruh tipe kedalam message context sebagai promoted property

    Definisi Message Type adalah
    – Karakter unique dari message

    Receive Port
    ReceivePort


    Ada 2 SUBCRIBERS :
    1. Send Port
    Memiliki kriteria : -kebalikan konsep dari receive location
    -bertanggung jawab untuk mengirim message keluar dari biztalk bus
    -Tidak hanya sebuah adapter reference ataupun sebuah pipeline(receive
    location) , melainkan juga memiliki kemampuan memaping XSLT ke Outbound Message
    Jika Sebuah Send port berlangganan pada sebuah message, maka
    – Pertama akan aplikasikan XSLT Map ke message
    – Memproses hal tersebut dengan mengirimkan ke pipeline
    – Akhirnya menggunakan adpter untuk mengirimkan message keluar dari biztalk

    2. Biztalk Orcehstration
    Adalah :
    – sebuah bisnis proses yang bisa di jalankan menggunakan message untuk menyelesaikan operasi di dalam workflow
    – bagian yang optional di dalam biztalk solution

    Data contract
    Mendeskripsikan type dari message yang mengalir melewati message bus

    XSD
    Mengandung : Elements, Struktur Organisasi, Type Data
    Mendefinisikan :
    – Batasan Pesanan node-node
    – Menentukan node diperlukan atau tidak
    – Mementukan berapa banya node dapat ditampilkan di dalam node tree

    Biztalk Schema Editor
    Adalah :
    – Pembuat mudah Model berdasarkan record dan fields.
    – Bukan hanya tools yang sederhana ,melainkan editor ini memungkinkan kita untuk membanguan secara visual bentuk complex message melalui visual properties dan XSD annotations.

    Beberapa cara untuk membuat schema di biztalk schema editor :
    1. Generate schema dari yg sdh ada (an exsiting xml file)
    2. XSD Schema di bangun melalu Biztalk Adapter
    3. Schema baru dapat secara langsung di buat melalui import dan including preveiously Creted Schemas
    4. Build new XSD schema from scratch

    Biztalk Mappers
    Adalah:
    – Sebuah tool yang digunakan Biztalk untuk membuat XSLT(Extensible Language Transformation) dengan cara visualisasi (grafik)
    – Hanya untuk logic data normalisasi, BUKAN UNTUK

    BISNIS LOGIC
    Paradigma membuat MAP:
    1. Source Schema di identifikasi di sebelah kiri
    2. Destination Schema di sebelah kanan

    Lebih dari 75 Functiods tersedia di Biztalk Mapper, berikut ini adalah category nya :
    1. String manipulation
    2. Mathematical calculation
    3. Logical Condition
    4. Cumulative Computation

    Biztalk menyediakan Workflow. Dimana mengizinkan kita untuk dapat :
    – Membuat grafik yang bisa di execute
    – Long running
    – Statefull process

    Workflow ini disebut ORCHESTRATION (di design di VS.Net dan di Execute di BTS)
    Workflow terdiri dari :
    – Control Flow
    – Message Manipulation
    – Konsumsi Service
    – Dan lain-lain
    Orchestration digunakan untuk:
    – Process Manual yang otomatis terjadi (Automation Manual Process)
    – Choreography a series of Disconnect Services
    – Process untuk 1 form dengan 1 workflow

    Orcestration shape(Receive,send,transform,decide,loop) digunakan untuk membuat orchestration diagram kita menjadi seperti di bawah ini:

    orchestration

    Ref : SOA Patterns with BizTalk Server 2009, Richard Seroter

    Category: SOA  Tags:  Leave a Comment
    Visual Studio 2008 fails to Create new BizTalk projects(Creating project ‘project name’… project creation failed.)

    creating project ‘biztalk server’… project creation failed.
    Pernah mendapatkan error message diatas ?

    saya baru saja mencoba membuat biztalk project menggunakan VS 2008, di windows server 2008 🙂

    setelah beberapa waktu di diamkan ,sekarang saya mendapatkan solusinya 🙂

    banyak referensi lain yang saya cb tapi tidak berhasil di tmp saya
    diantaranya :
    1. Repair VS 2008 –> saya sdh coba, sampai uninstall VS 2008 sp1, lalu install lagi, tp tdk ada efek ^^
    2. ubah permission untuk registry
    VSWizard.VsWizardEngine.9.0 –> sdh di cb jg, tp efeknya tdk ada

    Setelah Googling saya dapat bbrp refernsi lain dan berhasil saya coba :
    1. Start – Run – Ketikkan regedit
    2. NAVIGASI KE
    -HKEY_LOCAL_MACHINE
    -SOFTWARE
    -MICROSOFT
    -VisualStudio
    -9.0
    -Projects
    -{FAE04EC0-301F-11d3-BF48-00C04F79EFBC}

    – PILIH : PossibleProjectExtensions
    – KLIK KANAN – MODIFY
    – UBAH ‘VALUE DATA’ DENGAN : csproj;btproj

    this worked for me:
    http://blogs.msdn.com/biztalkcrt/archive/2009/08/21/visual-studio-2008-fails-to-create-open-biztalk-projects.aspx

    http://blogs.msdn.com/ewanf/archive/2009/10/25/biztalk-2009-vs-2008-creating-project-project-name-project-creation-failed.aspx

    http://blogs.msdn.com/biztalkcrt/archive/2009/08/21/visual-studio-2008-fails-to-create-open-biztalk-projects.aspx

    hope this help us

    thx

    sincerely yours,

    Rudy Yulianto

    Category: SOA  Tags:  Leave a Comment
    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.

    Encyclopedia Computer (IT)

    saya sedang mencari kamus khusus (encyclopedia English),
    dengan tujuan untuk menemukan arti2 (difficult word) yang tidak ada di kamus general.
    sebagai contoh “interoperability

    saya menemukan 1 web yang menyediakan arti dr kosakata yang biasa di gunakan dalam istilah2 komputer :

    http://www.computer-dictionary-online.org

    saya menemukan bbrp ebook Encyclopedia (berisi daftar istilah komputer yang sering digunakan) yang bisa di download di
    Keyword ‘Encyclopedia of Computer’

    Semoga bermanfaat untuk kita semua..
    Jika ada referensi lain tlng di tambahkan.

    Thanks

    Category: SOA  Tags:  Leave a Comment
    Misperseption about SOA

    1. Aplikasi yang menggunakan Web Service (WS) adalah SOA

    Ketika SOA dibuad, ada perbedaan antara SOA sebagai model abstrak dan SOA  didasarkan pada WS dan service oriented. Tergantung pada model abstrak yang anda gunakan, hampir setiap bentuk arsitektur terdistribusi dapat digolongkan sebagai service oriented.”

    Anda perlu untuk membakukan bagimana WS diposisikan dan dirancang, sesuai dengan prinsip2 service oriented. Jadi, apakah pernyataan ini adalah persepsi yang salah atau tidak benar2 tergantung pada harapan anda.

    2. SOA adalah istilah yang digunakan untuk pemasaran ulang WS

    istilah SOA telah digunakan secara berlebihan untuk tujuan pemasaran. sehingga SOA didewakan dimana-mana. Fakta bahwa SOA diimplementasikan dengan WS telah menyebabkan orang-orang menganggap WS adalah SOA.

    SOA adalah sebuah konsep untuk pengembangan perangkat lunak, sementara Web Services adalah sebuah aplikasi web yang berinteraksi dengan aplikasi web lainnya untuk pertukaran data. untuk mengimplementasikan SOA tidak harus menggunakan WS.

    3. SOA adalah istilah yang digunakan untuk pemasaran ulang komputasi terdistribusi dengan WS

    Sebagian besar jalur migrasi dari produk komputasi terdistribusi tradisional menggunakan WS, dengan “SOA support”. Hasilnya tentu dapat membingungkan.

    Namun, SOA adalah entitas sendiri. Terdiri dari serangkaian prinsip2 desain yang terkait, tetapi berbeda secara signifikan dengan platform komputasi terdistribusi di masa lalu.

    4. SOA menyederhanakan komputasi terdistribusi

    Prinsip-prinsip SOA relatif sederhana. tapi, untuk menerapkannya dalam kehidupan nyata bisa menjadi tugas yang sangat rumit. meskipun SOA menawarkan potensi keuntungan yang signifikan, ini hanya dapat diwujudkan dengan berinvestasi dalam analisis yang kuat dan kepatuhan terhadap prinsip2 desain service oriented.

    5. Aplikasi dengan WS yang menggunakan WS* ekstensi adalah SOA

    Sementara seluruh generasi kedua dari WS membawa SOA ke arus utama IT, membuad ekstensi ini bagian dari arsitektur yang bukan service oriented. Terlepas dari fungsionalitas yang dilengkapi WS, apa yang membuat mereka bagian dari SOA adalah bagaimana arsitektur itu sendiri dirancang.

    6. Jika anda memahami WS, anda tidak punya masalah dalam membangun SOA

    Teknis dan pengetahuan konseptual WS pasti sangad membantu. namun, SOA memerlukan perubahan dalam bagaimana bisnis dan logika aplikasi dipandang, dibagi dan di otomatisasi.  Karena itu WS harus dirancang sesuai dengan prinsip2 tertentu.

    WS mudah dimasukan ke arsitektur distribusi tradisional yang sudah ada. cara yang digunakan WS dalam SOA secara signifikan berbeda. cara terbaik adalah mengasumsikan bahwa mewujudkan SOA yang kontemporer memerlukan keahlian tersendiri yang melampaui pengetahuan teknologi WS.

    7. Setelah Anda menuju SOA, segala sesuatu menjadi interoperation

    Banyak orang beranggapan bahwa membangun service oriented solution, lingkungan teknis mereka secara alami akan berubah menjadi satu kesatuan, federasi perusahaan.

    tujuan akhir ini dapat dicapai, tetapi memerlukan investasi, analisis dana standarisasi. dengan memanfaatkan framework WS yang terbuka, SOA secara alami abstrak dan menyembunyikan  kepemilikan tentang solusi tertentu, platform dan teknologinya.

    ini menetapkan media k

    omunikasi dapat diprediksi untuk semua aplikasi yang terbuka melalui WS.

    Category: SOA  Leave a Comment
    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