Introduction to SOA

1,801 views

Published on

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

Published in: Technology
  • Be the first to comment

Introduction to SOA

  1. 1. Introduction to Service Oritened ArchitectureAssoc Prof. Dr.Thanachart Numnonda and Asst Prof.Thanisa Kruawaisayawan May 2010 www.thaijavadev.com Thanachart Numnonda and Thanisa Kruwaisayawan www.thaijavadev.com 1
  2. 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 BrokerArchitecture) หร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. 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. 4. ซ! งว, ธ การพฒนาส+ ว นประกอบซอฟตแวรหร0 อ เซอรว, ส อาจใช Java EE (EJB), .NET (NET ManagedComponent) หร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 ServiceLayer อย+แลว จ!งไม+จ-าเปนตองเพ,มเคร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. 5. รปท 1.3 N -Tier Architecture Using Web Service รปท 1.4 .NET and Java EE Interoperability1.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. 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. 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. 8. รปท 1.8 แนวคดสถาปตยกรรม SOAระบบ SOA จะมค.ณลกษณะทส-าคญหลกๆ ดงน2• เซอรว,ส (Services) ระบบ SOA จะมการพฒนาเซอรว,สทสามารถกลบน-ามาใชใหม+ได และเปนเซอรว,สทใชงานร+วมกนได โดยเซอรว,สจะสรางมาจาก Resource Layer การพฒนาเซอรว,สท-าไดหลายรปแบบแต+ทน,ยมกนมากค0อเว/บเซอรว,ส (Web Services)• การต,ดต+อส0อสารระหว+างเซอรว,ส จะใชเอกสารทเปน XML ทน,ยามผ+าน XML Schema (.xsd) ท-าใหไม+จ-าเปนตองทราบรายละเอยดของแฟลตฟอรมและเทคโนโลยของเซอรว,สทใชอย+• เซอรว,สจะมตวเช0อมต+อ (Interface) ทอธ,บายเซอรว,ส เช+น Service Name, Input Parameter, OutputParameter และขอมลอ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. 9. ปลอดภยดาน Authentication, Authorization, Reliable Message และ Policy1.2.1 ประโยชนของการพฒนา SOA การพฒนาระบบโครงสรางไอทในองคกรใหเปนระบบ SOA จะเก,ดประโยชนในดานต+างๆ ดงน2 • สามารถเช0อมโยงธ.รก,จต+างๆ การพฒนา SOA มการเช0 อมโยงระบบไอทต+ า งๆ ภายในองคกรและภายนอกองคกรทอาจใช เทคโนโลยทต+างกน ท-าใหเราสามารถเช0อมโยงธ.รก,จต+างๆ ทอาจอย+ต+างระบบกน และสามารถให บร,การกบลกคา ค+คา และบ.คลากรในองคกรได • ระบบไอทสามารถปรบเปลยนไดง+าย การพฒนา SOA สามารถทจะท-าใหน-าระบบไอทเด,มมาใชใหม+ได ดงน2นการปรบเปลยนกระบวนการ ทางธ.รก,จจ!งเปนไปไดอย+างรวดเร/ว และท-าใหสามารถแข+งขนในตลาดธ.รก,จไดอย+างรวดเร/ว • การลดค+าใชจายในการบ-าร.งรกษา และใหผลตอบแทนการลงท.นทค.มค+า + การพฒนา SOA ท-าใหองคกรสามารถทจะใชเทคโนโลยทหลากหลาย จ!งท-าใหเราสามารถทจะเล0อก ใชเทคโนโลยต+างๆ ได โดยไม+ตองผกต,ดกบเทคโนโลยใดเทคโนโลยหน!ง ท-าใหค+าใชจ+ายดานไอทใน ระยะยาวลดลง • การท-างานของฝ?ายธ.รก,จและฝ?ายไอทสอดคลองกนมากข!2น การพฒนา Business Process ของฝ?ายไอทจะมข2นตอนทชดเจนสามารถแสดงในเช,งกราฟฟ@กไดและ เขาใจง+ายข!2น และหน+วยงานทางธ.รก,จทตองเขาใจดานกระบวนการทางธ.รก,จสามารถทจะเขามาร+วม ท-าการพฒนาร+วมกบฝ?ายไอทไดดข!น 21.2.2 เหตผลของการพฒนา SOA การพฒนาสถาปตยกรรม SOA จะมประโยชนต+อองคกรในหลายๆ ดานอาท,เช+น การท-าใหขอมลต+างๆภายในองคกรเช0อมโยงกน การลดค+าใชจ+ายในการบ-าร.งรกษา การท-าใหการพฒนาโปรแกรมใหม+เปนไปดวยความรวดเร/วข!2นและท-าใหระบบไอทในองคกรไม+ผกต,ดอย+กบระบบใดระบบหน!ง โครงสรางของระบบไอทขององคกรขนาดใหญ+ (Information Technology Enterprise) จะประกอบไปดวยระบบทหลากหลายท2งในดานระบบปฏ,บต,การ (Operating System) โปรแกรมประย.กต และระบบซอฟตแวร ซ!งโปรแกรมประย.กตบางโปรแกรม อาจใชในการท-างานกบกระบวนการทางธ.รก,จบางอย+าง ทอาจท-างานภายใตระบบ Thanachart Numnonda and Thanisa Kruwaisayawan SOA: สถาปตยกรรมเชงบรการ 9
  10. 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อต+างๆ ดงน21.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. 11. 1.3.2 Business Process Engine หลกการของ SOA ใหความส-าคญกบการพฒนากระบวนการทางธ.รก,จทจะสามารถปรบเปลยนไดง+าย โดยการน-าเซอรว,สทมอย+มาประกอบเปนกระบวนการทางธ.รก,จ (Business Process) ท2งน2ข!2นอย+กบว+าจะเขยน BusinessProcess ในรปแบบของ 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) ดงนนจะพบว+า ซอฟตแวร BusinessProcess 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 21.3.4 Registry & Repository Server ซอฟตแวรม,ดเด,2ลแวรเพ0อทจะเก/บเซอรว,สต+างๆ ทมอย+ รวมไปถ!งการเก/บโกระบวนการทางธ.รก,จ (BusinessProcess) ต+ า งๆ ทพฒนาข!2 น มา ซ! ง Registry Server ส- า หรบกรณของเซอรว, ส ทเปน Web Services ค0 อ UDDIServer1.3.5 Messaging Server ซอฟตแวรม,ดเด,2ลแวรเพ0อทจะเปนตวกลางในการส+งผ+านข+าวสาร (message) ระหว+างเซอรว,สต+างๆ ท2งน2เพ0อประกนไดว+าข+าวสารสามารถส+งถ!งเซอรว,สปลายทางไดอย+างถกตอง (Guarantee Message Delivery) โดยสามารถส+งข+าวสารไดท2งในรปแบบ Queue และ Topic Thanachart Numnonda and Thanisa Kruwaisayawan SOA: สถาปตยกรรมเชงบรการ 11
  12. 12. 1.3.6 เครองมอการพฒนาโปรแกรม การพฒนา Business Process และ Web Application จะตองมเคร0องม0อในการพมนาโปรแกรม โดยอาจใชเคร0องม0อช.ดเดยวกนหร0อ อาจใชเคร0องม0อส-าหรบแต+ละส+วนทต+างกนก/ได เช+น อาจใช BPEL Designer ส-าหรบการพฒนา Business Process แยกออกจาก Programming Tool ส-าหรบพฒนา Web Application1.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.101.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 ofEnergy, Blue Cross, General Motors, ABN-AMRO และ Smart เปนตน ตวอย+างของระบบสาธารณส.ขใน UK (National Healthcare System) เปนตวอย+างหน!งทน+าสนใจ เพราะ Thanachart Numnonda and Thanisa Kruwaisayawan SOA: สถาปตยกรรมเชงบรการ 12
  13. 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. 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 forExecutives, John-Wiley & Son, 20082) Eric Newcomer and Greg Lomow, Understanding SOA with Web Services, Addison-Wesley, 20053) Thomas Erl, Service-Oriented Architecture Concepts Technology and Design, Prentice Hall, 2005 Thanachart Numnonda and Thanisa Kruwaisayawan SOA: สถาปตยกรรมเชงบรการ 14
  15. 15. บทท 2 เว*บเซอรวส: มาตรฐานเพอการพฒนา SOA เว/บเซอรว,ส (Web Service) อาจไม+ไดเปนเร0องใหม+แลว และคนวงการไอทส+วนใหญ+เร,มเขาใจเทคโนโลยเว/บเซอรว,สดข!2น มาตรฐานต+างๆ ของเว/บเซอรว,สเร,มเปนทยอมรบกนมากข!2นและกลายเปนมาตรฐานหลกในการพฒนาเซอรว,สส-าหรบ SOA แต+การพฒนาเว/บเซอรว,สส-าหรบประย.กตใชงานจร,งในองคกรยงเพ,งเร,มตนและวตถ.ประสงคในการพฒนายงไม+ชดเจนนก แต+เม0อมการกล+าวถ!งการพฒนาสถาปตยกรรมเช,งบร,การ (SOA) ภายในองคกรกนมากข!2นโดยเฉพาะความตองการขององคกรทจะท-าการเช0อมโยงระบบภายในองคกร (Internal Enterprise ApplicationIntegration) จ!งท-าใหองคกรสนใจจะน-าเทคโนโลยเว/บเซอรว,สเขามาช+วยในการพฒนาโปรแกรมต+างๆ มากข!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. 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. 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. 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. 19. • Service Registry: หร0ออาจเรยกว+ า Service Broker มหนา ทในการรบลงทะเบยนและช+ ว ยในการ คนหาเว/บเซอรว,ส Service Registry จะเก/บรายละเอยดของเว/บเซอรว,สต+างๆเช+น น,ยาม และต-าแหน+ง ของเว/บเซอรว,ส ท-าหนาทคลายกบสม.ดโทรศพทเพ0อช+วยใหผใชบร,การสามารถคนหาเซอรว,สทตองการ ได รปท 2.2 โมเดลการทางานของเว(บเซอรวส2.4 มาตรฐานหลกของเว*บเซอรวส มาตรฐานหลกของการพฒนาเว/บเซอรว,สจะประกอบไปดวยมาตรฐานต+างๆดงน2 XML, WSDL, SOAP และUDDI รายละเอยดของแต+ละมาตรฐานมดงน22.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. 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 จะส+ง SOAPRequest และขอมลต+างๆ เพ0อเรยกใชเมธอดในการประมวลผล และจะรอใหไดผลลพธการประมวลผลทส+งกลบมาแบบ SOAP Response ส+วน SOAP-Document ใชใ นการส+ งข+าวสารหร0อ ขอ มลในรปแบบ XML ระหว+างผใ หบร,การและผใชบร,การ โดยสามารถส+งไดท2งแบบ Synchronous และ Asynchronous Listing ท 2.1 แสดงตวอย+างการใช SOAP เรยกโอเปอเรชน calculateTax ของเว/บเซอรว,ส TaxServicesและผลลพธทส+งกลบมา SOAP ResponseListing ท 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. 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/TaxServicesServiceListing ท 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. 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. 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. 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 (MessageOriented 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. 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. 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. 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.pdf2.8 บทสรป เว/ บ เซอรว,สเปนซอฟตแวรคอมโพเน น ท ทให บ ร, ก ารผ+ า นเทคโนโลยอ, น เตอรเน/ ต โดยใช ม าตรฐานเป@ ดมาตรฐานพ02นฐานของเว/บเซอรว,สประกอบดวย XML, SOAP, WSDL และ UDDI เว/บเซอรว,สเปนเทคโนโลยทเหมาะสมในการน-าไปพฒนา SOA ท2งน2เน0องจากใชมาตรฐานเป@ดและไม+ผกต,ดอย+กบเทคโนโลยใดเทคโนโลยหน!ง แต+การพฒนาเว/บเซอรว,สในทางปฏ,บต,ยงตองค-าน!งถ!งมาตรฐานอ0นๆอกมากเช+นเร0องความปลอดภย เราสามารถทจะพฒนาเว/บเซอรว,สโดยใชเทคโนโลยจาวาได ซ!งจะมจ.ดเด+นในดานความปลอดภย ความเช0อมน และความสามารถในการรองรบผใชจ-านวนมาก Thanachart Numnonda and Thanisa Kruwaisayawan เว!บเซอรวส: มาตรฐานเพ#อการพฒนา SOA 27
  28. 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. 29. บทท 3 การพฒนา Business Process ส&าหรบ SOA การพฒนา SOA มข2นตอนในการพฒนากระบวนการทางธ.รก,จ (Business Process) ใหม+โดยอางอ,งจากเซอรว,สเด,มทมอย+ การพฒนาเซอรว,สของ SOA แมจะสามารถท-าไดหลายว,ธ แต+เทคโนโลยทไดรบความน,ยมทส.ดในปจจ.บนค0อการใชแพลตฟอรมเว/บเซอรว,ส ซ!งจะท-าใหสามารถเล0อกใชภาษาและเคร0องม0อในการพฒนา BusinessProcess ได ห ลายภาษา ซ! งภาษาในการเขยน Business Process ทน, ย มมากทส. ด ภาษาหน! งค0 อ ภาษา BPEL ซ! งสามารถเขยน Business Process โดยการประกอบเว/บเซอรว,สทอธ,บาย Interface โดยใชโปรโตคอล WSDL ได บทความน2จะเปนการแนะน-าหลกการของ Business Process Management การพฒนา Business Processโดยใชภาษา BPEL และค-าสงในภาษา BPEL3.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. 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จดเปนเซอรว,สทางเทคน,ค (Technicalservice) ทสามารถน-ามาใชใหม+ได และ BPM ทอย+ใน Business Layer สามารถน-าเอาเซอรว,สเหล+าน2มาประกอบเปน Business Process ต+างๆไดตามรปท 3.2 ขอดของการสราง Business Process จากเซอรว,สทอย+ใน ServicesLayer มดงน2 รปท 3.1 สถาปตยกรรมแบบ Silo [อางองจาก E.Newcomer] Thanachart Numnonda and Thanisa Kruwaisayawan การพฒนา Business Process ส$าหรบ SOA 30
  31. 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. 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. 33. ประมวลผล หร0อเวลาทตองส+งข+าวสาร เปนตน ซงแตกต+างกบกรณของ Orchestration ซ!งเว/บเซอรว,ส แต+ ล ะตวจะไม+ ท ราบรายละเอยดของ Business Process เลย การประกอบเว/ บ เซอรว, ส แบบ Orchestration โดยมากจะพฒนาโดยใชภาษา WS-CDL รปท 3.4 การประกอบเว%บเซอรวสแบบ Orchestration รปท 3.5 การประกอบเว%บเซอรวสแบบ Choreographyการประกอบเว/บเซอรว,สแบบ Orchestration มขอเด+นกว+าแบบ Choreography ดงน2Thanachart Numnonda and Thanisa Kruwaisayawan การพฒนา Business Process ส$าหรบ SOA 33
  34. 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

×