Presentasi Tesis - Digilib ITS

67 downloads 405 Views 1MB Size Report
Presentasi Tesis. Diusulkan : ... Kruchten, 1997 – 2003. • Evans, DDD ... Metodologi. BAB III. Dasar Teori. BAB II. PENDAHULUAN. BAB I. bangOne.com. Its.ac.id ...
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