SOA Technology Stack

Sebuah lingkungan SOA khas terdiri dari lapisan: Presentation Services di atas, Web Services Mediation & Java Messaging Service di sisi kiri sebagai jalur masuk, lalu inti berupa Orchestrated Business Processes, Enterprise Decision Management, Services and Composite Services, Event Stream Processing, Registry, dan Enterprise Service Bus, yang semuanya terhubung ke Business Systems (ERP, CRM) dan Legacy Apps (Back-Office, Supply Chain) lewat Application Server.

Apa yang Diintegrasikan?

Integrasi pada dasarnya adalah mapping/transformasi informasi dan/atau aksi menjadi hasil yang bermakna. Berbagai tipe integrasi:

Integration TypeResult
DataIntegrated data — global/federated database
ApplicationComposite application
ProcessComplex/orchestrated process/workflow
Presentation, Protocol, Messaging, Routing, Connectivity, Business rules, Policies, Web pages, ContentSesuai namanya masing-masing

Integration Layers

Integrasi dapat dilakukan di beberapa lapisan, dari bawah ke atas:

graph BT
  A[Transport Integration Layer] --> B[Data Integration Layer]
  B --> C[API/Application/Service Integration Layer]
  C --> D[Business Process Integration Layer]

Data-Driven vs Process-Driven Integration

Data-Driven (Tactical, point-to-point)Process-Driven (Strategic, functional-level)
PendekatanIntegrasi aplikasi & proses bisnis dengan memetakan data ke format “standar” lalu di-routing antar aplikasiMemperjelas data & service apa yang dibutuhkan dari aplikasi yang sudah ada, membuat aplikasi supervisi baru yang menggerakkan seluruh integrasi proses
MasalahGagal memberi unified view data; tak bisa menangani conceptual mismatch; sulit scale ke level enterprise; integrasi proses jadi sekadar “fitur” manajemen dataLebih strategis, karena integrasi proses menjadi first-class citizen

Data Integration Problems

  • Name conflicts — sinonim/homonim.
  • Type conflicts — tipe data berbeda untuk atribut yang sama.
  • Abstraction conflicts — level detail skema berbeda.
  • Metric conflicts — satuan ukur berbeda.
  • Data value conflicts — perbedaan nilai untuk atribut yang sama (replikasi).
  • Granularity conflicts — cara representasi berbeda dalam hal detail.
  • Masalah tersulit bukan sintaktik/struktural, melainkan semantik.

Integration Requirements

Agar integrasi jadi first-class citizen, sistem harus:

  • Flexible — bisa terus-menerus menambah/menghapus/mengubah proses, aplikasi, informasi yang terintegrasi.
  • Scalable.
  • Real-time (right-time).
  • Federated (terdistribusi) vs sekadar “Integration” tersentralisasi.
  • Data Quality — perlu Master Data Management.
  • Meaningful Integration — perlu Enterprise Information Management.

Integration Solution Taxonomy

Integration Solution
├── Data and Information Integration
│   ├── ETL (Extract, Transform, Load)
│   └── EII (Enterprise Information Integration)
├── Application Integration: Information & Processes
│   ├── EAI (Enterprise Application Integration)
│   ├── B2B Gateway
│   ├── ESB (Enterprise Service Bus)
│   └── API Gateway
├── Process Integration
│   ├── BPM (Business Process Management)
│   └── B2Bi (Business-to-Business Integration)
├── Processes, Applications, and Information Integration
│   └── Application Servers, Application Server Platforms, Application Platform Suites
├── Infrastructure + Applications
└── Enterprise Workplace

ETL (Extract, Transform, Load)

Proses: Extract data dari 1+ sumber → Transform & integrate (sintaks & semantik) sesuai kebutuhan target → Load hasil ke 1+ repository target.

  • Dipakai untuk: Data Warehouse, Business Intelligence (BI).
  • Karakteristik: volume data besar dipindah dari sumber; berbasis data mapping; bukan untuk on-demand/real-time/low-latency.
  • Isu: kualitas data, performa.
  • Vendor: IBM WebSphere DataStage, Pentaho, Talend.

EII (Enterprise Information Integration)

EII = data federation = virtual database + distributed queries. Membuat view dari berbagai sumber data secara real-time sebagai media baca/tulis, tanpa memindahkan data.

  • Dipakai untuk: aplikasi, query & reporting tools.
  • Karakteristik: menyediakan akses, data tidak dipindah, return set kecil; isu: latensi jika mengakses banyak sumber; caching dipakai untuk optimasi.
  • Vendor: CONNX, Metamatrix, IBM WebSphere Information Integrator, Oracle Data Hub, BEA Liquid Data, Virtuoso Universal Server, WSO2 Data Service.

EAI (Enterprise Application Integration)

EAI = arsitektur + tools + metode untuk mengintegrasikan sekumpulan aplikasi secara real-time, termasuk proses & basis datanya.

  • Semua aplikasi bisa saling akses; mengurangi koneksi point-to-point (M:N) menjadi (1:N) lewat model global.
  • Integrasi lewat adapter, konektor, & teknologi lain; transformasi lewat adapter proprietary/pihak-ketiga.
  • Isu: kompleksitas meningkat, pengelolaan adapter yang besar.
  • Vendor: BEA WebLogic Integration Server, webMethods, IBM WebSphere Process Server, Microsoft BizTalk, Oracle BPEL Process Manager, TIBCO.

EAI+: B2B Gateway dan ESB

  • B2B Gateway: manajemen terpusat interaksi mitra bisnis — profile, keamanan, otorisasi, aturan bisnis, monitoring; ekstensi Business Activity Monitoring (BAM).
  • ESB (Enterprise Service Bus): generasi baru EAI (EAI + MOM + …); infrastruktur inti SOA untuk komunikasi service-ke-service, mediasi, dan fungsi Web Service lain. Mendukung semua tipe integrasi termasuk infrastruktur.

Enterprise Service Bus — Core

  • Event-based messaging engine, berasal dari EAI, untuk menyelesaikan masalah integrasi.
  • Fungsi utama:
    • Mediation: translasi protokol, transformasi data.
    • Quality of Service: keamanan, pengiriman pesan yang reliable.
    • Management: logging, info audit.
    • Service discovery.
  • Bisa central (broker/hub) atau decentral (smart endpoints).

Arsitektur inti ESB: Application (dengan Adapter) ↔ Messaging Platform (protokol: MQSeries, SOAP, JMS) yang menyediakan Transformation, Routing, Administration ↔ Service/Web Service.

API Gateway

Bertindak sebagai proxy tunggal (single-entry point) antara API client dan provider. Umum dipakai pada arsitektur microservice.

  • Fokus mengelola konektivitas antara API (service) & client.
  • Biasanya menyertakan API/service registry → mendukung API discovery.
  • Bertujuan performa & keamanan: security policy, throttling, load balancing, monitoring.

BPM (Business Process Management)

Sekumpulan aktivitas & teknologi untuk merancang, mengeksekusi, dan memantau proses bisnis, sering lintas batas organisasi.

  • B2Bi (Business-to-Business Integration) = BPM + B2B Gateway.
  • Evolusi: Business Activity Monitoring (BAM), Total Quality Management (TQM).
  • Isu: evolusi proses terikat dengan evolusi produk; hambatan terbesar sering bersifat manusia/politik.
  • Vendor: FileNet, Fuego, HandySoft, Intalio, Lombardi Software, Metastorm, Pegasystems, Savvion, Staffware, Ultimus.

Topologi Integrasi

Point-to-Point

Aplikasi dihubungkan lewat interface hand-coded langsung antara tiap pasangan sistem — tidak scalable, sulit dikelola, statis & mahal (kompleksitas naik seiring bertambahnya sistem).

Publish-Subscribe Messaging

Ekstensi MOM untuk komunikasi 1-to-N, N-to-1, N-to-N. Pesan dipublikasikan ke subject/topic logis; subscriber menerima semua pesan untuk subject yang mereka subscribe. Model multicast modern — pesan dikirim sekali, diterima semua subscriber secara simultan.

Subject/topic naming bisa hirarkis (mis. /PNNL/gossip/CSEI) dan mendukung wildcard (/PNNL/*).

Messaging Backbone & Reliability

  • Messaging Backbone: berbagai protokol (TCP/IP, HTTP, MSMQ, MQ-Series) — ubiquity adalah kunci untuk integrasi luas (di dalam enterprise maupun dengan mitra). Boleh ada sedikit message loss.
  • Guaranteed Message Delivery: setiap pesan pasti sampai ke queue atau pengirim diberi tahu. Perlu tahu apakah pesan diproses (bukan hanya diterima queue) dan hasilnya apa.
  • Idempotence: request boleh datang lebih dari satu kali (karena retry akibat pesan hilang), asalkan diproses minimal satu kali dengan efek yang tetap konsisten. Contoh: “withdraw $1 billion” (tidak idempotent) vs “if not yet done withdrawal XYZ, do it” (idempotent) vs “sweeping the floor” (naturally idempotent).
    • Request-Response dengan Idempotence: memastikan pemrosesan tetap berurutan — buat tiap request idempotent, pakai pasangan request/response, terapkan timeout & retry. Bekerja bahkan di kanal pesan yang lossy.

Message-Oriented Middleware (MOM)

Middleware antrian yang mengelola pesan antara client & server secara asynchronous.

  • Fitur: komunikasi asynchronous, send-and-forget, transactional messaging (kirim semua pesan dalam satu transaksi), persistence (pesan bisa di-log di server, bertahan dari kegagalan server).
  • Contoh: IBM MQ Series, Microsoft MSMQ, BEA MessageQ.
  • Masalah: aplikasi harus tahu cara baca/tulis queue (perlu ubah kode legacy); sulit menambah perilaku sinkron real-time; pesan bisa datang berkali-kali (perlu idempotence).

Basic Messaging: Send(queue, message) menaruh pesan ke queue; Receive(queue, message) mengambil pesan dari queue — tidak ada dependensi terhadap state aplikasi penerima.

Persistence: penerimaan pesan di queue berarti pesan ditulis ke disk log; penghapusan dari queue juga menghapus dari log — ada trade-off performa vs reliabilitas.

MOM Transactions: kirim & terima pesan bisa dikelola sebagai bagian dari transaksi (bisa rollback, isolasi pengirim & penerima). Namun operasi sinkron antara pengirim & penerima BUKAN transaksi atom — request/response sebenarnya adalah 3 transaksi terpisah: (1) put ke request queue, (2) get dari request queue + put ke response queue, (3) get dari response queue. Model ini cocok untuk sistem loosely coupled.

Application Servers

Infrastruktur berbasis komponen yang berada di middle-tier aplikasi multi-tier — menyediakan interface pemrograman untuk middleware keamanan, state maintenance, akses data, transaksi, dan persistensi. Contoh: Java 2 Enterprise Edition (J2EE), Microsoft .NET.

Message Brokers

Konektivitas aplikasi-ke-aplikasi lewat pesan.

Fitur dasar: transformasi data/pesan, pemrosesan asynchronous, dukungan status pengiriman pesan.

Fitur lanjutan: transformasi berbasis metadata self-describing, intelligent routing (berdasarkan konten pesan), rule engine (bahasa scripting, fungsi built-in). Arsitektur hub-and-spoke: pesan masuk → Transformation, Routing, Rules Processing → pesan keluar.

Business Process Automation (BPA) / Workflow

Sering disebut workflow systems — bertujuan mengotomasi proses bisnis yang perlu mengakses data & business logic dari berbagai aplikasi back-end berbeda. Bagian dari EAI untuk memastikan proses bisnis dieksekusi dalam urutan yang benar dengan data yang tepat.

Workflow: rangkaian langkah pemrosesan di mana informasi/objek fisik dipindahkan dari satu langkah ke langkah berikutnya. Menghubungkan teknologi & tools untuk otomatis me-routing event/task ke program atau pengguna. Cocok untuk proses yang terstruktur dan stabil dari waktu ke waktu, mengoordinasikan aktivitas lintas mesin/sistem, dan hanya butuh sedikit keterlibatan pengguna (kecuali kasus khusus).

Arsitektur BPA: alur kerja (workflow) terhubung ke Message Broker, yang terhubung ke berbagai adapter menuju sumber data/logika bisnis back-end.

Flashcard

flashcards Apa perbedaan Data-Driven Integration dan Process-Driven Integration? :: Data-Driven memetakan data ke format standar dan me-routing-nya antar aplikasi (taktis, point-to-point); Process-Driven membuat aplikasi supervisi baru yang menggerakkan seluruh integrasi berbasis kebutuhan proses (strategis, functional-level). Sebutkan 4 lapisan Integration Layers dari bawah ke atas :: Transport Integration Layer, Data Integration Layer, API/Application/Service Integration Layer, Business Process Integration Layer. Apa perbedaan ETL dan EII? :: ETL memindahkan data (Extract-Transform-Load) ke repository target, cocok untuk Data Warehouse/BI, batch-oriented (bukan real-time). EII membuat view real-time dari berbagai sumber tanpa memindahkan data (data federation), cocok untuk query/reporting. Apa itu EAI dan apa masalah utamanya? :: Arsitektur+tools+metode mengintegrasikan aplikasi secara real-time (proses & database-nya); mengurangi koneksi point-to-point jadi 1:N. Masalah: kompleksitas meningkat & pengelolaan adapter yang besar. Apa perbedaan pendekatan sentralisasi ESB (central/broker/hub) vs desentralisasi (smart endpoints)? :: Central: ada satu broker/hub yang mengatur mediasi & routing pesan. Decentral: logika mediasi tersebar di masing-masing endpoint (smart endpoints), tanpa satu titik kontrol pusat. Apa fungsi utama API Gateway? :: Proxy tunggal (single-entry point) yang mengelola konektivitas API-client, sering dengan API registry, fokus performa & keamanan (security policy, throttling, load balancing, monitoring). Apa itu idempotence dan mengapa penting dalam integrasi? :: Sifat di mana request yang diterima berkali-kali tetap menghasilkan efek yang konsisten (asal diproses minimal sekali) — penting karena retry akibat pesan hilang bisa membuat request datang lebih dari sekali. Mengapa request/response pada MOM disebut BUKAN transaksi atom? :: Karena sebenarnya terdiri dari 3 transaksi terpisah: put ke request queue, get dari request queue + put ke response queue, dan get dari response queue — sender & receiver tidak berbagi satu transaksi bersama. Apa perbedaan Message Broker dasar dan Message Broker lanjutan? :: Dasar: konektivitas app-to-app, transformasi data, pemrosesan asynchronous. Lanjutan: transformasi berbasis metadata self-describing, intelligent routing berbasis konten, dan rule engine. Apa itu Workflow dalam konteks Business Process Automation? :: Rangkaian langkah pemrosesan di mana informasi/objek fisik dipindahkan dari satu langkah ke langkah berikutnya, menghubungkan teknologi untuk otomatis routing event/task; cocok untuk proses terstruktur & stabil.