ในเนื้อหาที่สองนี้เราจะแนะนำในส่วนของ โครงสร้างพื้นฐาน (infrastructure) ของ SOA กันนะครับ โดยจะเปรียบเทียบในเชิงของ บ้านเรื่อน ถนน ต่างๆ เพื่อให้เห็นภาพกันชัดเจนยิ่งขึ้นนะครับ

ต้องขอยืมรูปจาก : http://www.hinttech.com/websphere/soa.html นะครับ เพราะเค้าทำได้ดีมาก ทำให้เห็นภาพรวมทั้งหมดของ SOA ได้ชัดเจนที่สุด
SOA นั้นถ้าให้เข้าใจกันง่าย ๆ นั้นก็เปรียบเสมือน เมืองที่มีบ้านเรือนแล้วมีถนนสายสำคัญที่เป็นเส้นทางเชื่อมต่อระหว่างบ้านแต่ละบ้าน บ้านเรือนต่าง ๆ ก็เป็นตัวแทนของผู้ใช้บริการและผู้ให้บริการ ส่วนถนนที่เป็นเส้นทางในการเดินทางนั้นก็เป็นตัวแทนของ ESB หรือ Enterprise Service Bus แล้วในการเชื่อมต่อเส้นทางต่าง ๆ ของเมืองนี้จะต้องมีผู้ที่รักษาความปลอดภัยให้ด้วยเพื่อให้บ้านเมืองมีการส่งข้อมูลเป็นระเบียบเรียบร้อยนั่นเอง
โครงสร้างพื้นฐานของ SOA (Infrastructure of SOA)
จากรูป 2.1 จะเห็นส่วนประกอบสำคัญของ SOA ดังนี้
1. ผู้ให้บริการ (Service Provider)
คือผู้ที่เป็นเจ้าของบริการต่าง ๆ ที่เป็นตัวแทนในการให้บริการ
2. ผู้ใช้บริการ (Service requestor)
คือผู้ใช้บริการที่ต้องการเรียกใช้บริการจากบริการต่าง ๆ ที่มีอยู่ในระบบ
3. ตัวกลางในการหาบริการ (Service broker)
เป็นที่รู้จักกันในชื่อของ UDDI หรือ ตัว Registry เป็นตัวเก็บเซอร์วิสต่าง ๆ ที่มีอยู่ซึ่ง Registry จะเป็นตัวที่ใช้ในการค้นหาและเรียกใช้ เซอร์วิส
4. ช่องทางในการส่งข้อมูลหรือแลกเปลี่ยนข้อมูล(ESB : Enterprise Service Bus)
หลักการของ ESB คือมันจะเป็นตัวกลาง ที่ทำให้ผู้ที่ต้องการเรียกใช้ Service สามารถเรียกใช้ผ่าน ESB ได้ ทำให้สะดวกไม่ต้องติดต่อกับ Service ต่าง ๆ เอง เช่น ในการตรวจสอบข้อมูลผู้ร้าย ต้องมีระบบต่าง ๆ มากมายที่จำเป็น ต้องมีข้อมูลของประชากร เช่น ชื่อ ที่อยู่ รูป หรือประวัติการศึกษาการทำงานจากแหล่งต่าง ๆ ซึ่งหากระบบตรวจสอบ ต้องติดต่อกับระบบต่าง ๆ เพื่อให้ได้ข้อมูลของแต่ละระบบ จากระบบที่ยกตัวอย่างจะเห็นได้ว่าถ้าเรามีตัวกลางจัดการหาข้อมูลที่เราต้องการก็จะทำให้เกิดความสะดวก และง่ายต่อการค้นหา
ESB หลัก
ๆ จะทำงานแบบ Publish/Subscribe
กล่าวคือ มีระบบที่เป็น เซอร์วิส ทำการ Subscribe
Message ภายใน Bus ไว้
หากมีระบบใดก็ตามที่ทำการจัดส่งข้อความที่ตรงกับหัวข้อที่ เซอร์วิส
ทำการ Subscribe เอาไว้ ก็จะได้ข้อความนั้นไปทำงาน
อย่างตัวอย่างข้างต้น ระบบค้นหาประชากร ระบบจัดการข้อมูลประชากร
ระบบค้นหาข้อมูลการศึกษา ระบบค้นหาข้อมูลการทำงาน
ระบบค้นหาข้อมูลการกระทำผิด จะทำการ Subscribe Message
ของหัวข้อเรื่องค้นหาประชากรเอาไว้
หากมีข้อความที่มีหัวข้อนี้เข้ามาก็จะได้รับข้อความนั้นเพื่อนำไปสร้างข้อมูลประชากรภายในระบบ
นอกจากนี้ ESB ยังมีความสามารถในเรื่องของ
Workflow ที่จะช่วยจัดลำดับและ Logic
ในการนำข้อความส่งให้เซอร์วิส ต่าง ๆ ด้วย
เช่น ข้อมูลประชากรจะต้องส่งไปที่ ระบบค้นหาประชากรตามชื่อก่อน
เพื่อจะได้ข้อมูลที่อยู่
เพื่อส่งต่อให้ระบบตรวจสอบการศึกษาและสถานที่ทำงานต่อไปเป็นต้น
ระดับต่าง ๆ ของ SOA
SOA จะเป็นการนำระบบเดิมมาจัดการใหม่โดยมีการจัดระดับเป็นเลเยอร์ ดังนี้
- ชั้นของระบบเดิม (Resource Layer) ประกอบไปด้วยระบบที่มีอยู่แล้ว
- ชั้นของการบริการ (Service Layer) จะเป็นชั้นที่ประกอบไปด้วย Service layer ของหลาย ๆ บริการที่สามารถนำกลับมาใช้ใหม่โดยจะเป็นบริการที่ได้พัฒนามาเป็นโมดูลย่อย ๆ ของแต่ละระบบที่เราได้นำมาใช้งาน
- ชั้นของกระบวนการทางธุรกิจ (Process Layer) ซึ่งจะเป็นการนำบริการของชั้นก่อนหน้านี้ทั้งหมดมารวมกันเป็นกระบวนการทางธุรกิจกระบวนการเดียว
- ชั้นของการเรียกใช้งาน (Access Layer) ซึ่งจะไม่จำกัดเพียงแค่เครื่องคอมพิวเตอร์ แต่จะรองรับได้ทุก ๆ อุปกรณ์เช่น โทรศัพท์มือถือ PDA Pocket PC และอุปกรณ์ต่าง ๆ ที่รองรับการทำงานบนเครือข่าย

เครื่องมือสำคัญที่ใช้พัฒนาระบบ SOA
1. ESB (Enterprise Service Bus)
ESB หมายถึง มิดเดิ้ลแวร์ที่เป็นตัวเชื่อมให้กับระบบไอทีต่าง ๆ ที่เรานำมารวมกัน
2. BPM (Business Process Management System)
เป็นการนำเอาระบบต่าง ๆ ที่เรานำเอาเซอร์วิสต่าง ๆ มารวมกันนั้นมาจัดการให้สามารถเรียกใช้งานได้เป็นระบบได้มากยิ่งขึ้นอีกทั้งยังทำให้การใช้งานระบบของเรามีประสิทธิภาพสูงอีกด้วย
3. เครื่องมือพัฒนาโปรแกรมและมิดเดิ้ลแวร์เพื่อเรียกใช้กระบวนการทางธุรกิจ
เราจำเป็นที่จะต้องมีเครื่องมือในการช่วยออกแบบกระบวนการทางธุรกิจซึ่งจะมีลักษณะเป็น Flow เพื่อให้ง่ายต่อการออกแบบมากยิ่งขึ้น และมีเครื่องมือสร้างมิดเดิ้ลแวร์ที่มีประสิทธิภาพเพื่อให้เราสามารถสร้างระบบได้รวดเร็วและมีประสิทธิภาพมากอีกด้วย
4. ระบบความปลอดภัย (Security)
ในการเข้าถึงระบบ SOA ของเรานั้นจะต้องมีการกำหนดสิทธิ์ในการเข้าใช้ระบบ และการเข้าหรือถอดรหัสตัวอักษรเพื่อให้เราและผู้เรียกใช้มั่นใจได้ว่าระบบของเรามีความปลอดภัยสูงอีกด้วย
ประโยชน์ของการพัฒนา SOA
1. การติดต่อเชื่อมโยงทางธุรกิจ
เราสามารถเชื่อมโยงระบบขององค์กรของเรากับองค์กรภายนอกได้ โดยที่แต่ละองค์กรที่ทำการเชื่อมโยงกันนั้นมีรูปแบบหรือเทคโนโลยีที่ต่างกันหรือจะเหมือนกันก็ได้
2. ระบบไอทีสามารถเปลี่ยนได้ง่าย
ในการพัฒนาธุรกิจโดยการนำเอา
SOA
มาใช้นั้นจะเป็นการนำเอาระบบเดิมที่มีอยู่แล้วมาใช้งานใหม่ได้
ดังนั้นการที่เราจะปรับเปลี่ยนกระบวนการทางธุรกิจก็จะเป็นไปได้ง่าย
หรือถ้าเราต้องการนำเอาเซอร์วิสใหม่มาเข้ารวมด้วยก็สามารถทำได้ง่ายแค่ทำการเชื่อม
กระบวนการทางธุรกิจเข้าด้วยกันก็จะสามารถทำงานร่วมกันได้แล้ว
3. ลดค่าใช้จ่าย
เนื่องจากเราสามารถนำระบบเดิมมาใช้ใหม่ได้ดังการเราจึงลดค่าใช้จ่ายทางด้านการพัฒนา
ระบบใหม่ลงไปทำให้ค่าจ่ายที่จะต้องใช้พัฒนาระบบลดลงไปได้มากอีกทั้งยังลดระยะเวลาในการพัฒนาระบบ
4. ความเข้ากันของฝ่ายพัฒนาระบบกับฝ่ายธุรกิจ
เนื่องจากการทำงานส่วนใหญ่แล้วจะต้องทำงานกับกระบวนการทางธุรกิจเป็นหลักจึงทำให้ฝ่ายธุรกิจสามารถมองระบบออกได้ง่ายยิ่งขึ้นจึงทำให้การพัฒนาระบบสอดคล้องกันได้อย่างลงตัว และทำให้งานที่ได้เป็นไปอย่างมีประสิทธิภาพ
5. ลดความซับซ้อนในการพัฒนาและดูแลรักษาระบบ
ต้องขออภัยด้วยนะครับตอนแรกที่เขียนขึ้นมาทำบน firefox แล้วไม่เห็นว่ามันมีปัญหาตรงที่ content มันไม่ตรงกัน แล้วมันก็อบปี้ไฟล์จาก word มาแล้วมันจะเสีย มาดูอีกที อ้าว! มันทำมัยเพี้ยนแบบนี้ แต่ตอนนี้แก้ไขเรียบร้อยแล้วนะครับ ใครมีข้อเสนอแนะส่วนไหนก็สามารถเขียนเข้ามาได้นะครับ ยินดีรับทุกความคิดเห็นครับ