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

Upload: thanachart

Post on 16-Nov-2014

636 views

Category:

Documents


5 download

DESCRIPTION

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

TRANSCRIPT

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