Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

MS SQL Server 2005 SQL Server 2005 - Native XML Web Services.

Podobne prezentacje


Prezentacja na temat: "MS SQL Server 2005 SQL Server 2005 - Native XML Web Services."— Zapis prezentacji:

1 MS SQL Server 2005 SQL Server Native XML Web Services

2 Sposób dostępu do bazy danych Przed MS SQL Server 2005 – Tabular Data Stream (TDS) MS SQL Server 2005 – SOAP via HTTP Język T-SQL z wykorzystaniem parametrów Procedury składowane, rozszerzone procedury, funkcje użytkownika

3 MS SQL Server 2005 – SOAP via HTTP Otwarty protokół Szerokie możliwości podłączenia zróżnicowanych klientów – wyeliminowanie konieczności posiadania przez klienta komponentów MDAC Wykorzystanie technologii XML i HTML SQL Server dostępny dla każdego środowiska, które potrafi przetwarzać język XML oraz wysłać żądania HTTP Wyeliminowanie konieczności wykorzystywania driverów ODBC/JDBC przy łączeniu się z bazą danych

4 Jak stworzyć Native XML Web Service? Zdefiniować funkcje lub procedury składowane, które chcemy udostępnić Utworzyć ENDPOINT, który udostępni zdefiniowane funkcje lub procedury (tzw. Web services) Aplikacje, które potrafią wysłać i odbierać komunikaty SOAP mogą się łączyć z ENDPOINTEM i wysłać lub pobierać dane Wszystkie udostępnione obiekty (Web services) opisane są za pomocą języka WSDL (web services description language)

5 Konfiguracja serwera SQL jako Web Service (1) Zdefiniowanie procedury składowanej w języku T-SQL USE AdventureWorks GO CREATE FUNCTION INT) RETURNS nvarChar(MaX) AS BEGIN RETURN (SELECT Name FROM Sales.Store where END USE AdventureWorks GO CREATE FUNCTION INT) RETURNS nvarChar(MaX) AS BEGIN RETURN (SELECT Name FROM Sales.Store where END

6 Konfiguracja serwera SQL jako Web Service (2) Definiowanie ENDPOINTa CREATE ENDPOINT GetCustomerName STATE = STARTED AS HTTP ( PATH = '/Customer', AUTHENTICATION = (INTEGRATED), PORTS = (CLEAR), SITE = 'localhost' ) FOR SOAP ( WEBMETHOD 'CustomerName' (NAME='AdventureWorks.dbo.GetCustomerName'), BATCHES = DISABLED, WSDL = DEFAULT, DATABASE = 'AdventureWorks', NAMESPACE = 'http://AdventureWorks/Customer' ) CREATE ENDPOINT GetCustomerName STATE = STARTED AS HTTP ( PATH = '/Customer', AUTHENTICATION = (INTEGRATED), PORTS = (CLEAR), SITE = 'localhost' ) FOR SOAP ( WEBMETHOD 'CustomerName' (NAME='AdventureWorks.dbo.GetCustomerName'), BATCHES = DISABLED, WSDL = DEFAULT, DATABASE = 'AdventureWorks', NAMESPACE = 'http://AdventureWorks/Customer' )

7 CREATE ENDPOINT– opis parametrów STATE - poczatkowy stan endpointu (started,stopped,disabled) AS HTTP – uzywany protokol transportowy (np. AS TCP) PATH – URL na serwerze, który klienci będą uzywali do polaczenia się z Web servisem AUTHENTICATION – sposób autoryzacji (BASIC, DIGETS, NTLM, KERBEROS, INTEGRATED) PORTS – typ portu na którym serwis nasluchuje (CLEAR lub SSL) SITE – nazwa hosta dla komputera, który będzie odpowiadal na zadania FOR SOAP – informacja ze endpoint będzie uzywal protokolu SOAP WEBMETHOD – definuje Webmetode, mapuje nazwe procedury skladowanej na Webmetode BATCHES – okresla czy endpoint będzie przetwarzal zapytania SQL-owe WSDL - czy endpoint będzie wpieral WSDL DATABASE - nazwa wykorzystywanej bazy danych NAMESPACE - przstrzen nazw dla jezyka XML

8 WSDL Jezyk XML Opis Web services Jeśli dla ENDPOINTa parametr WSDL = DEFAULT wysyłając odpowiednie żądnie HTTP możemy uzyskać plik WSDL opisujący udostępnione Web services Rozbudowane środowiska (VS.NET, JBulider) wykorzystują WSDL do tworzenia klas proxy upraszczając wykorzystywanie Web services w aplikacjach

9 WSDL – opis procedury składowanej wraz z parametrami

10 Visual Studio 2005 – wykorzystanie Native XML Web services Pobranie web referencji do udostępnionego serwisu (plik WSDL) Utworzenie klasy proxy Web service Klasa proxy udostępnia te wszystkie metody, które zdefiniowane zostały dla ENDPOINTu Jeśli ENDPOINT zezwala na wykonywanie zapytań ad hoc udostępniona jest również metoda sqlbatch Klient wysyła do SQL Server 2005 komunikat SOAP SQL Server zwraca wynik żądanej metody do klienta

11 Visual Studio przetwarzanie odpowiedzi Rezultaty operacji mogą być zwracane jako tablica obiektów Kod powrotu procedury (return code) zwracany jest w tablicy jako obiekt typu int XMLElement( System.Xml.XmlElement) Wynik zapytania SELECT... FOR XML DataSet (System.Data.DataSet) Wynik zapytania SELECT… SqlMessage (a custom type defined by the WSDL) Komunikaty błędów, uwagi, dodatkowe informacje SqlRowCount (a custom type defined by the WSDL) Ilość wierszy wynikowych SqlParameter ( a custom type defined by the WSDL) Zawiera zbiór parametrów zwróconych przez SQL Server 2005

12 SOAP via RPC Żądanie SOAP udostępnionego Web service Odpowiedź MS SQL A Bike Store A Bike Store

13 Visual Studio 2005 – Web services w oparciu o klasy proxy tworzone na podstawie plików WSDL Dodanie Web referenece Utworzenie i wykorzystanie klasy proxy do wywoływania Web service SQLHTTP.Customer ws = new SQLHTTP.Customer(); //create proxy class ws.Credentials = System.Net.CredentialCache.DefaultCredentials; MessageBox.Show(Customer Name: + ws.customerName(1).toString()); SQLHTTP.Customer ws = new SQLHTTP.Customer(); //create proxy class ws.Credentials = System.Net.CredentialCache.DefaultCredentials; MessageBox.Show(Customer Name: + ws.customerName(1).toString());

14 Batches: AdHoc Queries BATCHES=ENABLED ENDPOINT udostępnia metodę sqlbatch Sqlbatch pozwala na wykonywanie procedur T-SQL poprzez komunikaty SOAP Sqlbatch – parametry: - procedura T-SQL (opcjonalnie) – tablica parametrów, jeśli procedura ich wymaga

15 SOAP via RPC - sqlbatch (1) Wywołanie metody sqlbatch wraz z parametrami SELECT LoginID,Title FROM HumanResources.Employee WHERE FOR XML AUTO; 1 SELECT LoginID,Title FROM HumanResources.Employee WHERE FOR XML AUTO; 1

16 SOAP via RPC - sqlbatch (2) Odpowiedź SQL Server 2005

17 Visual Studio 2005 – metoda sqlbatch SQLHTTP.Customer ws = new SQLHTTP.Customer; ws.Credentials = System.Net.CredentialCache.DefaultCredentials; WApp.localhost.SqlParameter[] p = new WApp.localhost.SqlParameter[1]; p[0] = new WApp.localhost.SqlParameter(); p[0].name = "x"; p[0].Value = "1"; p[0].maxLength = 20; p[0].sqlDbType = WApp.localhost.sqlDbTypeEnum.Int; p[0].direction = NativeSOAPApp1.server.ParameterDirection.Input; string s = "SELECT LoginID, Title " + "FROM HumanResources.Employee Where " + "FOR XML AUTO;"; object[] results = ws.sqlbatch(s, ref p);// proxy.sqlbatch(s); string wynik = ""; for (int j = 0; j < results.Length; j++) { object e1; System.Xml.XmlElement xmlResult; e1 = results[j]; switch (e1.ToString()) { case "System.Xml.XmlElement": xmlResult = (System.Xml.XmlElement)results[j]; wynik = wynik + xmlResult.OuterXml+"\n"; break; } MessageBox.Show(wynik); SQLHTTP.Customer ws = new SQLHTTP.Customer; ws.Credentials = System.Net.CredentialCache.DefaultCredentials; WApp.localhost.SqlParameter[] p = new WApp.localhost.SqlParameter[1]; p[0] = new WApp.localhost.SqlParameter(); p[0].name = "x"; p[0].Value = "1"; p[0].maxLength = 20; p[0].sqlDbType = WApp.localhost.sqlDbTypeEnum.Int; p[0].direction = NativeSOAPApp1.server.ParameterDirection.Input; string s = "SELECT LoginID, Title " + "FROM HumanResources.Employee Where " + "FOR XML AUTO;"; object[] results = ws.sqlbatch(s, ref p);// proxy.sqlbatch(s); string wynik = ""; for (int j = 0; j < results.Length; j++) { object e1; System.Xml.XmlElement xmlResult; e1 = results[j]; switch (e1.ToString()) { case "System.Xml.XmlElement": xmlResult = (System.Xml.XmlElement)results[j]; wynik = wynik + xmlResult.OuterXml+"\n"; break; } MessageBox.Show(wynik);

18 MS SQL Server 2005 SQL Server Native XML Web Services


Pobierz ppt "MS SQL Server 2005 SQL Server 2005 - Native XML Web Services."

Podobne prezentacje


Reklamy Google