SlideShare uma empresa Scribd logo
1 de 53
Baixar para ler offline
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
Introduction to SOA
Introduction to SOA
Introduction to SOA
Introduction to SOA
Introduction to SOA
Introduction to SOA
Introduction to SOA
Introduction to SOA
Introduction to SOA
Introduction to SOA
Introduction to SOA
Introduction to SOA
Introduction to SOA
Introduction to SOA
Introduction to SOA
Introduction to SOA
Introduction to SOA
Introduction to SOA
Introduction to SOA

Mais conteúdo relacionado

Semelhante a Introduction to SOA

Ch02 handout
Ch02 handoutCh02 handout
Ch02 handoutNaret Su
 
OpenOffice.org is Right for You
OpenOffice.org is Right for YouOpenOffice.org is Right for You
OpenOffice.org is Right for YouOsdev
 
01 ความรู้เกี่ยวกับการ web programming
01 ความรู้เกี่ยวกับการ web programming01 ความรู้เกี่ยวกับการ web programming
01 ความรู้เกี่ยวกับการ web programmingsupatra178
 
นุ๊ก
นุ๊กนุ๊ก
นุ๊กsirinet
 
หมวย
หมวยหมวย
หมวยsirinet
 
ดรีม
ดรีมดรีม
ดรีมsirinet
 
หมวย
หมวยหมวย
หมวยsirinet
 
หวิว
หวิวหวิว
หวิวViewMik
 
รออกแบบเว็บไซต์
รออกแบบเว็บไซต์รออกแบบเว็บไซต์
รออกแบบเว็บไซต์sirinet
 
I T Security Risk
I T  Security  RiskI T  Security  Risk
I T Security RiskWon Ju Jub
 
IT Security Risk [Guest Speaker It Audit Class@Utcc]
IT Security Risk [Guest Speaker It Audit Class@Utcc]IT Security Risk [Guest Speaker It Audit Class@Utcc]
IT Security Risk [Guest Speaker It Audit Class@Utcc]Surachai Chatchalermpun
 
เทคโนโลยีคอมพิวเตอร์เพื่อการสื่อสาร
เทคโนโลยีคอมพิวเตอร์เพื่อการสื่อสารเทคโนโลยีคอมพิวเตอร์เพื่อการสื่อสาร
เทคโนโลยีคอมพิวเตอร์เพื่อการสื่อสารสราวุฒิ จบศรี
 
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...Sarawut Panchon
 

Semelhante a Introduction to SOA (20)

Addiction I T
Addiction  I TAddiction  I T
Addiction I T
 
Ch02 handout
Ch02 handoutCh02 handout
Ch02 handout
 
Proposal
ProposalProposal
Proposal
 
20100923 oss-freeware-ecosystem
20100923 oss-freeware-ecosystem20100923 oss-freeware-ecosystem
20100923 oss-freeware-ecosystem
 
OpenOffice.org is Right for You
OpenOffice.org is Right for YouOpenOffice.org is Right for You
OpenOffice.org is Right for You
 
01 ความรู้เกี่ยวกับการ web programming
01 ความรู้เกี่ยวกับการ web programming01 ความรู้เกี่ยวกับการ web programming
01 ความรู้เกี่ยวกับการ web programming
 
นุ๊ก
นุ๊กนุ๊ก
นุ๊ก
 
โบ
โบโบ
โบ
 
Best
BestBest
Best
 
หมวย
หมวยหมวย
หมวย
 
ดรีม
ดรีมดรีม
ดรีม
 
หมวย
หมวยหมวย
หมวย
 
หวิว
หวิวหวิว
หวิว
 
รออกแบบเว็บไซต์
รออกแบบเว็บไซต์รออกแบบเว็บไซต์
รออกแบบเว็บไซต์
 
Wps
WpsWps
Wps
 
I T Security Risk
I T  Security  RiskI T  Security  Risk
I T Security Risk
 
IT Security Risk [Guest Speaker It Audit Class@Utcc]
IT Security Risk [Guest Speaker It Audit Class@Utcc]IT Security Risk [Guest Speaker It Audit Class@Utcc]
IT Security Risk [Guest Speaker It Audit Class@Utcc]
 
Learnning02
Learnning02Learnning02
Learnning02
 
เทคโนโลยีคอมพิวเตอร์เพื่อการสื่อสาร
เทคโนโลยีคอมพิวเตอร์เพื่อการสื่อสารเทคโนโลยีคอมพิวเตอร์เพื่อการสื่อสาร
เทคโนโลยีคอมพิวเตอร์เพื่อการสื่อสาร
 
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
 

Mais de IMC Institute

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

Mais de IMC Institute (20)

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

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