Business Process Using BPEL

14
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

description

บทความนี้จะเป็นการแนะนำหลักการของ Business Process Management การพัฒนา Business Process โดยใช้ภาษา BPEL และคำสั่งในภาษา BPEL

Transcript of Business Process Using BPEL

Page 1: 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

Page 2: Business Process Using BPEL

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

Page 3: Business Process Using BPEL

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

Page 4: Business Process Using BPEL

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

Page 5: Business Process Using BPEL

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

Page 6: Business Process Using BPEL

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

Page 7: Business Process Using BPEL

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

Page 8: Business Process Using BPEL

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

Page 9: Business Process Using BPEL

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

Page 10: Business Process Using BPEL

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

Page 11: Business Process Using BPEL

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

Page 12: Business Process Using BPEL

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

Page 13: Business Process Using BPEL

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

Page 14: Business Process Using BPEL

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