Upload
phamminh
View
265
Download
10
Embed Size (px)
Citation preview
LOGOLOGO
Presentasi TesisPresentasi TesisDiusulkan : Hermawan
P bi bi P f Ri t S Phd M D E IPembimbing : Prof. Riyanarto Sarno, Phd. Msc. Drs. Ec. Ir.
Judul
Service Oriented Architecture dengan Service Oriented Architecture dengan Pemodelan Hibrid Business Process Driven dan Domain Driven Design Pada Studi Kasus Project Management
Kata Kunci: SOA, BPD, DDD, PMKata Kunci: SOA, BPD, DDD, PM
www.bangOnecomwww.bangOnecom Its.ac.idIts.ac.id
I. Pendahuluan
Penelitian ini mengajukan SOA sebagai arsitektur solusi alternatif untuk membangunarsitektur solusi alternatif untuk membangun perangkat lunak dalam skala enterprise yang terdistribusi. Untuk membangun Arsitektur SOA
menggunakan pemodelan hibrid yaitu: • Business Process Driven (BPD)• Business Process Driven (BPD)• Domain Driven Design (DDD)
bangOne.combangOne.com Its.ac.idIts.ac.id
1.1 Latar Belakang
Keragaman Platform1
Sekat TI2
SOA sebagai solusi3
Penyederhanaan kompleksitas SOA4
DDD dan BPD5
bangOne.combangOne.com Its.ac.idIts.ac.id
1.2 Permasalahan(Rumusan Masalah)(Rumusan Masalah)
12
Melakukan analisa Melakukan analisa business process dari business process dari project management project management
2
Mengkonfigurasikan Mengkonfigurasikan dan dan
3
sesuai dengan sesuai dengan metodologi PMBOK 4 metodologi PMBOK 4 untuk kebutuhan untuk kebutuhan fungsional BPD dan fungsional BPD dan
dan dan mengimplementasikan mengimplementasikan framework BPD dan framework BPD dan DDD untuk DDD untuk membangun membangun integrasi integrasi
Mengimplementasikan Mengimplementasikan desain pada desain pada pembangunan pembangunan perangkat lunak perangkat lunak
DDDDDD. membangun membangun integrasi integrasi dan distribusi aplikasi dan distribusi aplikasi maupun servicemaupun service
perangkat lunak perangkat lunak Project ManagementProject Managementyang sesuai dengan yang sesuai dengan Business Process Business Process PMBOK 4.PMBOK 4.PMBOK 4.PMBOK 4.
Company LogoCompany LogobangOne.combangOne.com Its.ac.idIts.ac.id
1.3 Batasan Masalah
1
2
l il i
Pemodelan Pemodelan BPD BPD menggunakan menggunakan BPMN OMG 2 0BPMN OMG 2 0 3
Implementasi Implementasi Framework DDD Framework DDD menggunakan menggunakan GRAILS.GRAILS.
BPMN OMG 2.0.BPMN OMG 2.0.
Studi Studi kasus kasus layanan layanan aplikasi manajemen aplikasi manajemen proyek.proyek.
Company LogoCompany LogobangOne.combangOne.com Its.ac.idIts.ac.id
1.4.1 Tujuan Penelitian
Business Business Process DrivenProcess Driven (BPD) (BPD) ( )( )TopTop--Down Service.Down Service.
SOASOAIdeal Ideal ConnectionConnection
Domain Driven DesignDomain Driven Design (DDD) (DDD) BottomBottom--Up Up ServiceService
SOASOAConnectionConnection
BottomBottom Up Up Service.Service.
bangOne.combangOne.com Its.ac.idIts.ac.id
1.4.2 Manfaat
Manfaat
IT DeveloperSebagai best practise
AcademicianMemperkaya kajian Sebagai best practise
pihak yang terlibat dalam pengembangan sistem informasi untuk menggunakan
Memperkaya kajianilmiah pada ruang-lingkup Rekayasa perangkat lunak, Sistem terdistribusi menggunakan
pemodelan yang mature dan teknologi otomasi SOA.
Sistem terdistribusi, Software Evolusiberbasis pada service.
bangOne.combangOne.com Its.ac.idIts.ac.id
1.5 KontribusiRuang lingkup Relevansi
Arsitektur Model • Rosen 2008Arsitektur ModelTaksonomi Hirarki Service
• Rosen, 2008• Kulkarni, 2008• Xiwei, 2008• Yanbo, 2009• Xiaofeng, 2010
Desain Model • Kruchten, 1997 – 2003• Evans, DDD 2003
D K Ki 2007• Dae Kyoo Kim, 2007• OMG 2.0 BPMN&UML, 2009
Implementasi • R.Duncan PMBOK, 2007• J Wolferta 2010• J. Wolferta, 2010
Analisa • Erl, 2007
bangOne.combangOne.com Its.ac.idIts.ac.id
1.6 Sistematika Penulisan
BAB VIKESIMPULAN DAN SARANKESIMPULAN DAN SARAN
BAB V
IMPLEMENTASI IMPLEMENTASI DAN PEMBAHASANDAN PEMBAHASAN
BAB VI
HASIL HASIL PERANCANGANPERANCANGAN
BAB IV
MetodologiMetodologi
BAB III
DDasar asar TTeorieoriDDasar asar TTeorieori
BAB II
PENDAHULUANPENDAHULUAN
BAB I
bangOne.combangOne.com Its.ac.idIts.ac.id
Kerangka Fikir
St di Analisa
SOA RUP
StudiLiteratur
Analisa Kebutuhan
Kesimpulan
Desain Sistem
Analisa Hasil ImplementasiHasil
bangOne.combangOne.com Its.ac.idIts.ac.id
BAB IITINJAUAN PUSTAKA
Service Oriented Architecture (SOA) Enterprise Architecture (EA) Paradigma SOA Hirarki layanan
Karakteristik Karakteristik Enterprise Architecture (EA)
B siness P ocess D i en (BPD)Business Process Driven (BPD) Perbandingan Standar Pemodelan Business Process Model Notation (BPMN) OMG 2.0
B i P E ti L Business Process Execution Language
bangOne.combangOne.com Its.ac.idIts.ac.id
BAB IITINJAUAN PUSTAKA
D i D i D i (DDD)Domain Driven Design (DDD) Prinsip DDD Layer DDD Model Driven Architecture (MDA) Framework DDD Domain Service Language (DSL) Webservice Provider Webservice Provider
Manajemen ProyekManajemen Proyek Metodologi business process manajemen proyek Ruang lingkup domain manajemen proyek
bangOne.combangOne.com Its.ac.idIts.ac.id
Kompleksitas Enterprise
bangOne.combangOne.com Its.ac.idIts.ac.id
Trend Implementasi SOA
bangOne.combangOne.com Its.ac.idIts.ac.id
SOA-EA
Business Business Service Scenario viewBusiness Architecture
Information
Business Service
Domain Service
Scenario view
Logical viewBPDInformation
Architecture
Application
Entity Service
Utility Service
SOA
Design
Process view
Development viewEA‐SOA
Taxonomy
Architecture
Technology
Integration Service
F d i S i
Physical view
Design
DDD
Architecture Foundation Service
EA A hit t L
Technology
Design
ImplementationArchitecture Model
bangOne.combangOne.com Its.ac.idIts.ac.id
EA ‐ Architecture Layer SOAD Layer Solution BPD‐DDD
RUP SOA-EA
InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransitionRUPRUP
•VisionK l d
•VisionK l d
•DomainE titi
•DomainE titi
•ApplicationP t ti
•ApplicationP t ti
•FrameworkPl tf
•FrameworkPl tf•Knowledge
•Process•Workflow•Activities
•Knowledge•Process•Workflow•Activities
•Entities•Dataflow•Utilities
•Entities•Dataflow•Utilities
•Presentation•Service•Presentation•Service
•Platforms•Infrastructure•Platforms•Infrastructure
Information Architecture2
End
Business Architecture Technology ArchitectureArchitecture
Start 1 4
Application ArchitectureUses
Realize3
bangOne.combangOne.com Its.ac.idIts.ac.id
Dependency
Taksonomi Service SOA
bangOne.combangOne.com Its.ac.idIts.ac.id
Prinsip Desain SOATabel 5. 1. Frekuensi Konsumsi ServiceTabel 5. 2. Karakteristik service granularity
1 2 3
Service ContractService Contract Service CouplingService Coupling Service AbstractionService Abstraction
4 5 6
Service ReusabilityService Reusability Service AutonomyService Autonomy Service StatelessnessService Statelessness
7
Service DiscoveryService Discovery
8
Service ComposabilityService Composability
bangOne.combangOne.com
Service DiscoveryService Discovery Service ComposabilityService 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 bottomdibangun melalui proses Top-bottom
bangOne.combangOne.com Its.ac.idIts.ac.id
Domain Driven Design (DDD)
Produksi Aplikasi dan service sesuai domain k l d dib t hk BP l l i knowledge yang dibutuhkan BP, melalui proses Buttom-Up.
Desain aplikasi & service dengan dukungan framework otomasi model.
bangOne.combangOne.com Its.ac.idIts.ac.id
III. Metodologi
Architecture Hirarki service View Model Audience MDD
Perancangan Architecture ViewPerancangan Architecture View
view
Usecase view Business Service Usecase,
swimlane,
BPMN
Product Manager
Business Modeller
Requirement BPD
Analyst
Webservice
programmer
BPD
Development Domain Service Package Diagram System Architect view OO Analyst
Logical view
Entity Service Class Diagram
DB desainer
Soft. Programmer
Web designerUtility Service
DDDg
Process view Integration
Service
Sequence
Diagram System Architect
Physical view Foundation
Service
Deployment
Diagram Network
administrator
www.themegallery.comwww.themegallery.com Company LogoCompany Logo
g administrator
Security Analyst
III. Metodologi
Flowchart Proses BPDFlowchart Proses BPD
www.themegallery.comwww.themegallery.com Company LogoCompany Logo
III. Metodologi
Flowchart Proses DDDFlowchart Proses DDD
www.themegallery.comwww.themegallery.com Company LogoCompany Logo
III. MetodologiPerancangan Framework DDDPerancangan Framework DDD
bangOne.combangOne.com Its.ac.idIts.ac.id
III. Metodologi Enterprise Architecture
Service Oriented Architecture
Framework HybridFramework Hybrid
Domain Driven Design Business Process Driven
Model Driven Development
Intalio BPMS
BPMN Designer Persistence
Domain Model
Grails DDD Framework
HTTP
REST Service Contrac
WSDL+XSD
BPEL
Apache ODE ‐ ESB Controller Service
Mediator
Data Logic
SOAP
ct
Axis2
Webservice Provider
Presentation X‐fire Webservice Provider
Functional Logic Web Application
bangOne.combangOne.com Its.ac.idIts.ac.id
Enterprise Project Management
Project Management Base of Knowledge
IV. Hasil Perancangan
Busine ss P roce ss
A.Initia ting B .Plann ing C .Ex ecuting D.C on tr olling E.Closing
(A.1) Proj ec t Ini tia ting (B.1) Project P lanning (C.1) Project Execut ing (D .1) P roj ec t Co nt roll ing (E.1) Project C losing
(A.2) Cont ra ct Ap poi nting (B.2) Requi rement Col lec ting (C.2) Q uali ty A ssura nc e (D .2) S che dule Controlli ng (E.2) Closi ng A gre ement
(A.3) Pa yme nt St agi ng (B.3) Workbase C reat ing (C.3) Team Managin g (D .3) C ost C ont roll ing
T abel 4. 1. D DD Project M anagem ent
Busine ss
S er vic e
(A.4) Mil est one A ppointi ng (B.4) A cti vi ty Esti mati ng (C.4) St akehol der Expecti ng (D .4) Q ua lit y C ontrollin g
(A.5) W orkbase Inspect ing (B.5) Cost E st ima ting (C.5) Procu re ment Conduc ting (D.5) R isk C ontrolling
(A.6) St ak eholde r Indentifying (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 esource Pl anni ng
(B.9) Commu ni ca tion P lanni ng (B.10) Procurement Planning (B.10) Procurement Planning
(B.11) Risk P la nning
Dom ain
S er vic e I.Inte gration II .S cope III .Tim e IV .C ost V.Quality V I.HR M
VII.
Communi ca tion
VIII .
Procu re ment IX . Risk
Entity Se rvice (I .ES 1)
Proje ct
(II .ES1)
R equirem ent
( III .E S1)
T ask
(IV .ES1)
Cost Typ e
(V .ES1)
Q ua lity Type
(V I.ES 1)
Myc orpora te
(V II.ES 1)
Corpora te
(VIII .ES 1)
Mate rial T ype
(IX.ES1 )
R isk Type
( I .ES 2)
Contra ct
(II .ES2)
Product
Spe ci fic at ion
(III .E S2)
A cti vity
(IV .ES2)
C ost
(V .ES2)
Qua lit y
(V I.ES 2)
D e partment
(V II.ES 2)
Corporat e Type
( V III.ES 2)
Materia l
Res ou rce
( IX.ES 2)
Risk
p
( I .ES 3)
Pa ymen t
(II .ES3)
Se rvice Spe ci fic at ion
( III .E S3)
A cti vity Trac king
(IV .ES3)
Cost H uman Ac tivi ty
(V .ES3)
Q uali ty Perform
(V I.ES 3)
Employee
(V II.ES 3)
S ta keholde r
( V III.ES 3)
Materia l S pec ifica tio n
( IX.ES 3)
R isk P erform
( I .ES 4)
Loca tion (II .ES4)
C ata log Type ( III .E S4)
A cti vity Ma nday (IV .ES4)
Cost pe r-U se (V .ES4)Q uali ty
C ontrol
(V I.ES 4)Career
(V II.ES 4)S ta keholde r
Type
( V III.ES 4)Purchase O rder
( IX.ES 4)R isk Response
( I .ES 5)Closing
(II .ES5)C ata log
( III .E S5)A cti vity
Esti mati on
(IV .ES5)Cost Sa lary
(V I.ES 5)Sa la ry
(V II.ES 5)S ta keholde r
Profil e
( V III.ES 5)PO Su pp ly
(II .ES5)
Wbs
( III .E S6)
A cti vity
O ptimi za tion
(IV .ES6)
Cost Ma te ria l
Ac tivi ty
(V I.ES 6)
Educa tion
(V II.ES 6)
S ta keholde r
Organi za tion
( V III.ES 6)
Suppli er
(II .ES6)
Mil esto ne
( III .E S7)
Ca le nda r
(IV .ES7)
C ost Ma teria l U se
(V I.ES 7)
Tra ining
(V II.ES 7)
S ta keholde r
Pe rformance
( V III.ES 7)
A uc tion
(II .ES7)
R equirem ent App
rova l
(IV .ES8)
C ost N on Ac tivi ty
(V I.ES 8)
H RM
(V II.ES 8)
Me et ing
( S8) ( S9) ( S 9) ( S 9)
bangOne.combangOne.com Its.ac.idIts.ac.id
(II .ES8)
WbsA pprova l
(IV .ES9)
Budge t
(V I.ES 9)
Te am
D evelo pment
(V II.ES 9)
Expe ct ati on
(IV .ES10)
Mo nt h Budget
(V I.ES 10)
Re source
(V II.ES 10)
Message
IV. Hasil Perancangan
I. UseCase: BP Boundary uc Use Case Model
initiating Project
(A.1) Project Initiating
(A.2) Contract A i ti
use
Manager
Appointing
(A.5) Workbase Completing
(A.3) Payment Staginguse
update paymentuse
Manager Completing
(A.4) Milestone Appointing
Stakeholder(owner)use
use
use
update information
(A.6) Stakeholder Indentifying
(A.7) Stakeholder Informing
bangOne.combangOne.com Its.ac.idIts.ac.id
IV. Hasil Perancangan
II. Swimlane: BP Management
bangOne.combangOne.com Its.ac.idIts.ac.id
IV. Hasil Perancangan
III. BPMN: BP Logic
bangOne.combangOne.com Its.ac.idIts.ac.id
Model DDD
I. Package Diagram class Domain Model
class Scope
Wbs
# complete: byte# description: String# effort: byte# endDate: Date# predecessor: Wbs# priori ty: byte# startDate: Date# workbase: String
ChangeRequest
# approval : boolean# description: String# registerDate: Date
WbsApproval
# approve: boolean# description: String# name: ChangeRequest# requestDate: date
class Cost
CostTypeclass Time
Requirement
# description: String# goal: String# predecessor: Requirement# priority: byte# problem: String# project: String# projectName: String# requestDate: String# requirementID: String# requirementName: Customer# strength: byte# weakness: byte
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
# workbase: String# workbaseID: String
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
Catalogue
# catalogueID: String# catalogueName: String# currency: String# description: String# modelImage: byte[]# price: String# publ ish: Date# type: CatalogueType# versionModul : String
+ create() : def+ delete() : def
g# request: String# requestDate: Date# workbase: Wbs
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
# requestDate: date# requestName: String
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
ProductSpecification
# description: String# modelImage: byte[]# productReference: Catalogue# requirement: Requirement# specificationID: String# specificationName: String# technology: String
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
Serv iceSpecification
# description: String# periode: String# requirement: String# serviceID: String# serviceName: String# serviceReference: Catalogue
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
CatalogueType
# description: String# name: String# type: Type
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def «enumeratio...
Type
Product
ScopeSoapServ ice
+ getBac() : String+ getCpi() : String+ getCv() : String+ getEac() : String+ getSpi() : String+ getSv() : String
ScopeRestController
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
ScopeClientServ ice
+ restInvoke(String) : String+ soapInvoke(String) : String
predecessor
Cost
# costType: CostType # description: String# endDate: String# project: String# startDate: Date# value: BigInteger
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
CostHumanActiv ity
# activity: String# approve: boolean# cost: Cost# day: String# total: BigDecimal# workers: int
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
CostNonActiv ity
# cost: Cost# detail: String# endDate: Date# isPayed: boolean# paymentDate: Date# startDate: Date# total: BigDecimal
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
CostMaterialActiv ity
# activity: String# amount: String# approve: boolean# cost: Cost# description: String# material: String# price: BigDecimal# total: BigDecimal
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
CostType
# costTypeID: String# description: String# expence: String# type: String
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
CostManDay
# actday: int# approve: boolean# costActivity: CostHumanActivity# day: int# employee: String# normalactcost: BigInteger# normalcost: BigInteger# overactcost: BigInteger# overcost: BigDecimal# overday: int# salary: BigDecimal
CostMaterial
# amount: int# description: String# isUsed: boolean# materialActivity: CostMaterialActivi ty# price: BigDecimal# total: BigDecimal# usedDate: Date
CostSoapServ ice
+ getBac() : String+ getCpi() : String+ getCv() : String+ getEac() : String+ getSpi() : String+ getSv() : String
CostRestController
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
CostClientServ ice
+ restInvoke(String) : String+ soapInvoke(String) : String
(III.ES5) Activ ityEstimation
# activity: (III.ES2) Activi ty# normalEverage: int# optimistic: int# pesimistic: int# result: int
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def
(III.ES3) Activ ityTracking
# activity: (III.ES2) Activity# complete: byte# date: Date# doWork: String# hours: byte# note: String# status: Info
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
(III.ES4) Activ ityManDay
# active: boolean# activity: (III.ES2) Activity# date: Date# description: String# doWork: String# employee: String# endWorks: Date# hours: byte# startWorks: String
+ create() : def+ delete() : def+ renderJson(map) : def
(III.ES2) Activ ity
# complete: byte# description: String# endDate: Date# predecessor: (III.ES2) Activi ty# priority: String# startDate: Date# task: String# taskID: String# workbase: String
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
(III.ES1) Task
# description: String# taskID: String
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
Activ ityoptimization
# activity: (III.ES2) Activity# doDate: Date# optimization: byte# reason: String
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
Calendar
# date: Date# dayType: String# description: String
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
TimeSoapServ ice
+ getLastRequirementApproval () : String+ getLastWbsApproval() : String+ getLastWbsChange() : String+ getLastWbsComplete() : String
TimeRestController
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
TimeClientServ ice
+ restInvoke(String) : String+ soapInvoke(String) : String
predecessor
class integration
Contract
# contractID: String# contractName: String# description: String# endDate: Date# project: Requirement# startDate: Date# value: BigNumber
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
Project
# description: String# level : Levels
Location
# 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
Payment
# description: String# endPaymentDate: Date# pay: boolean# paymentName: String# paymentStage: String# percentPay: byte# project: Project# startPaymentDate: Date# value: BigNumber
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
«enumeratio...Statuses
pending approval
open
IntegrationSoapServ ice
+ getlastCompletePayment() : String+ getLastFinalPayment() : String
I t ti R tC t ll
delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
Service
class Communication
Budget
# balance: BigInteger# human: BigInteger# income: BigInteger# material: BigInteger# nonactivity: BigInteger# outcome: BigInteger# project: String
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
# salary: BigDecimal# total: BigDecimal# totalAct: BigDecimal
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
CostSalary
# costManDay: CostManDay# day: int# firstDate: Date# isPayed: boolean# lastDate: Date# normalcost: BigDecimal# overcost: BigDecimal# overday: int# paymentDate: Date# salary: BigDecimal# total: BigDecimal
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
# usedDate: Date
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
class HRM
Career
# active: boolean
Training
# description: String# endDate: Date# place: String
Department
# corporate: MyCorporate# departmentName: String# description: String# leader: Career# top: Department
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
Mycorporate
# address: String# businessLicence: String# corporateID: String# corporateName: String# corporateType: String# email: String# phone: String# place: String# poBox: String# taxNumber: String# websi te: String# zipCode: String
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
Resource
HrmSoapServ ice
+ getActiveSalary() : String+ getTotalProjectEmployee() : String
HrmRestController
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
HrmClientServ ice
+ restInvoke(String) : String+ soapInvoke(String) : String
have Many
have partdepartment
top
renderXml(map) : def+ show() : def+ update() : def
+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
ProjectToCost
project
Currency
# currency: String# project: Requirement
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
Closing
# 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
# 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
open close failed
«enumeratio...Lev els
low medium high enterprise
IntegrationRestController
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
IntegrationClientServ ice
+ restInvoke(String) : String+ soapInvoke(String) : String
predecessor
Stakeholder
# corporates: Corporate# idNumber: String# jobs: Jobs# name: String# profile: Profile# stakeholderID: String# stakeholderType: StakeholderTypes
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
«enumeration»StakeholderTypes
customer sponsor consul tan provider owner
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
Meeting
# day: Date# description: String# document: File# name: String# participant: Stakeholder# project: Project
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
Expectation
# document: File# problem: String# project: Project# request: String# response: String# stakeholder: Stakeholder
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
Performance
# contractRating: int# costRating: int# productRating: int# project: Project# scheduleRating: int# stakeholder: Payment# summary: String# workRating: int
+ create() : def+ delete() : def
Corporate
# businessLicence: String# corporateID: String# corporateType: Areas# level: Levels# name: String
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : defProfile
# address: String# email : String# phone: String# photo: byte[]# poBox: String# taxNumber: String# website: String
«enumeratio...Jobs
Analyst Architecht Developer Director Manager
«enumeratio...Raci
Responsbility Accountabi lity Consult Inform
StakeholderOrganization
# endWork: Date# jobDescription: String# leader: StakeholderOrganization# project: String# raci: Raci# resource: StakeholderTypes# stakeholderName: Stakeholder# startWork: Date
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
CommunicationSoapServ ice
+ getlastCompletePayment() : String+ getLastFinalPayment() : String
CommunicationRestController
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
CommunicationClientServ ice
+ restInvoke(String) : String+ soapInvoke(String) : String
1give
1..*
leader
1..*
hasMany
1..*
has
has
has
1..*participate
0..*
1
give
0..*
hasMany
Employee
# address: String# birthday: Date# companyID: String# email: String# EmployeeType: EmployeeTypes# name: String# phone: String# place: String# String: int# taxNumber: String# website: String
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
# active: boolean# comment: String# department: Department# employee: Employee# endCareer: Date# jobDescription: String# performance: byte# resource: Resource# startCareer: Date
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
Education
# comment: String# employee: Employee# grade: byte# lastEducation: String# pass: Date# start: Date
# resource: HumanResource# startDate: Date# trainingName: String
Vacation
# employee: Employee# endDate: Date# granted: boolean# resource: HumanResource# startDate: Date# vacation: VacationTypes
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
Salary
# Active: boolean# employee: Employee# endDate: Date# startDate: Date# value: BigDecimal
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
TeamDevelopmet
# activity: String# description: String# resource: HumanResource
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
«enumeratio...EmployeeTypes
fix contract free
OrganizationStructureHumanresource
# endWork: Date# jobDescription: String# leader: Employee# organizer: Department# project: Project# resource: Resource# startWork: Date
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
# description: String# resource: String
VacationTypes
# Description: String# type: String
TeamMembers
# employee: Employee# teamDevelopment: TeamDevelopment
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
leader
have training
1
has leader
has resource
1..*
have employee
hasresource
class Risk
Risk
# d i ti St i
RiskType
class Quality
QualityType
# description: String# qualityID: String# qualityName: String
Quality
# approvalDate: Date# gapTolerance: byte# project: String
ProjectToStakeholderorganization
ProjectToQualityProjectToRisk
ProjectToMaterialresource
ProjectToHumanresource
«enumeratio...Levels
low medium high enterprise
+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
# website: String# zipCode: String
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
CorporateType
# corporateType: String# description: String
hashas
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
class Procurement
MaterialResource
# amount: int# consumption: int# description: String# material: Material# project: String# status: String# stock: int
+ create() : def+ delete() : def+ getMaterialConsumption() : int+ getMaterialStock() : int+ renderJson(map) : def+ d R t( ) d f
MaterialSpecification
# code: String# description: String# material: Material# spec: String# uni tType: StringPOsupply
Material
# description: String# materialID: String# materialName: String# unitType: String
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
ProcurementSoapServ ice
+ getlastCompletePayment() : String+ getLastFinalPayment() : String
ProcurementRestController
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
ProcurementClientServ ice
+ restInvoke(String) : String+ soapInvoke(String) : String
RiskIdentification
# activity: String# dateUpdate: Date# recommendation: String# risk: Risk# riskGrade: int# riskResponse: int
# description: String# opportunity: byte# project: String# raisedBy: String# raisedDate: Date# riskID: String# riskType: RiskType# signature: boolean# strength: byte# threat: byte# worst: byte
# description: String# impact: byte# priority: byte# probabili ty: byte# riskCatagory: String# type: Types
# qualityName: String
QualityControl
# activity: String# grade: int# qual ity: Quali ty# recommendation: String# updateDate: Date
# project: String# quality: QualityType# raisedBy: Date# recommendation: String# requestDate: Date# signature: boolean
www.bangOne.comwww.bangOne.com Its.ac.idIts.ac.id
+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
PurchaseOrder
# amount: int# complete: int# description: String# material: MaterialResource# orderType: OrderTypees# pricePerUnit: BigDecimal# purchaseDate: Date# supplier: Supplier
+ create() : def+ delete() : def+ getComplete() : int+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
# value: int
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
Supplier
# note: String# registerDate: Date# supplier: String
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
# amountSupply: int# description: String# purchaseOrder: PurchaseOrder# supplyDate: Date
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
Auction
# auctionDate: Date# description: String# purchaseOrder: PurchaseOrder# winner: Suppl ier
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
IV. Hasil Perancangan
II. Class Diagram class integration
Payment
Contract
# contractID: String# contractName: String# description: String# endDate: Date# project: Requirement# startDate: Date# value: BigNumber
+ create() : def+ delete() : def
Location
# address: String# city: String# latitude: String# longitude: Strng# mapType: MapTypes# project: Requirement
+ create() : def+ delete() : def+ renderJson(map) : def
# description: String# endPaymentDate: Date# pay: boolean# paymentName: String# paymentStage: String# percentPay: byte# project: Project# startPaymentDate: Date# value: BigNumber
+ create() : def+ delete() : def
d J ( ) d f + renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
Project
# description: String# level: Levels
+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
«enumeratio...Statuses
pending approval
open
IntegrationSoapServ ice
+ getlastCompletePayment() : String+ getLastFinalPayment() : String
# 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
open close failed
«enumeratio...Levels
low medium high enterprise
IntegrationRestController
+ create() : def+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
Currency
# currency: String# project: Requirement
+ create() : def+ delete() : def+ d J ( ) d f
Closing
# deliveryDate: Date# description: String# project: Requirement# satisfy: Date
+ create() : def
+ show() : def+ update() : def
IntegrationClientServ ice
+ restInvoke(String) : String+ soapInvoke(String) : String
predecessor
www.bangOne.comwww.bangOne.com Its.ac.idIts.ac.id
+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
()+ delete() : def+ renderJson(map) : def+ renderRest(map) : def+ renderXml(map) : def+ show() : def+ update() : def
IV. Hasil Perancangan
III. Sequence Diagram sd Requirements Model
User
View Controller Service Model Persistance
requestApp()
BindingRequest()
Use Service()
Query()
Mapping()
Query()
Synch()
Return Object Data()
BindingReturn()
ResponseApp()
www.bangOne.comwww.bangOne.com Its.ac.idIts.ac.id
IV. Hasil Perancangan
III. Deployment Diagram deployment Infrastruktur SOA
device «device»«device»Intalio - BPMS Serv er
«executionEnviron...Apache Tomcat -
Webserv er
GRAILS - Application Serv er
«executionEnviron...Apache Tomcat -
Webserv er
«executionEnviro...Apache ODE -
Enterprise Serv ice Bus
«executionEnviron...Axis - Webserv ice
Prov iderGroov y
«device»Web
JQuery GSP
«device»Jav a TM
JVM
WSDL - SOAP
WSDL - RESTA
BPMN Designer
Groov y
Searchable Spring Security
JRE
Hibernate
«device»MySql - Datebase Serv er
Jasper«executionEnviron...
Data serv ice
www.bangOne.comwww.bangOne.com Its.ac.idIts.ac.id
V. Implementasi
Orkestrasi BPMN
bangOne.combangOne.com Its.ac.idIts.ac.id
V. Implementasi
Orkestrasi BPMN
bangOne.combangOne.com Its.ac.idIts.ac.id
V. Implementasi
Orkestrasi BPMN
bangOne.combangOne.com Its.ac.idIts.ac.id
V. Implementasi
Sistem Terintegrasi
bangOne.combangOne.com Its.ac.idIts.ac.id
V. Implementasi
Sistem Terintegrasi
bangOne.combangOne.com Its.ac.idIts.ac.id
V. Implementasi
Sistem Terintegrasi
bangOne.combangOne.com Its.ac.idIts.ac.id
V. Implementasi
Sistem Terintegrasi
bangOne.combangOne.com Its.ac.idIts.ac.id
V. Implementasi
Sistem Terdistribusi
bangOne.combangOne.com Its.ac.idIts.ac.id
V. AnalisaPrinsip Desain SOA Subyektif Grade
Service ContractService Contract
Service Coupling
Service Abstraction
Service Reusability
Service Autonomy
Service StatelessnessService Statelessness
Service Discovery
bangOne.combangOne.com Its.ac.idIts.ac.id
Service Composability
VI. Pembahasan
Dari penggunaan kombinasi service REST dan SOAP didapatkan hasil yang paling dan SOAP didapatkan hasil yang paling signifikan adalah peningkatanreusabilitas service.
bangOne.combangOne.com Its.ac.idIts.ac.id
VI. Kesimpulan
Dari hasil penelitian dengan penerapan arsitektur model dan desain SOA dengan menggunakan BPD dan DDD dapat disimpulkan bahwasanya:
bangOne.combangOne.com Its.ac.idIts.ac.id
VI. Kesimpulan1. Dari penelitian didapatkan bahwasanya arsitektur
model memenuhi kebutuhan pada perspektif bisnis maupun teknis hal tersebut menunjukkan arsitektur maupun 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 arsitektur SOA. Dengan model yang sederhana dan dimengerti dengan mudah, dapat mengurangi secara signifikan waktu yang dibutuhkan pada model dan desain, sehingga mampu meningkatkan efisiensi dan , gg p gefiktifitas 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.combangOne.com Its.ac.idIts.ac.id
VI. Kesimpulan2. Dari analisa business process dan domain knowledge
project management melalui pendefinisiannya pada hirarki taksonomi service dengan pemilahan 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 salah satu layer yaitu entity service telah mampu menghasilkan service untuk kebutuhan yang luas menggunakan REST, sedangkan untuk kebutuhan yang spesifik tetap menggunakan utility service SOAP.p p gg y
bangOne.combangOne.com Its.ac.idIts.ac.id
VI. Kesimpulan3. Perangkat lunak project management yang dihasilkan
memiliki desain yang baik dengan keseluruhan tier aplikasi diatur oleh domain model Demikian pula pada aplikasi diatur oleh domain model. Demikian pula pada penghasilan service disisi provider yang mengenkapsulasi cara pengaksesannya pada pola akses yang sama dan satu jalan melalui controller akses yang sama dan satu jalan melalui controller mediator untuk REST dan service provider untuk SOAP, yang memudahkan dalam pengaksesan pada sistem terintegrasi maupun terdistribusi. g p
bangOne.combangOne.com Its.ac.idIts.ac.id
VI. Kesimpulan4. Dari hasil pengukuran terhadap kualitas service dan
analisa yang dilakukan menunjukkan sistem sudah memenuhi kebutuhan enterprise SOA dan untuk memenuhi kebutuhan enterprise SOA, dan untuk perbaikan kualitasnya diperlukan peningkatankapasitas infrastruktur framework serta desain pada standar keamanan enterprise SOA yang memenuhi standar keamanan enterprise SOA yang memenuhi aspek keamanan service, karena aspek ini masihmemiliki nilai terendah pada implementasinya dengan nilai pengukuran hanya mencapai 1,5 atau rendah dari p g y p ,penerapan sistem keamanan enterprise karena hanya mencakup aplikasi dan service RESTful melalui penerapan standar keamanan aplikasi menggunakan Spring security.
bangOne.combangOne.com Its.ac.idIts.ac.id
VI. Saran
1. Dengan kelebihan pada desain dari model dan dukungan infrastruktur 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 mengurangidimanfaatkan dalam mengurangikompleksitas pembangunan perangkat lunak dalam skala enterprise. lunak dalam skala enterprise.
bangOne.combangOne.com Its.ac.idIts.ac.id
VI. Saran
2. Sedangkan dalam pengembangan service yang kaya dengan informasi dan service yang kaya dengan informasi dan fungsi sebagaimana yang dihasilkan dari penelitian ini dapat digunakan dalam pengembangan penelitian-penelitian berikutnya pada pengembangan rekayasa pengetahuan pengembangan rekayasa pengetahuan, penggalian data, ataupun analisa semantik berbasis service.semantik berbasis service.
bangOne.combangOne.com Its.ac.idIts.ac.id
LOGOLOGO
Wa’alaikum salam.www.bangOne.com