31 December 2008

ว่าด้วย SOA

Service Oriented Architecture SOA คืออะไร

แบ่ง 3 ข้อ
1.ความรู้พื้นฐานเกี่ยวกับ SOA
2.เราจะใช้ tool อะไรในการสร้าง SOA หรือ implements
3.วิธีการสร้าง

1. concept พื้นฐานของ SOA ก็คือมองทุกอย่างเป็น service
อย่างถ้า OOP เราจะมองทุกอย่างเป็น object ใช่มั้ย แต่อันนี้เรามองเป็น service แทน
ตัวอย่างที่เขาชอบยกมาก็คือ service เช่น บริการจองโรงแรม บริการจองตั๋วเครื่องบิน บริการดูราคาหุ้น (Stock Quote)
ซึ่งเวลามองก็จะมองว่า มีบริการอย่างนี้นะ เราใส่ข้อมูลความต้องการเราลงไป แล้วเราได้บริการกลับมา
ซึ่งมันจะต่างจาก object ที่จะมองเป็น properties/behavior

web service ก็เป็น implementation อย่างนึงของ SOA ทำนองเดียวกับที่ Java เป็น implementation ของ OO

web service (WS) ก็จะประกอบด้วยส่วนหลักๆที่ควรรู้จัก 3 อัน ก็คือ WSDL, SOAP, UDDI (ทุกตัวเป็น XML)
ถ้าให้อธิบายคร่าวๆ

- SOAP จะเป็นส่วน transportation protocol คือมันจะติดต่อกันด้วย SOAP
- WSDL จะเป็นตัวอธิบาย มองง่ายๆจะคล้ายๆ interface ก็คือจะอธิบายว่า service นี้รับ parameter อะไรบ้าง ส่งอะไรกลับคืนมา
- UDDI จะเป็นคล้ายๆสมุดหน้าเหลือง เวลาจะหา service ที่ต้องการก็เข้าไปเปิดหาในนี้

Invocation model ของ WS แบบในฝันก็คือ user ต้องการใช้บริการ เช่น อยากจองตั๋วเครื่องบิน ก็ไปดูใน UDDI ซึ่งมันก็จะมีหลายเจ้าที่ให้บริการที่เหมือนกัน ก็เลือกมาเจ้านึง (ซึ่งจะใช้เงื่อนไขอะไรนั้นก็เช่น QoS, Location, etc. )
แล้วก็จะได้ WSDL file (location) ของ service นั้นๆมาจาก UDDI
แล้วพอได้ WSDL file มาแล้วเราก็จะสามารถติดต่อกับ service นั้นๆได้แล้ว

แต่ ปัจจุบัน UDDI มันยังไม่ค่อยมีคนใช้ หลักสำคัญก็คือต้องรู้ WSDLของ service ที่จะเรียกเป็นใช้ได้ ถ้ารู้อยู่แล้วก็ข้าม UDDI ไปได้เลย


2. อันนี้มันมีให้เลือกหลากหลาย ก็แล้วแต่ภาษาแล้วก็เทคโนโลยีที่ใช้ อย่างถ้าจะทำ WS ด้วย Java มันก็มีให้ใช้หลายตัวมากๆเลย อย่างเช่น JWSDP, Axis, และอื่นๆ พวกตระกูล .NET ก็จะมีของมัน

3. ก็ต้องแล้วแต่ technology ที่ใช้
แต่ หลักๆของมันก็คล้ายๆกัน คือถ้าจะสร้าง service ให้คนอื่นใช้ tool มันก็จะสร้าง WSDL file ออกมาให้ แต่ถ้าจะไปใช้ของเขา เราก็ต้องรู้ WSDL ของเขา แล้วเราก็สร้าง class ไฟล์มาเพื่อไปเรียกมันอีกที ปกติถ้าจะทำ web service จากโปรแกรมที่มีอยู่แล้ว ก็แค่สร้าง interface แล้วก็เอามาสร้าง wsdl ด้วย tool แล้วเอาไป deploy ก็ใช้ได้แล้ว

Source: SOA Service Oriented Architecture information at tism50b.multify.com

No comments:

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