Download - Business Process Using BPEL
1
บทท�� 3 การพฒนา Business Process ส�าหรบ SOA
การพ�ฒนา SOA มข��นตอนในการพ�ฒนากระบวนการทางธ�รก�จ (Business Process) ใหม�โดยอ�างอ�งจากเซอร!ว�สเด�มท#มอย$� การพ�ฒนาเซอร!ว�สของ SOA แม�จะสามารถท'าได�หลายว�ธ แต�เทคโนโลยท#ได�ร�บความน�ยมท#ส�ดในป,จจ�บ�นค-อการใช�แพลตฟอร!มเว0บเซอร!ว�ส ซ1# งจะท'าให�สามารถเล-อกใช�ภาษาและเคร-#องม-อในการพ�ฒนา Business Process ได�หลายภาษา ซ1#งภาษาในการเขยน Business Process ท#น�ยมมากท#ส�ดภาษาหน1#งค-อภาษา BPEL ซ1#งสามารถเขยน Business Process โดยการประกอบเว0บเซอร!ว�สท#อธ�บาย Interface โดยใช�โปรโตคอล WSDL ได�
บทความน�จะเป4นการแนะน'าหล�กการของ Business Process Management การพ�ฒนา Business
Process โดยใช�ภาษา BPEL และค'าส�#งในภาษา BPEL
3.1 แนวค�ดพ�นฐานของ Business Process Management
Business Process หร-อกระบวนการทางธ�รก�จเป4นธ�รกรรม (activity) ท#ประกอบด�วยภารก�จ (task)
หลายๆอย�างท#ต�องกระท'าตามล'าด�บข��นตอน Business Process จะให�ผลล�พธ!ตามข�อก'าหนดท#ต��งไว�เม-#อมการประมวลผลตามข��นตอนท#ก'าหนดเสร0จส��น ต�วอย�างหน1#งของ Business Process ค-อการขออน�ม�ต�ส�นเช-#อซ1#งอาจประกอบไปด�วยภารก�จหลายอย�างท#ต�องกระท'าเช�น ค'านวณดอกเบ�ยและเง�นท#ต�องช'าระในแต�ละงวด ตรวจสอบเครด�ตของล$กค�า ขออน�ม�ต�การก$�ย-มจากส'าน�กงานใหญ� ท��งน�ระยะเวลาในการท'าธ�รกรรมของ Business Process มต��งแต�ใช�เวลาส��นๆเพยงไม�ก#นาทไปจนถ1งใช�เวลาเป4นเด-อนหร-อป9
Business Process Management (BPM) เป4นการบร�หารจ�ดการกระบวนการทางธ�รก�จโดยจะกล�าวถ1ง การจ'าลอง การพ�ฒนา การต�ดต��ง และการตรวจสอบ Business Process รวมไปถ1งกระบวนการท#จะต�องเก#ยวข�องก�บระบบไอทและคน ในแง�ของไอท BPM เป4นเร-#องท#มมานานแล�วต��งแต�ย�คแรกท#กล�าวถ1งเร-#อง workflow จนมาถ1งย�คของเว0บเซอร!ว�สท#พ$ดถ1งการท'า Web Services Orchestration และ Web Services Choreography
จ�ดประสงค!และประโยชน!ของ BPM มด�งน�• ท'าให�ความต�องการทางธ�รก�จ (Business Requirement) สอดคล�องก�บระบบไอทท#จะพ�ฒนาข1�น ท��งน�
เพราะ BPM ช�วยให�ผ$�ใช�ทางฝ<ายธ�รก�จสามารถจ'าลอง Business Process แล�วมอบหมายให�ฝ<ายไอทพ�ฒนาซอฟต!แวร!หร-อระบบเพ-#อท#จะท'างานให�สอดคล�องก�บ Business Process เหล�าน�
• เพ�#มประส�ทธ�ภาพการท'างานของพน�กงานและลดค�าใช�จ�ายในการด'าเน�นงานโดยการพ�ฒนา Business
การพ�ฒนา Business Process สาหร�บ SOA Thanachart Numnonda and Thanisa Kruawaisayawan
2
Process ให�เป4นระบบอ�ตโนม�ต�• องค!กรสามารถจะปร�บเปล#ยน Business Process ได�อย�างรวดเร0ว ท'าให�สามารถแข�งข�นเช�งธ�รก�จได�• ลดต�นท�นและเวลาในการพ�ฒนาโซล$ช�น เน-#องจากการพ�ฒนา Business Process จะเป4นการพ�ฒนา
โปรแกรมในระด�บส$งท#ใช�ส�ญล�กษณ!ทางกราฟฟ=ก ท'าให�น�กว�เคราะห!ทางธ�รก�จ (Business Analyst)
และน�กพ�ฒนาโปรแกรม (Developer) สามารถท'างานร�วมก�นได�เพ-#อพ�ฒนาและปร�บเปล#ยนระบบไอทได�อย�างรวดเร0ว และสอดคล�องก�บความต�องการเช�งธ�รก�จ
จากท#เคยกล�าวไว�ว�าแนวค�ดของ SOA จะเป4นการจ�ดสถาป,ตยกรรมไอทโดยแบ�งออกเป4น 4 ช��นค-อ Resource, Services, Process และ Access น��น BPM จะเข�ามาเก#ยวข�องในช��น Process เพ-#อพ�ฒนาและบร�หารจ�ดการ Business Process เพ-#อความเข�าใจในเร-#องน�จะขอยกต�วอย�างระบบไอทขององค!กรในร$ปท# 3.1 ซ1#งอาจประกอบไปด�วยโปรแกรมประย�กต!ต�างๆท#พ�ฒนามาจากเทคโนโลยท#หลากหลาย ซ1#งย�งเป4นสถาป,ตยกรรมแบบ Silo
(ในร$ปน�จะเห0นว�าท��ง Application Layer และ Technology Layer หมายถ1ง Resource Layer) เราสามารถท#จะพ�ฒนาระบบไอทน�ให�เป4น SOA โดยการใช�เทคโนโลยเว0บเซอร!ว�ส โดยอาจก'าหนดให�มเซอร!ว�สในหมวดต�างๆเช�นบร�การด�านบ�คลากร (HR services) และบร�การด�านการเง�น (Planning services) เซอร!ว�สเหล�าน�จ�ดเป4นเซอร!ว�สทางเทคน�ค (Technical service) ท#สามารถน'ามาใช�ใหม�ได� และ BPM ท#อย$�ใน Business Layer
สามารถน'าเอาเซอร!ว�สเหล�าน�มาประกอบเป4น Business Process ต�างๆได�ตามร$ปท# 3.2 ข�อดของการสร�าง Business Process จากเซอร!ว�สท#อย$�ใน Services Layer มด�งน�
ร�ปท�� 3.1 สถาป�ตยกรรมแบบ Silo [อ�างอ�งจาก E.Newcomer]
การพ�ฒนา Business Process สาหร�บ SOA Thanachart Numnonda and Thanisa Kruawaisayawan
3
• มการก'าหนดน�ยามของเซอร!ว�สท#ช�ดเจน โดยอาจใช�มาตรฐาน WSDL และไม�ย1ดต�ดก�บเทคโนโลย ด�งน��นเราสามารถท#จะพ�ฒนา Business Process โดยไม�ต�องค'าน1งถ1งเทคโนโลยท#ใช�ในการซอร!ว�ส
• ม Service Registry ท'าให�เราสามารถค�นหาเซอร!ว�สได�แบบพลว�ต (dynamic)
• สามารถน�ยามโมเดลของข�อม$ลท#เป4นอ�สระจากโมเดลของข�อม$ลของแต�ละโปรแกรมประย�กต!ในแต�ละเทคโนโลยของ Resource Layer
• สามารถท#จะก'าหนดระด�บความปลอดภ�ยของเซอร!ว�สต�างๆ เช�นการก'าหนด Single Sign On หร-อการก'าหนดส�ทธ�การใช�แบบ RBAC (Role Based Access Control) ท'าให�การพ�ฒนา Business
Process ไม�จ'าเป4นต�องไปจ�ดการเร-#องความปลอดภ�ยโดยตรงก�บส�วนโปรแกรมประย�กต!หร-อระบบใน Resource Layer
ร�ปท�� 3.2 BPM โดยใช� Services Layer [อ�างอ�งจาก E . Newcomer]
จะเห0นได�ว�าการพ�ฒนา SOA จะแตกต�างก�บการท'า Business Workflow ของระบบแบบเก�าท#ไม�มช��น Service Layer โดยจะต�ดต�อตรงก�บ Application Layer ด�งร$ปท# 3.3 การท'า BPM โดยไม�ม Services Layer
จะซ�บซ�อนกว�าและปร�บเปล#ยน Business Process ได�ยากกว�า เน-#องจากจะต�องพ�ฒนา Business Process โดยผ$ก
การพ�ฒนา Business Process สาหร�บ SOA Thanachart Numnonda and Thanisa Kruawaisayawan
4
ต�ดก�บเทคโนโลยใน Resource Layer แต�ละต�วโดยตรง
ร�ปท�� 3.3 BPM โดยไม�ม� Services Layer [อ�างอ�งจาก E . Newcomer]
3.2 Orchestration และ Choreography
ว�ธการพ�ฒนา Business Process โดยมากจะใช�เทคโนโลยเว0บเซอร!ว�ส โดยจะน'าเว0บเซอร!ว�สท#ประกาศโดยใช�มาตรฐาน WSDL มาประกอบเป4นกระบวนการทางธ�รก�จใหม�โดยมว�ธการอย$�สองว�ธค-อ
• Orchestration ค-อการพ�ฒนา Business Process โดยมกระบวนการต�วกลาง (Central Process) ท#จะท'าหน�าท#จ�ดการก�บธ�รกรรมท��งหมดโดยจะส�งงานไปให�เว0บเซอร!ว�สอ-#นท'าการประมวลผลและร�บผลล�พธ!กล�บมาพร�อมท��งควบค�มการล'าด�บการท'างานของเว0บเซอร!ว�สด�งร$ปท# 3.4 ซ1#ง Central
Process น�ก0อาจก'าหนดให� เป4นเว0บเซอร!ว�สใหม�อกต�วหน1#ง การประกอบเว0บเซอร!ว�สแบบ Orchestration โดยมากจะพ�ฒนาโดยใช�ภาษา BPEL ท#จะกล�าวถ1งต�อไป
• Choreography ค-อการพ�ฒนา Business Collaboration ในกรณน�จะไม�มต�วกลางท#คอยควบค�มอย$� แต�เว0บเซอร!ว�สจะทราบเองว�าเม-#อไรท#จะต�องท'าการประมวลผลและส�งผลล�พธ!ไปย�งเว0บเซอร!ว�สใดโดยการส�งข�าวสารระหว�างเว0บเซอร!ว�สด�งร$ปท# 3.5 เว0บเซอร!ว�สท�กต�วท#เก#ยวข�องก�บ Business
Collaboration จะต�องทราบถ1ง Business Process ท#ท'าความร�วมม-อก�นอย$�เช�น ร$ปแบบของข�าวสาร เอเปอร!เรช�#นท#ต�องประมวลผล หร-อเวลาท#ต�องส�งข�าวสาร เป4นต�น ซ#งแตกต�างก�บกรณของ
การพ�ฒนา Business Process สาหร�บ SOA Thanachart Numnonda and Thanisa Kruawaisayawan
5
Orchestration ซ1#งเว0บเซอร!ว�สแต�ละต�วจะไม�ทราบรายละเอยดของ Business Process เลย การประกอบเว0บเซอร!ว�สแบบ Orchestration โดยมากจะพ�ฒนาโดยใช�ภาษา WS-CDL
ร�ปท�� 3.4 การประกอบเว!บเซอร#ว�สแบบ Orchestration
ร�ปท�� 3.5 การประกอบเว!บเซอร#ว�สแบบ Choreography
การประกอบเว0บเซอร!ว�สแบบ Orchestration มข�อเด�นกว�าแบบ Choreography ด�งน�• การประสานงานก�นระหว�างเว0บเซอร!ว�ส สามารถควบค�มโดยต�วประสานงานกลาง• เว0บเซอร!ว�สแต�ละต�วสามารถถ$กเรยกใช�ใน Business Process โดยไม�จ'าเป4นต�องทราบว�าเป4นส�วน
การพ�ฒนา Business Process สาหร�บ SOA Thanachart Numnonda and Thanisa Kruawaisayawan
6
หน1#งของ Business Process น��นๆ• สามารถปร�บเปล#ยน Business Process ได�ง�ายกว�า
3.3 ภาษาในการพ ฒนา Business Process
ภาษาในการพ�ฒนา Business Process จะมอย$�หลายภาษาตามไดอะแกรมในร$ปท# 3.6 ซ1#งจะเห0นได�ว�ามการพ�ฒนาภาษาต�างๆมาอย�างต�อเน-#องและหลายภาษามองค!กรท#เก#ยวข�องมารองร�บมาตรฐานอาท�เช�น
ร�ปท�� 3.6 ววฒนาการของภาษาในการพฒนา Business Process
• BPMN (Business Process Modeling Notation) ซ1#งเป4นภาษาท#ใช�ส�ญล�กษณ!กราฟฟ=กในการแสดง Business Process ใน workflow ต�างๆ ภาษาน�แต�เด�มพ�ฒนาโดย BPMI (Business Process
Management Initiative) ก�อนท#จะมาถ$กก'าก�บโดย OMG (Object Management Group) ในป,จจ�บ�น
การพ�ฒนา Business Process สาหร�บ SOA Thanachart Numnonda and Thanisa Kruawaisayawan
7
โดยเวอร!ช�#นล�าส�ดค-อ BPMN 1.2
• ebXML (Electronic Business XML) เป4น Framework ของเทคโนโลยในการท'า e-Business ท#ก'าหนดโดย OASIS และ UN/CEFACT โดย BPSS (Business Process Specification Schema)
เป4นมาตรฐานในการเขยน Business Process
• UML (Unified Modeling Language) เป4นภาษาในการเขยนโมเดลของว�ศวกรรมซอฟต!แวร! ท#มมาตรฐานในการเขยนซอฟต!แวร!ไดอะแกรมต�างๆในการเขยน Business Process ซ1#งควบค�มมาตรฐานโดย OMG
• WS-BPEL (Web Services Business Process Execution Language) เป4นมาตรฐานของ OASIS
ในการพ�ฒนา Business Process โดยการใช� Interface WSDL ของเว0บเซอร!ว�ส ซ1#งจะพ�ฒนาโดยใช�ภาษา XML ป,จจ�บ�นเป4นมาตรฐานท#มการน'ามาใช�มาท#ส�ดอ�นหน1#ง
• WS-CDL (Web Services Choreography Description Language ) เป4นมาตรฐานในการพ�ฒนา Business Process แบบ Choreography โดยใช�ภาษา XML ท#ก'าหนดโดย W3C
3.3.1 แนะน�าภาษา BPEL
BPEL เป4นช-#อย�อของ Web Services Business Process Execution Language ป4นภาษา XML ท#ใช�ในการพ�ฒนา Business Process จากเว0บเซอร!ว�สท#น�ยามใน Services Layer โดยใช�ภาษา WSDL ท��งน�ก�อนท#จะมภาษา BPEL แต�ละบร�ษ�ทผ$�ผล�ตต�างก0มร$ปแบบของการเขยน Business Process ท#แตกต�างก�น ด�งน��นจ�ดประสงค!ของการก'าหนดมาตรฐาน BPEL ก0เพ-#อน�ยามมาตรฐานกลางส'าหร�บการเขยน Business Process โดยใช�แพลตฟอร!มท#เป4นเว0บเซอร!ว�ส
BPEL ถ$กพ�ฒนามาจากภาษาท# ใช� ในการพ�ฒนา workflow สองภาษาค-อ Web Services Flow
Language (WSFL) และ XLANG โดยได�ก'าหนดเป4นเวอร!ช�นแรกเม-#อเด-อนส�งหาคมป9 2002 ซ1#งต�อมาทาง OASIS (the Organization for the Advancement of Structured Information Standards) ได�ประกาศให� BPEL4WS 1.1 เป4นมาตรฐานส'าหร�บการพ�ฒนา Business Process บนเว0บเซอร!ว�ส เวอร!ช�#นล�าส�ดของ BPEL
ค-อ WS-BPEL2.0
BPEL จะมองค!ประกอบหล�กท#เก#ยวข�องสามส�วนด�งร$ปท# 3.7 ค-อ• BPEL Designer (ต�วออกแบบ BPEL) เป4นเคร-#องม-อท#ให�ผ$�เช#ยวชาญด�านกระบวนการธ�รก�จสามารถ
จ'าลอง Business Process โดยใช�ส�ญล�กษณ!กราฟฟ=กเพ-#อสร�างไฟล! Process Flow Template โดย
การพ�ฒนา Business Process สาหร�บ SOA Thanachart Numnonda and Thanisa Kruawaisayawan
8
ท�#วไปเคร-#องม-อเหล�าน�จะอ�งตามมาตรฐาน BPMN (Business Process Modeling Notation) ในการเขยนส�ญล�กษณ!
• BPEL Engine (ต�วจ�กร BPEL) เป4นต�วประมวลผลไฟล! Process Flow Template ตามมาตรฐาน BPEL โดยจะท'างานต�างๆเช�น เรยกใช�เว0บเซอร!ว�ส ก'าหนดเน-�อหาของข�อม$ล จ�ดการข�อผ�ดพลาด หร-อควบค�มล'าด�บการท'างาน โดยท�#วไปต�วจ�กร BPEL จะท'างานร�วมก�บ Application Server
• Process Flow Template เป4นไฟล!ท#ระบ� Business Process ตามข�อก'าหนดของ BPEL โดยจะเป4นไฟล!ท#ถ$กสร�างมาจากต�วออกแบบ BPEL และจะใช�ต�วจ�กร BPEL ในการประมวลผล
ร�ปท�� 3.7 องค#ประกอบของ BPEL
3.3.2 ค�าส �งของภาษา BPEL
โปรแกรม BPEL จะใช�แทค XML ในการประกอบเว0บเซอร!ว�สเพ-#อสร�าง Business Process โดย @BPEL
Process ท#สร�างข1�นมาสามารถจะแสดงออกมาเป4นเซอร!ว�สท#น�ยามโดย WSDL และสามารถเรยกใช� BPEL
Process น�ได�เหม-อนการเรยกเว0บเซอร!ว�สโดยท�#วไป BPEL จะมช�ดของค'าส�#งท#ระบ�ภารก�จพ-�นฐานท#ใช�การประกอบเว0บเซอร!ว�สด�งน�
• <invoke> - ค'าส�#งเพ-#อให� Business Process เรยกใช�โอเปอร!เรช�น (operation) ภายในแทค porttype ท#น�ยามอย$�ใน WSDL ของเว0บเซอร!ว�ส
• <receive> - ค'าส�#งเพ-#อให� Business Process หย�ดรอข�าวสารท#จะมาถ1ง• <reply> - ค'าส�#งเพ-#อให� Business Process ส�งข�าวสารเพ-#อตอบกล�บข�าวสารท#ได�ร�บมา
การพ�ฒนา Business Process สาหร�บ SOA Thanachart Numnonda and Thanisa Kruawaisayawan
9
• <assign> - ค'าส�#งเพ-#อค�ดลอกข�อม$ลจากต'าแหน�งหน1#งไปย�งต'าแหน�งอ-#น• <throw> - ค'าส�#งเพ-#อระบ�ข�อผ�ดพลาดท#เก�ดข1�น• <wait> - ค'าส�#งเพ-#อให� Business Process หย�ดรอตามระยะเวลาหน1#ง• <terminate> - ค'าส�#งเพ-#อยกเล�ก Business Process ท��งหมด
BPEL ย�งมช�ดค'าส�#งท#เป4นภารก�จแบบโครงสร�าง (Structured task) ท#ใช�การผนวกภารก�จพ-�นฐานเข�าด�วยก�น เพ-#อใช�ควบค�มล'าด�บการท'างานและสร�าง Business Process ท#ซ�บซ�อนข1�น โดยมค'าส�#งต�างๆ ด�งน�
• <sequence> - ค'าส�#งเพ-#อน�ยามการท'างานของภารก�จต�างๆแบบต�อเน-#อง• <flow> - ค'าส�#งเพ-#อระบ�ให�ช�ดภารก�จท'างานแบบขนาน• <switch> - ค'าส�#งเพ-#อก'าหนดให�ช�ดภารก�จท'างานแบบเล-อกท'า (case-switch) ตามเง-#อนไขตรรกะท#
ระบ�• <while> - ค'าส�#งเพ-#อก'าหนดให�มการท'างานของกล��มภารก�จซ�'าจนกว�าเป4นไปตามเง-#อนไขท#ระบ�• <pick> - ค'าส�#งเพ-#อบล0อกและรอจนกระท�#งมข�าวสารท#เหมาะสมมาถ1งหร-อหมดเวลาท#รอ เม-#อค'าส�#ง
ประเภทน�ถ$กกระต��นก�จกรรมท#เก#ยวพ�นก�นจะถ$กกระท'าและจะส��นส�ดการเล-อก (pick)
นอกจากน� BPEL ย�งมค'าส�#งในการน�ยามข�อม$ลด�งน�• <partnerLink> - ค'าส�#งเพ-#อก'าหนด porttype ของเว0บเซอร!ว�ส (จะเรยกว�า partner) ท#จะเข�ามาร�วม
ใน Business Process
• <variable> - ค'าส�#งเพ-#อก'าหนดค�าต�วแปรใน Business Process
Listing ท# 3.1 แสดงต�วอย�างของโปรแกรม BPEL ท#ได�จากการพ�ฒนา Business Process โดยใช�ส�ญล�กษณ! Visual Diagram ตามร$ปท# 3.8
การพ�ฒนา BPEL และการร�น BPEL จะต�องมต�วออกแบบ BPEL และต�วจ�กร BPEL ซ1#งป,จจ�บ�นเราสามารถท#จะใช� freeware อย�างโปรแกรม NetBeans 6.5 ท#ต�ดต��ง Enterprise Pack มาใช�ในการเขยนโปรแกรมอย�างง�ายๆ ผ$�ท#สนใจสามารถหาข�อม$ลเพ�#มเต�มได�จากบทความท# url ช-#อ http://www.thaijavadev.com/soa.html
ส'าหร�บการพ�ฒนาระบบในองค!กรขนาดใหญ� ผ$�พ�ฒนาควรเล-อกใช�เคร-#องม-อท#เป4นการค�า ทาง Sun
Microsystems จะมโปรแกรม eInsight ท#อย$�ภายในโปรแกรม Java Composite Application Platform Suite
ท#น�กพ�ฒนาสามารถน'ามาทดสอบและเรยนร$�ได�โดยไม�มค�าใช�จ�าย ผ$�ท#สนใจสามารถหาข�อม$ลเพ�#มเต�มได�จากบทความ Developing Business Process ท# url ช-#อ http://www.thaijavadev.com/soa/JCAPS/pdf-files/BP.pdf
การพ�ฒนา Business Process สาหร�บ SOA Thanachart Numnonda and Thanisa Kruawaisayawan
10
Listing ท# 3.1 ไฟล! Asynchronous.bpel
<?xml version="1.0" encoding="UTF-8"?><process name="AsynchronousSampleClient" targetNamespace="http://enterprise.netbeans.org/bpel/AsynchronousSampleClient" xmlns:partnerNS="http://enterprise.netbeans.org/bpel/AsynchronousSample" xmlns:wsdlNS="http://enterprise.netbeans.org/bpel/AsynchronousSampleClient" xmlns:xs="http://enterprise.netbeans.org/bpel/AsynchronousSampleClient" xmlns="http://schemas.xmlsoap.org/ws/2004/03/business-process/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/">
<import namespace="http://enterprise.netbeans.org/bpel/AsynchronousSample" location="AsynchronousSample.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/> <import namespace="http://enterprise.netbeans.org/bpel/AsynchronousSampleClient" location="AsynchronousSampleClient.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/> <partnerLinks> <partnerLink name="partnerLinkA" partnerLinkType="wsdlNS:AsynchronousClientPartnerLinkType" myRole="AsynchronousClientProvider" /> <partnerLink name="partnerLinkB" partnerLinkType="partnerNS:AsyncPartnerLinkType" myRole="serviceRequestor" partnerRole="serviceProvider" /> </partnerLinks>
<variables> <variable name="inputVar" messageType="wsdlNS:requestMessageClient"/> <variable name="outputVar" messageType="wsdlNS:responseMessageClient"/> <variable name="partnerInputVar" messageType="partnerNS:requestMessage"/> <variable name="partnerOutputVar" messageType="partnerNS:responseMessage"/> </variables> <correlationSets> <correlationSet name="correlator" properties="wsdlNS:correlatorProp"/> </correlationSets>
<sequence> <receive name="start" partnerLink="partnerLinkA" portType="wsdlNS:MyPortTypeClient" operation="operationA" variable="inputVar" createInstance="yes"> <correlations> <correlation set="correlator" initiate="yes"/> </correlations> </receive>
<assign name="assign1"> <copy> <from variable="inputVar" part="inputType"/> <to variable="partnerInputVar" part="inputType"/> </copy>
การพ�ฒนา Business Process สาหร�บ SOA Thanachart Numnonda and Thanisa Kruawaisayawan
11
</assign>
<invoke name="invokepartner" partnerLink="partnerLinkB" portType="partnerNS:MyPortType" operation="asyncOperation" inputVariable="partnerInputVar"/>
<receive name="receiveCallback" partnerLink="partnerLinkB" portType="partnerNS:MyCallbackPortType" operation="onResult" variable="partnerOutputVar" createInstance="no"> <correlations> <correlation set="correlator"/> </correlations> </receive> <assign name="assign2"> <copy> <from variable="partnerOutputVar" part="resultType"/> <to variable="outputVar" part="resultType"/> </copy> </assign> <reply name="end" partnerLink="partnerLinkA" portType="wsdlNS:MyPortTypeClient" operation="operationA" variable="outputVar"/>
</sequence></process>
การพ�ฒนา Business Process สาหร�บ SOA Thanachart Numnonda and Thanisa Kruawaisayawan
12
ร�ปท�� 3.8 BPEL Visual Diagram ของ Asynchronous.bpel
3.3.3 BPEL Server
BPEL Server จะท'าหน�าท#เป4น run-time environment หร-อ Engine ในการท#จะประมวลผล Business
Process ท#พ�ฒนาข1�นโดยภาษา BPEL ท��งน� BPEL โดยมากจะท'างานอย$�ภายใน Java EE หร-อ .NET
Application Server เพ-#อจะได�ใช�ฟ,งก!ช�#นด�านความปลอดภ�ย, transactions, scalability, การเช-#อมต�อก�บดาต�าเบส, EJB หร-อ COM+ component และ Messaging systems เช�น JMS หร-อ MSMQ
BPEL Server ท#เป4น commercial version ท#ส'าค�ญมอาท�เช�น
• Oracle BPEL Process Manager (http://www.oracle.com/technology/products/ias/bpel/index.html)
• Sun Java Composite Application Platform (http://www.sun.com/software/javaenterprisesystem/javacaps/index.jsp), formerly known as SeeBeyond eInsight Business Process Manager
• Microsoft BizTalk (http://www.microsoft.com/biztalk/)• IBM WebSphere Business Integration Server Foundation (http://www.ibm.com/
software/integration/wbisf)
การพ�ฒนา Business Process สาหร�บ SOA Thanachart Numnonda and Thanisa Kruawaisayawan
13
ส�วน BPEL Server ท#เป4น Open source ท#ส'าค�ญค-อ
• GlassFish openESB (http://www.sun.com/software/products/glassfish_portfolio/)• ActiveBPEL Engine (http://www.activebpel.org/)• FiveSight Process eXecution Engine PXE (http://www.fivesight.com/pxe.shtml)• bexee BPEL Execution Engine (http://sourceforge.net/projects/bexee)• Apache Agila (http://wiki.apache.org/agila/), formerly known as Twister (http://
www.smartcomps.org/twister/)
ตารางท# 3.1 เป4นการเปรยบเทยบ BPEL Server ต�างๆท#สร�ปโดย wikipedia (http://en.wikipedia.org/wiki/Comparison_of_BPEL_engines)
ตารางท�� 3.1 BPEL Server ท��สาค�ญของค�ายต�างๆ
Product Vendor Edition Framework CompatibilityApache ODE ASF 2 Apache
AxisJava EE
BPEL4WS1.1WS-BPEL 2.0
Biztalk Server
Microsoft Biztalk 2006 R2
.NET BPEL, BPMN,RFID
IBolt Server Magic Software
Java EE BPEL4WS
jBPM jBoss 03/03/01 Java EE WS-BPELGlassFish openESB
Sun Microsystems
2 Java EEJBI
WS-BPEL 2.0
Oracle BPEL Process Manager
Oracle Corp. 10.1.0.2 Java EE BPEL4WS1.1
SAP Exchange
Infrastructure
SAP AG 3 BPEL
WebSphereProcess Server
IBM 6.0.13 Java EE WS-BPEL
3.4 บทสร�ป
BPM เป4นการบร�หารจ�ดการกระบวนการทางธ�รก�จโดยจะกล�าวถ1ง การจ'าลอง การพ�ฒนา การต�ดต��ง และ
การพ�ฒนา Business Process สาหร�บ SOA Thanachart Numnonda and Thanisa Kruawaisayawan
14
การตรวจสอบ Business Process ซ1#งเราสามารถท#จะพ�ฒนา Business Process น�ได�โดยการประกอบเว0บเซอร!ว�สสองแบบค-อ Orchestration และ Choreography แต�ร$ปแบบ Orchestration มข�อดกว�า ซ1#งจะพ�ฒนาโดยใช�ภาษา BPEL ท#เป4นภาษา XML ซ1#งจะมองค!ประกอบหล�กสามส�วนค-อ ต�วออกแบบ BPEL ต�วจ�กร BPEL
และ Process Flow Template
เอกสารอ�างอ�ง
1) Kumar Raj Moorthy, An Introduction to BPEL, http://www.developer.com2) Eric Newcomer and Greg Lomow, Understanding SOA with Web Services, Addison-Wesley,
20053) Thomas Erl, Service-Oriented Architecture Concepts Technology and Design, Prentice Hall,
2005
การพ�ฒนา Business Process สาหร�บ SOA Thanachart Numnonda and Thanisa Kruawaisayawan