1. Introduction to
Service Oritened Architecture
Assoc Prof. Dr.Thanachart Numnonda
and
Asst Prof.Thanisa Kruawaisayawan
May 2010
www.thaijavadev.com
Thanachart Numnonda and Thanisa Kruwaisayawan www.thaijavadev.com 1
2. บทท 1 SOA: สถาปตยกรรมเชงบรการ
SOA (Service-Oriented Architecture) เปนหลกการการออกแบบสถาปตยกรรมซอฟตแวรองคกร
(Software Enterprise Architecture) ทมการพดถ!งกนมาก โดยหลายๆ องคกรพยายามทจะออกแบบระบบทางด'าน
ไอทให'เข'าส+ระบบ SOA ซ!งส,งทท-าให' SOA ถกพดถ!งอย+างมากในปจจ.บน ก/ค0อการออกแบบทม.+งเน'นให'แอพพล,เคชน
สามารถท-างานร+วมกนได' โดยไม+ข!2นอย+กบแพลตฟอรม ภาษาคอมพ,วเตอร และเทคโนโลยทใช'ในการพฒนา
แต+เน0องจาก SOA เปนหลกการในการออกแบบ ดงน2นการท-าความเข'าใจและน-าไปพฒนาให'ใช'งานได'จร,งน2น
ยงเปนเร0องทยาก จนเม0อเว/บเซอรว,ส (Web Service) ซ!งเปนว,ธการหน!งในการพฒนาตามหลกการของ SOA เก,ดข!2น
มา จ!งท-าให'แนวค,ด SOA ได'รบความน,ยมข!2นมาอย+างมาก จนบางคร2งท-าให'หลายๆ คนค,ดว+า SOA และ เว/บเซอรว,ส
เปนเร0องเดยวกน แต+จร,งๆ แล'ว SOA เปนแนวค,ดหร0อรปแบบในการออกแบบการสถาปตยกรรมซอฟตแวรองคกร
แบบหน!ง ส+วนเว/บเซอรว,สเปนว,ธการหน!งในการพฒนาเซอรว,สตามหลกการของ SOA เท+าน2น ท2งน2อาจใช'แนวทางอ0น
ในการพฒนาเซอรว, ส ข องระบบ SOA ก/ ไ ด' เช+ น การใ ช' CORBA (Common Object Request Broker
Architecture) หร0อ Java RMI (Remote Method Invocation)
บทความน2จะอธ,บายถ!งหลกการของ SOA โดยจะกล+าวถ!งต2งแต+พฒนาการของ Distributed Computing จน
มาถ!งสถาปตยกรรมแบบ SOA และโซลชนในการพฒนา SOA ทต'องใช' ESB (Enterprise Service Bus) และเคร0อง
ม0อทางด'านซอฟตแวร (Software Tool) อ0นๆ
1.1 พฒนาการของระบบ Distributed Computing
ระบบสถาปตยกรรมเช,งบร,การหร0อ SOA มพฒนาการมาจากระบบ Distributed Computing ทเปนการ
พฒนาสถาปตยกรรมซอฟตแวรองคกร (Software Enterprise Architecture) ซ! งเร, มต2 ง แต+ ย. ค แรกทเปน
MainFrame ไปส+ Web Tier ดงแสดงในตารางท 1.1 ซ!งจะเห/นว+าในแต+ละย.คจะมเทคโนโลย ภาษาคอมพ,วเตอร และ
เหต.ผลเช,งธ.รก,จทแตกต+างกน
Thanachart Numnonda and Thanisa Kruwaisayawan SOA: สถาปตยกรรมเชงบรการ 2
3. ตารางท 1.1 การพฒนาการของสถาปตยกรรมซอฟตแวรองคกร
สถาปตยกรรม ชวงเวลา ภาษาคอมพวเตอร เหตผลธรกจในการผลกดน
Mainframe 1960s - 1980s Procedural (COBOL) ธ.รก,จแบบอตโนมต,
Client/Server 1980s - 1990s Database (SQL) และ Fat การกระจายการค-านวนไปท
Client (VB, เคร0องเดสตท/อป
PowerBuilder)
Web / N-Tier 1990s - 2000s Object-Oriented (Java, Internet / e-Business
PHP, COM)
Service Oriented 2000s Message Oriented Business Agility
(XML)
สถาปตยกรรมทหลายๆ องคกรพฒนาอย+ในปจจ.ปนค0อ Web Application แบบ Web Tier ดงแสดงในรปท
1.1 ซ! งส+ ว นมากจะพฒนาโดยใช' ภ าษาหร0 อ เทคโนโลยเช+ น Java EE (Servlet/JSP), .NET (ASP) หร0อ PHP บน
เคร0 อง Web Server ซ! งจะต' อ งพฒนาโปรแกรมท2 ง ส+ ว นแสดงผล (Presentation Logic) และส+ ว นประมวลผล
(Business Logic) นอกจากน2ผ'พฒนาจะต'องพฒนาส+วนทเปนเซอรว,สระบบ (System Service) เช+น Concurrency,
Load Balancing, Transaction และ Security เอง ท- า ให' ก ารพฒนา Web Application แบบ Web Tier ส- า หรบ
ระบบขนาดใหญ+ท-าได'ยาก
รปท 1.1 Web Application Architecture
แนวทางการพฒนาระบบ Web Applications อกรปแบบค0อการพฒนาระบบแบบ N-Tier ดงแสดงในรปท
1.2 ซ! งจะมการน-าเอา Application Server มาเปนม,ดเด,2ลแวร (Middleware) เพ0อจดการส+วนทเปนเซอรว,สระบบ
และเร0องทเกยวข'องกบทรพยากรต+างๆ ของระบบ และให'นกพฒนาสามารถทจะเน'นการพฒนาเฉพาะส+วนประมวลผล
บนเคร0 อง Application Server โดยการสร' า งส+ ว นประกอบซอฟตแวร (Software Component) หร0 อ เซอรว, ส
(Service) และแยกการพฒนาส+วนแสดงผลไว'บน Web Server
Thanachart Numnonda and Thanisa Kruwaisayawan SOA: สถาปตยกรรมเชงบรการ 3
4. ซ! งว, ธ การพฒนาส+ ว นประกอบซอฟตแวรหร0 อ เซอรว, ส อาจใช' Java EE (EJB), .NET (NET Managed
Component) หร0อระบบ Legacy (IDL/CORBA) โดยใช'โพรโทคอลเฉพาะทเปน Binary Protocol ดงน2
• RMI/IIOP ส-าหรบ Java EE
• COM ส-าหรบ Microsoft
• CORBA ส-าหรบระบบมาตรฐานทวไป
รปท 1.2 N-Tier Architecture
ระบบ Web Application ในรปแบบถดมาก/ค0อการน-าเว/บเซอรว,สเข'ามาใช' โดยการเปลยนโพรโทคอลเฉพาะ
เหล+าน2นให'เปนโพรโทคอลกลางทมมาตรฐาน เช+นการน-าโพรโทคอล SOAP หร0อ REST มาใช'ในการเรยกเซอรว,ส
แทนทการใช'โพรโทคอล RMI/IIOP หร0อการน-า WSDL มาใช'ในการประกาศเซอรว,ส ดงตวอย+างในรปท 1.3 ซ!ง
เปนการแสดงการเปลยนส+วนประกอบซอฟตแวรทใช' Java EE ให'เปนส+วนประกอบเซอรว,ส (Service Component)
โดยการเพ,ม Web Service Layer (ในทางปฏ, บต, Java Application Server จะสนบสน.น การเพ,ม Web Service
Layer อย+แล'ว จ!งไม+จ-าเปนต'องเพ,มเคร0อง Server)
การน-าเว/บเซอรว,สมาใช' จะท-าให'การต,ดต+อกนของส+วนประมวลผลและส+วนแสดงผลสามารถท-าได'หลาก
หลายข!2น กล+าวค0อการพฒนาส+วนแสดงผลไม+จ-าเปนต'องผกต,ดอย+กบเทคโนโลยของส+วนประมวลผล ตวอย+างเช+นไม+
จ-าเปนต'องใช' JSP/Servlet ในการเรยกเว/บเซอรว,สทพฒนาโดยใช' Java EE แต+สามารถใช' ASP.NET เรยกแทนได'
ดงแสดงในรปท 1.4 ดงน2นการพฒนา Web Application โดยใช'เว/บเซอรว,ส จ!งสามารถเช0อมโยงระบบไอททหลาก
หลาย (Heterogeneous System) ให'สามารถท-างานร+วมกน (Interoperability) ได'ดนนเอง
Thanachart Numnonda and Thanisa Kruwaisayawan SOA: สถาปตยกรรมเชงบรการ 4
5. รปท 1.3 N -Tier Architecture Using Web Service
รปท 1.4 .NET and Java EE Interoperability
1.2 ความหมายของ SOA
ระบบสถาปตยกรรมเช,งบร,การหร0อ SOA เปนแนวค,ดและว,ธการออกแบบระบบสถาปตยกรรมองคกร ให'อ,ง
กบเซอรว,ส (Service)แบบกระจาย (Distributed) ทสามารถใช'งานร+วมกนได' และน-ากลบมาใช'ใหม+ได' ท2งน2ระบบ
ไอทขององคกรต+างๆ ในปจจ.บนมกจะมสถาปตยกรรมแบบ Silo-Oriented Architecture ซ!งการพฒนาระบบไอทใน
แต+ละระบบต+างเปนอ,สระต+อกน อาจมระบบทใช'เทคโนโลยทแตกต+างกนเช+น Java, .NET, Oracle หร0อ SAP เปนต'น
จ!งท-าให'ยากต+อการเช0อมต+อ บ-าร.งรกษายาก มค+าใช'จ+ายสง ปรบเปลยนระบบได'ยาก และการพฒนาระบบใหม+ๆ เปนไป
ด'วยความล+าช'า ดงแสดงในรปท 1.5
Thanachart Numnonda and Thanisa Kruwaisayawan SOA: สถาปตยกรรมเชงบรการ 5
11. 1.3.2 Business Process Engine
หลกการของ SOA ให'ความส-าคญกบการพฒนากระบวนการทางธ.รก,จทจะสามารถปรบเปลยนได'ง+าย โดย
การน-าเซอรว,สทมอย+มาประกอบเปนกระบวนการทางธ.รก,จ (Business Process) ท2งน2ข!2นอย+กบว+าจะเขยน Business
Process ในรปแบบของ XML ซ!งในปจจ.บนมภาษาทสามารถเขยนได'หลายภาษาอาท,เช+น BPEL, BPSS หร0อ UML
เปนต'น แต+การจะเรยกใช' Business Process ได'อย+างอตโนมต, จะต'องมซอฟตแวร Business Process Engine ทจะ
ท-าหน'าทรน ตรวจสอบ และจดการซอฟตแวร Business Process ดงกล+าว รวมถ!งเรยกใช'เซอรว,สต+างๆทเกยวข'อง ซ!ง
อาจรวมถ!งการรน Business Rules ทเกยวข'อง
ซอฟตแวร Business Process Engine อาจจะเปนโปรแกรมส+วนหน!งทมากบ ESB หร0ออาจเปนซอฟตแวรท
แยกต+ า งห า กก/ ไ ด' ซ! ง ภาษ า มา ตร ฐา น ทน, ย มใ ช' ใ น กา ร พ ฒน า Business Procss ค0 อ BPEL ห ร0 อ เ รย ก
ว+า WS4BPEL(Web Services- Business Process Execution Language) ดงนนจะพบว+า ซอฟตแวร Business
Process Engine ส+วนใหญ+จะสนบสน.นภาษาดงกล+าว
1.3.3 Web Server
สถาปตยกรรม SOA สามารถพฒนา Access Layer ได'หลายรปแบบ แต+วธการทน,ยมในปจจ.บนค0อการเรยก
,
ใช'ผ+านเว/บ โดยใช' Web Server ซ!งสามารถทจะเล0อกใช' Web Server ทมเทคโนโลยใดๆก/ได'โดยไม+ได'ผกต,ด กบ
เทคโนโลยของ Process Layer โปรแกรม Web Application ทพฒนาข!2นจะท-าหน'าทในการเปน User Interface
และเรยกใช' Business Process ทพฒนาข!นใน Process Layer
2
1.3.4 Registry & Repository Server
ซอฟตแวรม,ดเด,2ลแวรเพ0อทจะเก/บเซอรว,สต+างๆ ทมอย+ รวมไปถ!งการเก/บโกระบวนการทางธ.รก,จ (Business
Process) ต+ า งๆ ทพฒนาข!2 น มา ซ! ง Registry Server ส- า หรบกรณของเซอรว, ส ทเปน Web Services ค0 อ UDDI
Server
1.3.5 Messaging Server
ซอฟตแวรม,ดเด,2ลแวรเพ0อทจะเปนตวกลางในการส+งผ+านข+าวสาร (message) ระหว+างเซอรว,สต+างๆ ท2งน2เพ0อ
ประกนได'ว+าข+าวสารสามารถส+งถ!งเซอรว,สปลายทางได'อย+างถกต'อง (Guarantee Message Delivery) โดยสามารถ
ส+งข+าวสารได'ท2งในรปแบบ Queue และ Topic
Thanachart Numnonda and Thanisa Kruwaisayawan SOA: สถาปตยกรรมเชงบรการ 11
12. 1.3.6 เคร'องม'อการพฒนาโปรแกรม
การพฒนา Business Process และ Web Application จะต'องมเคร0องม0อในการพมนาโปรแกรม โดยอาจใช'
เคร0องม0อช.ดเดยวกนหร0อ อาจใช'เคร0องม0อส-าหรบแต+ละส+วนทต+างกนก/ได' เช+น อาจใช' BPEL Designer ส-าหรบการ
พฒนา Business Process แยกออกจาก Programming Tool ส-าหรบพฒนา Web Application
1.3.7 ระบบ Secure SOA
การพฒนา SOA ทดต'องมการท-า QoS ในด'าน Authentication ของเซอรว,สาต+างๆ ดงน2นระบบ SOA ส+วน
ใหญ+จ!งมระบบ Identity Management ในการก-าหนดส,ทธ,Bผ'ใช' และมระบบ SSO (Single Sign On) เพ0อให'ผ'ใช'
ล/อกอ,นเพยงคร2งเดยว
ระบบ SOA ขนาดใหญ+อาจมสถาปตยกรรมฮารดแวรดงแสดงในรปท 1.9 แต+องคกรส+วนมากมกจะสร'างระบบ
SOA ส-าหรบงานเฉพาะด'านและเล0อกใช' ESB ทไม+ได'มความซบซ'อนมาก (Lightweight ESB) จ!งมกจะมโครงสร'าง
ดงรปท 1.10
1.4 องคกรทน&าระบบ SOA มาประยกตใช)
แม'ว+า SOA จะมประโยชนและผลตอบแทนการลงท.นในระยะยาว (ROI: Return of Investment) จะค.'มค+า
แต+การลงท.นเร,มต'นค+อนข'างสง เพราะต'องการซอฟตแวร ESB และฮารดแวรขนาดใหญ+ทมหลาย CPU ประกอบกบ
ค+าพฒนาระบบค+อนข'างสงเน0องจากต'องการทมงานทเข'าใจกระบวนการธ.รก,จด'านน2น ในปจจ.บนองคกรในประเทศ
ไทยหลายๆ องคกรเร,มมโครงการ SOA เข'ามาท2งในภาคธ.รก,จการเง,น โทรคมนาคม และภาครฐ ซ! งจะเห/นได'ว+า
โครงการเหล+า น2มมลค+า หลายส,บ ล'า นบาท และผ' พฒนาไม+ ใ ช+ แค+ น กพฒนาโปรแกรม (Developer) แต+ ต' อ งเปนผ'
เชยวชาญด'านธ.รก,จน2นๆ ด'วย เพราะการน,ยามเซอรว,สและการพฒนากระบวนการทางธ.รก,จต'องมความเข'าใจธ.รก,จน2น
เปนอย+างด
ในต+างประเทศมการน-า SOA มาประย.กตใช'ในองคกรต+างๆ จ-านวนมากท2งในภาคการเง,น โทรคมนาคม ค'า
ปลก ภาครฐ และระบบสาธารณส.ข ตวอย+างเช+น Australia Department of Defense, Us Army, Center Point of
Energy, Blue Cross, General Motors, ABN-AMRO และ Smart เปนต'น
ตวอย+างของระบบสาธารณส.ขใน UK (National Healthcare System) เปนตวอย+างหน!งทน+าสนใจ เพราะ
Thanachart Numnonda and Thanisa Kruwaisayawan SOA: สถาปตยกรรมเชงบรการ 12
13. เปนการพฒนาระบบ SOA ทใหญ+ทส.ดในโลกแห+งหน!ง โดยการเช0อมโยงระบบไอทของโรงพยาบาลกว+า 250 แห+ง คล
น,กและสถานพยาบาลกว+า 600,000 แห+งทวประเทศ เพ0อเช0อมโยงระบบไอทกว+า 10,000 ระบบ โครงการน2ให'บร,การ
ประชาชนกว+า 50 ล'านคน และมจ-านวนธ.รกรรม (Transaction) ต+อปDกว+าหกพนล'าน โดยโครงการน2มมลค+าการลงท.น
สงถ!ง 2.3 พนล'านเหรยญสหรฐ
แต+อย+างไรก/ตามการท-าระบบ SOA เพ0องานเฉพาะด'านและแก'ปญหาต+างๆเช+น การเช0อมโยงระบบบางระบบท
แตกต+างกน การสร'างเซอรว,ส และการปรบเปลยน Business Process จะเหมาะสมกบองคกรส+วนใหญ+และสามารถ
เร,มต'นได'ง+ายกว+า ถ'ามการออกแบบและว,เคราะหระบบให'ด
รปท 1.9 สถาปตยกรรมระบบ SOA ขนาดใหญ
Thanachart Numnonda and Thanisa Kruwaisayawan SOA: สถาปตยกรรมเชงบรการ 13
14. รปท 1.10 สถาปตยกรรระบบ SOA ขององคกรทวไป
1.5 บทสรป
SOA เปนแนวค,ดในการพฒนาสถาปตยกรรมไอทขององคกรให'เ ปนแบบเช,งบร, การ เพ0 อทจะท-า ให'ร ะบบ
ไอทในองคกรสามารถเช0อมโยงกนได' การพฒนาเซอรว,สของ SOA สามารถท-าได'หลายว,ธ และเว/บเซอรว,สเปนว,ธ
หน!งทเหมาะสม การพฒนาระบบ SOA จ-าเปนทจะต'องมผล,ตภณฑและเคร0องม0อในการพฒนา ทส-าคญทส.ดค0อต'องม
ESB เพ0อเช0อมโยงระบบไอทต+างๆ โดยผ+าน Protocol/Adapter ซ!งจะเห/นได'ว+าการเช0อมโยงทดอาจไม+จ-าเปนต'อง
แปลงระบบเด,มมาส+เว/บเซอรว,สท2งหมด ท2งน2เพราะ Adapter สามารถต,ดต+อกบโมดลเด,มทอาจใช'โพรโทคอลอ0นได'
การพฒนา SOA มต'นท.นทค+อนข'างสง และจ-าเปนต'องมทมงานทเข'าใจธ.รก,จเฉพาะน2นๆ แต+ผลตอบแทนระยะยาวจะ
ค.มค+ามาก
'
เอกสารอ!างอง
1) Kyle Gabhart and Bibhas Bhattacharyam, Service Oriented Architecture Field Guide for
Executives, John-Wiley & Son, 2008
2) Eric Newcomer and Greg Lomow, Understanding SOA with Web Services, Addison-Wesley, 2005
3) Thomas Erl, Service-Oriented Architecture Concepts Technology and Design, Prentice Hall, 2005
Thanachart Numnonda and Thanisa Kruwaisayawan SOA: สถาปตยกรรมเชงบรการ 14
28. เอกสารอ!างอง
• Ramesh Nagappan, Robert Skocaylas and Rima Sriganesh, Developing Java Web Services, Wiley,
2003
• Eric Newcomer and Greg Lomow, Understanding SOA with Web Services, Addison-Wesley, 2005
• Thomas Erl, Service-Oriented Architecture Concepts Technology and Design,Prentice Hall, 2005
• Shan Shin, Web Services Overview, http://www.javapassion.com/webservices
Thanachart Numnonda and Thanisa Kruwaisayawan เว!บเซอรวส: มาตรฐานเพ#อการพฒนา SOA 28
29. บทท 3 การพฒนา Business Process ส&าหรบ SOA
การพฒนา SOA มข2นตอนในการพฒนากระบวนการทางธ.รก,จ (Business Process) ใหม+โดยอ'างอ,งจาก
เซอรว,สเด,มทมอย+ การพฒนาเซอรว,สของ SOA แม'จะสามารถท-าได'หลายว,ธ แต+เทคโนโลยทได'รบความน,ยมทส.ดใน
ปจจ.บนค0อการใช'แพลตฟอรมเว/บเซอรว,ส ซ!งจะท-าให'สามารถเล0อกใช'ภาษาและเคร0องม0อในการพฒนา Business
Process ได' ห ลายภาษา ซ! งภาษาในการเขยน Business Process ทน, ย มมากทส. ด ภาษาหน! งค0 อ ภาษา BPEL ซ! ง
สามารถเขยน Business Process โดยการประกอบเว/บเซอรว,สทอธ,บาย Interface โดยใช'โปรโตคอล WSDL ได'
บทความน2จะเปนการแนะน-าหลกการของ Business Process Management การพฒนา Business Process
โดยใช'ภาษา BPEL และค-าสงในภาษา BPEL
3.1 แนวคดพ'นฐานของ Business Process Management
/
Business Process หร0อกระบวนการทางธ.รก,จเปนธ.รกรรม (activity) ทประกอบด'วยภารก,จ (task) หลายๆ
อย+างทต'องกระท-าตามล-าดบข2นตอน Business Process จะให'ผลลพธตามข'อก-าหนดทต2งไว'เม0อมการประมวลผลตาม
ข2นตอนทก-าหนดเสร/จส,2น ตวอย+างหน!งของ Business Process ค0อการขออน.มต,ส,นเช0อซ!งอาจประกอบไปด'วยภารก,จ
หลายอย+างทต'องกระท-าเช+น ค-านวณดอกเบ2ยและเง,นทต'องช-าระในแต+ละงวด ตรวจสอบเครด,ตของลกค'า ขออน.มต,การ
ก'ย0มจากส-านกงานใหญ+ ท2งน2ระยะเวลาในการท-าธ.รกรรมของ Business Process มต2งแต+ใช'เวลาส2นๆเพยงไม+กนาทไป
จนถ!งใช'เวลาเปนเด0อนหร0อปD
Business Process Management (BPM) เปนการบร,หารจดการกระบวนการทางธ.รก,จโดยจะกล+าวถ!ง การ
จ-าลอง การพฒนา การต,ดต2ง และการตรวจสอบ Business Process รวมไปถ!งกระบวนการทจะต'องเกยวข'องกบระบบ
ไอทและคน ในแง+ของไอท BPM เปนเร0องทมมานานแล'วต2งแต+ย.คแรกทกล+าวถ!งเร0อง workflow จนมาถ!งย.คของ
เว/บเซอรว,สทพดถ!งการท-า Web Services Orchestration และ Web Services Choreography
จ.ดประสงคและประโยชนของ BPM มดงน2
• ท-าให'ความต'องการทางธ.รก,จ (Business Requirement) สอดคล'องกบระบบไอททจะพฒนาข!น ท2งน2
2
เพราะ BPM ช+วยให'ผใช'ทางฝ?ายธ.รก,จสามารถจ-าลอง Business Process แล'วมอบหมายให'ฝายไอทพฒนา
' ?
ซอฟตแวรหร0อระบบเพ0อทจะท-างานให'สอดคล'องกบ Business Process เหล+าน2
• เพ,มประส,ทธ,ภาพการท-างานของพนกงานและลดค+าใช'จายในการด-าเน,นงานโดยการพฒนา Business
+
Thanachart Numnonda and Thanisa Kruwaisayawan การพฒนา Business Process ส$าหรบ SOA 29
30. Process ให'เปนระบบอตโนมต,
• องคกรสามารถจะปรบเปลยน Business Process ได'อย+างรวดเร/ว ท-าให'สามารถแข+งขนเช,งธ.รก,จได'
• ลดต'นท.นและเวลาในการพฒนาโซลชน เน0องจากการพฒนา Business Process จะเปนการพฒนา
โปรแกรมในระดบสงทใช'สญลกษณทางกราฟฟ@ก ท-าให'นกว,เคราะหทางธ.รก,จ (Business Analyst) และนก
พฒนาโปรแกรม (Developer) สามารถท-างานร+วมกนได'เพ0อพฒนาและปรบเปลยนระบบไอทได'อย+างรวดเร/ว
และสอดคล'องกบความต'องการเช,งธ.รก,จ
จากทเคยกล+าวไว'ว+าแนวค,ดของ SOA จะเปนการจดสถาปตยกรรมไอทโดยแบ+งออกเปน 4 ช2นค0อ Resource,
Services, Process และ Access น2 น BPM จะเข' า มาเกยวข' อ งในช2 น Process เพ0 อพฒนาและบร, ห ารจดการ
Business Process เพ0อความเข'าใจในเร0องน2จะขอยกตวอย+างระบบไอทขององคกรในรปท 3.1 ซ!งอาจประกอบไปด'วย
โปรแกรมประย.กตต+างๆทพฒนามาจากเทคโนโลยทหลากหลาย ซ!งยงเปนสถาปตยกรรมแบบ Silo (ในรปน2จะเห/นว+า
ท2ง Application Layer และ Technology Layer หมายถ!ง Resource Layer) เราสามารถทจะพฒนาระบบไอทน2
ให'เปน SOA โดยการใช'เทคโนโลยเว/บเซอรว,ส โดยอาจก-าหนดให'มเซอรว,สในหมวดต+างๆเช+นบร,การด'านบ.คลากร
(HR services) และบร,การด'านการเง,น (Planning services) เซอรว,สเหล+าน2จดเปนเซอรว,สทางเทคน,ค (Technical
service) ทสามารถน-ามาใช'ใหม+ได' และ BPM ทอย+ใน Business Layer สามารถน-าเอาเซอรว,สเหล+าน2มาประกอบ
เปน Business Process ต+างๆได'ตามรปท 3.2 ข'อดของการสร'าง Business Process จากเซอรว,สทอย+ใน Services
Layer มดงน2
รปท 3.1 สถาปตยกรรมแบบ Silo [อางองจาก E.Newcomer]
Thanachart Numnonda and Thanisa Kruwaisayawan การพฒนา Business Process ส$าหรบ SOA 30
31. • มการก-าหนดน,ยามของเซอรว,สทชดเจน โดยอาจใช'มาตรฐาน WSDL และไม+ย!ดต,ดกบเทคโนโลย ดงน2น
เราสามารถทจะพฒนา Business Process โดยไม+ต'องค-าน!งถ!งเทคโนโลยทใช'ในการซอรว,ส
• ม Service Registry ท-าให'เราสามารถค'นหาเซอรว,สได'แบบพลวต (dynamic)
• สามารถน,ยามโมเดลของข'อมลทเปนอ,สระจากโมเดลของข'อมลของแต+ละโปรแกรมประย.กตในแต+ละ
เทคโนโลยของ Resource Layer
• สามารถทจะก-าหนดระดบความปลอดภยของเซอรว,สต+างๆ เช+นการก-าหนด Single Sign On หร0อการ
ก-าหนดส,ทธ,การใช'แบบ RBAC (Role Based Access Control) ท-าให'การพฒนา Business Process ไม+
จ-าเปนต'องไปจดการเร0องความปลอดภยโดยตรงกบส+วนโปรแกรมประย.กตหร0อระบบใน Resource Layer
รปท 3.2 BPM โดยใช Services Layer [อางองจาก E . Newcomer]
จะเห/ น ได' ว+ า การพฒนา SOA จะแตกต+ า งกบการท- า Business Workflow ของระบบแบบเก+ า ทไม+ ม ช2 น
Service Layer โดยจะต,ดต+อตรงกบ Application Layer ดงรปท 3.3 การท-า BPM โดยไม+ม Services Layer จะซบ
ซ'อนกว+าและปรบเปลยน Business Process ได'ยากกว+า เน0องจากจะต'องพฒนา Business Process โดยผกต,ดกบ
Thanachart Numnonda and Thanisa Kruwaisayawan การพฒนา Business Process ส$าหรบ SOA 31
32. เทคโนโลยใน Resource Layer แต+ละตวโดยตรง
รปท 3.3 BPM โดยไมม Services Layer [อางองจาก E . Newcomer]
3.2 Orchestration และ Choreography
ว,ธการพฒนา Business Process โดยมากจะใช'เทคโนโลยเว/บเซอรว,ส โดยจะน-าเว/บเซอรว,สทประกาศโดยใช'
มาตรฐาน WSDL มาประกอบเปนกระบวนการทางธ.รก,จใหม+โดยมว,ธการอย+สองว,ธค0อ
• Orchestration ค0อการพฒนา Business Process โดยมกระบวนการตวกลาง (Central Process) ทจะ
ท-าหน'าทจดการกบธ.รกรรมท2งหมดโดยจะส+งงานไปให'เว/บเซอรว,สอ0นท-าการประมวลผลและรบผลลพธ
กลบมาพร'อมท2งควบค.มการล-าดบการท-างานของเว/บเซอรว,สดงรปท 3.4 ซ!ง Central Process น2ก/อาจ
ก-าหนดให'เปนเว/บเซอรว,สใหม+อกตวหน!ง การประกอบเว/บเซอรว,สแบบ Orchestration โดยมากจะ
พฒนาโดยใช'ภาษา BPEL ทจะกล+าวถ!งต+อไป
• Choreography ค0อการพฒนา Business Collaboration ในกรณน2จะไม+มตวกลางทคอยควบค.มอย+ แต+
เว/บเซอรว,สจะทราบเองว+าเม0อไรทจะต'องท-าการประมวลผลและส+งผลลพธไปยงเว/บเซอรว,สใดโดยการ
ส+งข+าวสารระหว+างเว/บเซอรว,สดงรปท 3.5 เว/บเซอรว,สท.กตวทเกยวข'องกบ Business Collaboration
จะต'องทราบถ!ง Business Process ทท-าความร+วมม0อกนอย+เช+น รปแบบของข+าวสาร เอเปอรเรชนทต'อง
Thanachart Numnonda and Thanisa Kruwaisayawan การพฒนา Business Process ส$าหรบ SOA 32
33. ประมวลผล หร0อเวลาทต'องส+งข+าวสาร เปนต'น ซงแตกต+างกบกรณของ Orchestration ซ!งเว/บเซอรว,ส
แต+ ล ะตวจะไม+ ท ราบรายละเอยดของ Business Process เลย การประกอบเว/ บ เซอรว, ส แบบ
Orchestration โดยมากจะพฒนาโดยใช'ภาษา WS-CDL
รปท 3.4 การประกอบเว%บเซอร'วสแบบ Orchestration
รปท 3.5 การประกอบเว%บเซอร'วสแบบ Choreography
การประกอบเว/บเซอรว,สแบบ Orchestration มข'อเด+นกว+าแบบ Choreography ดงน2
Thanachart Numnonda and Thanisa Kruwaisayawan การพฒนา Business Process ส$าหรบ SOA 33
34. การประสานงานกนระหว+างเว/บเซอรว,ส สามารถควบค.มโดยตวประสานงานกลาง
เว/บเซอรว,สแต+ละตวสามารถถกเรยกใช'ใน Business Process โดยไม+จ-าเปนต'องทราบว+าเปนส+วน
หน!งของ Business Process น2นๆ
สามารถปรบเปลยน Business Process ได'ง+ายกว+า
3.3 ภาษาในการพฒนา Business Process
ภาษาในการพฒนา Business Process จะมอย+หลายภาษาตามไดอะแกรมในรปท 3.6 ซ!งจะเห/นได'ว+ามการ
พฒนาภาษาต+างๆมาอย+างต+อเน0องและหลายภาษามองคกรทเกยวข'องมารองรบมาตรฐานอาท,เช+น
รปท 3.6 ววฒนาการของภาษาในการพฒนา Business Process
Thanachart Numnonda and Thanisa Kruwaisayawan การพฒนา Business Process ส$าหรบ SOA 34
35. • BPMN (Business Process Modeling Notation) ซ!งเปนภาษาทใช'สญลกษณกราฟฟ@กในการแสดง
Business Process ใน workflow ต+างๆ ภาษาน2แต+เด,มพฒนาโดย BPMI (Business Process
Management Initiative) ก+อนทจะมาถกก-ากบโดย OMG (Object Management Group) ในปจจ.บน โดย
เวอรชนล+าส.ดค0อ BPMN 1.2
• ebXML (Electronic Business XML) เปน Framework ของเทคโนโลยในการท-า e-Business ท
ก-าหนดโดย OASIS และ UN/CEFACT โดย BPSS (Business Process Specification Schema) เปน
มาตรฐานในการเขยน Business Process
• UML (Unified Modeling Language) เปนภาษาในการเขยนโมเดลของว,ศวกรรมซอฟตแวร ทม
มาตรฐานในการเขยนซอฟตแวรไดอะแกรมต+างๆในการเขยน Business Process ซ!งควบค.มมาตรฐานโดย
OMG
• WS-BPEL (Web Services Business Process Execution Language) เปนมาตรฐานของ OASIS ใน
การพฒนา Business Process โดยการใช' Interface WSDL ของเว/บเซอรว,ส ซ!งจะพฒนาโดยใช'ภาษา
XML ปจจ.บนเปนมาตรฐานทมการน-ามาใช'มาทส.ดอนหน!ง
• WS-CDL (Web Services Choreography Description Language ) เปนมาตรฐานในการพฒนา
Business Process แบบ Choreography โดยใช'ภาษา XML ทก-าหนดโดย W3C
3.3.1 แนะน&าภาษา BPEL
BPEL เปนช0 อย+ อ ของ Web Services Business Process Execution Language ปนภาษา XML ทใช' ใ น
การพฒนา Business Process จากเว/บเซอรว,สทน,ยามใน Services Layer โดยใช'ภาษา WSDL ท2งน2ก+อนทจะมภาษา
BPEL แต+ละบร,ษทผ'ผล,ตต+างก/มรปแบบของการเขยน Business Process ทแตกต+างกน ดงน2นจ.ดประสงคของการ
ก-าหนดมาตรฐาน BPEL ก/เพ0อน,ยามมาตรฐานกลางส-าหรบการเขยน Business Process โดยใช'แพลตฟอรมทเปน
เว/บเซอรว,ส
BPEL ถกพฒนามาจากภาษาทใช'ในการพฒนา workflow สองภาษาค0อ Web Services Flow Language
(WSFL) และ XLANG โดยได' ก- า หนดเปนเวอรชนแรกเม0 อเด0 อ นส, ง หาคมปD 2002 ซ! งต+ อ มาทาง OASIS (the
Organization for the Advancement of Structured Information Standards) ได' ป ระกาศให' BPEL4WS 1.1
เปนมาตรฐานส-าหรบการพฒนา Business Process บนเว/บเซอรว,ส เวอรชนล+าส.ดของ BPEL ค0อ WS-BPEL2.0
BPEL จะมองคประกอบหลกทเกยวข'องสามส+วนดงรปท 3.7 ค0อ
Thanachart Numnonda and Thanisa Kruwaisayawan การพฒนา Business Process ส$าหรบ SOA 35
36. • BPEL Designer (ตวออกแบบ BPEL) เปนเคร0องม0อทให'ผ'เชยวชาญด'านกระบวนการธ.รก,จสามารถ
จ-าลอง Business Process โดยใช'สญลกษณกราฟฟ@กเพ0อสร'างไฟล Process Flow Template โดยทวไป
เคร0องม0อเหล+าน2จะอ,งตามมาตรฐาน BPMN (Business Process Modeling Notation) ในการเขยน
สญลกษณ
• BPEL Engine (ตวจกร BPEL) เปนตวประมวลผลไฟล Process Flow Template ตามมาตรฐาน
BPEL โดยจะท-างานต+างๆเช+น เรยกใช'เว/บเซอรว,ส ก-าหนดเน02อหาของข'อมล จดการข'อผ,ดพลาด หร0อ
ควบค.มล-าดบการท-างาน โดยทวไปตวจกร BPEL จะท-างานร+วมกบ Application Server
• Process Flow Template เปนไฟลทระบ. Business Process ตามข'อก-าหนดของ BPEL โดยจะเปนไฟล
ทถกสร'างมาจากตวออกแบบ BPEL และจะใช'ตวจกร BPEL ในการประมวลผล
รปท 3.7 องค'ประกอบของ BPEL
3.3.2 ค&าส'งของภาษา BPEL
โปรแกรม BPEL จะใช'แทค XML ในการประกอบเว/บเซอรว,สเพ0อสร'าง Business Process โดย HBPEL
Process ทสร'างข!2นมาสามารถจะแสดงออกมาเปนเซอรว,สทน,ยามโดย WSDL และสามารถเรยกใช' BPEL Process
น2ได'เหม0อนการเรยกเว/บเซอรว,สโดยทวไป BPEL จะมช.ดของค-าสงทระบ.ภารก,จพ02นฐานทใช'การประกอบ
เว/บเซอรว,สดงน2
• <invoke> - ค-าสงเพ0อให' Business Process เรยกใช'โอเปอรเรชน (operation) ภายในแทค porttype ท
Thanachart Numnonda and Thanisa Kruwaisayawan การพฒนา Business Process ส$าหรบ SOA 36
37. น,ยามอย+ใน WSDL ของเว/บเซอรว,ส
• <receive> - ค-าสงเพ0อให' Business Process หย.ดรอข+าวสารทจะมาถ!ง
• <reply> - ค-าสงเพ0อให' Business Process ส+งข+าวสารเพ0อตอบกลบข+าวสารทได'รบมา
• <assign> - ค-าสงเพ0อคดลอกข'อมลจากต-าแหน+งหน!งไปยงต-าแหน+งอ0น
• <throw> - ค-าสงเพ0อระบ.ข'อผ,ดพลาดทเก,ดข!น
2
• <wait> - ค-าสงเพ0อให' Business Process หย.ดรอตามระยะเวลาหน!ง
• <terminate> - ค-าสงเพ0อยกเล,ก Business Process ท2งหมด
BPEL ยงมช.ดค-าสงทเปนภารก,จแบบโครงสร'าง (Structured task) ทใช+การผนวกภารก,จพ0นฐานเข'าด'วยกน
2
เพ0อใช'ควบค.มล-าดบการท-างานและสร'าง Business Process ทซบซ'อนข!2น โดยมค-าสงต+างๆ ดงน2
• <sequence> - ค-าสงเพ0อน,ยามการท-างานของภารก,จต+างๆแบบต+อเน0อง
• <flow> - ค-าสงเพ0อระบ.ให'ช.ดภารก,จท-างานแบบขนาน
• <switch> - ค-าสงเพ0อก-าหนดให'ช.ดภารก,จท-างานแบบเล0อกท-า (case-switch) ตามเง0อนไขตรรกะทระบ.
• <while> - ค-าสงเพ0อก-าหนดให'มการท-างานของกล.+มภารก,จซ2-าจนกว+าเปนไปตามเง0อนไขทระบ.
• <pick> - ค-าสงเพ0อบล/อกและรอจนกระทงมข+าวสารทเหมาะสมมาถ!งหร0อหมดเวลาทรอ เม0อค-าสง
ประเภทน2ถกกระต.'นก,จกรรมทเกยวพนกนจะถกกระท-าและจะส,2นส.ดการเล0อก (pick)
นอกจากน2 BPEL ยงมค-าสงในการน,ยามข'อมลดงน2
• <partnerLink> - ค-าสงเพ0อก-าหนด porttype ของเว/บเซอรว,ส (จะเรยกว+า partner) ทจะเข'ามาร+วมใน
Business Process
• <variable> - ค-าสงเพ0อก-าหนดค+าตวแปรใน Business Process
Listing ท 3.1 แสดงตวอย+างของโปรแกรม BPEL ทได'จากการพฒนา Business Process โดยใช'สญลกษณ
Visual Diagram ตามรปท 3.8
การพฒนา BPEL และการรน BPEL จะต'องมตวออกแบบ BPEL และตวจกร BPEL ซ!งปจจ.บนเราสามารถ
ทจะใช' freeware อย+างโปรแกรม NetBeans 6.5 ทต,ดต2ง Enterprise Pack มาใช'ในการเขยนโปรแกรมอย+างง+ายๆ ผ'
ทสนใจสามารถหาข'อมลเพ,มเต,มได'จากบทความท url ช0อ http://www.thaijavadev.com/soa.html
ส-าหรบการพฒนาระบบในองคกรขนาดใหญ+ ผ'พฒนาควรเล0อกใช'เคร0องม0อทเปนการค'า ทาง Sun
Microsystems จะมโปรแกรม eInsight ทอย+ภายในโปรแกรม Java Composite Application Platform Suite ท
Thanachart Numnonda and Thanisa Kruwaisayawan การพฒนา Business Process ส$าหรบ SOA 37
40. รปท 3.8 BPEL Visual Diagram ของ Asynchronous.bpel
3.3.3 BPEL Server
BPEL Server จะท-าหน'าทเปน run-time environment หร0อ Engine ในการทจะประมวลผล Business
Process ทพฒนาข!นโดยภาษา BPEL ท2งน2 BPEL โดยมากจะท-างานอย+ภายใน Java EE หร0อ .NET Application
2
Server เพ0อจะได'ใช'ฟงกชนด'านความปลอดภย, transactions, scalability, การเช0อมต+อกบดาต'าเบส, EJB หร0อ
COM+ component และ Messaging systems เช+น JMS หร0อ MSMQ
BPEL Server ทเปน commercial version ทส-าคญมอาท,เช+น
• Sun Java Composite Application Platform
(http://www.sun.com/software/javaenterprisesystem/javacaps/index.jsp), formerly
known as SeeBeyond eInsight Business Process Manager
• Oracle BPEL Process Manager (http://www.oracle.com/technology/products/ias/
• bpel/index.html)Microsoft BizTalk (http://www.microsoft.com/biztalk/)
• IBM WebSphere Business Integration Server Foundation (http://www.ibm.com/
• software/integration/wbisf)
Thanachart Numnonda and Thanisa Kruwaisayawan การพฒนา Business Process ส$าหรบ SOA 40
41. ส+วน BPEL Server ทเปน Open source ทส-าคญค0อ
• GlassFish openESB (http://www.sun.com/software/products/glassfish_portfolio/)
• ActiveBPEL Engine (http://www.activebpel.org/)
• FiveSight Process eXecution Engine PXE (http://www.fivesight.com/pxe.shtml)
• bexee BPEL Execution Engine (http://sourceforge.net/projects/bexee)
• Apache Agila (http://wiki.apache.org/agila/), formerly known as Twister (http://
• www.smartcomps.org/twister/)
ตารางท 3.1 เปนการเปรยบเทยบ BPEL Server ต+างๆทสร.ปโดย wikipedia
(http://en.wikipedia.org/wiki/Comparison_of_BPEL_engines)
ตารางท 3.1 BPEL Server ทส$าคญของค'ายต'างๆ
Product Vendor Edition Framework Compatibility
Apache ODE ASF 2 Apache BPEL4WS1.1
Axis WS-BPEL 2.0
Java EE
Biztalk Microsoft Biztalk .NET BPEL, BPMN,RFID
Server 2006 R2
IBolt Server Magic Java EE BPEL4WS
Software
jBPM jBoss 03/03/01 Java EE WS-BPEL
GlassFish Sun 2 Java EE WS-BPEL 2.0
openESB Microsystems JBI
Oracle BPEL Oracle Corp. 10.1.0.2 Java EE BPEL4WS1.1
Process
Manager
SAP SAP AG 3 BPEL
Exchange
Infrastructure
WebSphere IBM 6.0.13 Java EE WS-BPEL
Process
Server
Thanachart Numnonda and Thanisa Kruwaisayawan การพฒนา Business Process ส$าหรบ SOA 41
42. 3.4 บทสรป
BPM เปนการบร,หารจดการกระบวนการทางธ.รก,จโดยจะกล+าวถ!ง การจ-าลอง การพฒนา การต,ดต2ง และการ
ตรวจสอบ Business Process ซ!งเราสามารถทจะพฒนา Business Process น2ได'โดยการประกอบเว/บเซอรว,สสอง
แบบค0อ Orchestration และ Choreography แต+รปแบบ Orchestration มข'อดกว+า ซ!งจะพฒนาโดยใช'ภาษา BPEL
ทเปนภาษา XML ซ!งจะมองคประกอบหลกสามส+วนค0อ ตวออกแบบ BPEL ตวจกร BPEL และ Process Flow
Template
เอกสารอ!างอง
1) Kumar Raj Moorthy, An Introduction to BPEL, http://www.developer.com
2) Eric Newcomer and Greg Lomow, Understanding SOA with Web Services, Addison-Wesley, 2005
3) Thomas Erl, Service-Oriented Architecture Concepts Technology and Design, Prentice Hall, 2005
Thanachart Numnonda and Thanisa Kruwaisayawan การพฒนา Business Process ส$าหรบ SOA 42
43. บทท 4 Enterprise Service Bus
การพฒนา SOA จะต+องมการเช#อมโยงและเรยกใช+เซอรวสต'างๆ ซ/งจะต+องม ESB (Enterprise Service
Bus) ทเป0นซอฟตแวรมดเด2ลแวรในการท$าหน+าทดงกล'าวรวมถ/งการบรหารจดการเซอรวส ESB จะท$าหน+าทเป0นแกน
หลก (Backbone) ของระบบ SOA ได+ บทความน2จะเป0นการแนะน$า ESB กล'าวถ/งประโยชน ค4ณลกษณะ และเปรยบ
เทยบ ESB ของค'ายต'างๆ
4.1 ความหมายของ ESB
ESB ย+อมาจาก Enterprise Service Bus ซ!งเปนศพททใช'แนวค,ดของ Hardware Bus ในการทจะถ+ายโอน
ข'อมลจากอ.ปกรณฮารดแวรตวหน!งเช+นการด PCI ไปยงอ.ปกรณตวอ0นโดยผ+านสาย ตวอย+างเช+น USB (Universal
Serial Bus) ช+ ว ยให' เ ราเช0 อมต+ อ เคร0 องคอมพ, ว เตอรกบฮารดแวรตวอ0 นๆได' ESB ก/ ท- า หน' า ทเช+ น เดยวกนแต+ เ ปน
ซอฟตแวรบส (Bus)ในการต+อเช0อมระบบซอฟตแวรเซอรว, สต+ า งๆทมอย+ ห ลากหลายระบบ และอาจท- า งานด' ว ย
โปรโตคอลทต+างกนเข'าด'วยกน
ถ!งแม'ว+า SOA จะเปนหลกการซ!งเราไม+สามารถทจดซ02อได'แต+เราสามารถทจะจดหา ESB เพ0อท-าหน'าทบร,หาร
จดการเซอรว,สต+างๆทมอย+หลากหลายได' แต+ก/อาจมบางคนแย'งว+าเราไม+จ-าเปนจะต'องจดหา ESB ในการพฒนา SOA
โดยเราสามารถทจะพฒนาระบบ Routing ของเซอรว,ส พ02 น ฐานข!2น มาเอง ตามหลกการ Enterprise Integration
Patterns ของ Gregor Hohpe และ Bobby Woolf แต+ส.ดท'ายแล'วการพฒนาข!2นมาเองก/จะได'ระบบทมค.ณลกษณะ
เช+นเดยวกบระบบ ESB ทมอย+ทวไป ดงน2นการน-า ESB ทมอย+มาใช'จะช+วยให'การพฒนาระบบ SOA เปนไปได'ด'วย
ความรวดเร/วข!น ESB ทเปน Open Source ก/มอย+หลายตวเช+น GlassFish OpenESB หร0อ MuleSource :ซ!ง Open
2
source ESB บางตวก/พฒนาข!นตามรปแบบของ Gregor Hohpe และ Bobby Woolf
2
ESB จะมความสามารถในการเช0อมต+อระบบ Messaging ต+างๆท-าให'เซอรว,สของ Back-End Application
ต,ดต+อผ+านบส ได'โดยไม+จ-าเปนจะต'องเช0อมต+อแบบ Point-to-Point ระหว+าง Application ต+างๆ ESB จะท-าหน'าท
เปนส0อกลางเพ0อให'เซอรว,สของ Back-End Application สามารถส0อสารกนโดยอาจมรปแบบของ message หร0อ
โปรโตคอลทต+างกน ท2งน2เน0องจาก Back-End Application ในองคกรส+วนมากจะมความหลากหลายซ!งไม+ใช+มแต+
เว/บเซอรว,สทใช'โปรโตคอล SOAP แต+อาจเปนระบบ Mail, Messaging Server, Database, File หร0อ Legacy-
Application ทอาจใช'โปรโตคอลอ0นๆอาท,เช+น SMTP, FTP, JDBC หร0อ JMS เปนต'น
Thanachart Numnonda and Thanisa Kruwaisayawan Enterprise Service Bus 43