SlideShare a Scribd company logo
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
บทท 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
ตารางท 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
ซ! งว, ธ การพฒนาส+ ว นประกอบซอฟตแวรหร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
รปท 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
รปท 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
รปท 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
รปท 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 ทน,ยมใช'คอ UDDI (Universal Description Definition and Integration)
                                0
• เซอรว,สแต+ละตวจะมส+วนการควบค.มค.ณภาพทเปน QoS (Quality of Service) อาท,เช+นการควบค.มความ



Thanachart Numnonda and Thanisa Kruwaisayawan                  SOA: สถาปตยกรรมเชงบรการ   8
ปลอดภยด'าน 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
โครงสร'างไอทเด,ม เช+นพฒนาโดยใช'เคร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
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
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
เปนการพฒนาระบบ 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
รปท 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
บทท 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
ตวอย+างการใช'งานของซอฟตแวรเซอรว,สโดยใช' 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
มาตรฐานกลาง (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
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
•   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
2.4.2 Simple Object Access Protocol (SOAP)

       SOAP ท-าหน'าทเปนโปรโตคอลข+าวสาร (Message Protocol) ส-าหรบการแลกเปลยนข'อมลระหว+างผ'ให'
บร,การและผ'ใช'บร,การ โดย SOAP อ,งมาจากภาษา XM:โครงสร'างของ SOAP จะประกอบไปด'วย
           • SOAP Envelope: ใช'ในการอธ,บายข+าวสาร ระบ.เน0อหา และกระบวนการจดการข'อมล
                                                         2
           • 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
<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
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
(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
ปลอดภยต+างๆ
          •   SAML: Security Assertion Markup Language เปนมาตรฐานททาง OASIS ก-าหนดข!นเพ0อ
                                                                                    2
              สนบสน.นการท-า 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
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
พฒนา 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
เทคโนโลยจาวาควรจะมความเข'าใจเร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
เอกสารอ!างอง
• 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
บทท 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
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
•   มการก-าหนดน,ยามของเซอรว,สทชดเจน โดยอาจใช'มาตรฐาน 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
เทคโนโลยใน 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
ประมวลผล หร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
   การประสานงานกนระหว+างเว/บเซอรว,ส สามารถควบค.มโดยตวประสานงานกลาง
             เว/บเซอรว,สแต+ละตวสามารถถกเรยกใช'ใน 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
• 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
•   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
น,ยามอย+ใน 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
นกพฒนาสามารถน-ามาทดสอบและเรยนร'ได'โดยไม+มค+าใช'จ+าย ผ'ทสนใจสามารถหาข'อมลเพ,มเต,มได'จากบทความ
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
</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
รปท 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
ส+วน 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
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
บทท 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
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
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
รปท 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
บ-าร.งรกษาระบบไอทขององคกร ในกรณทต'องไปใช'โปรโตคอลเฉพาะ
       • ท-าให'การปรบเปลยนระบบเปนไปได'ดวยความว+องไว
                                       '

              แต+ ESB ก/อาจมข'อเสยในบางด'านอาท,เช+น
       • จะต'องเพ,ม overhead ข!นมาใน message ทจะต'องส0อสารผ+านบส ท-าให'ระบบมความล+าช'าข!นเม0อเทยบกบ
                               2                                                        2
       การส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 ข!นมา โดยเฉพาะ ESB ท
                                                                                 2
ท-างานภายใต' 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
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
ใดๆโดยการแปลงให'อย+ในรปแบบทเหมาะสม ท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
    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          License
       GlassFish         Oracle      2.1               2009            OpenSource CDDL
         ESB
        Biztalk        Microsoft     2006 R2           2006            proprietary
        Server
       Fuse ESB          IONA        3.x               2007            OpenSource Apache
                      technologies
      JBoss ESB          JBoss       4.6               July 2009       OpenSource GPL



       Thanachart Numnonda and Thanisa Kruwaisayawan                        Enterprise Service Bus 50
Mule ESB           Mulesource       2                April 2008         OpenSource CPAL
      Oracle ESB         Oracle Corp. 10.1.3.1              Feb 2008           proprietary
      ServiceMix            Apache         '3.3.1'          June 2009          OpenSource Apache
      WebSphere               IBM          '6.1.2'          Dec 2007           propr
        ESB
      WSO2 ESB               WSO2          '1.7.1'          Aug 2008           OpenSource Apache
           Sun 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
พ#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ผลตรายใดรายหน/ง ESB มท2งแบบ open source และ commercial
                                9        +
ซ/งโปรเจ!คในการพฒนา SOA ส'วนใหญ'สามารถทจะใช+ Open Source ESB ได+


เอกสารอ!างอง
   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                  Enterprise Service Bus 52
4)




     Thanachart Numnonda and Thanisa Kruwaisayawan   Enterprise Service Bus 53

More Related Content

PDF
TEDx Manchester: AI & The Future of Work
PDF
SOA Governance
PDF
Service Oriented Architecture (SOA) [5/5] : SOA Best Practices
PDF
Service Oriented Architecture (SOA) [2/5] : Enterprise Service Bus
PDF
Service Oriented Architecture [3/5] : Business Process Management using BPEL
PDF
Service Oriented Architecture (SOA) [1/5] : Introduction to SOA
PDF
Service Oriented Architecture (SOA) [4/5] : SOA Governance
DOC
J2 ee คืออะไร
TEDx Manchester: AI & The Future of Work
SOA Governance
Service Oriented Architecture (SOA) [5/5] : SOA Best Practices
Service Oriented Architecture (SOA) [2/5] : Enterprise Service Bus
Service Oriented Architecture [3/5] : Business Process Management using BPEL
Service Oriented Architecture (SOA) [1/5] : Introduction to SOA
Service Oriented Architecture (SOA) [4/5] : SOA Governance
J2 ee คืออะไร

Similar to Introduction to SOA (20)

PDF
Chapter 4 ERP and related technologies
PDF
Docker and Software Framework_24 may16_rus_DR.ARNUT
PDF
Chapter 10 internet system and information system structures
PPT
นายศ ภช ย ดอนชาม_วง ว.5606 รห_ส 5640248230
ODP
Setec 002b Softwarearchitecture Poster R1
ODP
Open Source for Library
PPT
iCommerce
PDF
โปรแกรมประยุกต์บนเว็บ
PDF
20100923 oss-freeware-ecosystem
PDF
บทที่6 การออกแบบระบบเครือข่าย
PDF
บทที่3-49
PDF
องค์ประกอบด้านซอฟต์แวร์ (1)
PPT
ไอที
PPT
ไอที
PPT
ไอทีกับแน..
PPT
ไอที
PPT
Introduction to software engineering principles
PDF
Powerpoint templat3 1_
PDF
Cloud Thailand Alliance
Chapter 4 ERP and related technologies
Docker and Software Framework_24 may16_rus_DR.ARNUT
Chapter 10 internet system and information system structures
นายศ ภช ย ดอนชาม_วง ว.5606 รห_ส 5640248230
Setec 002b Softwarearchitecture Poster R1
Open Source for Library
iCommerce
โปรแกรมประยุกต์บนเว็บ
20100923 oss-freeware-ecosystem
บทที่6 การออกแบบระบบเครือข่าย
บทที่3-49
องค์ประกอบด้านซอฟต์แวร์ (1)
ไอที
ไอที
ไอทีกับแน..
ไอที
Introduction to software engineering principles
Powerpoint templat3 1_
Cloud Thailand Alliance
Ad

More from IMC Institute (20)

PDF
นิตยสาร Digital Trends ฉบับที่ 14
PDF
Digital trends Vol 4 No. 13 Sep-Dec 2019
PDF
บทความ The evolution of AI
PDF
IT Trends eMagazine Vol 4. No.12
PDF
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
PDF
IT Trends 2019: Putting Digital Transformation to Work
PDF
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
PDF
IT Trends eMagazine Vol 4. No.11
PDF
แนวทางการทำ Digital transformation
PDF
บทความ The New Silicon Valley
PDF
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
PDF
แนวทางการทำ Digital transformation
PDF
The Power of Big Data for a new economy (Sample)
PDF
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
PDF
IT Trends eMagazine Vol 3. No.9
PDF
Thailand software & software market survey 2016
PPTX
Developing Business Blockchain Applications on Hyperledger
PDF
Digital transformation @thanachart.org
PDF
บทความ Big Data จากบล็อก thanachart.org
PDF
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
นิตยสาร Digital Trends ฉบับที่ 14
Digital trends Vol 4 No. 13 Sep-Dec 2019
บทความ The evolution of AI
IT Trends eMagazine Vol 4. No.12
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
IT Trends 2019: Putting Digital Transformation to Work
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
IT Trends eMagazine Vol 4. No.11
แนวทางการทำ Digital transformation
บทความ The New Silicon Valley
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
แนวทางการทำ Digital transformation
The Power of Big Data for a new economy (Sample)
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
IT Trends eMagazine Vol 3. No.9
Thailand software & software market survey 2016
Developing Business Blockchain Applications on Hyperledger
Digital transformation @thanachart.org
บทความ Big Data จากบล็อก thanachart.org
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
Ad

Introduction to SOA

  • 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
  • 6. รปท 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
  • 7. รปท 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
  • 8. รปท 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 ทน,ยมใช'คอ UDDI (Universal Description Definition and Integration) 0 • เซอรว,สแต+ละตวจะมส+วนการควบค.มค.ณภาพทเปน QoS (Quality of Service) อาท,เช+นการควบค.มความ Thanachart Numnonda and Thanisa Kruwaisayawan SOA: สถาปตยกรรมเชงบรการ 8
  • 9. ปลอดภยด'าน 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
  • 10. โครงสร'างไอทเด,ม เช+นพฒนาโดยใช'เคร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
  • 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
  • 15. บทท 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
  • 16. ตวอย+างการใช'งานของซอฟตแวรเซอรว,สโดยใช' 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
  • 17. มาตรฐานกลาง (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
  • 18. 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
  • 19. 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
  • 20. 2.4.2 Simple Object Access Protocol (SOAP) SOAP ท-าหน'าทเปนโปรโตคอลข+าวสาร (Message Protocol) ส-าหรบการแลกเปลยนข'อมลระหว+างผ'ให' บร,การและผ'ใช'บร,การ โดย SOAP อ,งมาจากภาษา XM:โครงสร'างของ SOAP จะประกอบไปด'วย • SOAP Envelope: ใช'ในการอธ,บายข+าวสาร ระบ.เน0อหา และกระบวนการจดการข'อมล 2 • 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
  • 21. <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
  • 22. 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
  • 23. (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
  • 24. ปลอดภยต+างๆ • SAML: Security Assertion Markup Language เปนมาตรฐานททาง OASIS ก-าหนดข!นเพ0อ 2 สนบสน.นการท-า 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
  • 25. 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
  • 26. พฒนา 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
  • 27. เทคโนโลยจาวาควรจะมความเข'าใจเร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
  • 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
  • 38. นกพฒนาสามารถน-ามาทดสอบและเรยนร'ได'โดยไม+มค+าใช'จ+าย ผ'ทสนใจสามารถหาข'อมลเพ,มเต,มได'จากบทความ 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
  • 39. </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
  • 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
  • 44. 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
  • 45. 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
  • 46. รปท 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
  • 47. บ-าร.งรกษาระบบไอทขององคกร ในกรณทต'องไปใช'โปรโตคอลเฉพาะ • ท-าให'การปรบเปลยนระบบเปนไปได'ดวยความว+องไว ' แต+ ESB ก/อาจมข'อเสยในบางด'านอาท,เช+น • จะต'องเพ,ม overhead ข!นมาใน message ทจะต'องส0อสารผ+านบส ท-าให'ระบบมความล+าช'าข!นเม0อเทยบกบ 2 2 การส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 ข!นมา โดยเฉพาะ ESB ท 2 ท-างานภายใต' 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
  • 48. 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
  • 49. ใดๆโดยการแปลงให'อย+ในรปแบบทเหมาะสม ท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
  • 50. 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 License GlassFish Oracle 2.1 2009 OpenSource CDDL ESB Biztalk Microsoft 2006 R2 2006 proprietary Server Fuse ESB IONA 3.x 2007 OpenSource Apache technologies JBoss ESB JBoss 4.6 July 2009 OpenSource GPL Thanachart Numnonda and Thanisa Kruwaisayawan Enterprise Service Bus 50
  • 51. Mule ESB Mulesource 2 April 2008 OpenSource CPAL Oracle ESB Oracle Corp. 10.1.3.1 Feb 2008 proprietary ServiceMix Apache '3.3.1' June 2009 OpenSource Apache WebSphere IBM '6.1.2' Dec 2007 propr ESB WSO2 ESB WSO2 '1.7.1' Aug 2008 OpenSource Apache Sun 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
  • 52. พ#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ผลตรายใดรายหน/ง ESB มท2งแบบ open source และ commercial 9 + ซ/งโปรเจ!คในการพฒนา SOA ส'วนใหญ'สามารถทจะใช+ Open Source ESB ได+ เอกสารอ!างอง 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 Enterprise Service Bus 52
  • 53. 4) Thanachart Numnonda and Thanisa Kruwaisayawan Enterprise Service Bus 53