Apa itu SoaML?
SoaML (Service-Oriented Architecture Modeling Language) adalah standar OMG untuk memodelkan Service-Oriented Architecture:
- Diadopsi dari UML Profile for Modeling Services (UPMS) RFP.
- SoaML mendukung huruf “A” (Architecture) dalam SOA.
- Dipakai untuk memodelkan SOA di level bisnis, enterprise, dan teknologi.
- Memanfaatkan Model Driven Architecture (MDA).
- Merupakan “Profile” dari UML (Unified Modeling Language) — bisa dipakai dengan tool UML standar maupun tool khusus.
Manfaat SoaML tergantung siapa penggunanya — mulai dari CEO/CFO/eksekutif lini bisnis, CIO/CTO, IT Program Manager, Business/Enterprise Architect, SOA Solutions Architect, hingga Developer. SoaML punya cakupan (scope) untuk mengalamatkan berbagai stakeholder lewat pendekatan berbasis service, dan setiap stakeholder hanya perlu memakai bagian SoaML yang relevan baginya.
Bagaimana SoaML Mencapai Tujuannya?
- Representasi Arsitektur Service — peran partisipan yang menyediakan/memakai service untuk tujuan bisnis (memberi konteks bagi service); partisipan bisa berupa organisasi, orang, atau komponen sistem; menunjukkan kapabilitas yang disediakan/dipakai.
- Spesifikasi Service di level bisnis & teknis — mencakup service simple, bi-directional, n-ary; model informasi abstrak terhubung ke model pesan; koreografi interaksi service.
- Spesifikasi Komponen terhubung ke arsitektur bisnis — termasuk composite (aplikasi komposit); bisa diimplementasi dengan proses bisnis & eksekusinya, atau dengan mengadaptasi sistem lama.
- MDA Provisioning — memetakan model SoaML ke teknologi & artefak lain untuk menghindari kerja manual dan kesalahan.
Konteks untuk Enterprise SOA (3 Level Model, sejalan MDA)
| Level MDA | Level SOA | Isi |
|---|---|---|
| Computation Independent Model (CIM) | Business Model | Enterprise Services (e-SOA); Roles, Collaborations & Interactions; Process, Information & Rules |
| Platform Independent Model (PIM) | Logical System Model | Technology Services (t-SOA), Components, BPM; Interfaces, Messages & Data |
| Platform Specific Model (PSM) | Technology Specification | JMS, JEE, Web Services, .NET; WS*, BPEL, XML Schema |
Alur refinement & automation mengalir dari Business Concerns → Business Model → Logical System Model → Technology Specification (dan sebaliknya untuk line-of-sight, memastikan implementasi teknis tetap tertelusur ke business concerns).
Contoh: “The Dealer Network”
Model industri komunitas antara dealer, shipper, dan manufacturer yang mendefinisikan arsitektur SOA bagaimana mereka bekerja sama. Contoh dipresentasikan top-down, tetapi SoaML bisa dipakai top-down, bottom-up, atau middle-out.
Marketplace Services
- Mechanics Are Us (Dealer) ↔ Acme Industries (Manufacturer): Dealer sebagai consumer mengirim Order, manufacturer sebagai provider membalas Confirmation lalu Shipped.
- Acme Industries (Manufacturer) ↔ GetItThere Freight Shipper: manufacturer sebagai consumer mengirim Ship Req, shipper sebagai provider membalas Shipped.
- Mechanics Are Us ↔ GetItThere Freight Shipper: dealer sebagai consumer menerima Status pengiriman dari shipper (provider) via layanan Physical Delivery.
Services Architecture
ServicesArchitecture (atau SOA) adalah jaringan peran partisipan yang menyediakan dan memakai service untuk memenuhi suatu tujuan. Services architecture mendefinisikan syarat untuk tipe partisipan dan service yang memenuhi peran tersebut.

Notasi SoaML — stereotype <<ServicesArchitecture>>, <<Participant>>, dan <<ServiceContract>> dipakai untuk memodelkan jaringan Dealer, Manufacturer, Shipper dengan tiga kontrak layanan: Place Order, Ship Status, dan Shipping Request. Tiap partisipan berperan sebagai consumer atau provider pada masing-masing kontrak.
Drilling Down — Inside a Manufacturer
Tiap partisipan bisa “dibuka” lebih detail. Di dalam Acme Industries misalnya, ada 3 unit internal: Production, Fulfillment, Accounting yang saling berkoordinasi untuk memenuhi service eksternal (Order/Confirmation/Shipped ke dealer, Ship Req/Shipped/Delivered ke shipper).
Spesifikasi Service dalam SoaML
Spesifikasi service mencakup:
- Peran tiap partisipan dalam service (provider & consumer).
- Tipe pesan yang mengalir antar partisipan saat service dijalankan.
- Interface yang disediakan & dipakai tiap partisipan.
- Koreografi interaksi antar partisipan saat menjalankan service.
- Placeholder untuk kebijakan (policy) dan motivasi service.
Service dimodelkan memakai Service Contract dan Service Interface dalam SoaML, yang memakai UML interface, class, dan behavior.
High-Level View vs Detail: “Place Order”
- High-level view:
<<ServiceContract>> Place Orderhanya menampilkan nama service dan peran partisipan (consumer: Order Placer↔provider: Order Taker). - Service Choreography (detail): model sequence diagram lengkap — interaksi opsional Quote Request → Quote, lalu interaksi wajib Order → Order Confirmation. Model ini bersifat fully asynchronous, khas SOA berbasis dokumen bisnis.
- Message Detail: tiap interaksi punya
<<MessageType>>sendiri dengan atribut spesifik (mis.Orderpunyacustomer ID,product ID,quantity;Order Confirmationpunyaconfirmation: Confirmation Typeyang merupakan enumerasi Confirmed/Shipped/Cancelled/Out of stock).
Interfaces untuk Partisipan
Tiap peran (role) dalam service yang menerima interaksi punya interface — ini adalah interface untuk komponen teknologi logis, diimplementasikan oleh komponen yang menyediakan/memakai service tersebut. Interface ini akan berkorespondensi dengan bagian dari WSDL ketika SoaML dipetakan ke web service.
Menghubungkan ke Business Process & Information Model
- Example Information Model: model informasi bisnis (mis.
Managed Information,Principal,Role,Organization,Person,Contact Information) dapat direferensikan/dilampirkan pada tipe pesan SoaML — menciptakan koneksi antara model SOA dan data enterprise. - Linking the Business Process: proses bisnis dimodelkan sebagai UML Activity — tiap partisipan diberi swimlane berisi aksi yang dijalankannya dalam proses bisnis. Perilaku keseluruhan muncul sebagai orkestrasi dari aksi tiap partisipan; interaksi antar partisipan harus konsisten dengan kontrak service yang mereka ikuti.
Logical System Components
Komponen mengimplementasikan interface service, memberi tautan ke sistem nyata. Partisipan dan service bisa dipakai di banyak arsitektur berbeda. “Ports” pada komponen partisipan menyediakan (provide) dan membutuhkan (require) interface service untuk tiap service yang disediakan/dipakai.
Composite Application Components: komponen bisa dirakit (assembled) dari komponen lain dengan menghubungkan service-nya. Sistem enterprise lama (legacy) bisa diintegrasikan lewat komponen adapter (mis. “SAP Adapter” yang mengadaptasi interface SAP native menjadi kontrak enterprise standar), atau implementasi baru dibuat langsung di dalam komponen.
Merealisasikan Model
Ada tiga cara mewujudkan model SoaML menjadi sistem berjalan:
- Direct execution frameworks — pendekatan “no code”: proses & service dieksekusi langsung dari model, mungkin memakai standar lain seperti BPEL.
- Wrapping and adapting existing capabilities — pembuatan (otomatis/manual) “adapter components” yang memakai sistem/informasi/service lama untuk mewujudkan service enterprise yang sudah dirancang.
- Creation of new application components and services — membangun kapabilitas baru lewat komponen & aplikasi komposit baru; bisa visual/deklaratif atau berbasis kode.
Ketiganya bisa hidup berdampingan sebagai system of systems yang dihubungkan oleh service, di bawah kerangka SoaML.
SoaML Profile
SoaML didefinisikan sebagai sekumpulan kecil stereotype UML (mis. <<Participant>>, <<ServiceInterface>>, <<ServiceContract>>, <<ServicesArchitecture>>, <<Capability>>, <<RequestPoint>>, <<ServicePoint>>) yang mengkhususkan tool UML untuk dipakai dengan SoaML. UML standar tetap bisa dipakai bersamaan.
Yang dibutuhkan di luar SoaML sendiri: tool UML (SoaML adalah profile UML), tool provisioning MDA tambahan (mis. ModelPro, RSA/IBM), SOA execution framework dan/atau ESB (“the platform”). Opsional tapi sangat diinginkan: dukungan policy, eksekusi proses bisnis, information modeling, business rules, requirements & motivation modeling, security modeling, IDE untuk elemen non-model-driven.
Tooling SoaML yang dikenal: Cameo SOA+ (NoMagic), ModelPro (ModelDriven.org, open source), Enterprise Architect (Sparx), Objecteering (Softeam), RSA (IBM).
Flashcard
flashcards
Apa itu SoaML dan apa yang didukungnya dalam SOA? :: Standar OMG (profil UML) untuk memodelkan Service-Oriented Architecture di level bisnis, enterprise, dan teknologi; SoaML mendukung huruf “A” (Architecture) dalam SOA, memanfaatkan Model Driven Architecture (MDA).
Sebutkan 3 level model MDA dan padanannya di SOA :: CIM (Computation Independent Model) = Business Model; PIM (Platform Independent Model) = Logical System Model; PSM (Platform Specific Model) = Technology Specification.
Apa itu ServicesArchitecture dalam SoaML? :: Jaringan peran partisipan yang menyediakan dan memakai service untuk memenuhi suatu tujuan; mendefinisikan syarat tipe partisipan & service yang memenuhi peran tersebut.
Sebutkan 3 stereotype utama SoaML yang dipakai memodelkan arsitektur service :: <