SOA Sparkling

         เมื่อเราพอจะทราบว่าอะไรคือ Web Service(WS) คร่าว ๆ  แล้วก็พอจะมองภาพออกแล้วว่า WS นั้นทำงานอย่างไร แต่จะมีใครพอสังเกตได้หรือไม่ว่า WS นั้นยังมีข้อจำกัดของมันอยู่อีก
        นั่นก็คือ  ในหน้า UDDI  เราจะเห็นว่ามันมีข้อมูลของ service  ที่มาฝากข้อมูล file wsdl ของแต่ละ service เยอะมาก ๆ จนในบางครั้งเราก็หา service ที่เราต้องการจริง ๆ ไม่ได้ ถึงแม่ว่า UDDI จะมีความสามารถในการค้นหา service ต่าง ๆ ก็ตาม จากปัญหานีจึงได้มีผู้ที่คิดค้นพัฒนา WS ให้ดีขึ้นกว่าเดิม จนเกิดเป็น Service Oriented Architecture(SOA) แต่ก่อนที่จะมาอธิบายส่วนนี้ ผมจะขออธิบาย ยุคของการพัฒนาของ application ก่อนที่จะเข้าสู่การอธิบายลักษณะของ SOA 

         เริ่มมาจาก ยุคแรก เลยก็คือ ยุคของ mainframe เป็นแบบโปรแกรมเดียวที่มีขนาดใหญ่เอามากๆจนเข้าสู่ช่วงกลาง ๆ จะเป็นยุค แห่ง OOP  มองทุกอย่าง เป็น Object แล้วก็มาเป็น WS หลังจากนั้นก็ พัฒนามาเป็น SOA ที่มอง ทุกอย่างเป็น service เหมือน เรามอง เป็นObject(แต่ใน SOA หรือ WS นั้นจะมีมีคำว่า Object)

         จากที่เห็นข้างต้นเป็นการอธิบายถึงยุคของการพัฒนาแบบคร่าวๆ นะครับ อ้อลืมบอกไปว่า ในข้อความแรกๆ ที่ผมอธิบาย WS ไปในจะเป็น การimplement ไปซะส่วนใหญ่ ในความจริงแล้ว SOA ไม่จำเป็นต้องเป็น WS เสมอไปนะครับ จะเป็นอะไรก็ได้ เพราะว่า SOA มันเพียงแค่ conceptual เท่านั้นนะครับ แต่ก็มีความพยายามที่จะนำมาใช้ในส่วนของการ implement จึงได้มีรูปแบบที่แตกต่างกันไปหลากหลาย แต่ในที่นี้เราจะขอยึดในแนวทางของ WS ไว้ก่อนนะครับ เพราะจะทำให้มองเห็นภาพได้ง่ายขึ้น

          หลังจากที่ได้เกริ่นนำไปว่า WS นั้นมีข้อเสียตรงที่ UDDI นั้นเก็บรวบรวม service(wsdl file) ต่างๆ  ไว้มากมาย จนค้นหายากอยู่พอสมควร แต่แล้วก็มี SOA มาช่วยกู้วิกฤตนั่นก็คือ SOA นั้นจะเก็บเฉพาะ service ที่ต้องการในแต่ละ Business เท่านั้น จึงทำให้ เราสามารถเลือกใช่service ที่เราต้องการได้อย่างเต็มประสิทธิภาพ แล้วมันเต็มประสิทธิภาพยังงัยละ นั่นก็คือ WS นั้น เราจะเก็บ UDDI เป็นหมื่นเป็นแสน service ก็ได้ แต่มันจะเยอะจนเกินไป แต่ SOA นั้นจะเป็นตัวที่ แต่ละ Business นั้นได้พัฒนา service ของตัวเองแล้วก็รวบรวมเอา service ทั้งหมดที่เกี่ยวข้องกับธุรกิจของตนเองเอาไว้โดยที่มี application ตัวนึงเป็นตัวรวบรวมเอาไว้ ทำให้เราสามารถใช้งาน service ที่เกี่ยวข้องกับ Business นั้นได้นั่นเอง ซึ่งในรายระเอียดที่ลงลึกลงไปนั้น จะเป็นในส่วนของ การ implementation หลักการลึกๆ ของ SOA เช่นการ reuse, service bus ฯลฯ ส่วนเหล่านี้ผมจะขอยกยอดไปอธิบายในหัวข้อหลังๆ นะครับ เดี๋ยวจะงงกันไปหมด