Native XML Web Services ใน SQL Server 2005

Posted 01/01/2008 01:15
by nikom
คะแนนนิยม

บทความนี้จะบรรยายถึง Native XML web service ซึ่งเป็นแนวทางที่ SQL Server 2005 ใช้เสนอ web services โดยไม่ต้องทำงานผ่าน IIS แต่ผ่าน http.sys (Windows HTTP listener process ใน Windows 2003 และ Windows XP SP2) แทน ลักษณะที่สำคัญอย่างอื่นของมันมีดังนี้

  • รองรับการทำงานร่วมกับ SOAP 1.1, SOAP 1.2 และ WSDL
  • รองรับการทำงานกับคำสั่ง ad hoc Transact-SQL
  • ข้อมูลผลลัพธ์จากการประมวลผลโดยส่วนใหญ่ ส่งกลับออกมาโดยไม่ต้องใช้ FOR XML
  • client application เรียกใช้งานมันได้โดยตรง ไม่มีการทำงานผ่าน XML templates เหมือนใน SQLXML 3.0
  • security ถูกควบคุมจากภายใน SQL Server โดยตรง

เราสามารถสร้าง Native XML web service ได้มากเท่าที่ต้องการโดยอาศัยคำสั่ง CREATE ENDPOINT เพื่อสร้าง service endpoints แต่ละ endpoint สามารถรับผลลัพธ์จาก stored procedure แล้วส่งออกไปเป็น SOAP message ในที่สุด 

เราลองมาดูตัวอย่างการสร้างคำสั่ง CREATE ENDPOINT กัน 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CREATE ENDPOINT ToyPoint
STATE = STARTED
AS HTTP
(
PATH = '/Toy',
AUTHENTICATION = (INTEGRATED),
PORTS = (CLEAR),
SITE = 'localhost'
)

FOR SOAP
(
WEBMETHOD 'Toys'
(NAME='FunnyToys.dbo.ToyProc'),
BATCHES = DISABLED,
WSDL = DEFAULT,
DATABASE = 'FunnyToys',
NAMESPACE = 'http:// FunnyToys/Toy'
)

GO

พอจะสรุปได้ว่า web service ถูกสร้างขึ้นและสามารถใช้งานได้ที่ http://localhost/Toy ซึ่ง web service นี้เชื่อมต่อกับฐานข้อมูล FunnyToys ผ่าน stored procedure ชื่อ dbo.ToyProc 

การเรียกใช้ Native XML web service จาก client application สามารถทำได้เหมือนกับ web services อื่นทั่วๆไป นั่นคือเริ่มจาก add web reference จากนั้นสร้าง proxy instance และในที่สุดก็สามารถเรียก web method ได้ 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void TestWebMethod(string toyName)
{
System.Data.SqlTypes.SqlString outToys = "";
server.ToyPoint proxy = new server.ToyPoint();
proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;

object[] results;
results = proxy.Toys(toyName, ref outToys);

   for (int i = 0; i < results.Length; i++)
{
// Show result
}
}

เป็นยังไงกันบ้างครับ ดูแล้วไม่ยากเลยใช่มั้ย ลองสร้างทดสอบกันดูนะครับ

 

ton said:

อยากสร้าง web service ที่ดึงข้อมูลจาก SQL Server 2005

แล้วเรียกใช้โดย Winform ใส่ข้อมูลที่ได้ลงใน gridview มันต้องทำยังไงครับ

งงเต็กครับ

July 8, 2008 12:04 PM
(required)  
(optional)
(required)  
Add
คอแหลม
โฆษณาออนไลน์,
				โฆษณา,ออนไลน์,ลงโฆษณา,ประกาศ,online advertising,online
				,advertising,โปรโมทสินค้า,โปรโมทเว็บไซต์,promote website,
				seo,pay per click,ad per click,media,ค้นหาเว็บ,media,
				สื่อ