โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
Session1: Introduction to SOA
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
หวขอนาเสนอ
• การพฒนาระบบซอฟตแวรแบบองครวม• Service เบองตน• Architecture เบองตน• SOA เบองตน• สรป
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
ลองคนคาวา “SOA”
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
ขอสงสยเกยวกบ SOA
• SOA คออะไร?• ทาไมตองใช SOA?• ใช SOA เมอไร?• พฒนา SOA อยางไร?• ไมใช SOA ไดไหม?• เรมตนตอนน ชาไปหรอไม?• จะเปลยนอกไหมน?• จะหาขอมลเกยวกบ SOA ไดทไหน?
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
ประโยชนของ SOA
• SOA ไดรบการกลาวถงวา – สามารถทาใหการพฒนาระบบเปนไปแบบองครวม (Integration) ดวยคาใชจายทคมทน
– สามารถทาใหระบบซอฟตแวรเดมทมใหบรการแกระบบซอฟตแวรอนๆ ได (Reusability)
– สามารถปรบเปลยน Implementation ของบรการไดโดยไมกระทบกบผใชบรการอนๆ
– สามารถทาใหระบบซอฟตแวรเดมแบบ Legacy นากลบมาใชรวมกนแบบองครวมได เกดความคมคาในการลงทน
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
การพฒนาระบบซอฟตแวรแบบองครวม
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
ววฒนาการของการพฒนาระบบซอฟตแวร
• Structural • Object Oriented• Component Based• Service Oriented
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
ความสาเรจในการพฒนาระบบซอฟตแวร
• Build the proven assets (Components/Services) • Reuse the proven assets• Integrate the proven assets to obtain new solution
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
การรวมระบบซอฟตแวรแบบองครวม
• การรวมแบบ Data-Level Integration• การรวมแบบ Application-Level Integration
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
การรวมระบบซอฟตแวรแบบ Data-Level Integration
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
การรวมระบบซอฟตแวรแบบ Application-Level Integration
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
Service เบองตน
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
Service คออะไร
• “A Service is a thing that fulfills a purpose. A Service is a worker employed to achieve a specific end goal for a requester”
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
Service Granularity
• ขนาดของ Service กาหนดดวย Level of Granularity– Small in Scope (to retrieve information)– Large in Scope (to perform business process)
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
Service
• A Service is an abstract resource that has– Name– Job (a single distinct business function/process)– Job Tasks– Contact Information– Policy on security– Etc. ServiceName
-Job (Distinct function)-Contact Information
-Policy on Security,… etc.
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
Service Collaboration• Service ทมอยจะทางานแบบ Collaboration ดงน
– Orchestration คอม Primary Service เปนผนาเรยกใช Simple Services อนๆตามลาดบ อยางลงตว (Sequence of actions ฝงอยในPrimary Service)
– Business Interactionคอม Coordination Mechanism ททาหนาทจดการ Sequence of actions ของ Long-lived Services โดยไมตองฝงไวในService ใด (Coordination Mechanism อาจจะเปน Business Process Execution Engine, Work Flow Engine, หรอ ESB)
– Interceptionคอม Intermediary Services กลางทคอยชวยรบ/สงระหวางทางจนไปถงผรบปลายทาง (Service ปลายทาง) โดยทผสงตวจรง (Requesting Entity) และผรบปลายทางไมทราบวามIntermediary Services เหลาน
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
Service ทาหนาทแบบใดบาง• Request/Reply
– เรยกใชและตอบกลบทนท• Worker
– ทางาน Function ทมการเปลยนสถานะของขอมลจรง (Changing State of the thing)
• Monitor – ทาหนาท Observe และรายงานผลตามกฎทไดรบ ไมทาอะไรเกนกวานน
• Agent – ทาหนาท Observe และเมอทราบผลกมการกระทาตอเนองจากผลทไดรบเลย
• Intermediary – ทาหนาทรบ/สง ขอความไปมา โดยทาหนาทสาคญระหวางทางแบบ Value-added เชน Translation การตรวจสอบความปลอดภย เปนตน
• Aggregator – รวบรวมผลลพธจาก Services ตางๆ เพอทาหนาทประสานระหวางกลม Services ทมอยมากมาย
• Process – เปน Long-running Service ทาหนาทตดตอกบ Services ทจาเปนในการทางานของ
Business Process หนงๆ ใหสาเรจอยางแทจรง
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
ตวอยาง Service
• Services are reusable components that represent business tasks– Customer lookup– Account lookup– Credit card validation– Credit check– Hotel reservatio– Interest calculation
• Services can be– Globally distributed across organizations– Reconfigured into new business processes
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
Monolithic Service (Runtime)
Decomposed into smaller logics + relationships
CustomerRelation Service
CustomerRelationService
(Monolithic Service)
UpgradeStatus
CheckCredit
CheckMember Register
Member
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
Service and Its Environment
Environment (Outside World)
CustomerRelation Service
UpgradeStatus
CheckCredit
CheckMember Register
Member
Consumer1
Consumer2
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
Service is Reusable
CustomerRelation Service
UpgradeStatus
CheckCredit
CheckMember Register
Member
Consumer1
Place Order
Approve Order
Order Processing Service
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
How Service Encapsulate Logics
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
How Service Relates
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
How Services Communicate
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
How Services are designed
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
Architecture เบองตน
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
Architecture คออะไร• IEEE 1471-2000
“Software architecture is the fundamentalorganization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution”
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
SOA เบองตน
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
SOA คออะไร
• Service-oriented architecture is a way of designing systems that enables– Cost-efficiency– Agility– Adaptability– Leverage of legacy investments
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
สวนประกอบของ SOA
• SOA เปนสถาปตยกรรมระบบทประกอบดวย– Loosely Coupled Services– Described by platform-agnostic interfaces– that can be discovered and invoked dynamically
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
A Loosely Coupled Service
ServiceInterface
ServiceImplementation
A Service
• Loosely Coupled หมายถง Service Implementation แยกออกจาก Service Interface
New Implementation
สามารถเปลยนเปน New Implementation โดยไมกระทบ Service Interface
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
Platform-Agnostic Interface
• Client ทม Platform ทตางกนสามารถมาใชบรการ Service ไดโดยผานทาง Interface ชนดน
Service Consumer
.NET Platform
A Service
Java Platform
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
Service can be Discovered
• Service Consumer ไมตองรจก Service Provider มากอนเหมอนกบ Client-Server ทวไป
ServiceBroker
ServiceConsumer
ServiceProvider
SOAP
Find Register
Bind
ServiceContract by WSDL
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
SOA ประสานการทางานกบ Legacy System
Service Consumer
Interface Proxy
ServiceInterface
ServiceImplementation
New Service
WrappedLegacy
CompositeService
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
Abstract SOANew CRM
Application
GLLegacy System
InventoryLegacy System
Post GL ReverseGL
Check Out
GetProduct
Info
PartnerApplication
Discovery Security StandardsDev Tools
SOA Infrastructure
Service
ExternalSystem
Internet
โครงการการวศวกรรมซอฟตแวรแผนใหมสาหรบวสาหกจโดยสถาปตยกรรมเชงบรการ
ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย
Service-Oriented ArchitectureIntroduction to SOA
สรป
• Service Oriented Architecture เปนสถาปตยกรรมของการออกแบบระบบประเภทหนงทรจกกนมาระยะหนงแลว
• SOA เนนการรวมระบบซอฟตแวรเขาแบบองครวม โดยใหมการกาหนด Service และCollaborate ระหวางกนและกนเทานนในระดบ Application-Level
• มเทคโนโลยในการพฒนา SOA หลากหลายแบบทควรเลอกให เหมาะสม