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

SOA_1.jpg

1. ลูกค้าเช็คราคา
2. ลูกค้าสั่งสินค้า
3. supplier เช็คไปยังธนาคาร
4. supplier ยืนยันการสั่งสินค้า
5. supplier สร้าง shipping ไปยัง 3rd party
6. supplier ยืนยันกับลูกค้า
7. ลูกค้าส่ง payment ไปยังธนาคาร
8. ธนาคารส่งใบเสร็จมาให้

  • Service composition meta-model

–    Flow Model

SOA_2.jpg

-> 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

SOA_3.jpg

-> แปลงหน้า transition condition และมีการเพิ่มเติม
-> ประกอบด้วยหลายๆ activities,flow,decision
-> มีการเชื่อมโยงกันกับองค์กรอื่น
-> Client เรียกใช้ Operation ผ่าน Interface

  • Web services orchestration and choreography

–    WS Orchestration

SOA_4.jpg

-> Orchestration เป็นแนวคิดที่ว่าด้วยการจัดลำดับการทำงานของแต่ละงานในกระบวณการตามสถานการณ์ต่างๆ ที่ต้องการ และสนับสนุนความสามารถในการทำงานระหว่างกันของ application ทำให้สามารถสร้างกระบวณการทางธุรกิจที่มีขนาดใหญ่ได้
-> อธิบายว่าวิธีการของ web service ปฏิสัมพันธ์กับ web service อื่นโดยมองในระดับ message, มองว่าหนึ่งคนเป็นคนควบคุม
-> ประโยชน์ คือ เมื่อต้องการกระทำกระบวณการแบบใหม่ ไม่จำเป็นต้องสร้างงานใหม่ขึ้นมา แต่ใช้วิธีการจัดการกับ work flow ให้เป็นลำดับแบบใหม่เท่านั้นเอง

–    WS Choreography

SOA_5.jpg

-> Choreography คือ กระบวณการร่วมมือกันขององค์กร ที่มีการติดต่อและการทำงานระหว่างกัน โดยที่ไม่มีองค์กรใดเป็นเจ้าของ Environment ที่เกิดขึ้น
-> มีลักษณะเป็นการแลกเปลี่ยน message กัน, มีกฏ ข้อตกลงของธุรกิจหลาย process ซึ่งทำให้ service ที่แตกต่างกันสามารถร่วมมือกันได้
-> จะต้องติดตาม sequence ของ message และอธิบายมุมมองของทุกๆ party ร่วมกัน

SOA_6.jpg

  • 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