29 September 2007

สถาปัตยกรรมบริการเชิงรุก (Service Oriented Architecture: SOA)

สถาปัตยกรรมบริการเชิงรุก (Service Oriented Architecture: SOA)

ความหมายของ SOA
ความหมายของเซอร์วิส (Service) คือเป็นการรวมฟังก์ชันจากระบบสนับสนุน งานธุรกิจทั้งที่มีอยู่หรือที่สร้างใหม่ให้เป็นหน่วยเดียวตามมาตรฐานที่กำหนด และประกาศฟังก์ชันที่รวมขึ้นเป็นหนึ่งเดียวนั้นซึ่งจะทำให้ระบบอื่นสามารถค้นหาเซอร์วิส (Service Discovery) และเรียกใช้งาน (Service) ได้ง่ายขึ้น และ SOA (Service-Oriented Architecture) หมายถึงโมเดลของการพัฒนาซอฟต์แวร์ที่สร้างฟังก์ชันต่าง ๆ ให้เป็นบริการหรือ Service ซึ่งสามารถนำมาใช้ทำงานร่วมกันได้ผ่านอินเตอร์เฟส (Interface) ที่เป็นมาตรฐานที่นิยามอย่างชัดเจน และมีการกำหนดเงื่อนไขรายละเอียดของบริการ (Contract) ไว้

องค์ประกอบที่สำคัญของ SOA
องค์ประกอบต่อไปนี้เป็นองค์ประกอบที่จำเป็น เพื่อให้สามารถเรียกใช้บริการอื่นๆ ได้ ดังนี้
1. เซอร์วิส (Service) กลุ่มของอินเตอร์เฟสที่ระบุฟังก์ชันต่างๆ ที่สามารถให้ระบบอื่นสามารถเรียกใช้บริการได้
2. ผู้ให้บริการ (Service Provider) กลุ่มของคอมโพเนนต์ที่สามารถทำฟังก์ชันที่เป็นบริการตามที่กำหนดไว้เป็นเซอร์วิส (Service Specification)
3. ผู้รับบริการ (Service Consumer or Requestor) ระบบอื่นๆ ที่เรียกใช้เซอร์วิสซึ่งระบบอื่นๆ อาจจะเป็นเซอร์วิสที่เรียกใช้เซอร์วิสด้วยกันก็ได้
4. ผู้ให้บริการข้อมูลรายละเอียดของเซอร์วิสและค้นหาสถานที่ตั้งของผู้ให้บริการ (Service Locator) เป็นผู้ให้บริการประเภทหนึ่ง ซึ่งมีหน้าที่ลงทะเบียนรายละเอียดเกี่ยวกับผู้ให้บริการ (Service Registry) และคอยให้บริการข้อมูลรายละเอียดที่จำเป็นสำหรับการเรียกใช้บริการ
5. ตัวแทนติดต่อระหว่างผู้รับบริการและผู้ให้บริการ (Service Broker) ทำหน้าที่ช่วยติดต่อส่งคำร้องขอบริการจากผู้รับบริการไปยังกลุ่มของผู้ให้บริการ เพื่อเพิ่มความสะดวกในการติดต่อเรียกใช้บริการ

ขั้นตอนการทำงานร่วมกันระหว่างผู้รับบริการ ผู้ให้บริการ ตัวแทน และผู้ให้บริการข้อมูลรายละเอียดของเซอร์วิส เพื่อให้ผู้รับบริการสามารถเรียกใช้เซอร์วิสที่ต้องการได้ องค์ประกอบต่อไปนี้เป็นองค์ประกอบที่จำเป็น เพื่อให้สามารถเรียกใช้บริการอื่นๆ ได้ ดังนี้1. เซอร์วิส (Service) กลุ่มของอินเตอร์เฟสที่ระบุฟังก์ชันต่างๆ ที่สามารถให้ระบบอื่นสามารถเรียกใช้บริการได้2. ผู้ให้บริการ (Service Provider) กลุ่มของคอมโพเนนต์ที่สามารถทำฟังก์ชันที่เป็นบริการตามที่กำหนดไว้เป็นเซอร์วิส (Service Specification)3. ผู้รับบริการ (Service Consumer or Requestor) ระบบอื่นๆ ที่เรียกใช้เซอร์วิสซึ่งระบบอื่นๆ อาจจะเป็นเซอร์วิสที่เรียกใช้เซอร์วิสด้วยกันก็ได้4. ผู้ให้บริการข้อมูลรายละเอียดของเซอร์วิสและค้นหาสถานที่ตั้งของผู้ให้บริการ (Service Locator) เป็นผู้ให้บริการประเภทหนึ่ง ซึ่งมีหน้าที่ลงทะเบียนรายละเอียดเกี่ยวกับผู้ให้บริการ (Service Registry) และคอยให้บริการข้อมูลรายละเอียดที่จำเป็นสำหรับการเรียกใช้บริการ5. ตัวแทนติดต่อระหว่างผู้รับบริการและผู้ให้บริการ (Service Broker) ทำหน้าที่ช่วยติดต่อส่งคำร้องขอบริการจากผู้รับบริการไปยังกลุ่มของผู้ให้บริการ เพื่อเพิ่มความสะดวกในการติดต่อเรียกใช้บริการ ขั้นตอนการทำงานร่วมกันระหว่างผู้รับบริการ ผู้ให้บริการ ตัวแทน และผู้ให้บริการข้อมูลรายละเอียดของเซอร์วิส เพื่อให้ผู้รับบริการสามารถเรียกใช้เซอร์วิสที่ต้องการได้

องค์ประกอบต่อไปนี้เป็นองค์ประกอบที่จำเป็น เพื่อให้สามารถเรียกใช้บริการอื่นๆ ได้ ดังนี้1. เซอร์วิส (Service) กลุ่มของอินเตอร์เฟสที่ระบุฟังก์ชันต่างๆ ที่สามารถให้ระบบอื่นสามารถเรียกใช้บริการได้2. ผู้ให้บริการ (Service Provider) กลุ่มของคอมโพเนนต์ที่สามารถทำฟังก์ชันที่เป็นบริการตามที่กำหนดไว้เป็นเซอร์วิส (Service Specification)3. ผู้รับบริการ (Service Consumer or Requestor) ระบบอื่นๆ ที่เรียกใช้เซอร์วิสซึ่งระบบอื่นๆ อาจจะเป็นเซอร์วิสที่เรียกใช้เซอร์วิสด้วยกันก็ได้4. ผู้ให้บริการข้อมูลรายละเอียดของเซอร์วิสและค้นหาสถานที่ตั้งของผู้ให้บริการ (Service Locator) เป็นผู้ให้บริการประเภทหนึ่ง ซึ่งมีหน้าที่ลงทะเบียนรายละเอียดเกี่ยวกับผู้ให้บริการ (Service Registry) และคอยให้บริการข้อมูลรายละเอียดที่จำเป็นสำหรับการเรียกใช้บริการ5. ตัวแทนติดต่อระหว่างผู้รับบริการและผู้ให้บริการ (Service Broker) ทำหน้าที่ช่วยติดต่อส่งคำร้องขอบริการจากผู้รับบริการไปยังกลุ่มของผู้ให้บริการ เพื่อเพิ่มความสะดวกในการติดต่อเรียกใช้บริการ ขั้นตอนการทำงานร่วมกันระหว่างผู้รับบริการ ผู้ให้บริการ ตัวแทน และผู้ให้บริการข้อมูลรายละเอียดของเซอร์วิส เพื่อให้ผู้รับบริการสามารถเรียกใช้เซอร์วิสที่ต้องการได้

จากรูปเริ่มต้นที่การประกาศแจ้งการให้บริการ (Publish) เมื่อผู้ให้บริการต้องการประกาศแจ้งให้ผู้อื่นทราบและสามารถเรียกใช้บริการได้ ผู้ให้บริการจะต้องนำรายละเอียดการให้บริการ (Service Description) มาลงทะเบียนเก็บไว้ ที่ผู้ให้บริการข้อมูลรายละเอียดของเซอร์วิส (Service Registry) เพื่อให้ผู้ต้องการรับบริการได้มาค้นหาและเรียกใช้

เมื่อผู้รับบริการต้องการเรียกใช้บริการจะต้องเริ่มจากการค้นหาบริการที่ต้องการ (Find) ว่ามีผู้ให้บริการใดบ้างที่ให้บริการตามที่ตนต้องการ ซึ่งผู้ให้บริการข้อมูลรายละเอียดของเซอร์วิส จะเป็นผู้ค้นคืน รายละเอียดของผู้ให้บริการที่จำเป็นสำหรับติดต่อขอรับบริการเชื่อมต่อไปยังผู้ให้บริการและเรียกใช้ (Bind and Invoke) หลังจากผู้รับบริการได้รายละเอียดของผู้ให้บริการจะทำการเชื่อมต่อไปยังผู้ให้บริการ ตามที่อยู่ด้วยวิธีการติดต่อสื่อสาร (Transport Protocol) เพื่อส่งคำร้องขอบริการ ตามรายละเอียดวิธีการเรียกใช้บริการและผลของการให้บริการจะถูกส่งกลับมายังผู้ร้องขอบริการด้วยวิธีการและมีรายละเอียดตามที่กำหนดเช่นกัน

ตัวอย่างการนำ SOA มาประยุกต์ใช้
ตัวอย่างที่นำมาเสนอ คือ เฟรมเวิร์กสถาปัตยกรรมบริการเชิงรุกสำหรับ Mobile Services (A Services-Oriented Architecture Framework for Mobile Services) ซึ่งมีวัตถุประสงค์ก็คือ การนำ SOA มาเข้ามาใช้เพื่อช่วยในการออกแบบ mobile service ที่มี service ที่หลากหลายและให้ service เหล่านั้นสามารถทำงานร่วมกันได้

จากรูปที่ 2 จะเป็นการแสดงมุมมองใหม่ของ SOA ที่รองรับ mobile service ตั้งแต่ component หลักของ mobile service ซึ่งแต่ละ service จะมีเป็นของตัวเอง รวมถึงการแสดง component ที่เป็น mobility controller โดยมีลำดับขั้นตอนการทำงานดังนี้ เริ่มจากตัว service ได้ทำการลงทะเบียนไว้ที่ service directory เพื่อเป็นการบ่งบอกว่าจะให้ใช้ service อะไรได้บ้าง และเมื่อ service consumer ต้องการใช้บริการ ก็จะไปค้นหา service ที่ต้องการในตัว service directory ซึ่งในตัว service จะบอกว่าสามารถเรียกใช้ได้ที่ไหน และมีวิธีใช้อย่างไร เมื่อได้ service ที่ต้องการแล้วตัว service consumer ก็ทำการร้องขอใช้บริการไปที่ตัว service ซึ่งตัว service ก็จะให้บริการนั้นเลยโดยใช้ component ของตัวเอง แต่ถ้าต้องการใช้ component อื่นร่วมด้วย ตัว service ก็ให้ตัว Mobility Controller เป็นตัวจัดการ และตัว Mobility Controller ก็จะไปค้นหา service ที่ต้องการมา และก็นำมาใช้ร่วมกัน

ประโยชน์ของ SOA
1. ช่วยให้ระบบเดิมยังสามารถทำงานได้ เนื่องจากการติดต่อเรียกใช้บริการในสถาปัตยกรรม SOA จะเรียกใช้ผ่านอินเตอร์เฟสคอมโพเนนต์ที่ให้บริการจะพัฒนาด้วยเทคโนโลยีใดก็ได้
2. ทำให้การบูรณาการงานต่าง ๆ ในระดับธุรกิจทำได้ง่ายขึ้นและลดความซับซ้อน เนื่องจากสถาปัตยกรรมของ SOA เชื่อมโยงบริการต่าง ๆ เข้าด้วยกันผ่านอินเตอร์เฟส
3. ใช้เวลาน้อย ลดต้นทุนในการพัฒนาระบบสารสนเทศ และเพิ่มทรัพยากรที่มีอยู่

ที่มา:

:Roadmap to SOA สำหรับหน่วยงานราชการ กรณีศึกษา One Stop Services, สำนักงานส่งเสริมอุตสาหกรรมซอฟต์แวร์แห่งชาติ (องค์การมหาชน)
:http://www-128.ibm.com/developerworks/webservices/newto/#1
:Do van Thanh Telenor & Norwegian University of
Scienceand Technology email: thanh-van.do@telenor.com
:Ivar Jorstad Norwegian University of Science and
Technology email: ivar@ongx.org

No comments:

Copyright 2007-2010 © SOA Service Oriented Architecture. All Rights Reserved