29 September 2007

เจาะแก่น SOA ตอนที่ 1 เริ่มต้น

เจาะแก่น Service Oriented Architecture SOA ตอนที่ 1 เริ่มต้น

วันนี้ขอเขียนเรื่องที่กำลังพูดถึงกันมากอยู่ขณะนี้ คือ เรื่อง SOA ครับ บทความนี้ผมจะแนะนำให้ทุกคนรู้จัก SOA ครับ SOA (Service Oriented Architecture) เป็นรูปแบบในการออกแบบระบบ (system) หรือ โปรแกรมประยุกต์ (application) แบบหนึ่ง อย่าง object oriented เวลาออกแบบระบบ เราจะมองเป็น object หรือ class แยกแยะระบบออกมาเป็น class และความสัมพันธ์ (relations) แต่ SOA จะมองระบบ ประกอบด้วยการทำงานหรือบริการ (service) ต่างๆ

แล้ว service คืออะไรล่ะ?
service ก็คล้าย function หรือ method นั่นแหละ คือมีหน้าที่ทำอะไรสักอย่าง ถึงเวลาเราก็เรียกใช้ แต่ service มีลักษณะ high level และเป็นมุมมองเชิงธุรกิจมากกว่า เช่น มองระบบธนาคารประกอบด้วยบริการถอน withdrawal service, บริการฝาก deposit service แทนที่จะมองเป็น class Customer หรือ class Teller ที่มี operation withdrawal หรือ deposit

สิ่งที่ service ทำได้ แต่ method ทั่วไปทำไม่ได้ คือ distributed system นั่นคือแต่ละ service สามารถถูกเรียกจากต่างระบบ, host หรือ JVM กันได้ แต่ละ service มีอิสระต่อกัน ไม่ได้กระจุกติดกันอยู่ใน application หรือ jar file หนึ่ง พูดง่าย ๆ service ก็คือ method ที่ถูกดึงมาไว้ข้างนอกนั่นเอง

ข้อดีของ service คือ loose coupling และสามารถใช้ร่วมกันได้ บางคนอาจเถียงว่า method ก็สามารถใช้ร่วมกันได้ แต่ service สามารถใช้ร่วมกันระดับ application ครับ เช่น ธนาคาร A มี Deposit service ธนาคาร B, C สามารถเขียน application มาเรียกใช้ Deposit service ของธนาคาร A ได้ นั่นคือเป็นการ reuse ระดับ high-level ขึ้นมาอีก

No comments:

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