introduction to soa

53
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

Upload: imc-institute

Post on 18-Dec-2014

765 views

Category:

Technology


4 download

DESCRIPTION

เอกสารแนะนำ Service Oriented Architecture ของ ดร.ธนชาติ นุ่มนนท์, May 2010

TRANSCRIPT

Page 1: Introduction to SOA

Introduction toService Oritened Architecture

Assoc Prof. Dr.Thanachart Numnondaand

Asst Prof.Thanisa Kruawaisayawan

May 2010

www.thaijavadev.com

Thanachart Numnonda and Thanisa Kruwaisayawan www.thaijavadev.com 1

Page 2: Introduction to SOA

บทท�� 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

Page 3: Introduction to SOA

ตารางท�� 1.1 การพ�ฒนาการของสถาป�ตยกรรมซอฟต�แวร�องค�กร

สถาป�ตยกรรม ช�วงเวลา ภาษาคอมพ�วเตอร� เหต�ผลธ�รก�จในการผล�กด�นMainframe 1960s - 1980s Procedural (COBOL) ธ.รก,จแบบอ�ตโนม�ต,

Client/Server 1980s - 1990s Database (SQL) และ Fat Client (VB,

PowerBuilder)

การกระจายการค-านวนไปท��เคร0�องเดสต�ท/อป

Web / N-Tier 1990s - 2000s Object-Oriented (Java, PHP, COM)

Internet / e-Business

Service Oriented 2000s Message Oriented (XML)

Business Agility

สถาป�ตยกรรมท��หลายๆ องค�กรพ�ฒนาอย�+ในป�จจ.ป�นค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

Page 4: Introduction to SOA

ซ!�งว,ธ�การพ�ฒนาส+วนประกอบซอฟต�แวร�หร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

Page 5: Introduction to SOA

ร�ปท�� 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

Page 6: Introduction to SOA

ร�ปท�� 1.5 Silo-Oriented Architecture

แนวค,ดของระบบ SOA ค0อการจ�ดระบบ Silo-Oriented Architecture ใหม+ โดยการสร'างระบบไอท�ให'เป�น 4 ช�2น (Layer) ด�งแสดงในร�ปท�� 1.6 และ 1.7

• Resource Layer ซ!�งจะเป�นช�2นของระบบโครงสร'างไอท�ต+างๆ ในป�จจ.บ�น เช+นระบบฐานข'อม�ล Oracle ระบบโซล�ช�น SAP หร0อ PeopleSoft เป�นต'น ซ!�งในช�2นน�2จะถ�กพ�ฒนามากจากเทคโนโลย�ต+างเช+น Java EE, .NET, PHP หร0อโปรแกรมส- า เร/ จร�ปต+างๆเช+น SAP,PeopleSoft หร0อระบบฐานข'อม�ลเช+น Oracle, MySQL

• Service Layer ซ!�งเป�นช�2นของส+วนประกอบเซอร�ว,สต+างๆ ท��สามารถน-ามาใช'ใหม+ได' โดยส+วนประกอบเซอร�ว,สเหล+าน�2จะพ�ฒนามาจากโมด�ล (Module) ต+างๆ ท��ร�นบน Resource Layer

• Process Layer ซ!�งเป�นช�2นของกระบวนการทางธ.รก,จ (Business Process) ท��พ�ฒนาข!2นมาจากการประกอบส+วนประกอบเซอร�ว,สต+างๆ • Access Layer ซ!�งเป�นช�2นของการเร�ยกใช'กระบวนการทางธ.รก,จท��พ�ฒนาข!2นผ+านผ+านทางโปรแกรมทางเว/บ (Web Application) โดยอาจเคร0�องคอมพ,วเตอร�หร0อโทรศ�พท�เคล0�อนท�� (Mobile Phone)

Thanachart Numnonda and Thanisa Kruwaisayawan SOA: สถาป�ตยกรรมเช งบร การ 6

Page 7: Introduction to SOA

ร�ปท�� 1.6 SOA Layers

ร�ปท�� 1.7 SOA Conceptual Diagram

ด�งน�2นจะเห/นได'ว+า SOA เป�นการเปล��ยนระบบ Silo-Oriented Architecture มาส�+ระบบ Service-Oriented

ซ!�งออกแบบเป�นช�2นๆ ท-าให'สามารถพ�ฒนา ปร�บปร.ง หร0อเพ,�มเต,มโปรแกรมใหม+ได'ง+าย ด�งแสดงในร�ปท�� 1.8

Thanachart Numnonda and Thanisa Kruwaisayawan SOA: สถาป�ตยกรรมเช งบร การ 7

Page 8: Introduction to SOA

ร�ปท�� 1.8 แนวค ดสถาป�ตยกรรม SOA

ระบบ SOA จะม�ค.ณล�กษณะท��ส-าค�ญหล�กๆ ด�งน�2

• เซอร�ว,ส (Services) ระบบ SOA จะม�การพ�ฒนาเซอร�ว,สท��สามารถกล�บน-ามาใช'ใหม+ได' และเป�นเซอร�ว,สท��ใช'งานร+วมก�นได' โดยเซอร�ว,สจะสร'างมาจาก Resource Layer การพ�ฒนาเซอร�ว,สท-าได'หลายร�ปแบบแต+ท��น,ยมก�นมากค0อเว/บเซอร�ว,ส (Web Services)

• การต,ดต+อส0�อสารระหว+างเซอร�ว,ส จะใช'เอกสารท��เป�น XML ท��น,ยามผ+าน XML Schema (.xsd) ท-าให'ไม+จ-าเป�นต'องทราบรายละเอ�ยดของแฟลตฟอร�มและเทคโนโลย�ของเซอร�ว,สท��ใช'อย�+• เซอร�ว,สจะม�ต�วเช0�อมต+อ (Interface) ท��อธ,บายเซอร�ว,ส เช+น Service Name, Input Parameter, Output

Parameter และข'อม�ลอ0�นๆ ในร�ปแบบของไฟล� XML ท-าให'ไม+ข!2นก�บแฟลตฟอร�มและเทคโนโลย�ท��เซอร�ว,สน�2นใช'อย�+ โดยมากม�กจะใช'มาตรฐาน WSDL (Web Service Description Language) ในการอธ,บายเซอร�ว,ส• Business Process หร0อกระบวนการทางธ.รก,จต+างๆ สามารถพ�ฒนาข!2นมาจากการใช'เซอร�ว,สเด,มท��ม�อย�+ ซ!�งมาตรฐานท��น,ยมใช'ค0อ WS-BPEL (Web Service Business Process Execution Language)

• ม� Registry ในการเก/บเซอร�ว,สต+างๆ ท��ม�อย�+ ซ!�ง Registry จะท-าหน'าท��เหม0อนไดเร/กทอร��ของเซอร�ว,ส โดยโปรแกรมประย.กต�หร0อกระบวนการทางธ.รก,จต+างๆ จะค'นหาและเร�ยกใช'เซอร�ว,สจาก Registry น�2 มาตรฐานท��ใช'ในการเก/บ Registry ท��น,ยมใช'ค0อ UDDI (Universal Description Definition and Integration)

• เซอร�ว,สแต+ละต�วจะม�ส+วนการควบค.มค.ณภาพท��เป�น QoS (Quality of Service) อาท,เช+นการควบค.มความ

Thanachart Numnonda and Thanisa Kruwaisayawan SOA: สถาป�ตยกรรมเช งบร การ 8

Page 9: Introduction to SOA

ปลอดภ�ยด'าน Authentication, Authorization, Reliable Message และ Policy

1.2.1 ประโยชน�ของการพ�ฒนา SOA

การพ�ฒนาระบบโครงสร'างไอท�ในองค�กรให'เป�นระบบ SOA จะเก,ดประโยชน�ในด'านต+างๆ ด�งน�2

• สามารถเช0�อมโยงธ.รก,จต+างๆการพ�ฒนา SOA ม�การเช0�อมโยงระบบไอท�ต+างๆ ภายในองค�กรและภายนอกองค�กรท��อาจใช'เทคโนโลย�ท��ต+างก�น ท-าให'เราสามารถเช0�อมโยงธ.รก,จต+างๆ ท��อาจอย�+ต+างระบบก�น และสามารถให'บร,การก�บล�กค'า ค�+ค'า และบ.คลากรในองค�กรได'

• ระบบไอท�สามารถปร�บเปล��ยนได'ง+ายการพ�ฒนา SOA สามารถท��จะท-าให'น-าระบบไอท�เด,มมาใช'ใหม+ได' ด�งน�2นการปร�บเปล��ยนกระบวนการทางธ.รก,จจ!งเป�นไปได'อย+างรวดเร/ว และท-าให'สามารถแข+งข�นในตลาดธ.รก,จได'อย+างรวดเร/ว

• การลดค+าใช'จ+ายในการบ-าร.งร�กษา และให'ผลตอบแทนการลงท.นท��ค.'มค+าการพ�ฒนา SOA ท-าให'องค�กรสามารถท��จะใช'เทคโนโลย�ท��หลากหลาย จ!งท-าให'เราสามารถท��จะเล0อกใช'เทคโนโลย�ต+างๆ ได' โดยไม+ต'องผ�กต,ดก�บเทคโนโลย�ใดเทคโนโลย�หน!�ง ท-าให'ค+าใช'จ+ายด'านไอท�ในระยะยาวลดลง

• การท-างานของฝ?ายธ.รก,จและฝ?ายไอท�สอดคล'องก�นมากข!2นการพ�ฒนา Business Process ของฝ?ายไอท�จะม�ข�2นตอนท��ช�ดเจนสามารถแสดงในเช,งกราฟฟ@กได'และเข'าใจง+ายข!2น และหน+วยงานทางธ.รก,จท��ต'องเข'าใจด'านกระบวนการทางธ.รก,จสามารถท��จะเข'ามาร+วมท-าการพ�ฒนาร+วมก�บฝ?ายไอท�ได'ด�ข!2น

1.2.2 เหต ผลของการพ�ฒนา SOA

การพ�ฒนาสถาป�ตยกรรม SOA จะม�ประโยชน�ต+อองค�กรในหลายๆ ด'านอาท,เช+น การท-าให'ข'อม�ลต+างๆภายในองค�กรเช0�อมโยงก�น การลดค+าใช'จ+ายในการบ-าร.งร�กษา การท-าให'การพ�ฒนาโปรแกรมใหม+เป�นไปด'วยความรวดเร/วข!2น และท-าให'ระบบไอท�ในองค�กรไม+ผ�กต,ดอย�+ก�บระบบใดระบบหน!�ง

โครงสร'างของระบบไอท�ขององค�กรขนาดใหญ+ (Information Technology Enterprise) จะประกอบไปด'วยระบบท��หลากหลายท�2งในด'านระบบปฏ,บ�ต,การ (Operating System) โปรแกรมประย.กต� และระบบซอฟต�แวร� ซ!�งโปรแกรมประย.กต�บางโปรแกรม อาจใช'ในการท-างานก�บกระบวนการทางธ.รก,จบางอย+าง ท��อาจท-างานภายใต'ระบบ

Thanachart Numnonda and Thanisa Kruwaisayawan SOA: สถาป�ตยกรรมเช งบร การ 9

Page 10: Introduction to SOA

โครงสร'างไอท�เด,ม เช+นพ�ฒนาโดยใช'เคร0�องเมนเฟรม ด�งน�2นเม0�อม�ความจ-าเป�นต'องเปล��ยนแปลงกระบวนการทางธ.รก,จ จะท-าให'การเปล��ยนแปลงโดยใช'โครงสร'างไอท�เด,มท-าได'ยาก จนอาจม�ความต'องการท��จะยกเล,กระบบเด,มและพ!�งพาเทคโนโลย�ใหม+ ระบบ SOA จะช+วยค.'มครองการลงท.นขององค�กร เพ0�อให'สามารถน-าระบบโครงสร'างไอท�เด,มมาใช'ต+อไปได' โดยการพ�ฒนาระบบโปรแกรมเด,มให'เป�นเซอร�ว,ส และสามารถพ�ฒนากระบวนการทางธ.รก,จจากเซอร�ว,สต+างๆ ท��ม�อย�+ จ!งท-าให'องค�กรสามารถเปล��ยนกระบวนการทางธ.รก,จได'อย+างรวดเร/ว โดยใช'โปรแกรมประย.กต�เด,ม และโครงสร'างไอท�เด,มท��ม�อย�+

เหต.ผลหล�กขององค�กรในการพ�ฒนาระบบ SOA จ!งม�กจะเร,�มจากความต'องการในการเช0�อมโยงระบบโครงสร'างไอท�ต+างๆ ในป�จจ.บ�นเข'าด'วยก�น หร0อการท-า Enterprise Application Integration (EAI) แต+ระบบ SOA

จะแตกต+างก�บระบบ EAI เด,มในแง+ท��ของความสามารถในการพ�ฒนากระบวนการทางธ.รก,จใหม+จากเซอร�ว,สเด,มท��ม�อย�+ และม�การใช'ถ!งมาตรฐานต+างๆ จากน�2นก/จะเป�นการน-า SOA มาใช'เพ0�อพ�ฒนากระบวนการทางธ.รก,จใหม+ๆ

1.3 สถาปตยกรรมฮาร�ดแวร�ส&าหร�บการพ�ฒนา SOA

แม'ว+า SOA จะเป�นแนวค,ดในการพ�ฒนาสถาป�ตยกรรมไอท� แต+โซล�ช��นในการพ�ฒนา SOA ได'ก/จ-าเป�นจะต'องม�ผล,ตภ�ณฑ� (Product) และเคร0�องม0อต+างๆ ด�งน�2

1.3.1 Enterprise Service Bus

Enterprise Service Bus (ESB)จะท-าหน'าท��เป�นม,ดเด,2ลแวร�ท��ใช'ในการเช0�อมต+อเซอร�ว,สต+างๆ ท��พ�ฒนามาจากResource Layer เข'าด'วยก�น ESB เปร�ยบเสม0อนถนนเพ0�อให'เซอร�ว,สต+างๆ ต,ดต+อก�นได' โดยท��วไป ESB จะท-าหน'าท��ต+างๆด�งน�2

ต,ดต+อส0�อสารระหว+างเซอร�ว,สต+างๆท��อาจม�โปรโตคอลท��แตกต+างก�นเช+น HTTP, FTP, SMTP หร0อ JDBC เป�นต'น

ม�ความสามารถในการตรวจจ�บข+าวสาร (Message) ท��ส+งก�นระหว+างเซอร�ว,ส ม�ความสามารถในการ Routing ข+าวสาร ม�ความสามารถในการแปลงข+าวสาร (Message Transformation)ระหว+างเซอร�ว,ส บร,หารจ�ดการเช+น การต,ดต�2ง การใช'งานและการบ-าร.งร�กษาเซอร�ว,สต+างๆ ควบค.มคณภาพของเซอร�ว,ส (Quality of Services หร0อ QOS)

Thanachart Numnonda and Thanisa Kruwaisayawan SOA: สถาป�ตยกรรมเช งบร การ 10

Page 11: Introduction to SOA

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 ท��พ�ฒนาข!2นใน Process Layer

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

Page 12: Introduction to SOA

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

Page 13: Introduction to SOA

เป�นการพ�ฒนาระบบ 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

Page 14: Introduction to SOA

ร�ปท�� 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, 20082) Eric Newcomer and Greg Lomow, Understanding SOA with Web Services, Addison-Wesley, 20053) Thomas Erl, Service-Oriented Architecture Concepts Technology and Design, Prentice Hall, 2005

Thanachart Numnonda and Thanisa Kruwaisayawan SOA: สถาป�ตยกรรมเช งบร การ 14

Page 15: Introduction to SOA

บทท�� 2 เว*บเซอร�ว�ส: มาตรฐานเพ'�อการพ�ฒนา SOA

เว/บเซอร�ว,ส (Web Service) อาจไม+ได'เป�นเร0�องใหม+แล'ว และคนวงการไอท�ส+วนใหญ+เร,�มเข'าใจเทคโนโลย�เว/บเซอร�ว,สด�ข!2น มาตรฐานต+างๆ ของเว/บเซอร�ว,สเร,�มเป�นท��ยอมร�บก�นมากข!2นและกลายเป�นมาตรฐานหล�กในการพ�ฒนาเซอร�ว,สส-าหร�บ SOA แต+การพ�ฒนาเว/บเซอร�ว,สส-าหร�บประย.กต�ใช'งานจร,งในองค�กรย�งเพ,�งเร,�มต'นและว�ตถ.ประสงค�ในการพ�ฒนาย�งไม+ช�ดเจนน�ก แต+เม0�อม�การกล+าวถ!งการพ�ฒนาสถาป�ตยกรรมเช,งบร,การ (SOA) ภายในองค�กรก�นมากข!2น โดยเฉพาะความต'องการขององค�กรท��จะท-าการเช0�อมโยงระบบภายในองค�กร (Internal Enterprise Application

Integration) จ!งท-าให'องค�กรสนใจจะน-าเทคโนโลย�เว/บเซอร�ว,สเข'ามาช+วยในการพ�ฒนาโปรแกรมต+างๆ มากข!2น

บทความน�2จะเป�นการแนะน-าเทคโนโลย�เว/บเซอร�ว,ส ประโยชน� และมาตรฐานต+างๆ ของเว/บเซอร�ว,ส การพ�ฒนาเว/บเซอร�ว,สโดยใช'เทคโนโลย�จาวา (Java Technology)

2.1 ความหมายของเว*บเซอร�ว�ส

ก+อนท��จะกล+าวถ!งความหมายของเซอร�ว,ส (Service) หร0อบร,การในแง+ของเทคโนโลย� เราลองมาพ,จารณาความหมายของบร,การหร0อกระบวนการธ.รก,จ (Business Process) ท��องค�กรต+างๆ ท�2งภาคร�ฐและเอกชนต+างให'บร,การก�บประชาชน ล�กค'า พน�กงาน หร0อค�+ค'า ต�วอย+างเช+นบร,การท��พน�กงานหน'าเคาท�เตอร�ของธนาคารสามารถให'บร,การแก+ล�กค'าอาจม�หลากหลายอาท,เช+น บร,การฝาก/ถอนเง,น บร,การแลกเปล��ยนเง,นตราต+างประเทศ หร0อบร,การด'านส,นเช0�อเป�นต'น บร,การแต+ละบร,การอาจจะม�กระบวนการในการท-างานท��ซ�บซ'อนแตกต+างก�น แต+ในม.มมองของล�กค'าจะไม+สนใจว+าบร,การน�2นม�ข�2นตอนการท-างานอย+างไร แต+จะม�ว�ตถ.ประสงค�หล�กเพ0�อให'บร,การน�2นเสร/จส,2นและได'ผลล�พธ�ออกมาตามท��ล�กค'าขอใช'บร,การน�2นๆ

ความหมายของเซอร�ว,สในแง+ของซอฟต�แวร� ก/ม�ค.ณล�กษณะเช+นเด�ยวก�บบร,การท��วๆ ไป กล+าวค0อเป�นซอฟต�แวร�คอมโพเนนท� (Software Component) ท��อาจเป�น ฟ�งก�ช�น หร0อ โมด�ล ท��ม�กระบวนการการท-างานภายใน สามารถร�บอ,นพ.ตเข'ามาเพ0�อประมวลผล และจะส+งผลล�พธ�กล�บออกไป ซอฟต�แวร�เซอร�ว,สเหล+าน�2เราอาจก-าหนดเป�นกระบวนการทางธ.รก,จ (Business Process) กล+าวค0อจะเป�นฟ�งก�ช�นท��ท-าเฉพาะการประมวลผลซ!�งจะไม+เก��ยวข'องก�บส+วนแสดงผล (Presentation Logic) นอกจากน�2ด'วยเทคโนโลย� Distributed Computing ท-าให'สามารถท��จะพ�ฒนาซอฟต�แวร�เซอร�ว,สเพ0�อเร�ยกใช'จากระยะไกล (remote) ผ+านระบบเคร0อข+ายได'โดยใช'เทคโนโลย�เฉพาะด'าน (proprietary technology) อาท,เช+น RMI, CORBA หร0อ DCOM

Thanachart Numnonda and Thanisa Kruwaisayawan เว!บเซอร�ว ส: มาตรฐานเพ#�อการพ�ฒนา SOA 15

Page 16: Introduction to SOA

ต�วอย+างการใช'งานของซอฟต�แวร�เซอร�ว,สโดยใช' Distributed Computing จะเป�นไปด�งแสดงในร�ปท�� 2.1 ซ!�งจะเห/นได'ว+าม�ระบบ Back-end ต+างๆ เช+น Airline Reservation System และ Hotel Reservation System ท��ม�ซอฟต�แวร�เซอร�ว,สต+างๆ อย�+ ผ�'ใช'ด'าน Front-end ท��จะเป�นผ�'ใช'บร,การเซอร�ว,ส (Service Requester) ซ!�งอาจเร�ยกใช'จากอ.ปกรณ�ต+างๆ เช+น คอมพ,วเตอร� หร0อโทรศ�พท�เคล0�อนท�� (Mobile Phone) จะสามารถเร�ยกใช'ซอฟต�แวร�เซอร�ว,สเหล+าน�2ผ+านผ�'ให'บร,การเซอร�ว,ส (Services Provider) ซ!�งท-าหน'าท��เป�น Middleware การเร�ยกใช'เซอร�ว,สเหล+าน�2อาจเป�นการเร�ยกใช'จากผ�'ใช'โดยตรงหร0อเร�ยกใช'โดยโปรแกรมซอฟต�แวร�คอมโพเนนท� (Program to Program) จากอ.ปกรณ�ท��ใช' นอกจากน�2ในกรณ�ท��ไม+ทราบช0�อหร0อเซอร�ว,สท��ม�อย�+ เราสามารถท��จะค'นหาซอฟต�แวร�เซอร�ว,สเหล+าน�2ได'จาก Registry ท��ท-าหน'าท��เก/บรายละเอ�ยดของซอฟต�แวร�เซอร�ว,สต+างๆท��ม�อย�+ โดยผ�'ให'บร,การเซอร�ว,สจะท-าหน'าท��ลงทะเบ�ยนรายละเอ�ยดของเซอร�ว,สไว' ท�2งน�2การค'นหาเซอร�ว,สผ+าน Registry สามารถท-าได'อ�ตโนม�ต,โดยใช'ค-าส��งในโปรแกรมด'านผ�'ใช'บร,การเซอร�ว,ส

ร�ปท�� 2.1 ซอฟต�แวร�เซอร�ว สโดยใช% Distributed Computing

เว/บเซอร�ว,สจะใช'หล�กการของซอฟต�แวร�เซอร�ว,สของ Distributed Computing แต+จะใช'โปรโตคอลท��ม�

Thanachart Numnonda and Thanisa Kruwaisayawan เว!บเซอร�ว ส: มาตรฐานเพ#�อการพ�ฒนา SOA 16

Page 17: Introduction to SOA

มาตรฐานกลาง (Standard Protocol) ท��อย�+ ในร�ปแบบ XML (eXtensible Markup Language) และจะเป�นซอฟต�แวร�คอมโพเนนท�ท��ให'บร,การผ+านระบบอ,นเตอร�เน/ตโดยใช'โปรโตคอลการส0�อสารมาตรฐานเช+น TCP/IP,

HTTP หร0อ SMTP ได' Gartner Research ได'ให'ค-าน,ยามของเว/บเซอร�ว,สไว'ด�งน�2 ”เว/บเซอร�ว,สค0อ ซอฟต�แวร�คอมโพเนนท�แบบ

loosely coupled ท��ส+งบร,การผ+านเทคโนโลย�อ,นเตอร�เน/ตท��ม�มาตรฐาน”

ค.ณล�กษณะพ02นฐานของเว/บเซอร�ว,สม�ด�งน�2• เว/บเซอร�ว,สเป�นซอฟต�แวร�คอมโพเนนท�ท��ระบ.ต-าแหน+งโดยใช' URI

• อ,นเตอร�เฟสและการต,ดต�2งของเซอร�ว,สจะน,ยาม อธ,บาย และค'นหาโดยใช' ภาษา XML

• เว/บเซอร�ว,สสน�บสน.นการเร�ยกใช'จากซอฟต�แวร�ประย.กต�อ0�นๆ ผ+านโปรโตคอลอ,นเตอร�เน/ต • เว/บเซอร�ว,สใช'เอกสารแบบ XML ในการส+งข+าวสาร (Message) ระหว+างผ�'ให'บร,การและผ�'ใช'• เว/บเซอร�ว,สช+วยในการเช0�อมโยงโปรแกรมประย.กต�ต+างแพลตฟอร�ม (Cross-platform Integration) ผ+าน

อ,นเตอร�เน/ต• น�กพ�ฒนาสามารถพ�ฒนาเว/บเซอร�ว,สได'โดยใช'โปรแกรมภาษาคอมพ,วเตอร�ใดๆก/ได'เช+น Java, ASP C#

หร0อ PHP เป�นต'น • เว/บเซอร�ว,สจะไม+รวมถ!งการจ�ดการส+วนแสดงผลเหม0อน HTML

• เว/บเซอร�ว,สจะเป�นซอฟต�แวร�คอมโพเนนท�แบบ loosely couple ด�งน�2นแต+ละคอมโพเนนท�จะเป�นอ,สระและม�ฟ�งก�ช�นท��สมบ�รณ�ในต�ว

• เราสามารถท��จะค'นหาและเร�ยกใช'เว/บเซอร�ว,สจาก registry ท��เป�นแบบ public หร0อ private โดยใช'มาตรฐานกลางเช+น UDDI และ ebXML

• เว/บเซอร�ว,สสามารถท��จะเร�ยกใช'โดย client ต+างๆ ได'เช+น คอมพ,วเตอร� โทรศ�พท�เคล0�อนท�� หร0อ พ�ด�เอ

2.2 เหต ผลของการพ�ฒนาเว*บเซอร�ว�ส

เว/บเซอร�ว,สจะแตกต+างก�บโปรแกรมประย.กต�บนเว/บ (Web Application) และ Distributed Computing

(Distributed Application) ท�2งน�2เพราะโปรแกรมประย.กต�บนเว/บ จะเป�นโปรแกรมเพ0�อให'ผ�'ใช' (End User) สามารถโต'ตอบก�บโปรแกรมผ+านเว/บไซต�ได' ไม+ใช+ Distributed Computing ท��เป�นซอฟต�แวร�เซอร�ว,สและไม+สามารถเร�ยกใช'จากผ�'ใช'ท��หลากหลายได' ส+วนข'อจ-าก�ดของ Distributed Computing ค0อจะย!ดต,ดก�บโปรโตคอลเฉพาะเช+น RMI หร0อ CORBA และโปรโตคอลเหล+าน�2เป�นแบบไบนาร�� (Binary Protocol) จ!งผ�กอย�+ก�บเทคโนโลย�ใดเทคโนโลย�หน!�ง ด�งน�2นจะเห/นได'ว+าเว/บเซอร�ว,สไม+ใช+แนวค,ดใหม+ เพ�ยงแต+เปล��ยนร�ปแบบโปรโตคอลและหล�กการบางอย+างท��เคยใช'ใน

Thanachart Numnonda and Thanisa Kruwaisayawan เว!บเซอร�ว ส: มาตรฐานเพ#�อการพ�ฒนา SOA 17

Page 18: Introduction to SOA

Distributed Computing เหต.ผลส-าค�ญท��ควรเล0อกพ�ฒนาเว/บเซอร�ว,สมากกว+าการพ�ฒนาโปรแกรมประย.กต�บนเว/บและ Distributed Computing ค0อ

• เว/บเซอร�ว,สใช'โปรโตคอลท��เป�นมาตรฐานโดยใช'ร�ปแบบ XML

• เราสามารถเร�ยกใช'เว/บเซอร�ว,สโดย XML-based RPC จ!งท-าให'สามารถเร�ยกผ+าน Firewall ซ!�งแตกต+างก�บกรณ�ของเทคโนโลย�แบบกระจาย

• เว/บเซอร�ว,สสน�บสน.นการท-างานร+วมก�นของโซล�ช�น ท��ข'ามแพลตฟอร�มและใช'ภาษาคอมพ,วเตอร�ท��ต+างก�นได' โดยการส+งข+าวสารแบบ XML

• เว/บเซอร�ว,สสน�บสน.นการการเร�ยกใช'จากซอฟต�แวร�ประย.กต�อ0�นๆ ผ+านโปรโตคอลอ,นเตอร�เน/ต ซ!�งแตกต+างก�บโปรแกรมประย.กต�บนเว/บท��เป�นการเร�ยกโดยตรงจากผ�'ใช'

จ.ดเด+นของการพ�ฒนาเว/บเซอร�ว,สสามารถท��จะสร.ปได'ด�งน�2

• การเช0�อมโยง (Interoperable): สน�บสน.นการเช0�อมโยงก�นระหว+างโปรแกรมประย.กต�ท��หลากหลาย (Heterogeneous Applications) ได' โดยใช'มาตรฐานเว/บท��เป�นกลาง

• ลดค+าใช'จ+าย (Economical): สน�บสน.นการน-าซอฟต�แวร�คอมโพเน'นท�กล�บมาใช'ใหม+ (reuse) และไม+ต'องย!ดต,ดก�บเทคโนโลย�เด,ม

• อ�ตโนม�ต, (Automatic): สน�บสน.นการการเร�ยกใช'จากโปรแกรมโดยตรง โดยไม+ต'องโต'ตอบก�บผ�'ใช'• เข'าถ!งได' (Accessible): สามารถท��จะเร�ยกใช'โปรแกรมเด,ม (Legacy) หร0อโปรแกรมภายในผ+านเว/บได'• ใช'ได'ตลอด (Available): สน�บสน.นการเร�ยกใช'ได'ท.กท�� ท.กอ.ปกรณ� และท.กเวลา• ขยายได' (Scalable): ไม+ได'จ-าก�ดขนาดของโปรแกรมหร0อจ-านวนของระบบต+างๆ

2.3 โมเดลการท&างานของเว*บเซอร�ว�ส

กระบวนการการท-างานของเว/บเซอร�ว,สจะม�ข�2นตอนการท-างานเช+นเด�ยวก�บซอฟต�แวร�เซอร�ว,สท��ใช' Distributed Computing ด�งอธ,บายในร�ปท�� 2.1 ซ!�งเราสามารถท��จะแบ+งบทบาทองค�ประกอบของเว/บเซอร�ว,สได'เป�นสามส+วน โดยท�2งสามองค�ประกอบม�ความส�มพ�นธ�ด�งแสดงในร�ปท�� 2.2 และสามารถอธ,บายได'ด�งน�2

• ผ�'ให'บร,การ (Service Provider): ผ�'ให'บร,การจะม�หน'าท��ในการพ�ฒนาและต,ดต�2งเว/บเซอร�ว,ส และเป�นผ�'ท��น,ยามความหมายของเซอร�ว,สและลงทะเบ�ยนเซอร�ว,สก�บ Service Registry

• ผ�'ใช'บร,การ (Service Requester): ผ�'ใช'บร,การจะเป�นผ�'เร�ยกใช'เว/บเซอร�ว,ส โดยอาจท-าการค'นหาเซอร�ว,สจากเซอร�ว,สไดเร/กทอร�� แล'วท-าการเร�ยกใช'เซอร�ว,สจากผ�'ให'บร,การ

Thanachart Numnonda and Thanisa Kruwaisayawan เว!บเซอร�ว ส: มาตรฐานเพ#�อการพ�ฒนา SOA 18

Page 19: Introduction to SOA

• Service Registry: หร0ออาจเร�ยกว+า Service Broker ม�หน'าท��ในการร�บลงทะเบ�ยนและช+วยในการค'นหาเว/บเซอร�ว,ส Service Registry จะเก/บรายละเอ�ยดของเว/บเซอร�ว,สต+างๆเช+น น,ยาม และต-าแหน+งของเว/บเซอร�ว,ส ท-าหน'าท��คล'ายก�บสม.ดโทรศ�พท�เพ0�อช+วยให'ผ�'ใช'บร,การสามารถค'นหาเซอร�ว,สท��ต'องการได'

ร�ปท�� 2.2 โมเดลการท'างานของเว(บเซอร�ว ส

2.4 มาตรฐานหล�กของเว*บเซอร�ว�ส

มาตรฐานหล�กของการพ�ฒนาเว/บเซอร�ว,สจะประกอบไปด'วยมาตรฐานต+างๆด�งน�2 XML, WSDL, SOAP และ UDDI รายละเอ�ยดของแต+ละมาตรฐานม�ด�งน�2

2.4.1 Extensible Markup Language (XML)

XML เป�นมาตรฐานท��ทาง W3C (World Wide Web Consortium) ประกาศให'เป�นมาตรฐานของข'อม�ลเม0�อเด0อนก.มภาพ�นธ� ปD 1998 โดย XML จะอย�+ในร�ปของไฟล�ข'อความท��ใช' Unicode และสามารถท��สร'างร�ปแบบในการท��จะแสดงข'อม�ลท��ซ�บซ'อนในร�ปแบบของข'อความท��สามารถอ+านได'ง+าย ในป�จจ.บ�น XML ได'กลายเป�นมาตรฐานส-าค�ญส-าหร�บการก-าหนดโครงสร'างข'อม�ล เน02อหา และร�ปแบบของข'อม�ลของเอกสารอ,เล/กทรอน,กส� และย�งม�การพ�ฒนาเพ0�อให'สามารถแลกเปล��ยนข'อม�ลระหว+างหน+วยงาน โปรแกรมประย.กต� ระบบ และอ.ปกรณ�ต+างผ+านทางอ,นเตอร�เน/ตได'อ�กด'วย

Thanachart Numnonda and Thanisa Kruwaisayawan เว!บเซอร�ว ส: มาตรฐานเพ#�อการพ�ฒนา SOA 19

Page 20: Introduction to SOA

2.4.2 Simple Object Access Protocol (SOAP)

SOAP ท-าหน'าท��เป�นโปรโตคอลข+าวสาร (Message Protocol) ส-าหร�บการแลกเปล��ยนข'อม�ลระหว+างผ�'ให'บร,การและผ�'ใช'บร,การ โดย SOAP อ,งมาจากภาษา XM:โครงสร'างของ SOAP จะประกอบไปด'วย

• SOAP Envelope: ใช'ในการอธ,บายข+าวสาร ระบ.เน02อหา และกระบวนการจ�ดการข'อม�ล• SOAP Transport: ใช'ในการอธ,บายโปรโตคอลการส+งข'อม�ลเช+น HTTP หร0อ SMTP

• SOAP Encoding: ใช'ในการอธ,บายการเข'ารห�สเพ0�อจ�บค�+ชน,ดข'อม�ล (data type) ท��ใช'ในโปรแกรมประย.กต�ก�บ XML elements

โปรโตคอล SOAP เปร�ยบเสม0อนจดหมายท��ใช'ในการส0�อสาร แต+ย�งต'องใช'โปรโตคอลในการส0�อสารอ0�นๆ เช+น HTTP ในการท-าหน'าท��ส+งจดหมาย SOAP เป�นโปรโตคอลแบบข'อความ ซ!�งแตกต+างก�บโปรโคคอล IIOP ของ CORBA หร0อ JRMP ของ RMI ท��เป�นโปรโตคอลแบบไบนาร�� จ!งท-าให' SOAP สามารถท��จะใช'ส+งข'อความข'ามแฟลตฟอร�ม และระบบต+างๆ ได' และเวอร�ช�นล+าส.ดของ SOAP ค0อ 2.0

การส+งข'อความ SOAP ม�สองร�ปแบบค0อ SOAP-RPC และ SOAP-Document โดย SOAP-RPC ใช'ในการส+งข'อความเพ0�อใช'เร�ยกเมธอดหร0อ procedure ซ!�งโดยมากจะเป�นร�ปแบบ synchronous โดย SOAP จะส+ง SOAP

Request และข'อม�ลต+างๆ เพ0�อเร�ยกใช'เมธอดในการประมวลผล และจะรอให'ได'ผลล�พธ�การประมวลผลท��ส+งกล�บมาแบบ SOAP Response ส+วน SOAP-Document ใช'ในการส+งข+าวสารหร0อข'อม�ลในร�ปแบบ XML ระหว+างผ�'ให'บร,การและผ�'ใช'บร,การ โดยสามารถส+งได'ท�2งแบบ Synchronous และ Asynchronous

Listing ท�� 2.1 แสดงต�วอย+างการใช' SOAP เร�ยกโอเปอเรช�น calculateTax ของเว/บเซอร�ว,ส TaxServices

และผลล�พธ�ท��ส+งกล�บมา SOAP Response

Listing ท�� 2.1 ต�วอย+าง SOAP Resquest/Response

<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/

xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://ws/"><soapenv:Body>

<ns1:calculateTax><income>730000.0</income>

</ns1:calculateTax></soapenv:Body>

</soapenv:Envelope>

<?xml version="1.0" encoding="UTF-8"?>

Thanachart Numnonda and Thanisa Kruwaisayawan เว!บเซอร�ว ส: มาตรฐานเพ#�อการพ�ฒนา SOA 20

Page 21: Introduction to SOA

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://ws/"><soapenv:Body>

<ns1:calculateTaxResponse><return>89500.0</return>

</ns1:calculateTaxResponse></soapenv:Body>

</soapenv:Envelope>

2.4.3 Web Services Description Language (WSDL)

WSDL เป�นภาษา XML ท��ใช'อธ,บายเว/บเซอร�ว,ส โดยจะแบ+งการอธ,บายเว/บเซอร�ว,สเป�นสองส+วนด�งน�2• ส+วนท�� เป�นนามธรรม (Abstract) เพ0�ออธ,บายโอเปอเรช�น (Operation) อ,นพ.ตและเอาท�พ.ต

พาราม,เตอร�• ส+วนท��เป�นร�ปธรรม (Concrete) เพ0�ออธ,บายโปรโตคอลของเน/ตเวอร�ค ต-าแหน+งของจ.ดปลายทาง

(Endpoint Address) และ ร�ปแบบของข'อม�ล

ในป�จจ.บ�น W3C ได'ออกข'อก-าหนดส-าหร�บ WSDL เป�นเวอร�ช�น 2.0 แต+ค-าส��งบางค-าส��งจะไม+สอดคล'องก�บเวอร�ช�น 1.0 ด�งน�2นการจะเร�ยกใช' WSDL ควรม�การตรวจสอบว+าเคร0�องม0อท��ใช'พ�ฒนาสอดคล'องก�บเวอร�ช�นใด WSDL

สามารถเปร�ยบเท�ยบได'ก�บ Java interface ท��ใช'ใน RMI หร0อ ภาษา IDL (Interface Description Language) ท��ใช'ใน CORBA ส-าหร�บ Distributed Computing

Listing ท�� 2.2 แสดงต�วอย+างของ WSDL เพ0�ออธ,บายเว/บเซอร�ว,สท��ช0�อ TaxServices เราจะเห/นได'ว+าในส+วน Abstract จะม�แทค (tag) ท��ช0�อ <message> และ <portType> ในการอธ,บายโอเปอเรช�นช0�อ calculateTax และระบ.อ,นพ.ตและเอาท�พ.ตพาราม,เตอร� ในส+วน Binding จะม�แทค <binding> เพ0�ออธ,บายว+าเซอร�ว,สน�2ใช'โปรโตคอล SOAP-

Document บ น HTTP แ ล ะ แ ท ค <service> เ พ0� อ ร ะ บ. จ. ด ป ล า ย ท า ง ข อ ง เ ซ อ ร� ว, ส น�2 ว+ า อ ย�+ ท�� URL ช0� อ http://localhost:8180/WSDemo/TaxServicesService

Listing ท�� 2.2 ต�วอย+าง WSDL ของ TaxServices

<?xml version="1.0" encoding="UTF-8"?><definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://ws/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="http://ws/" name="TaxServicesService"> <types> <xsd:schema> <xsd:import namespace="http://ws/" schemaLocation="http://localhost:8180/WSDemo/TaxServicesService/__container$publishing$subctx/WEB-INF/wsdl/TaxServicesService_schema1.xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

Thanachart Numnonda and Thanisa Kruwaisayawan เว!บเซอร�ว ส: มาตรฐานเพ#�อการพ�ฒนา SOA 21

Page 22: Introduction to SOA

xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"/> </xsd:schema> </types> <message name="calculateTax"> <part name="parameters" element="tns:calculateTax"/> </message> <message name="calculateTaxResponse"> <part name="parameters" element="tns:calculateTaxResponse"/> </message> <portType name="TaxServices"> <operation name="calculateTax"> <input message="tns:calculateTax"/> <output message="tns:calculateTaxResponse"/> </operation> </portType> <binding name="TaxServicesPortBinding" type="tns:TaxServices"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="calculateTax"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="TaxServicesService"> <port name="TaxServicesPort" binding="tns:TaxServicesPortBinding"> <soap:address location="http://localhost:8180/WSDemo/TaxServicesService" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"/> </port> </service></definitions>

2.4.4 Universal Description, Discovery and Integration (UDDI)

UDDI เป�นการน,ยามร�ปแบบและกลไกส-าหร�บ registry ท��ใช'ในการเก/บและประกาศข'อม�ลเก��ยวก�บเว/บเซอร�ว,สโดยใช'ภาษา XML โดยท�� UDDI จะเปร�ยบเสม0อนสม.ดโทรศ�พท�หน'าเหล0องท��องค�กรธ.รก,จต+างๆ ใช'ระบ.และโฆษณาหมายเลขโทรศ�พท�ขององค�กรเพ0�อให'ผ�'ใช'โทรศ�พท�ค'นหาได' โดยท��วไป Service Registry จะใช' UDDI

เป�นมาตรฐานเพ0�อให'ผ�'ให'บร,การสามารถลงทะเบ�ยนประกาศเว/บเซอร�ว,สได' และผ�'ใช'บร,การก/สามารถจะต,ดต+อก�บ UDDI Registry เพ0�อค'นหาเซอร�ว,สท��ต'องการและเร�ยกใช'จากผ�'ให'บร,การต+อไป

ข'อม�ลใน UDDI จะประกอบไปด'วยรายละเอ�ยดเก��ยวก�บองค�กร (businessEntity) รายละเอ�ยดเก��ยวก�บเซอร�ว,ส (businessService) รายละเอ�ยดเก��ยวก�บการต,ดต+อ (bindingTemplate) URL ส-าหร�บการเร�ยกใช'เซอร�ว,ส

Thanachart Numnonda and Thanisa Kruwaisayawan เว!บเซอร�ว ส: มาตรฐานเพ#�อการพ�ฒนา SOA 22

Page 23: Introduction to SOA

(accessPoint) และข'อม�ลอ'างอ,งไปย�ง WSDL (tModelInstanceInfo) มาตรฐาน UDDI ล+าส.ดเป�นเวอร�ช�น 3.0

นอกจากน�2เราย�งสามารถท��จะแบ+ง Registry ได'เป�นสองประเภทค0อ public registry ซ!�งเป�น registry ท��เป@ดให'ใช'ท��วไปท�2งภายใน และภายนอกองค�กร ก�บ private registry ซ!�งเป�น registry ท��เป@ดให'ใช'เฉพาะภายใน การควบค.มด�แล public registry จะเป�นไปได'ยากกว+า จ!งท-าให'องค�กรส+วนมากจะเร,�มต'นการพ�ฒนาจาก private registry ก+อน

2.5 มาตรฐานอ'�นๆ ของเว*บเซอร�ว�ส

มาตรฐาน WSDL, SOAP และ UDDI เป�นเพ�ยงมาตรฐานพ02นฐานของเว/บเซอร�ว,ส การพ�ฒนาเว/บเซอร�ว,สในทางปฏ,บ�ต,จ-าเป�นต'องพ,จารณาเร0�องอ0�นเช+น ความปลอดภ�ย Transaction หร0อ Messaging เป�นต'น ด�งแสดงในร�ปท�� 2.3 ซ!�งแสดงต�วอย+างมาตรฐานเว/บเซอร�ว,สอ0�นๆ ตามฟ�งก�ช�นของการท-างาน โดยจะม�มาตรฐานท��ส-าค�ญ อาท,เช+น

ร�ปท�� 2.3 มาตรฐานต*างๆ ท��เก��ยวข%องก�บเว(บเซอร�ว ส

• WS-Addressing: มาตรฐานท��ใช'ร+วมก�บ SOAP Header ในการระบ.โปรโตคอลการส0�อสารและระบบข+าวสาร (Messaging Systems)

• WS-Security: มาตรฐานท��เป�นโครงสร'าง (Framework) เพ0�อเช0�อมต+อก�บเทคโนโลย�ระบบความ

Thanachart Numnonda and Thanisa Kruwaisayawan เว!บเซอร�ว ส: มาตรฐานเพ#�อการพ�ฒนา SOA 23

Page 24: Introduction to SOA

ปลอดภ�ยต+างๆ• SAML: Security Assertion Markup Language เป�นมาตรฐานท��ทาง OASIS ก-าหนดข!2นเพ0�อ

สน�บสน.นการท-า Single Sign On (SSO) และ Authentication

• WS-BPEL: มาตรฐานส-าหร�บการประกอบ (orchestration) กระบวนการทางธ.รก,จ (Business

Process) โดยใช'ค-าส��งท��เป�นภาษา XML

• WSRP: Web Services for Remote Portal มาตรฐานส-าหร�บการเร�ยกใช' Web Services จากเว/บท+า (Portal)

2.6 การพ�ฒนา SOA โดยใช)เว*บเซอร�ว�ส

แม'การพ�ฒนาสถาป�ตยกรรมเช,งบร,การ (Service Oriented Architecture หร0อ SOA) ในย.คแรกจะสามารถท-าได'โดยใช'เทคโนโลย�อ0�นๆ อาท,เช+น CORBA, Java RMI และ DCOM หร0อสามารถใช' MOM (Message

Oriented Middleware) เพ0�อพ�ฒนา SOA ในร�ปของการแลกเปล��ยนข'อม�ลของสถาป�ตยกรรม EAI ท��น,ยมใช'ท��วไป แต+ในป�จจ.บ�นการพ�ฒนา SOA โดยใช'เทคโนโลย�เว/บเซอร�ว,สเร,�มได'ร�บการยอมร�บมากกว+าเทคโนโลย�อ0�นๆ ด'วยเหต.ผลด�งน�2

• เว/บเซอร�ว,สอ,งอย�+ก�บมาตรฐานท��เป@ดเช+น SOAP, WSDL, UDDI และมาตรฐานเว/บเซอร�ว,สอ0�นๆ ท-าให'องค�กรต+างไม+จ-าเป�นท��จะต'องลงท.นก�บโซล�ช�นท��ใช'เทคโนโลย�เฉพาะ และปGองก�นการผ�กขาดโดยผ�'ผล,ตรายใดรายหน!�ง

• เว/บเซอร�ว,สสน�บสน.นการเช0�อมโยงก�บโซล�ช�นของผ�'ผล,ตต+างๆ ท-าให'ช+วยลดต'นท.น• เว/บเซอร�ว,สสน�บสน.นการเช0�อมโยงระบบ แพลตฟอร�ม และโซล�ช�นต+างๆท�2งภายในองค�กร ระหว+าง

องค�กร และภายนอก

ร�ปท�� 2.4 แสดงต�วอย+างการพ�ฒนา SOA โดยใช'เทคโนโลย�เว/บเซอร�ว,ส สร'างเซอร�ว,สจากเทคโนโลย�ท��ต+างก�นค0อ IMS, CORBA, Java EE และ Workflow โดยม�สถาป�ตยกรรมแต+ละส+วนด�งน�2

• Business Service Tier : ประกอบด'วยเซอร�ว,สท��พ�ฒนามาจากเทคโนโลย� IMS, CORBA และ โปรแกรม Workflow และม�เว/บเซอร�ว,สท��พ�ฒนาโดยใช'เทคโนโลย�Java EE

• Business Access Tier : จะม� Service Registry (เช+น UDDI) ส-าหร�บการลงทะเบ�ยนและค'นหาเว/บเซอร�ว,ส ด�งน�2นจ!งต'องม� Legacy gateways เพ0�อแปลงเซอร�ว,สท��ใช'เทคโนโลย�ให'เป�นเว/บเซอร�ว,สส-าหร�บ IMS, CORBA และใช' WebSphere MQ เพ0�อแปลง Workflow ให'เป�นเว/บเซอร�ว,ส

• Communication Infrastructure : จะใช'โปรโตคอล SOAP บน HTTP และ SOAP ท��ใช'มาตรฐาน

Thanachart Numnonda and Thanisa Kruwaisayawan เว!บเซอร�ว ส: มาตรฐานเพ#�อการพ�ฒนา SOA 24

Page 25: Introduction to SOA

WS-Reliable Messaging• Client/Presentation : ต�วอย+างน�2แสดงการใช'โปรแกรมแสดงผลท��พ�ฒนาโดยเทคโนโลย� .NET

ร�ปท�� 2.4 ต�วอย*างการพ�ฒนา SOA โดยใช%เทคโนโลย�เว(บเซอร�ว ส

2.7 การพ�ฒนาเว*บเซอร�ว�สโดยใช)เทคโนโลย�จาวา

การพ�ฒนาเว/บเซอร�ว,สสามารถแบ+งได'ตามบทบาทของผ�'เก��ยวข'องค0อ การพ�ฒนาเพ0�อเป�นผ�'ให'บร,การ การพ�ฒนาเพ0�อเป�นผ�'ใช'บร,การ และการพ�ฒนาส-าหร�บ Service Registry เทคโนโลย�จาวาท��สามารถจะพ�ฒนาเว/บเซอร�ว,สได'จะอย�+ในแพลตฟอร�มท��เป�น Java EE โดยใน Java EE 5 ได'ก-าหนดค-าส��ง API ส-าหร�บภาษาจาวาในการเร�ยกใช' XML ต+างๆ ด�งน�2

• JAX-WS (Java API for XML-Based Web Services) เป�นช.ดค-าส��งภาษาจาวาเพ0�อพ�ฒนาให'บร,การเว/บเซอร�ว,สและเร�ยกใช'เว/บเซอร�ว,ส โดยจะสน�บสน.นมาตรฐานต+างๆของ W3C เช+น SOAP และ WSDL

และสน�บสน.นการส+งข'อม�ลท�2งแบบ Asynchronous และ Synchronous พร'อมท�2งท-าการ binding ข'อม�ลโดยใช' JAXB ด�งน�2นน�กพ�ฒนาโปรแกรมสามารถใช'ภาษาจาวาสร'างและเร�ยกเว/บเซอร�ว,สได' โดยไม+จ-าเป�นต'อง

Thanachart Numnonda and Thanisa Kruwaisayawan เว!บเซอร�ว ส: มาตรฐานเพ#�อการพ�ฒนา SOA 25

Page 26: Introduction to SOA

พ�ฒนา SOAP หร0อ WSDL เอง• JAXB (Java Architecture for XML Binding) เป�นช.ดค-าส��งภาษาจาวาเพ0�อท-าการจ�บค�+ (mapping)

ข'อม�ลท��เป�นภาษา XML ก�บออปเจ/คท��เป�นจาวาคลาส• JAXP (Java API for XML Processing) เป�นช.ดค-าส��งภาษาจาวาเพ0�อแปล แปลง ตรวจสอบความถ�กต'อง และค'นหา เอกสารหร0อไฟล�ท��เป�นภาษา XML

• SAAJ (SOAP with Attachments API for Java) เป�นช.ดค-าส��งภาษาจาวาเพ0�อสน�บสน.นการส+งเอกสาร XML ผ+านอ,นเตอร�เน/ต• JAX-RPC (Java API for XML-Based RPC) เป�นช.ดค-าส��งส-าหร�บพ�ฒนาเว/บเซอร�ว,สเช+นเด�ยวก�บ JAX-WS แต+จะใช'ส-าหร�บ J2EE เวอร�ช�น 1.4 และสน�บสน.น SOAP 1.1

• WSIT (Web Services Interoperability Technology) เป�นช.ดค-าส��งภาษาจาวาเพ0�อเช0�อมโยงระหว+าง Java EE และ .NET 3.0 ช+วยในการพ�ฒนาโปรแกรมผ+านสถาป�ตยกรรม SOA

ส-าหร�บแพลตฟอร�ม Java SE จะม� API ส-าหร�บ XML อย�+ในเวอร�ช�น 6 (Java SE 6) โดยจะม�ช.ดค-าส��ง JAX-

WS 2.0 JAXB 2.0 และ SAAJ 1.3

การพ�ฒนาเพ0�อให'บร,การเว/บเซอร�ว,สจะต'องใช'แพลตฟอร�ม Java EE ซ��ง Server ท��เป�น Java EE จะมองการให'บร,การเว/บเซอร�ว,สเป�นเพ�ยงพอร�ตหร0อช+องทาง (channel)หน!�งในการบร,การเซอร�ว,ส ด�งน�2นจ!งไม+ม�ผลท-าให'สถาป�ตยกรรมเปล��ยนไป และสามารถน-าคอมโพเน'นท�ของ Java EE (เช+น Session Bean) ท��ม�อย�+มาพ�ฒนาเป�นเว/บเซอร�ว,สได'โดยง+าย นอกจากน�2การพ�ฒนาเว/บเซอร�ว,สบนเทคโนโลย�จาวา ย�งสามารถท��จะได'ใช'จ.ดเด+นของแพลตฟอร�ม Java EE ในด'านความปลอดภ�ย ความเช0�อม��น (Reliability) และการรองร�บผ�'ใช'จ- านวนมาก (Scalability)

เว/บเซอร�ว,สค0อพอร�ตหน!�งในแพลตฟอร�ม Java EE ซ!�งจะท-างานภายใน Java EE Container โดย container

จะเป�น Runtime environment ของคอมโพเน'นท�ท��เป�นเว/บเซอร�ว,ส โดยม�ค-าส��ง JAX-WS หร0อ JAX-RPC ในการท��จะต,ดต+อก�บ Runtime environment อ�กช�2นหน!�ง โดยท��วไปเราสามารถท��จะสร'างคอมโพเน'นท�ของเว/บเซอร�ว,สได'สองประเภทด�งแสดงในร�ปท�� 2.5 ค0อ

• เว/บเซอร�ว,สแบบ Web-tier (โดยใช' Servlet endpoint) ต�วอย+างเช+น Tomcat หร0อ Axis

• เว/บเซอร�ว,สแบบ EJB-tier (โดยใช' Session Bean endpoint) ต�วอย+างเช+น Sun Java Application Server

การพ�ฒนาเว/บเซอร�ว,สส-าหร�บหน+วยงานขนาดเล/กอาจสามารถท-าได'โดยใช' เว/บเซอร�ว,สแบบ Web-tier แต+หากต'องพ�ฒนาเพ0�อรองร�บผ�'ใช'จ-านวนมากจ-าเป�นต'องใช' เว/บเซอร�ว,สแบบ EJB-tier ด�งน�2นผ�'พ�ฒนาเว/บเซอร�ว,สโดยใช'

Thanachart Numnonda and Thanisa Kruwaisayawan เว!บเซอร�ว ส: มาตรฐานเพ#�อการพ�ฒนา SOA 26

Page 27: Introduction to SOA

เทคโนโลย�จาวาควรจะม�ความเข'าใจเร0�อง Application Server และสามารถพ�ฒนา EJB ได'

ร�ปท�� 2.5 Java Web Service Components

แม'หล�กการของเว/บเซอร�ว,ส จะอ,งอย�+ก�บมาตรฐานต+างๆ แต+การพ�ฒนาเว/บเซอร�ว,สโดยใช'เทคโนโลย� จาวาสามารถท-าได'โดยไม+ต'องพ�ฒนาโปรโตคอล SOAP หร0อ WSDL โดยตรง นอกจากน�2ย�งม�เคร0�องม0อเพ0�อให'สามารถพ�ฒนาโปรแกรมได'โดยง+ายเช+น NetBeans 5.5 ผ�'ท��สนใจจะพ�ฒนาเว/บเซอร�ว,สโดยใช' NetBeans สามารถด�ราย ละเอ�ยดเพ,�มเต,มได'จากบทความ Java Web Services ท�� url ช0�อ http://www.thaijavadev.com/soa/JCAPS/pdf-files/JAX-WS.pdf

2.8 บทสร ป

เว/บเซอร�ว,สเป�นซอฟต�แวร�คอมโพเน'นท� ท��ให'บร,การผ+านเทคโนโลย�อ,นเตอร�เน/ตโดยใช'มาตรฐานเป@ด มาตรฐานพ02นฐานของเว/บเซอร�ว,สประกอบด'วย XML, SOAP, WSDL และ UDDI เว/บเซอร�ว,สเป�นเทคโนโลย�ท��เหมาะสมในการน-าไปพ�ฒนา SOA ท�2งน�2เน0�องจากใช'มาตรฐานเป@ดและไม+ผ�กต,ดอย�+ก�บเทคโนโลย�ใดเทคโนโลย�หน!�ง แต+การพ�ฒนาเว/บเซอร�ว,สในทางปฏ,บ�ต,ย�งต'องค-าน!งถ!งมาตรฐานอ0�นๆอ�กมากเช+นเร0�องความปลอดภ�ย เราสามารถท��จะพ�ฒนาเว/บเซอร�ว,สโดยใช'เทคโนโลย�จาวาได' ซ!�งจะม�จ.ดเด+นในด'านความปลอดภ�ย ความเช0�อม��น และความสามารถในการรองร�บผ�'ใช'จ-านวนมาก

Thanachart Numnonda and Thanisa Kruwaisayawan เว!บเซอร�ว ส: มาตรฐานเพ#�อการพ�ฒนา SOA 27

Page 28: Introduction to SOA

เอกสารอ!างอ�ง• 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

Page 29: Introduction to SOA

บทท�� 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

Page 30: Introduction to SOA

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

Page 31: Introduction to SOA

• ม�การก-าหนดน,ยามของเซอร�ว,สท��ช�ดเจน โดยอาจใช'มาตรฐาน 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

Page 32: Introduction to SOA

เทคโนโลย�ใน 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

Page 33: Introduction to SOA

ประมวลผล หร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

Page 34: Introduction to SOA

การประสานงานก�นระหว+างเว/บเซอร�ว,ส สามารถควบค.มโดยต�วประสานงานกลาง เว/บเซอร�ว,สแต+ละต�วสามารถถ�กเร�ยกใช'ใน 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

Page 35: Introduction to SOA

• 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

Page 36: Introduction to SOA

• 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

Page 37: Introduction to SOA

น,ยามอย�+ใน 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) ท��ใช+การผนวกภารก,จพ02นฐานเข'าด'วยก�น เพ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

Page 38: Introduction to SOA

น�กพ�ฒนาสามารถน-ามาทดสอบและเร�ยนร�'ได'โดยไม+ม�ค+าใช'จ+าย ผ�'ท��สนใจสามารถหาข'อม�ลเพ,�มเต,มได'จากบทความ Developing Business Process ท�� url ช0�อ http://www.thaijavadev.com/soa/JCAPS/pdf-files/BP.pdf

Listing ท�� 3.1 ไฟล� Asynchronous.bpel

<?xml version="1.0" encoding="UTF-8"?><process name="AsynchronousSampleClient" targetNamespace="http://enterprise.netbeans.org/bpel/AsynchronousSampleClient" xmlns:partnerNS="http://enterprise.netbeans.org/bpel/AsynchronousSample" xmlns:wsdlNS="http://enterprise.netbeans.org/bpel/AsynchronousSampleClient" xmlns:xs="http://enterprise.netbeans.org/bpel/AsynchronousSampleClient" xmlns="http://schemas.xmlsoap.org/ws/2004/03/business-process/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/">

<import namespace="http://enterprise.netbeans.org/bpel/AsynchronousSample" location="AsynchronousSample.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/> <import namespace="http://enterprise.netbeans.org/bpel/AsynchronousSampleClient" location="AsynchronousSampleClient.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/> <partnerLinks> <partnerLink name="partnerLinkA" partnerLinkType="wsdlNS:AsynchronousClientPartnerLinkType" myRole="AsynchronousClientProvider" /> <partnerLink name="partnerLinkB" partnerLinkType="partnerNS:AsyncPartnerLinkType" myRole="serviceRequestor" partnerRole="serviceProvider" /> </partnerLinks>

<variables> <variable name="inputVar" messageType="wsdlNS:requestMessageClient"/> <variable name="outputVar" messageType="wsdlNS:responseMessageClient"/> <variable name="partnerInputVar" messageType="partnerNS:requestMessage"/> <variable name="partnerOutputVar" messageType="partnerNS:responseMessage"/> </variables> <correlationSets> <correlationSet name="correlator" properties="wsdlNS:correlatorProp"/> </correlationSets>

<sequence> <receive name="start" partnerLink="partnerLinkA" portType="wsdlNS:MyPortTypeClient" operation="operationA" variable="inputVar" createInstance="yes"> <correlations> <correlation set="correlator" initiate="yes"/> </correlations>

Thanachart Numnonda and Thanisa Kruwaisayawan การพ�ฒนา Business Process ส$าหร�บ SOA 38

Page 39: Introduction to SOA

</receive>

<assign name="assign1"> <copy> <from variable="inputVar" part="inputType"/> <to variable="partnerInputVar" part="inputType"/> </copy> </assign>

<invoke name="invokepartner" partnerLink="partnerLinkB" portType="partnerNS:MyPortType" operation="asyncOperation" inputVariable="partnerInputVar"/>

<receive name="receiveCallback" partnerLink="partnerLinkB" portType="partnerNS:MyCallbackPortType" operation="onResult" variable="partnerOutputVar" createInstance="no"> <correlations> <correlation set="correlator"/> </correlations> </receive> <assign name="assign2"> <copy> <from variable="partnerOutputVar" part="resultType"/> <to variable="outputVar" part="resultType"/> </copy> </assign> <reply name="end" partnerLink="partnerLinkA" portType="wsdlNS:MyPortTypeClient" operation="operationA" variable="outputVar"/>

</sequence></process>

Thanachart Numnonda and Thanisa Kruwaisayawan การพ�ฒนา Business Process ส$าหร�บ SOA 39

Page 40: Introduction to SOA

ร�ปท�� 3.8 BPEL Visual Diagram ของ Asynchronous.bpel

3.3.3 BPEL Server

BPEL Server จะท-าหน'าท��เป�น run-time environment หร0อ Engine ในการท��จะประมวลผล Business

Process ท��พ�ฒนาข!2นโดยภาษา BPEL ท�2งน�2 BPEL โดยมากจะท-างานอย�+ภายใน Java EE หร0อ .NET Application

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

Page 41: Introduction to SOA

ส+วน 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 CompatibilityApache ODE ASF 2 Apache

AxisJava EE

BPEL4WS1.1WS-BPEL 2.0

Biztalk Server

Microsoft Biztalk 2006 R2

.NET BPEL, BPMN,RFID

IBolt Server Magic Software

Java EE BPEL4WS

jBPM jBoss 03/03/01 Java EE WS-BPELGlassFish openESB

Sun Microsystems

2 Java EEJBI

WS-BPEL 2.0

Oracle BPEL Process Manager

Oracle Corp. 10.1.0.2 Java EE BPEL4WS1.1

SAP Exchange

Infrastructure

SAP AG 3 BPEL

WebSphereProcess Server

IBM 6.0.13 Java EE WS-BPEL

Thanachart Numnonda and Thanisa Kruwaisayawan การพ�ฒนา Business Process ส$าหร�บ SOA 41

Page 42: Introduction to SOA

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.com2) Eric Newcomer and Greg Lomow, Understanding SOA with Web Services, Addison-Wesley, 20053) Thomas Erl, Service-Oriented Architecture Concepts Technology and Design, Prentice Hall, 2005

Thanachart Numnonda and Thanisa Kruwaisayawan การพ�ฒนา Business Process ส$าหร�บ SOA 42

Page 43: Introduction to SOA

บทท�� 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 เป�นไปได'ด'วยความรวดเร/วข!2น ESB ท��เป�น Open Source ก/ม�อย�+หลายต�วเช+น GlassFish OpenESB หร0อ MuleSource :ซ!�ง Open

source ESB บางต�วก/พ�ฒนาข!2นตามร�ปแบบของ Gregor Hohpe และ Bobby Woolf

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

Page 44: Introduction to SOA

4.2 ค�ณล�กษณะของ ESB

นอกจากการท-าหน'าท��เป�นส0�อกลางในการส+ง message ระหว+างเซอร�ว,สต+างๆแล'ว ESB ย�งท-าหน'าท��อ0�นๆอาท,เช+น การบร,หารจ�ดการเซอร�ว,ส การแปลง message ให'อย�+ในร�ปแบบ (format) ท��เหมาะสม ซ!�ง ESB แต+ละค+ายจะม�ความสามารถแตกต+างก�น โดยสามารถท��จะสร.ปค.ณสมบ�ต,ต+างๆของ ESB โดยท��วไปได'ด�งน�2

4.2.1 สน�บสน นเว*บเซอร�ว�ส

ESB จะต'องสามารถท��เร�ยกใช'เว/บเซอร�ว,สท��ใช'โปรโตคอล SOAP และ WSDL รวมถ!งเซอร�ว,สท��เป�น POX

(Plain Old XML) โดยผ+านโปรโตคอล HTTP ซ!�งเราสามารถท��จะเร�ยกใช'เซอร�ว,สเหล+าน�2ผ+าน ESB โดยใช'โปรโตคอล WSDL แทนท��จะต'องเร�ยกตรงไปย�ง Back-End Application ซ!�งเป�น client ของเซอร�ว,ส ท�2งน�2 ESB

แต+ละชน,ดจะม�ว,ธ�การเช0�อมต+อก�บเว/บเซอร�ว,สด'วยว,ธ�ท��แตกต+างก�น อาท,เช+น openESB (หร0อเร�ยกว+า GlassFish ESB)

จะใช'ว,ธ�โดยการเร�ยกผ+านค-าส��ง BPEL ส+วน Oracle Service Bus จะใช'ว,ธ�การในการสร'าง route แล'วค+อยก-าหนด rule และ message ของ route

4.2.2 สน�บสน�นการเช+'อมต�อผ�าน Adapter

ESB ค+ายต+างๆจะม� Adapter เพ0�อให'สามารถเช0�อมต+อก�บโมด�ลของ Back-End Application ในกรณ�ท��เซอร�ว,สของ Application เหล+าน�2นไม+ได'ใช'เว/บเซอร�ว,ส ท��เป�นโปรโตคอล SOAP หร0อ XML ซ!�ง ESB ของค+ายต+างๆจะม� Adapter ส-าหร�บ Package software, ERP application หร0อ Database เช+น Peoplesoft, ERP R/3, Siebel,

Oracle Database โดย Adapter เหล+าน�2จะช+วยท-าให' ESB เช0�อมต+อก�บโมด�ลหร0อฟ�งก�ช��นของ Application เหม0อนก�บเว/บเซอร�ว,ส ท�2งน�2บางคร�2งเราอาจต'องม�การปร�บเปล��ยนฟ�งก�ช��นเหล+าน�2นตามความเหมาะสม

4.2.3 สน�บสน นการเช'�อมต0อผ0านโปรโตคอลต0างๆ

ESB จะท-าหน'าท��เป�นส0�อกลางในการต,ดต+อก�บ Back-End Application ท��อาจม�เซอร�ว,สท��ใช'โปรโตคอลท��หลากหลายอาท,เช+นโปรโตคอล HTTP, FTP, SMTP, JMS หร0อ JDBC เป�นต'น ด�งน�2น ESB จะช+วยท-าให'การเช0�อมต+อระหว+างเซอร�ว,สต+างๆเป�นแบบ loosely couple โดยไม+ผ�กก�บโปรโตคอลใดๆ โดยจะท-าหน'าท��ในการส+ง message

ระหว+างเซอร�ว,สผ+าน ESB โดยใช'โปรโตคอลท��ต+างก�นได' อาท,เช+น สามารถท��จะแปลง SOAP message ท��ใช'โปรโตคอล HTTP ให'ร�นผ+านโปรโตคอล JMS ได'ในกรณ�ท�� Back-End Application จ-าเป�นท��จะต'องใช'โปรโตคอลด�งกล+าว

Thanachart Numnonda and Thanisa Kruwaisayawan Enterprise Service Bus 44

Page 45: Introduction to SOA

4.2.4 สน�บสน�นการเร,ยกใช!เซอร�ว�ส

ESB จะสน�บสน.นการเร�ยกใช'เซอร�ว,สท�2งในแบบ synchronous และ asynchronous รวมถ!งการเร�ยกแบบ callbacks โดย ESB บางร.+นจะสน�บสน.นการก-าหนด runtime policy ผ+านมาตรฐาน WS-Metadata Exchange

เพ0�อให'เร�ยกใช'เซอร�ว,สตามข'อก-าหนดด'านปลอดภ�ยหร0อค.ณล�กษณะอ0�นๆได'

4.2.5 สน�บสน�นการท&า Routing

ESB หลายร.+นจะสน�บสน.นการระบ.ต-าแหน+ง (addressing) ในการค'นหาเซอร�ว,สท��อย�+ใน Back-End

Application ต+างๆผ+าน Registry/Repository เพ0�อช+วยในการท-า Dynamic Routing ซ!�งว,ธ�การท-า Routing ของ ESB จะม�หลายแบบอาท,เช+น Content-based, Rule-based หร0อ Policy-based โดยว,ธ�การท��น,ยมมากท��ส.ดค0อ Content-based Routing เช+นการใช' X-Path เพ0�อด!งข'อม�ลจาก SOAP Message ในการหาเซอร�ว,สปลายทาง (Destination service) ท��ต'องการเร�ยก

4.2.6 สน�บสน�นการแปลงข!อม/ล

ESB จะสน�บสน.นการแปลงข'อม�ลท��อย�+ในร�ปแบบ XML ท��ม�ร�ปแบบท��แตกต+างก�นได'โดยใช' XSLT หร0อสามารถท��จะเร�ยกด�ข'อม�ลโดยใช' XQuery หร0อ XPath นอกจากน�2 ESB บางร.+นจะสน�บสน.นการส+ง message ท��ใช' XML ท��ม�ร�ปแบบมาตรฐานเช+น HL7, SWIFT หร0อ EDI เป�นต'น ท-าให'การแปลงข'อม�ลจาก Database หร0อ Back-

End Application เป�นร�ปแบบมาตรฐานเป�นไปได'โดยง+าย

4.2.7 สน�บสน�นการบร�หารจ�ดการเซอร�ว�ส

ESB จะสามารถช+วยบร,หารจ�ดการเซอร�ว,สในด'านต+างๆเพ0�อท-าให'การส+ง message ระหว+างเซอร�ว,สม�การควบค.มค.ณภาพท��ด� (QoS:Quality of Service) การจ�ดการเร0�องส,ทธ,Bการใช'เซอร�ว,ส การร�บประก�นการส+ง message

รวมถ!งการจ�ดการเร0�องความปลอดภ�ยของเซอร�ว,ส

ค.ณล�กษณะต+างๆของ ESB สามารถสร.ปได'ด�งร�ปท�� 4.1

Thanachart Numnonda and Thanisa Kruwaisayawan Enterprise Service Bus 45

Page 46: Introduction to SOA

ร�ปท�� 4.1 ค)ณล,กษณะของ ESB

4.3 ประโยชน�ของ ESB

การพ�ฒนา SOA จ!งควรท��จะต'องจ�ดหา ESB แต+ก/อาจม�น�กพ�ฒนาโปรแกรม (Developer) บางคนค,ดว+า ESB

ไม+ม�ความจ-าเป�น แต+จากประสบการณ�ของการพ�ฒนา SOA ในองค�กรจะไม+เคยพบว+าม� IT Architect รายใดท��ไม+แนะน-าการใช' SOA ถ!งแม'ว+าเซอร�ว,สส+วนใหญ+ขององค�กรน�2นจะเป�นเว/บเซอร�ว,สท��ใช'โปรโตคอล HTTP อย�+แล'วก/ตาม การพ�ฒนา SOA โดยไม+ใช' ESB ก/จะเป�นเสม0อนก�บการท-า EAI (Enterprise Application Integration) ในแบบเด,มๆท��ย!ดต,ดอย�+ก�บการใช' Adapter เช0�อมต+อก�บ Back-End Application ท��ข!2นอย�+ก�บโปรโตคอลใดโปรโตคอลหน!�ง (เช+น SOAP/HTTP) ท��ยากต+อการปร�บเปล��ยน ท-าให'กลายเป�นระบบแบบ Tightly couple

ESB ม�ข'อด�หลายประการท�2งในม.มมองของไอท�และธ.รก,จ ซ!�งสามารถท��จะสร.ปประเด/นท��ส-าค�ญได'ด�งน�2

• ลดเวลาในการพ�ฒนาระบบท��จะต'องเช0�อมก�บ Back-End-Application ท��ม�อย�+ในป�จจ.บ�น หร0อท��อาจจ�ดหามาใหม+ในอนาคต• ท-าให'เก,ดความคล+องต�ว เน0�องจากไม+ได'ผ�กต,ดอย�+ก�บโปรโตคอลหร0อระบบใดๆ การเช0�อมต+อก�บ Back-End

Application จะผ+าน interface เช+น WSDL ท-าให'ไม+จ-าเป�นต'องทราบรายละเอ�ยดข�2นตอนการพ�ฒนา Back-

End Application น�2นๆ• ม�การบร,หารจ�ดการเซอร�ว,สต+างๆแบบรวมศ�นย� ท-าให'บร,หารจ�ดการและตรวจสอบเซอร�ว,สต+างๆได'ง+ายข!2น• ส+งเสร,มให'ม�การใช' interface และโปรโตคอลท��ม�มาตรฐานในองค�กร ท-าให'ลดค+าใช'จ+ายในการพ�ฒนาและ

Thanachart Numnonda and Thanisa Kruwaisayawan Enterprise Service Bus 46

Page 47: Introduction to SOA

บ-าร.งร�กษาระบบไอท�ขององค�กร ในกรณ�ท��ต'องไปใช'โปรโตคอลเฉพาะ• ท-าให'การปร�บเปล��ยนระบบเป�นไปได'ด'วยความว+องไว

แต+ ESB ก/อาจม�ข'อเส�ยในบางด'านอาท,เช+น• จะต'องเพ,�ม overhead ข!2นมาใน message ท��จะต'องส0�อสารผ+านบ�ส ท-าให'ระบบม�ความล+าช'าข!2นเม0�อเท�ยบก�บการส0�อสารแบบ point-to-point

• จะต'องจ�ดหาเคร0�อง server เพ0�อต,ดต�2งระบบ ESB

• ESB จะกลายเป�น Single-Point of Failure

• ต'องจ�ดหาน�กไอท�ท��ม�ความเข'าใจระบบ ESB เพ0�อเข'ามาบร,หารจ�ดการและบ-าร.งร�กษาระบบ

4.4 มาตรฐาน JBI

ESB ท��ม�อย�+ในป�จจ.บ�นจะม�อย�+หลายร.+นและหลายค+าย ซ!�งแต+ละค+ายจะม�มาตรฐานของตนเองในการพ�ฒนา ESB โดยอาจม�ค.ณสมบ�ต,เฉพาะ (specification) และโปรโตคอลท��แตกต+างก�น ESB เหล+าน�2โดยมากจะท-างานภายใต'ม,ดเด,2ลแวร�ท��เป�น Application Server ซ!�งอาจเป�น Java EE Server หร0อ .NET Server ก/ได' ด�งน�2นการพ�ฒนา SOA

โดยใช' ESB ก/อาจเจอป�ญหาการผ�กขาดจากผ�'ผล,ต (vendor lock-in) ของ ESB ค+ายน�2นๆได' โดยเฉพาะเม0�อต'องการเช0�อมต+อก�บ Back-End Application เพ,�มเต,ม จ!งม�ความพยายามท��จะก-าหนดมาตรฐาน ESB ข!2นมา โดยเฉพาะ ESB ท��ท-างานภายใต' Java EE Server

Java Business Integration (JBI) เป�นมาตรฐานท��ก-าหนดโดย Java Community Process (JCP) เม0�อเด0อนส,งหาคม 2005 เพ0�อน,ยามมาตรฐานส-าหร�บเทคโนโลย�สถาป�ตยกรรมจาวาในการท-า Enterprise Integration ซ!�งก/อาจเป�นเสม0อนการก-าหนดมาตรฐาน ESB ส-าหร�บค+ายท��ใช'เทคโนโลย�จาวา ซ!�งผ�'ท��ค.'นเคยก�บเทคโนโลย�จะทราบหล�กการของจาวาท��ว+า Write Once Run Anywhere ท��ผ�'ใช'เทคโนโลย�จะไม+ถ�กผ�กขาดโดยผ�'ผล,ตรายใดรายหน!�ง อาท, เช+น JCP ได'ก-าหนดมาตรฐาน Servlet Container (Web Server ส-าหร�บร�นโปรแกรม Java Web Application เช+น Servlet หร0อ JSP) ท-าให'น�กพ�ฒนาโปรแกรมสามารถน-าโปรแกรม Java Web Application ไปร�นภายใต' Web

Server ท��ม Servlet Container ค+ายใดก/ได'เช+น Tomcat, GlassFish หร0อ WebLogic เป�นต'น

JBI ใช'หล�กการของ meta-container ท��ท-าหน'าท��เป�น container ของ containers อ�กต+อหน!�ง กล+าวค0อมาตรฐาน JBI จะท-าหน'าท��ควบค.มวงจรการท-างาน (Life-cycle management) ของ Engines (Containers) ต+างๆท��มาร�นภายใต' container ของ JBI อ�กต+อหน!�ง เช+นอาจม� BPEL Engine, EJB Engine หร0อ JDBC Connector ท��มาร�นภายใต' container ของ JBI มาตรฐาน JBI จะช+วยท-าให'ผ�'ผล,ตท��พ�ฒนา ESB ตามข'อก-าหนด JBI สามารถท��จะใช'

Thanachart Numnonda and Thanisa Kruwaisayawan Enterprise Service Bus 47

Page 48: Introduction to SOA

Engines ท��ผ�'ผล,ตรายอ0�นๆพ�ฒนามาร�นภายใต' ESB container ท��พ�ฒนาข!2นได' โดยไม+ต'องย!ดต,ดก�บผ�'ผล,ตรายใครายหน!�ง ต�วอย+างเช+น ระบบ SOA ท��ใช' Apache ServiceMix ESB สามารถท��จะร�น Engine ท��เป�น File Connector

ของ GlassFish ESB ได' เน0�องจากท�2งสองค+ายต+างก/พ�ฒนา ESB โดยใช'มาตรฐาน JBI

สถาป�ตยกรรม JBI จะประกอบไปด'วยองค�ประกอบส��ส+วนค0อ Service engines, Binding components,

Normalized message router และ runtime environment ด�งแสดงในร�ปท�� 4.2

ร�ปท�� 4.2 สถาป�ตยกรรม JBI

4.4.1 Service Engines

Service Engines (SEs) เป�นองค�ประกอบของ JBI เพ0�อท��จะใช'ในการเร�ยกเซอร�ว,สส-าหร�บร�น Business

Logic โดย SEs จะเป�น container มาตรฐานท��อาจเป�น Service Provider หร0อ Service Consumer ส-าหร�บ WSDL-Based services ท��ร�นภายใต' JBI ต�วอย+างเช+น BPEL SE ท��เป�น container ส-าหร�นร�นโปรแกรม Business

Process ท��เข�ยนด'วยภาษา BPEL เพ0�อเร�ยกใช'เซอร�ว,สต+างๆ ท�2งน�2นอกเหน0อจาก BPEL SE แล'วย�งม�ผ�'พ�ฒนา SE อ0�นๆอ�กหลายต�วอาท,เช+น XSLT SE, SQL SE, Java EE SE และ WLM SE เป�นต'น

4.4.2 Binding Components

Binding Components (BCs) เป�นองค�ประกอบของ JBI เพ0�อท��จะใช'ในการแปลงโปรโตคอลท��แตกต+างก�นของเซอร�ว,สต+างๆ เพ0�อท-าให'เซอร�ว,สสามารถส0�อสารก�นผ+านต�วกลางได' BCs จะช+วยท-าให'การพ�ฒนา SOA ไม+ผ�กต,ดอย�+ก�บโปรโตคอลใดโปรโตคอลหน!�ง และจะท-าหน'าท��เป�น proxy ในการส0�อสารก�บเซอร�ว,สท��อาจใช'โปรโตคอลเฉพาะ

Thanachart Numnonda and Thanisa Kruwaisayawan Enterprise Service Bus 48

Page 49: Introduction to SOA

ใดๆโดยการแปลงให'อย�+ในร�ปแบบท��เหมาะสม ท�2งน�2 BC แต+ละชน,ดจะสามารถท��จะแปลง message ของโปรโตคอลเฉพาะให'อย�+ในร�ปของ normalized message ได'

ท�2ง BCs และ SEs จะช+วยเป�นช+องทางในการส+ง message ส-าหร�บ Normalized Message Router ต�วอย+างเช+น BPEL SE อาจต'องการ message ท��เป�น XML ซ!�งถ'าเซอร�ว,สของ Back-End Application ใช'โปรโตคอลอ0�นๆ เราอาจต'องแปลงเซอร�ว,สเหล+าน�2นให'เป�นเว/บเซอร�ว,สท��ใช'โปรโตคอล SOAP/HTTP แต+เราสามารถท��จะใช' BC แทนการท��จะต'องแปลงให'เป�นเว/บเซอร�ว,สได' เพราะ BC จะม�ความสามารถในการแปลงโปรโตคอลเหล+าน�2นได' ในป�จจ.บ�นผ�'ผล,ตท��อ,งก�บมาตรฐาน JBI เช+น GlassFish OpenESB และ ServiceMix ต+างก/พ�ฒนา BCs ข!2นมาหลายต�วอาท,เช+น File BC, LDAP BC, JMS BC, HTTP BC, JDBC BC, DCOM BC และ CORBA BC เป�นต'น

4.4.3 Normalized Message Router

Normalized Message Router (NMR) จะท-าหน'าท��เป�นต�วกลางในการต,ดต+อก�นระหว+าง BCs และ SEs

ท��อย�+ในระบบ NMR เปร�ยบเสม0อนห�วใจหล�กของบ�สเพ0�อท-าให'เซอร�ว,สต+างๆท��อาจม�โปรโตคอลท��ต+างก�นสามารถส+ง message ระหว+างก�นได' นอกจากน�2 NMR ย�งจะท-าหน'าท��ในการพ,จารณาเส'นทาง (route) ของ message และจะแปลงให'อย�+ในร�ปแบบท��สอดคล'องก�บเซอร�ว,สโดยใช' BC ท�2งน�2 BCs และ SEs จะต,ดต+อก�บ NMR ผ+านท+อ (pipe) ท��เร�ยกว+า “ช+องทางในการส+ง” (delivery channel) โดยใช' normalized message

ท�2งน�2 normalized message ท��ใช'ในการส0�อสารจะประกอบไปด'วยสองส+วนค0อ abstract XML message

และ message metadata หร0ออาจเร�ยกว+า message context data

4.4.4 JBI Runtime Environment

JBI Runtime Environment จะประกอบด'วยองค�ประกอบสามส+วนข'างต'น (SEs, BCs และ NMR) รวมถ!งระบบในการใช'งาน (deployment), ควบค.ม (control), ตรวจสอบ (monitoring) และต,ดต�2ง (installation)

4.5 การเปร,ยบเท,ยบ ESB

ESB ท��ม�อย�+ในป�จจ.บ�นม�หลายค+ายซ!�งม�ท�2งแบบ open source และ commercial ท�2งน�2 ESB ท��เป�น open

source โดยมากม�กจะเป�น lightweight ESB ซ!�งเหมาะก�บการพ�ฒนา SOA เบ02องต'นหร0อโปรเจ/คประเภท EAI

(Enterprise Application Integration) เฉพาะด'าน แต+ท�2งน�2งาน SOA ส+วนใหญ+ก/อาจต'องการเพ�ยง lightweight

ESB ต�วอย+างของ open source ESB ม�ด�งน�2

Thanachart Numnonda and Thanisa Kruwaisayawan Enterprise Service Bus 49

Page 50: Introduction to SOA

GlassFish openESB (https://open-esb.dev.java.net/) Apache ServiceMix (http://servicemix.apache.org/home.html) Mule ESB(http://www.mulesoft.com/mule-esb-open-source-esb) JBoss ESB (http://www.jboss.org/jbossesb/) WSO2 ESB (http://wso2.org/projects/esb/java) Fuse ESB (http://fusesource.com/products/enterprise-servicemix/)

Open source ESB หลายต�วสามารถท��จะน-ามาใช'ในการพ�ฒนา SOA ขององค�กรได'จร,ง ซ!�งบางกรณ�น-ามาใช'ก�บระบบ SOA ขนาดใหญ+เช+น Mule ESB ถ�กใช'ในโปรเจ/คของ Wal-mart หร0อ GlassFish Open ESB ก/ถ�กน-าไปใช'ในโปรเจ/ค National Health Information Network Connect ของระบบสาธารณส.ขสหร�ฐอเมร,กา

ส+วน commercial ESB อาจเหมาะก�บโปรเจ/ค SOA ท��ซ�บซ'อนและม�ขนาดใหญ+ จ!งท-าให'ม�ราคาค+อนข'องส�ง ซ!�งอาจม�ราคาส�งถ!ง 5 หม0�นเหร�ยญสหร�ฐต+อซ�พ�ย� ต�วอย+างของ commercial ESB ม�ด�งน�2

IBM Websphere ESB (http://www-01.ibm.com/software/integration/wsesb/) Oracle ESB (http://www.oracle.com/technology/products/integration/esb) Sun ESB(http://www.sun.com/software/javaenterprisesystem/javacaps/esb_suite.jsp) Microsoft Biztalk (http://www.microsoft.com/biztalk/en/us/default.aspx)

ท�2งน�2 open source ESB หลายร.+นจะใช'มาตรฐาน JBI อาท,เช+น GlassFish open ESB, Service Mix, Mule

ESB หร0อ Fuse ESB รวมไปถ!ง commercial ESB อย+าง Sun ESB, Oracle ESB และ TIBCO ท��ต+างก/ใช'มาตรฐาน JBI ในการพ�ฒนา ESB ตารางท�� 4.1 เป�นการสร.ปรายช0�อ ESB ท��ส-าค�ญของค+ายต+างๆท��ม�อย�+ในป�จจ.บ�น

ตารางท�� 4.1 ESB ท��ส$าค�ญของค'ายต'างๆ

Product Vendor Edition Released Date LicenseGlassFish

ESBOracle 2.1 2009 OpenSource CDDL

Biztalk Server

Microsoft 2006 R2 2006 proprietary

Fuse ESB IONA technologies

3.x 2007 OpenSource Apache

JBoss ESB JBoss 4.6 July 2009 OpenSource GPL

Thanachart Numnonda and Thanisa Kruwaisayawan Enterprise Service Bus 50

Page 51: Introduction to SOA

Mule ESB Mulesource 2 April 2008 OpenSource CPALOracle ESB Oracle Corp. 10.1.3.1 Feb 2008 proprietaryServiceMix Apache '3.3.1' June 2009 OpenSource ApacheWebSphere

ESBIBM '6.1.2' Dec 2007 propr

WSO2 ESB WSO2 '1.7.1' Aug 2008 OpenSource ApacheSun ESB Oracle 6 June 2008 proprietary

4.5.1 การพ�จารณาล'อก ESB

แม+จะม�น�กว เคราะห�หลายค'ายท��ออกบทว เคราะห�เปร�ยบเท�ยบ ESB ร4'นต'างๆอาท เช'น บทว เคราะห�เร#�อง “Magic Quadrant for Application Infrastructure for Back-End Application Integration Projects 2007”

ของ Gartner ท��ต�พ มพ�เม#�อ 7 ม ถ4นายน 2007 หร#อบทว เคราะห�เร#�อง “The Forrester Wave: Enterprise Service

Buses, Q1 2009” ของ Forrester ท��ต�พ มพ�เม#�อ 26 มกราคม 2009 แต'การพ จารณาเล#อกใช+ ESB ส$าหร�บการพ�ฒนา SOA คงต+องด9ในหลายๆด+านมากกว'าจะด9เฉพาะบทว เคราะห�เหล'าน�2ท��อาจเน+นการเปร�ยบเท�ยบ ESB ส$าหร�บการพ�ฒนา SOA ขนาดใหญ' แต'งานพ�ฒนา SOA โดยมากจะเป0นโปรเจ!คเฉพาะด+านซ/�งก!อาจเพ�ยงพอท��จะเล#อกใช+ Lightweight

ESB หร#อ Opensource ESB ท��เหมาะสมก�บงานและงบประมาณท��จ$าก�ด

นอกจากน�2ย�งข+อพ จารณาเพ �มเต มในการเล#อก ESB ม�ด�งน�2

• จ&านวนโปรโตคอลและ Adapter ท�� ESB สน�บสน น เน#�องจากการพ�ฒนา SOA จะต+องเป0นการเช#�อมโยงระบบต'างๆท��ม�เทคโนโลย�และโปรโตคอลท��หลากหลาย ด�งน�2น ESB จะต+องม�ความสามารถในการเช#�อมต'อก�บโปรโตคอลหร#อ Back-End Application ท��หลากหลาย และสามารถท��จะท$างานก�บ Business

Process Engine ได+หลายร9ปแบบเช'น BPEL, ETL, XSLT เป0นต+น• ค ณล�กษณะของ ESB เน#�องจาก ESB จะต+องท$าหน+าท��มากกว'าการเป0นต�วกลางของ Back-End

Application ต'างๆ ด�งน�2นการเล#อก ESB จะต+องพ จารณาค4ณสมบ�ต ว'าสามารถท$าหน+าท��อ#�นๆได+ด�เพ�ยงใดเช'น Message transformation, Message delivery, Service management หร#อ Service security

เป0นต+น• ค0าใช)จ0ายและค0าบ&าร งร�กษา ESB หลายร4'นม�ราคาท��ส9งมาก ซ/�งบางคร�2งการน$ามาเพ#�อพ�ฒนาโปรเจ!คเฉพาะ

ด+านอาจไม'ค4+มค'าใช+จ'าย ท�2งน�2การพ�ฒนา SOA ส'วนมากจะเป0นโปรเจ!คการท$า EAI (Enterprise

Application Integration) ซ/�งสามารเร �มต+นด+วยการใช+ lightweight ESB ได+ และเม#�อโปรเจ!คม�ขนาดใหญ'ข/2น เราสามารถท��จะจ�ดหา ESB เพ �มเต มได+อ�ก โดยเช#�อมต'อก�บ ESB ต�วเก'าท��ม�อย9'โดยใช+โปรโตคอล

Thanachart Numnonda and Thanisa Kruwaisayawan Enterprise Service Bus 51

Page 52: Introduction to SOA

พ#2นฐานอย'าง SOAP/HTTP ได+• มาตรฐาน การจ�ดหา ESB อาจท$าให+เก ดการผ9กต ดอย9'ก�บผ9+ผล ตบางราย ด�งน�2นการพ จารณาเล#อก ESB อาจ

ต+องตรวจสอบว'า ESB ด�งกล'าวใช+มาตรฐานท��เป0นกลางเพ�ยงใด และถ+าเป0นไปได+ควรจะเป0นแบบ open

source เพ#�อให+เราสามารถพ�ฒนา Adapter หร#อ Extension อ#�นๆได+เอง

4.6 บทสร ป

ESB เป0นแกนหล�กในการพ�ฒนา SOA โดยนอกเหน#อจากการท$าหน+าท��เป0นส#�อกลางในการส'ง message

ระหว'างเซอร�ว สต'างๆแล+ว ESB ย�งท$าหน+าท��อ#�นๆอาท เช'น การบร หารจ�ดการเซอร�ว ส การแปลง message เป0นต+น การพ�ฒนา SOA โดยใช+ ESB ท$าให+สามารถส#�อสารก�บ Back-End Application ท��ม�โปรโตคอลท��หลากหลายได+ ESB ท��ม�อย9'ในป�จจ4บ�นม�อย9'หลายค'ายและม�ค4ณล�กษณะท��ต'างก�น แต'ก!เร �มม�การก$าหนดมาตรฐานกลางเช'น JBI เพ#�อให+ผ9+พ�ฒนา SOA สามารถเล#อกใช+ ESB โดยไม'ผ9กต ดอย9'ก�บผ9+ผล ตรายใดรายหน/�ง ESB ม�ท�2งแบบ open source และ commercial

ซ/�งโปรเจ!คในการพ�ฒนา SOA ส'วนใหญ'สามารถท��จะใช+ Open Source ESB ได+

เอกสารอ!างอ�ง

1) Kumar Raj Moorthy, An Introduction to BPEL, http://www.developer.com2) Eric Newcomer and Greg Lomow, Understanding SOA with Web Services, Addison-Wesley,

20053) Thomas Erl, Service-Oriented Architecture Concepts Technology and Design, Prentice Hall,

2005

Thanachart Numnonda and Thanisa Kruwaisayawan Enterprise Service Bus 52

Page 53: Introduction to SOA

4)

Thanachart Numnonda and Thanisa Kruwaisayawan Enterprise Service Bus 53