WebService : Processes and Work Flows
Processes and Work Flows
-
Business processes
– ภาพรวมของ Process
– > Process เป็นลำดับของ step มาเรียงกัน โดยมี event มา trigger ให้เกิด process ต่างๆ
– > มีการแปลง input ที่เข้ามา โดยผลลัพธ์ของ Process จะได้ output ออกมา
– Business Process
– > Business Process : เน้นกลุ่มของงานค่างๆ ที่นำมาจัดกลุ่มตาม logic เพื่อที่จะได้ผลลัพธ์ทางธุรกิจตามที่ออกแบบไว้
– > มี view ในแนวนอนในองค์กรที่จะมอง process เป็น activity ที่ขึ้นต่อกันให้ได้ผลลัพธ์ออกมาตามต้องการ
– > กำหนดว่าต้องการได้ผลลัพธ์เป็นอย่างไร, ความสัมพันธ์ระหว่างกิจกรรมต่างๆ กับ resource อื่น จะถูกำหนดไว้อย่างละเอียด
– Characteristic of Process
– > มีการกำหนดเงื่อนไขที่จะมา trigger ในแต่ละ instance ใหม่ๆ และมีการนิยาม output เมื่อ process สิ้นสุด
– > Process อาจจะมีการปฏิสัมพันธ์กันทั้งทางการและไม่ทางการระหว่างผู้ที่เกี่ยวข้อง
– > Process ใช้เวลาไม่เท่ากัน สามารถเปลี่ยนแปลงได้
– > decision point ประกอบด้วยกิจกรรมเกิดต่อกันอย่างอัตโนมัติซึ่งกิจกรรมในแต่ละขั้นตอนจะมีความซับซ้อน
– > ภายใน process จะต้องมีการตัดสินใจเลือก เช่น เลือกเส้นทางในการทำงานต่อ, แบ่งงาน
– > Process ประกอยด้วย application หลายอันประกอบกันมากๆ และข้ามองค์กร
– > สามารถแสดง diagram โดยธรรมชาติขึ้นกับข้อมูลที่มีการเปลี่ยนแปลงและปกติใช้เวลานานในการทำงาน
-
Work Flows
– Process-Oriented workflow
– > ถูกเอาไปใช้สำหรับโปรเซสที่ทำงานอัตโนมัติที่ไม่ค่อยมีการเปลี่ยนแปลง
– > สามารถแสดงให้เห็นลักษณะของ business rule, decision point, business rules,parallel and sequential work route เช่น โปรเซสในการจัดการ order หรือการยืมเงิน
– > บางประเภทอาจจะมีสมบัติ transactional properties ซึ่งส่วนใหญ่ใช้เวลานาน
– Web Service and Business Process
– > ด้วยลักษณะตามธรรมชาติของ Web Service ที่ไม่ขึ้นกับ platform จึงง่ายที่จะผสมกันของ service ซึ่ง service ต่างๆก็มาจากหลายองค์กร ในที่สุดเมื่อ composition service เสร็จจะถูกเสนอออกมาเป็น High-level service ให้กับ client อีกที
– > Composite service (related processes) : มีการรวบรวบ service ทั้งที่พัฒนาใหม่และมีอยู่เดิม
– > นิยามของ Composite service : ต้องมีการประสานงานกันของ flow control ของข้อมูลระหว่าง composite service
– Syndicated Web Service
1. ลูกค้าเช็คราคา
2. ลูกค้าสั่งสินค้า
3. supplier เช็คไปยังธนาคาร
4. supplier ยืนยันการสั่งสินค้า
5. supplier สร้าง shipping ไปยัง 3rd party
6. supplier ยืนยันกับลูกค้า
7. ลูกค้าส่ง payment ไปยังธนาคาร
8. ธนาคารส่งใบเสร็จมาให้
-
Service composition meta-model
– Flow Model
-> Flow Model ถูกใช้สำหรับบอกเกี่ยวกับปฏิสัมพันธ์กันของ service
-> Flow Model จะอธิบายว่า
1. อธิบายว่าแต่ละ activity มารวมกันยังไง
2. ลำดับแต่ละ activity ที่จะถูก execute โดยใช้ลูกศร
3. มี decision point ในการตัดสินใจ
4. มีการส่งผ่าน data แต่ละขั้นตอน
– Transition Conditions
-> decision point ขึ้นกับ transition condition ซึ่งเป็นเงื่อนไขที่เป็นจุดเปลี่ยน
– Service Composition : Process flow as a Web Service
-> แปลงหน้า transition condition และมีการเพิ่มเติม
-> ประกอบด้วยหลายๆ activities,flow,decision
-> มีการเชื่อมโยงกันกับองค์กรอื่น
-> Client เรียกใช้ Operation ผ่าน Interface
-
Web services orchestration and choreography
– WS Orchestration
-> Orchestration เป็นแนวคิดที่ว่าด้วยการจัดลำดับการทำงานของแต่ละงานในกระบวณการตามสถานการณ์ต่างๆ ที่ต้องการ และสนับสนุนความสามารถในการทำงานระหว่างกันของ application ทำให้สามารถสร้างกระบวณการทางธุรกิจที่มีขนาดใหญ่ได้
-> อธิบายว่าวิธีการของ web service ปฏิสัมพันธ์กับ web service อื่นโดยมองในระดับ message, มองว่าหนึ่งคนเป็นคนควบคุม
-> ประโยชน์ คือ เมื่อต้องการกระทำกระบวณการแบบใหม่ ไม่จำเป็นต้องสร้างงานใหม่ขึ้นมา แต่ใช้วิธีการจัดการกับ work flow ให้เป็นลำดับแบบใหม่เท่านั้นเอง
– WS Choreography
-> Choreography คือ กระบวณการร่วมมือกันขององค์กร ที่มีการติดต่อและการทำงานระหว่างกัน โดยที่ไม่มีองค์กรใดเป็นเจ้าของ Environment ที่เกิดขึ้น
-> มีลักษณะเป็นการแลกเปลี่ยน message กัน, มีกฏ ข้อตกลงของธุรกิจหลาย process ซึ่งทำให้ service ที่แตกต่างกันสามารถร่วมมือกันได้
-> จะต้องติดตาม sequence ของ message และอธิบายมุมมองของทุกๆ party ร่วมกัน
-
The Business Process Execution Language
– Business Process Execution Language
-> BPEL เป็นภาษาที่ใช้ในการสร้าง service ขึ้นมาในการ modeling
-> Model อะไรบ้าง
1. การทำงานร่วมกันระหว่างองค์กรโดยใช้ element partnerlink
2. ลำดับขั้นตอนของโปรเซส
3. แยก abstract definition จาก concrete binding
4. รองรับ fault, error และแก้ไข
5. รองรับการ compose หลาย service เข้าด้วยกัน
6. รองรับ context ผ่าน <scope>
7. มีการจัดการการแตก หรือรวมโปรโซสโดยใช้ <pick>,<receive>
– BPEL Structure
1. message flow : การไหลของ message , กิจกรรมที่เกิดขึ้น
2. control flow : ส่วนที่เอา activity มาจัดเรียงกัน
3. data flow : ประกาศ data โดยใช้ <variable> กับ state ของโปรเซส
4. process orchestration : ส่วนที่มีการคุยกับ web service ของ partner
5. fault and exception handing : มี element <compensationHandles> จะดูว่ามีการชดเชยการทำไม่สำเร็จ และมี element <eventHandler> ใช้จัดการ event เมื่อเกิดพร้อมกัน
– BPEL Abstract processes
-> พูดถึงการแลกเปลี่ยนข้อมูลของ web service ไม่รวมถึงรายละเอียดภายในของโปรเซส
-> ใช้ model public message interaction : ดูการคุยกันระหว่าง web service โดยไม่ดู logic ภายใน
– BPEL Executable processes
-> การแลกเปลี่ยนข้อมูลของ web service รวมถึงรายละเอียดภายในของโปรเซส จึงทำให้สามารถ execute ได้
– Message Flow
-> อธิบายการรับส่ง message เพื่อให้ดูว่า Process สามารถคุยกับ web service อื่นได้
-> ใช้ basic activities : Invoke(กระตุ้นคนอื่น), Receive(รอคนอื่น), Reply(หลัง receive ส่งผลกลับไป)
-> service อื่นๆ จะเรียกว่า partner ซึ่งก็คือ web service ที่ไป invoke หรือเป็น client ที่มา Invoke กับ web service เรา
-> match กับ <portType> ของ WSDL
->จะคุยกับ partnerอื่นโดยใช้ <partnerLink> ซึ่งเป็นโปรเซสเฉพาะเจาะจงที่บอกว่า partner ที่ link ปลายทาง link ได้
– Synchronous and Asynchronous Communication
-> Synchronous : requester ส่ง Invoke input mesage ไปยัง provider ซึ่ง requester จะต้องรอจนกว่าจะได้ reply message จาก provider, มี operation ไม่ซับซ้อน
-> Asynchronous : Requester จะไม่ถูก block หรือต้องรอ reply message จาก provider , ใช้กับ operation ที่ใช้เวลานานและซับซ้อน
– Control Flow
-> Basic activities : การปฏิสัมพันธ์ที่ง่ายไม่ได้บอกลำดับและการเปลี่ยนแปลงข้อมูลในแต่ละขั้นตอน
->Structured activities : อธิบายวิธีที่ business process โดยเอา basic activity มาประกอบเป็นโครงสร้าง
1. อธิบายลำดับของการ run ของ activity
2. ถ้าเป็น parallel จะใช้ <flow>
3. ถ้ามีการแตก,แยกทางเลือกใช้ <sequence>
4. ถ้าเป็น loop ใช้ <while>
5. เลือกหลายทางเลือกใช้ <non-dertermistic choice>
– Data Flow
-> state ของ business process ประกอบด้วย content ของ message ที่แลกเปลี่ยนกัน data ที่อยู่ใน business logic , ตัวที่สร้าง message ที่ส่งไปให้ partner
-> ใช้ <variable> เป็นตัวเก็บข้อมูลของ state โดย BPEL จะให้ variable จะเก็บ message ที่เกี่ยวกับ flow
-> data <variable> จะเก็บ business context ซึ่งเป็นส่วนสำคัญสำหรับ correct execution
-> ใช้ <assign> ในการ copy message ระหว่าง variable
– Process Orchestration
-> เป็นการเอาหลายๆ web service มารวมกันโดยใช้ <partnerlink> ในการสร้าง peer-to-peer partner relationship โดยมีการกำหนดบทบาทและ abstract interface ให้แต่ละ partner
-> ใช้ <partnerlink> เป็นตัวกำหนด message และ portType รวมไปถึงใช้ในการอธิบายความสัมพันธ์ระหว่าง partner โดยประกาศเป็น role ว่า partner นี้ role ไหน และประกาศ portType ด้วย
Leave a comment