LOGO
Presentasi Tesis Diusulkan : Hermawan P Pembimbing bi bi : Prof. P f Riyanarto Ri t Sarno, S Phd Msc. Phd. M D Drs. Ec. E Ir. I
Judul Service Oriented Architecture dengan Pemodelan Hibrid Business Process Driven dan Domain Driven Design Pada Studi Kasus Project Management
Kata Kunci: SOA, BPD, DDD, PM
www.bangOnecom
Its.ac.id
I. Pendahuluan Penelitian ini mengajukan SOA sebagai arsitektur solusi alternatif untuk membangun perangkat lunak dalam skala enterprise yang terdistribusi. Untuk membangun Arsitektur SOA menggunakan pemodelan hibrid yaitu: • Business Process Driven (BPD) • Domain Driven Design (DDD)
bangOne.com
Its.ac.id
1.1 Latar Belakang 1
Keragaman Platform
2
Sekat TI
3
SOA sebagai solusi
4
5 bangOne.com
Penyederhanaan kompleksitas SOA
DDD dan BPD
Its.ac.id
1.2 Permasalahan (Rumusan Masalah) 1 2 Melakukan analisa business process dari project management sesuai dengan metodologi PMBOK 4 untuk kebutuhan fungsional BPD dan DDD. DDD
bangOne.com
Mengkonfigurasikan dan mengimplementasikan framework BPD dan DDD untuk membangun integrasi dan distribusi aplikasi maupun service
3 Mengimplementasikan desain pada pembangunan perangkat lunak Project Management yang sesuai dengan Business Process PMBOK 4.
Company Logo Its.ac.id
1.3 Batasan Masalah 1 Pemodelan BPD menggunakan BPMN OMG 2.0. 20
bangOne.com
2 Implementasi l i Framework DDD menggunakan GRAILS.
3 Studi kasus layanan aplikasi manajemen proyek.
Company Logo Its.ac.id
1.4.1 Tujuan Penelitian
Business Process Driven ( (BPD) ) Top--Down Service. Top Ideal Connection
SOA
Domain Driven Design (DDD) Bottom--Up Service. Bottom Service
bangOne.com
Its.ac.id
1.4.2 Manfaat Manfaat
Academician
IT Developer
Memperkaya kajian ilmiah pada ruanglingkup Rekayasa perangkat lunak, Sistem terdistribusi terdistribusi, Software Evolusi berbasis pada service.
Sebagai best practise
bangOne.com
pihak yang terlibat dalam pengembangan sistem informasi untuk menggunakan pemodelan yang mature dan teknologi otomasi SOA.
Its.ac.id
1.5 Kontribusi Ruang lingkup
Relevansi
Arsitektur Model Taksonomi Hirarki Service
• • • • •
Rosen, 2008 Rosen Kulkarni, 2008 Xiwei, 2008 Yanbo, 2009 Xiaofeng, 2010
Desain Model
• • • •
Kruchten, 1997 – 2003 Evans, DDD 2003 D Dae K Kyoo Ki Kim, 2007 OMG 2.0 BPMN&UML, 2009
Implementasi
• R.Duncan PMBOK, 2007 • J. J Wolferta, Wolferta 2010
Analisa
• Erl, 2007
bangOne.com
Its.ac.id
1.6 Sistematika Penulisan KESIMPULAN DAN SARAN
BAB VI IMPLEMENTASI DAN PEMBAHASAN
BAB V HASIL PERANCANGAN
BAB IV Metodologi
BAB III Dasar Teori
BAB II PENDAHULUAN
BAB I bangOne.com
Its.ac.id
Kerangka Fikir SOA RUP
Studi St di Literatur
Analisa Kebutuhan
Kesimpulan
Desain Sistem
Analisa Hasil
bangOne.com
Implementasi
Its.ac.id
BAB II TINJAUAN PUSTAKA Service Oriented Architecture (SOA)
Enterprise Architecture (EA) Paradigma SOA Hirarki layanan Karakteristik Enterprise Architecture (EA)
B siness Process Business P ocess Driven D i en (BPD) Perbandingan Standar Pemodelan Business Process Model Notation (BPMN) OMG 2.0 Business B i Process P E Execution ti L Language
bangOne.com
Its.ac.id
BAB II TINJAUAN PUSTAKA
D Domain i Driven D i Design D i (DDD)
Prinsip DDD Layer DDD Model Driven Architecture (MDA) Framework DDD Domain Service Language (DSL) Webservice Provider
Manajemen Proyek Metodologi business process manajemen proyek Ruang lingkup domain manajemen proyek
bangOne.com
Its.ac.id
Kompleksitas Enterprise
bangOne.com
Its.ac.id
Trend Implementasi SOA
bangOne.com
Its.ac.id
SOA-EA Business Business Architecture
Scenario view Scenario view
Domain Service
Logical view
Entity Service
Process view
DDD Integration Service
Technology Architecture
Development view SOA
Utility Service
BPD Design
Application Architecture
EA‐SOA Taxono my
Information Information Architecture
Business Service Business Service
F d i S i Foundation Service
Physical view Design Technology
Architecture
EA A hit t L EA ‐ Architecture Layer bangOne.com
Model
SOAD Layer
Implementation
Solution BPD‐DDD Its.ac.id
RUP SOA-EA Inception
Elaboration
Construction
Transition
RUP •Vision K l d •Knowledge •Process •Workflow •Activities
•Domain E titi •Entities •Dataflow •Utilities
•Application P t ti •Presentation •Service
•Framework •Platforms Pl tf •Infrastructure
2 Information Architecture
Start
1
4 Business Architecture
End Technology Architecture
Architecture
Uses Application Architecture
3
Realize Dependency
bangOne.com
Its.ac.id
Taksonomi Service SOA
bangOne.com
Its.ac.id
Tabel 5. 1. Frekuensi Konsumsi Service Tabel 5. 2. Karakteristik service granularity
Prinsip Desain SOA
1
2
3
Service Contract
Service Coupling
Service Abstraction
4
5
6
Service Reusability
Service Autonomy
Service Statelessness
7 Service Discovery
bangOne.com
8 Service Composability
Business Process Driven Business maker collaboration to business logic, Pemegang otoritas bisnis yang menentukan bagaimana alur business process dari sistem informasi yang dibangun melalui proses Top-bottom Top bottom
bangOne.com
Its.ac.id
Domain Driven Design (DDD) Produksi Aplikasi dan service sesuai domain k knowledge l d yang dib dibutuhkan t hk BP BP, melalui l l i proses Buttom-Up. Desain aplikasi & service dengan dukungan framework otomasi model.
bangOne.com
Its.ac.id
III. Metodologi Perancangan Architecture View Architecture
Hirarki service
View Model
Audience
Business Service
Usecase,
Product Manager
swimlane,
Business Modeller
BPMN
Requirement
MDD
view Usecase view
BPD
Analyst Webservice progra mmer Development
Domain Service
Package Diagram System Architect OO Analyst
view Logical view
Entity Service
Class Diagram
Soft. Programmer
Utility Service Process view
Physical view
DB desainer Web designer g
Integration
Sequence
Service
Diagra m
Foundation
Deployment
Service
g m Diagra
System Architect
DDD
Network administrator Security Analyst
www.themegallery.com
Company Logo
III. Metodologi Flowchart Proses BPD
www.themegallery.com
Company Logo
III. Metodologi Flowchart Proses DDD
www.themegallery.com
Company Logo
III. Metodologi Perancangan Framework DDD
bangOne.com
Its.ac.id
III. Metodologi
Enterprise Architecture
Framework Hybrid
Service Oriented Architecture
Model Driven Development Domain Driven Design
Business Process Driven
Grails DDD Framework
Intalio BPMS
Persistence
HTTP BPMN Designer
Domain Model
REST
Controller
Service
Presentation
X‐fire Webservice
WSDL+XSD
Data Logic
Service Contrac ct
Mediator
BPEL
Apache ODE ‐ ESB
SOAP
Provider
Axis2 Webservice Provider
Web Application
Functional Logic
Project Management Base of Knowledge Enterprise Project Management
bangOne.com
Its.ac.id
IV. Hasil Perancangan T abel 4. 1. D DD P roject M anagem ent Busine ss P roce ss A.Initia ting
Busine ss S er vic e
B .Plann ing
C .Ex ecuting
D.C on tr olling
E.Closing
(A.1) Proj ec t Ini tia ting
(B.1) Proje ct P la nning
(C.1) Proje ct E xe cut ing
(D .1) P roj ec t Co nt roll ing
(E .1) Proje ct C losing
(A.2) Cont ra ct Ap poi nting
(B.2) Re qui reme nt Col lec ting
(C.2) Q uali ty A ssura nc e
(D .2) S c he dule Controlli ng
(E .2) Closi ng A gre eme nt
(A.3) Pa yme nt St agi ng
(B.3) Workba se C re at ing
(C.3) T ea m M a nagin g
(D .3) C ost C ont roll ing
(A.4) M il est one A ppointi ng
(B.4) A cti vi ty E sti mati ng
(C.4) St ake hol der E xpe cti ng
(D .4) Q ua lit y C ontrollin g
(A.5) W orkba se Inspe ct ing
(B.5) Cost E st ima ting
(C.5) Procu re me nt Conduc ting
( D.5) R isk C ontrolling
(A.6) St ak eholde r Inde ntifying
(B.6) Budge t D ete rmina ting
(A.7) St ak eholde r Informing
(B.7) Qu alit y Pla nning (B.8) Hu man R esourc e Pl anni ng (B.9) Commu ni ca tion P la nni ng (B.10) Procure ment Pla nning (B.11) Risk P la nning
Dom a in S er vic e Entity Se rvice
I.Inte gr ation
IV .C ost
V.Quality
V I.HR M
VII.
VIII.
Communi ca tion
Procu re me nt
II .S cope
III .Tim e
( I.E S 1)
(II.E S1)
( III.E S1)
(IV .ES1)
(V .E S1)
(V I.ES 1)
(V II.ES 1)
(VIII.E S 1)
(IX.E S1 )
Proje ct
R equirem ent
T ask
Cost T yp e
Q ua lity T ype
M yc orpora te
Corpora te
M ate rial T ype
R isk Type
( I.E S 2)
(II.E S2)
( III.E S2)
(IV .ES2)
(V .E S2)
(V I.ES 2)
(V II.ES 2)
( V III.E S 2)
( IX.E S 2)
Contra ct
Product
A cti vity
C ost
Qua lit y
D e partme nt
Corporat e Type
M a teria l
Risk
p ci fic at ion Spe
IX . Risk
Res ou rc e
( I.E S 3)
(II.E S3)
( III.E S3)
(IV .ES3)
(V .E S3)
(V I.ES 3)
(V II.ES 3)
( V III.E S 3)
( IX.E S 3)
Pa ymen t
Se r vic e
A cti vity
Cost H uma n
Q uali ty
E mploye e
S ta keholde r
M a teria l
R isk P erform
S pec ifica tio n
Spe ci fic at ion
T rac king
Ac tivi ty
Perform
( I.E S 4)
(II.E S4)
( III.E S4)
(IV .ES4)
(V .E S4)
(V I.ES 4)
(V II.ES 4)
( V III.E S 4)
( IX.E S 4)
L oca tion
C ata log Type
A cti vity M a nday
Cost pe r-U se
Q uali ty
Care er
S ta keholde r
Pur cha se O rder
R isk Re sponse
( I.E S 5)
(II.E S5)
( III.E S5)
(IV .ES5)
(V I.ES 5)
(V II.ES 5)
( V III.E S 5)
Closing
C ata log
A cti vity
Cost Sa lary
Sa la ry
S ta keholde r
PO Su pp ly
C ontrol
Type
E sti mati on
Profil e
(II.E S5)
( III.E S6)
(IV .ES6)
(V I.ES 6)
(V II.ES 6)
( V III.E S 6)
Wbs
A cti vity
Cost M a te ria l
E duca tion
S ta keholde r
Suppli er
O ptimi za tion
Ac tivi ty
Organi za tion
(II.E S6)
( III.E S7)
(IV .ES7)
(V I.ES 7)
(V II.ES 7)
( V III.E S 7)
M il esto ne
Ca le nda r
C ost M a teria l U se
T ra ining
S ta keholde r
A uc tion
Pe rforma nce (II.E S7)
(IV .ES8)
(V I.ES 8)
(V II.ES 8)
R equirem ent App
C ost N on Ac tivi ty
H RM
M e et ing
( (II.E S8)
( .ES9) (IV S9)
( I.ES (V S 9)
( II.ES (V S 9)
WbsA pprova l
Budge t
Te am
E xpe ct ati on
rova l
D e velo pment
bangOne.com
(IV .E S10)
(V I.E S 10)
(V II.E S 10)
M o nt h Budget
Re source
M e ssa ge
Its.ac.id
IV. Hasil Perancangan I. UseCase: BP Boundary uc Use Case M odel i ni ti ati ng Proj ect
(A.1) Proj ect Initiating
(A.2) Contract A Appointing i ti
use
(A.3) Payment Staging
use
update paym ent use (A.5) Workbase Completing
M anager
Stakeholder(ow ner)
use
use
use
(A.4) M ilestone Appointing update i nform ati on
(A.6) Stakeholder Indentifying
(A.7) Stakeholder Informing
bangOne.com
Its.ac.id
IV. Hasil Perancangan II. Swimlane: BP Management
bangOne.com
Its.ac.id
IV. Hasil Perancangan III. BPMN: BP Logic
bangOne.com
Its.ac.id
Model DDD I. Package Diagram class Domain Model class Scope
Wbs
ChangeRequest
class Time ScopeSoapServ ice (III.ES1) Task # # TimeSoapServ ice + + + +
+ + + + + + +
getLastRequi rementApproval () : Stri ng getLastWbsApproval () : Stri ng getLastWbsChange() : Stri ng getLastWbsCom pl ete() : Stri ng
descri ption: Stri ng taskID: Stri ng
(III.ES3) Activ ityTracking
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXm l(m ap) : def show() : def update() : def
predecessor TimeRestController + + + + + + +
(III.ES2) Activ ity
create() : def del ete() : def renderJson(map) : def renderRest(m ap) : def renderXm l(m ap) : def show() : def update() : def
Calendar
TimeClientServ ice + +
restInvoke(Stri ng) : Stri ng soapInvoke(Stri ng) : Stri ng
# # #
date: Date dayT ype: Stri ng descri pti on: Stri ng
+ + + + + + +
create() : def del ete() : def renderJson(map) : def renderRest(m ap) : def renderXm l(m ap) : def show() : def update() : def
# # # # # # # # #
compl ete: byte descri pti on: Stri ng endDate: Date predecessor: (III.ES2) Acti vi ty pri ori ty: Stri ng startDate: Date task: Stri ng taskID: Stri ng workbase: Stri ng
+ + + + + + +
create() : def del ete() : def renderJson(map) : def renderRest(m ap) : def renderXm l(m ap) : def show() : def update() : def
acti ve: bool ean acti vi ty: (III.ES2) Acti vi ty date: Date descri pti on: Stri ng doWork: Stri ng em pl oyee: Stri ng endWorks: Date hours: byte startWorks: Stri ng
+ + + + + + +
create() : def del ete() : def renderJson(map) : def renderRest(m ap) : def renderXm l(m ap) : def show() : def update() : def
# # # # # # #
acti vi ty: (III.ES2) Acti vi ty compl ete: byte date: Date doWork: Stri ng hours: byte note: Stri ng status: Info
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXm l(m ap) : def show() : def update() : def
getBac() : Stri ng getCpi () : Stri ng getCv() : Stri ng getEac() : Stri ng getSpi () : Stri ng getSv() : Stri ng
(III.ES5) Activ ityEstimation # # # # #
acti vi ty: (III.ES2) Acti vi ty norm al Everage: i nt opti m i sti c: i nt pesi m i sti c: i nt result: int
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXm l (m ap) : def show() : def update() : def
acti vi ty: (III.ES2) Acti vi ty doDate: Date opti mi zati on: byte reason: Stri ng
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXml (m ap) : def show() : def update() : def
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXml (m ap) : def show() : def update() : def
# # # # # # # # #
com plete: byte descri ption: Stri ng effort: byte endDate: Date predecessor: Wbs pri ori ty: byte startDate: Date workbase: Stri ng workbaseID: Stri ng
# # # # #
approve: boolean descri pti on: Stri ng name: ChangeRequest requestDate: date requestNam e: Stri ng
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXm l (m ap) : def show() : def update() : def
+ + + + + + +
create() : def del ete() : def renderJson(map) : def renderRest(m ap) : def renderXm l(m ap) : def show() : def update() : def
+ +
WbsApprov al class Cost
CostType
ProductSpecification
restInvoke(Stri ng) : Stri ng soapInvoke(Stri ng) : Stri ng
# # # # # # #
descri ption: Stri ng m odel Image: byte[] productReference: Catal ogue requirement: Requirement specificationID: Stri ng specificationName: Stri ng technol ogy: Stri ng
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXml (map) : def show() : def update() : def
CatalogueType # # #
descri ption: Stri ng nam e: Stri ng type: T ype
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXm l(m ap) : def show() : def update() : def
# # # # # # # # # # # #
descri pti on: Stri ng goal: Stri ng predecessor: Requi rem ent pri ori ty: byte problem: Stri ng proj ect: Stri ng projectName: Stri ng requestDate: Stri ng requi rem entID: Stri ng requi rem entNam e: Custom er strength: byte weakness: byte
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXm l(m ap) : def show() : def update() : def
predecessor
# # # # # #
descri pti on: Stri ng peri ode: Stri ng requi rem ent: Stri ng servi ceID: Stri ng servi ceNam e: Stri ng servi ceReference: Catal ogue
+ + + + + + +
create() : def del ete() : def renderJson(map) : def renderRest(map) : def renderXm l(m ap) : def show() : def update() : def
getBac() : Stri ng getCpi () : Stri ng getCv() : Stri ng getEac() : Stri ng getSpi () : Stri ng getSv() : Stri ng
CostRestController + + + + + + +
Catalogue
«enum erati o... Type Product Servi ce
# # # # # # # # #
catal ogueID: Stri ng catal ogueNam e: Stri ng currency: Stri ng descri ption: Stri ng m odelIm age: byte[] pri ce: Stri ng publ i sh: Date type: Catal ogueT ype versi onM odul : Stri ng
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXm l (map) : def show() : def update() : def
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXml (map) : def show() : def update() : def
CostClientServ ice + +
# # # # # #
acti vi ty: Stri ng approve: bool ean cost: Cost day: Stri ng total : Bi gDeci m al workers: i nt
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXml (m ap) : def show() : def update() : def
restInvoke(Stri ng) : Stri ng soapInvoke(Stri ng) : Stri ng
Payment
# # # # # #
address: Stri ng ci ty: Stri ng l ati tude: Stri ng l ongi tude: Strng m apT ype: M apT ypes proj ect: Requirem ent
# # # # # # # # #
descri ption: Stri ng endPaymentDate: Date pay: bool ean paym entNam e: Stri ng paym entStage: Stri ng percentPay: byte proj ect: Proj ect startPaym entDate: Date value: Bi gNum ber
# # # # # # #
contractID: Stri ng contractNam e: Stri ng descri ption: Stri ng endDate: Date proj ect: Requirement startDate: Date value: Bi gNum ber
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXml (map) : def show() : def update() : def
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXm l (m ap) : def show() : def update() : def
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXm l (map) : def show() : def update() : def
M ycorporate HrmRestController
# # # # # # # # # # # #
address: Stri ng busi nessLicence: Stri ng corporateID: Stri ng corporateNam e: Stri ng corporateT ype: Stri ng emai l : Stri ng phone: Stri ng pl ace: Stri ng poBox: Stri ng taxNum ber: Stri ng websi te: Stri ng zi pCode: Stri ng
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXml (map) : def show() : def update() : def
Location
Department
have part departm ent
HrmClientServ ice + +
restInvoke(Stri ng) : Stri ng soapInvoke(Stri ng) : Stri ng
Training # # # # # #
descri ption: Stri ng endDate: Date pl ace: Stri ng resource: Hum anResource startDate: Date traini ngNam e: Stri ng
# # # # #
corporate: MyCorporate departmentNam e: Stri ng descri ption: Stri ng l eader: Career top: Departm ent
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXm l(m ap) : def show() : def update() : def
IntegrationSoapServ ice + +
Humanresource
TeamDev elopmet # # #
acti vi ty: Stri ng descri ption: Stri ng resource: Hum anResource
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXm l(m ap) : def show() : def update() : def
have employee startWork: Date
+ + + + + + +
create() has: ldef eader del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXm l (m ap) : def show() : def update() : def 1..*
leader Employee
TeamMembers # #
em ployee: Employee team Development: T eam Development
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXm l (m ap) : def show() : def update() : def
«enumerati o... EmployeeTypes fi x contract free
# #
descri ption: Stri ng resource: Stri ng
# # # # # # # # # # #
address: Stri ng birthday: Date com panyID: Stri ng emai l : Stri ng Em pl oyeeT ype: Em pl oyeeT ypes nam e: Stri ng phone: Stri ng pl ace: Stri ng Stri ng: i nt taxNum ber: Stri ng websi te: Stri ng
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXml (map) : def show() : def update() : def
has resource
Vacation
# # # # # #
employee: Em pl oyee endDate: Date granted: bool ean resource: Hum anResource startDate: Date vacati on: Vacati onT ypes
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXml (map) : def show() : def update() : def
# # # # # # # # #
acti ve: bool boolean ean com ment: Stri ng departm ent: Department em ployee: Employee endCareer: Date jobDescripti on: Stri ng perform ance: byte resource: Resource startCareer: Date
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXm l (m ap) : def show() : def update() : def
I t IntegrationRestController ti R tC t ll + + + + + + +
Proj ectT oHum anresource
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXml (map) : def show() : def update() : def
IntegrationClientServ ice + +
descri pti on: Stri ng level : Level s predecessor: Requirem ent proj ectID: Statuses proj ectNam e: Stri ng registerDate: Date requestDate: Date status: Statuses
+ + + + + + +
create() : def del ete() : def renderJson(map) : def renderRest(m ap) : def renderXm l(m ap) : def show() : def update() : def
pendi ng approval open cl ose failed
actday: i nt approve: bool ean costActi vi ty: CostHum anActi vi ty day: int em pl oyee: Stri ng norm al actcost: Bi gInteger norm al cost: Bi gInteger overactcost: Bi gInteger overcost: Bi gDeci m al overday: i nt salary: sal ary: Bi BigDeci gDeci m al total: Bi gDecim al total Act: Bi gDeci mal
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXm l (m ap) : def show() : def update() : def
com m ent: Stri ng employee: Employee grade: byte l astEducati on: Stri ng pass: Date start: Date
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXm l (map) : def show() : def update() : def
+ + + + + + +
create() : def del ete() : def renderJson(map) : def renderRest(map) : def renderXm l(m ap) : def show() : def update() : def
create() : def del ete() : def renderJson(map) : def renderRest(map) : def renderXm l(m ap) : def show() : def update() : def
# # # # # # #
cost: Cost detai l : Stri ng endDate: Date i sPayed: boolean paym entDate: Date startDate: Date total : Bi gDeci m al
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXml (m ap) : def show() : def update() : def
CostMaterial
# # # # # # #
bal ance: Bi gInteger hum an: Bi gInteger incom e: Bi gInteger m ateri al: Bi gInteger nonacti vi ty: Bi gInteger outcom e: Bi gInteger proj ect: Stri ng
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXm l (map) : def show() : def update() : def
# # # # # # #
am ount: i nt descri ption: Stri ng isUsed: bool ean m ateri al Acti vi ty: CostM ateri al Acti vi ty pri ce: Bi gDeci m al total : Bi gDeci mal usedDate: Date
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXm l (m ap) : def show() : def update() : def
+ +
getl astCom pl etePaym ent() : Stri ng getLastFi nal Paym ent() : Stri ng
CommunicationRestController
+ + + + + + +
currency: Stri ng proj ect: Requirement
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXm l (m ap) : def show() : def update() : def
# # # #
deliveryDate: Date descri ption: Stri ng proj ect: Requirem ent sati sfy: Date
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXml (map) : def show() : def update() : def
+ + + + + + +
create() : def del ete() : def renderJson(map) : def renderRest(m ap) : def renderXm l(m ap) : def show() : def update() : def
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXm l(m ap) : def show() : def update() : def
Stakeholder
StakeholderOrganization
l eader
CommunicationClientServ ice + +
restInvoke(Stri ng) : Stri ng soapInvoke(Stri ng) : Stri ng
# # # # # # # #
endWork: Date jobDescri pti on: Stri ng leader: StakeholderOrganization project: Stri ng raci : Raci resource: Stakehol derT ypes stakeholderName: Stakeholder startWork: Date
+ + + + + + +
create() : def del ete() : def renderJson(map) : def renderRest(m ap) : def renderXm l(m ap) : def show() : def update() : def
Quality
QualityType Risk
RiskType descri ption: Stri ng i mpact: byte pri ori ty: byte probabi l i ty: byte ri skCatagory: Stri ng type: T ypes
# # # # # # # # # # #
d descri i pti ti on: Stri St i ng opportuni ty: byte proj ect: Stri ng rai sedBy: Stri ng rai sedDate: Date ri skID: Stri ng ri skT ype: Ri skT ype si gnature: boolean strength: byte threat: byte worst: byte
# # #
descri pti on: Stri ng qual i tyID: Stri ng qualityName: Stri ng
# # # # # # # #
# # # # # # # #
address: Stri ng em ai l : Stri ng phone: Stri ng photo: byte[] poBox: Stri ng taxNumber: Stri ng website: Stri ng zi pCode: Stri ng
+ + + + + + +
create() : def del ete() : def renderJson(map) : def renderRest(m ap) : def renderXm l(m ap) : def show() : def update() : def
corporates: Corporate idNum ber: Stri ng 1..* jobs: Jobs name: Stri ng profile: Profile stakeholderID: Stri ng stakeholderT ype: Stakehol derT ypes
+ + + + + + +
create() : def del ete() : def renderJson(map) : def renderRest(m ap) : def renderXm l(m ap) : def 1..* show() : def
+ + 0..* + + + participate + +
has
Expectation
1 1..*
hasMany update() : def Corporate
# # # # #
1..* busi nessLicence: Stri ng corporateID: Stri ng corporateT ype: Areas l evel : Level s nam e: Stri ng
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXml (m ap) : def show() : def update() : def
1
gi ve
has CorporateType # #
corporateT ype: Stri ng descri pti on: Stri ng
has «enum erati o... Lev els
# # # # # #
docum ent: Fi l e probl em: Stri ng proj ect: Proj ect request: Stri ng response: Stri ng stakehol der: Stakehol der
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXml (m ap) : def show() : def update() : def
Performance
0..*
has
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def hasM any renderXml (m ap) : def show() : def update() : def
# # # # # # # #
contractRati ng: i nt costRati ng: i nt productRati ng: i nt proj ect: Proj ect schedul eRati ng: i nt stakehol der: Paym ent summ ary: Stri ng workRati ng: i nt
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXml (map) : def show() : def update() : def
l ow medi um hi gh enterpri se
QualityControl # # # # #
class Procurement
approvalDate: Date gapT ol erance: byte project: Stri ng quality: QualityT ype rai sedBy: Date recom m endati on: Stri ng requestDate: Date si gnature: bool ean
# # # # # # #
day: Date descri ption: Stri ng docum ent: Fi l e nam e: Stri ng participant: Stakehol der proj ect: Proj ect
gi ve
Profile class Quality class Risk Proj ectT oM ateri al resource
Meeting # # # # # #
Anal yst Archi techt Devel oper Di rector M anager
Responsbility Accountabi l i ty Consul t Inform
Proj ectT oRi sk
# # # # # #
«enum erati o... Jobs
«enum erati o... Raci
Closing
# #
Proj ectT oQual i ty
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXml (m ap) : def show() : def update() : def
costM anDay: CostM anDay day: i nt fi rstDate: Date isPayed: boolean l astDate: Date normal cost: Bi gDeci m al overcost: Bi gDeci mal overday: i nt paym entDate: Date sal ary: Bi gDeci mal total : Bi gDeci m al
custom er sponsor consul tan provi der owner
CommunicationSoapServ ice
predecessor
Descri pti on: Stri ng type: Stri ng
+ + + + + + +
+ + + + + + +
Budget
# # # # # # # # # # #
«enumerati on» StakeholderTypes
low m edi um high enterpri se
Education # # # # # #
acti vi ty: Stri ng am ount: Stri ng approve: boolean cost: Cost descri pti on: Stri ng materi al : Stri ng price: Bi gDeci mal total : Bi gDeci m al
class Communication
«enum erati o... Lev els
Salary Acti ve: bool ean em pl oyee: Em pl oyee endDate: Date startDate: Date value: BigDecimal
CostNonActiv ity
# # # # # # # #
«enum erati o... Statuses
Proj ectT oStakehol derorgani zati on
restInvoke(Stri ng) : Stri ng soapInvoke(Stri ng) : Stri ng
VacationTypes # #
# # # # # # # #
Currency
# # # # #
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXml (map) : def show() : def update() : def
getl astCompletePaym ent() : Stri ng getLastFi nal Paym ent() : Stri ng
Proj ect
Resource Organi zati onStructure
has resource endWork: Date jobDescripti on: Stri ng l eader: Em pl oyee organi zer: Departm ent proj ect: Proj ect 1 resource: Resource
# # # # # # #
Contract
have M any
top Career
have trai ni ng
costT ype: CostT ype descri ption: Stri ng endDate: Stri ng proj ect: Stri ng startDate: Date val ue: Bi gInteger
+ + + + + + +
CostSalary
ProjectT oCost
class integration
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXm l(m ap) : def show() : def update() : def
Cost # # # # # #
CostMaterialActiv ity
# # # # # # # # # # # # #
proj ect
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXml (map) : def show() : def update() : def
CostM anDay
HrmSoapServ ice getActi veSal ary() : Stri ng getT otal Proj ectEmpl oyee() : Stri ng
costT ypeID: Stri ng descri ption: Stri ng expence: Stri ng type: Stri ng
+ + + + + + +
CostHumanActiv ity CostSoapServ ice + + + + + +
class HRM
+ +
# # # #
Serv iceSpecification Requirement
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXml (m ap) : def show() : def update() : def
ScopeClientServ ice
# # # #
approval : boolean descri ption: Stri ng regi g sterDate: Date request: Stri ng requestDate: Date workbase: Wbs
ScopeRestController + + + + + + +
Activ ityoptimization
(III.ES4) Activ ityM anDay # # # # # # # # #
+ + + + + +
# # # # # #
acti vi ty: Stri ng grade: i nt qual i ty: Qual i ty recomm endati on: Stri ng updateDate: Date
RiskIdentification ProcurementSoapServ ice
M aterial # # # #
descri ption: Stri ng m ateri al ID: Stri ng m ateri al Name: Stri ng uni tT ype: Stri ng
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXml (map) : def show() : def update() : def
+ +
getl astCompletePayment() : Stri ng getLastFi nal Paym ent() : Stri ng
# # # # # #
acti vi ty: Stri ng dateUpdate: Date recom m endation: Stri ng ri sk: Ri sk ri skGrade: i nt ri skResponse: i nt
ProcurementRestController + + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXml (m ap) : def show() : def update() : def
M aterialResource ProcurementClientServ ice # # # # # # #
amount: i nt consum pti on: i nt descri ption: Stri ng m ateri al : Materi al proj ect: Stri ng status: Stri ng stock: i nt
+ + + + + + + + +
create() : def del ete() : def getM ateri al Consumpti on() : i nt getM aterialStock() : int renderJson(m ap) : def renderRest(m d R t( ap)) : def d f renderXml (map) : def show() : def update() : def
+ +
M aterialSpecification
PurchaseOrder # # # # # # # #
amount: int com pl ete: i nt descri ption: Stri ng m ateri al : Materi al Resource orderT ype: OrderT ypees pri cePerUni t: Bi gDeci m al purchaseDate: Date suppl i er: Suppl i er
+ + + + + + + +
create() : def del ete() : def getCom pl ete() : int renderJson(m ap) : def renderRest(m ap) : def renderXml (map) : def show() : def update() : def
POsupply # # # #
am ountSupply: int descri ption: Stri ng purchaseOrder: PurchaseOrder suppl yDate: Date
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXm l (map) : def show() : def update() : def
# # # # # #
code: Stri ng descri pti on: Stri ng m ateri al : M ateri al spec: Stri ng uni tT ype: Stri ng val ue: i nt
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXml (m ap) : def show() : def update() : def
Auction Supplier
www.bangOne.com
restInvoke(Stri ng) : Stri ng soapInvoke(Stri ng) : Stri ng
# # #
note: Stri ng regi sterDate: Date suppl i er: Stri ng
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(map) : def renderXml (m ap) : def show() : def update() : def
# # # #
aucti onDate: Date descri ption: Stri ng purchaseOrder: PurchaseOrder wi nner: Suppl i er
+ + + + + + +
create() : def del ete() : def renderJson(m ap) : def renderRest(m ap) : def renderXml (map) : def show() : def update() : def
Its.ac.id
IV. Hasil Perancangan II. Class Diagram class integration
Payment
# # # # # #
address: String city: String latitude: String longitude: Strng mapType: MapTypes project: Requirement
# # # # # # # # #
+ + + + + + +
create() : def delete() : def renderJson(map) : def renderRest(map) : def renderXml(map) : def show() : def update() : def
+ + + + + + +
Location
IntegrationSoapServ ice + +
description: String endPaymentDate: Date pay: boolean paymentName: String paymentStage: String percentPay: byte project: Project startPaymentDate: Date value: BigNumber
# # # # # # #
contractID: String contractName: String description: String endDate: Date project: Requirement startDate: Date value: BigNumber
create() : def delete() : def renderJson(map) d J ( ):d deff renderRest(map) : def renderXml(map) : def show() : def update() : def
+ + + + + + +
create() : def delete() : def renderJson(map) : def renderRest(map) : def renderXml(map) : def show() : def update() : def
Contract
getlastCompletePayment() : String getLastFinalPayment() : String «enumeratio... Statuses
Proj ect
IntegrationRestController + + + + + + +
create() : def delete() : def renderJson(map) : def renderRest(map) : def renderXml(map) : def show() : def update() : def
IntegrationClientServ ice + +
# # # # # # # #
description: String level: Levels predecessor: Requirement projectID: Statuses projectName: String registerDate: Date requestDate: Date status: Statuses
+ + + + + + +
create() : def delete() : def renderJson(map) : def renderRest(map) : def renderXml(map) : def show() : def update() : def
restInvoke(String) : String soapInvoke(String) : String
pending approval open close failed
«enumeratio... Lev els low medium high enterprise
predecessor Closing
Currency
www.bangOne.com
# #
currency: String project: Requirement
+ + + + + + +
create() : def delete() : def renderJson(map) d J ( ):d deff renderRest(map) : def renderXml(map) : def show() : def update() : def
# # # #
deliveryDate: Date description: String project: Requirement satisfy: Date
+ + + + + + +
create() () : def delete() : def renderJson(map) : def renderRest(map) : def renderXml(map) : def show() : def update() : def
Its.ac.id
IV. Hasil Perancangan III. Sequence Diagram sd Requirements Model View
Controller
Service
Model
Persistance
User
requestApp() BindingRequest()
Use Service()
Query()
Mapping()
Query()
Synch()
Return Object Data()
BindingReturn()
ResponseApp()
www.bangOne.com
Its.ac.id
IV. Hasil Perancangan III. Deployment Diagram deployment Infrastruktur SOA
«device» GRAILS - Application Serv er
«device» device Intalio - BPMS Serv er
«executionEnviron... Apache Tomcat Webserv er
«executionEnviron... Apache Tomcat Webserv er
«executionEnviro... Apache ODE Enterprise Serv ice Bus
«device» Web JQuery
«device» Jav a TM GSP
JVM «executionEnviron... Axis - Webserv ice Prov ider
Groov y JRE
BPMN Designer WSDL - REST
A
Searchable WSDL - SOAP
Jasper
Spring Security
Hibernate
«executionEnvi ron... Data serv ice
«devi ce» MySql - Datebase Serv er
www.bangOne.com
Its.ac.id
V. Implementasi Orkestrasi BPMN
bangOne.com
Its.ac.id
V. Implementasi Orkestrasi BPMN
bangOne.com
Its.ac.id
V. Implementasi Orkestrasi BPMN
bangOne.com
Its.ac.id
V. Implementasi Sistem Terintegrasi
bangOne.com
Its.ac.id
V. Implementasi Sistem Terintegrasi
bangOne.com
Its.ac.id
V. Implementasi Sistem Terintegrasi
bangOne.com
Its.ac.id
V. Implementasi Sistem Terintegrasi
bangOne.com
Its.ac.id
V. Implementasi Sistem Terdistribusi
bangOne.com
Its.ac.id
V. Analisa Prinsip Desain SOA
Subyektif Grade
Service Contract Service Coupling Service Abstraction Service Reusability Service Autonomy Service Statelessness Service Discovery Service Composability bangOne.com
Its.ac.id
VI. Pembahasan Dari penggunaan kombinasi service REST dan SOAP didapatkan hasil yang paling signifikan adalah peningkatan reusabilitas service.
bangOne.com
Its.ac.id
VI. Kesimpulan Dari hasil penelitian dengan penerapan arsitektur model dan desain SOA dengan menggunakan BPD dan DDD dapat disimpulkan bahwasanya:
bangOne.com
Its.ac.id
VI. Kesimpulan 1. Dari penelitian didapatkan bahwasanya arsitektur model memenuhi kebutuhan pada perspektif bisnis maupun teknis, teknis hal tersebut menunjukkan arsitektur enterprise yang didefinisikan pada pemilihan desain model BPD dan DDD sesuai dengan kebutuhan arsitektur SOA. Dengan model yang sederhana dan dimengerti dengan mudah, dapat mengurangi secara signifikan waktu yang dibutuhkan pada model dan desain,, sehingga gg mampu p meningkatkan g efisiensi dan efiktifitas pembangunan perangkat lunak. Dimana dari pengukuran menggunakan SEM diperoleh kesesuaian mencapai 2,47 dengan skala 0-3 atau 75% dari penerapan kesempurnaan SOA yang menyeluruh.
bangOne.com
Its.ac.id
VI. Kesimpulan 2. Dari analisa business process dan domain knowledge project management melalui pendefinisiannya pada hirarki taksonomi service dengan pemilahan pada tahapan BPD dan DDD memenuhi kebutuhan sistem enterprise. Dengan pendefinisian serta penambahan salah satu layer yaitu entity service telah mampu menghasilkan service untuk kebutuhan yang luas menggunakan REST, sedangkan untuk kebutuhan yang spesifik p tetap p menggunakan gg utility y service SOAP.
bangOne.com
Its.ac.id
VI. Kesimpulan 3. Perangkat lunak project management yang dihasilkan memiliki desain yang baik dengan keseluruhan tier aplikasi diatur oleh domain model. model Demikian pula pada penghasilan service disisi provider yang mengenkapsulasi cara pengaksesannya pada pola akses yang sama dan satu jalan melalui controller mediator untuk REST dan service provider untuk SOAP, yang memudahkan dalam pengaksesan pada sistem terintegrasi g maupun p terdistribusi.
bangOne.com
Its.ac.id
VI. Kesimpulan 4. Dari hasil pengukuran terhadap kualitas service dan analisa yang dilakukan menunjukkan sistem sudah memenuhi kebutuhan enterprise SOA SOA, dan untuk perbaikan kualitasnya diperlukan peningkatan kapasitas infrastruktur framework serta desain pada standar keamanan enterprise SOA yang memenuhi aspek keamanan service, karena aspek ini masih memiliki nilai terendah pada implementasinya dengan nilai p pengukuran g hanya y mencapai p 1,5 , atau rendah dari penerapan sistem keamanan enterprise karena hanya mencakup aplikasi dan service RESTful melalui penerapan standar keamanan aplikasi menggunakan Spring security.
bangOne.com
Its.ac.id
VI. Saran 1. Dengan kelebihan pada desain dari model dan dukungan infrastruktur teknologi dari BPD dan DDD dapat mendorong dalam rekayasa teknologi informasi berikutnya yang lebih mudah dan sederhana lagi untuk dimanfaatkan dalam mengurangi kompleksitas pembangunan perangkat lunak dalam skala enterprise.
bangOne.com
Its.ac.id
VI. Saran 2. Sedangkan dalam pengembangan service yang kaya dengan informasi dan fungsi sebagaimana yang dihasilkan dari penelitian ini dapat digunakan dalam pengembangan penelitianpenelitian berikutnya pada pengembangan rekayasa pengetahuan, pengetahuan penggalian data, ataupun analisa semantik berbasis service.
bangOne.com
Its.ac.id
LOGO
Wa’alaikum salam. www.bangOne.com