SQL Server Native XML Web Services

Slides:



Advertisements
Podobne prezentacje
20041 Projektowanie dynamicznych witryn internetowych Paweł Górczyński ASP 3.0.
Advertisements

Zastosowanie LDAP w obsłudze katalogów bibliotecznych
Równoległość w środowisku rozproszonym
Mechanizmy pracy równoległej
Skrypty, procedury przechowywane i wyzwalane
Rafał Hryniów Tomasz Pieciukiewicz
Decyzje projektowe w .NET Framework
WEB SERVICE Stefan Rutkowski.
XML w integracji aplikacji
11 XML w integracji aplikacji. 22 Cel: umożliwienie wymiany danych pomiędzy aplikacjami: aplikacje/komponenty/moduły posługują się różnymi formatami wewnętrznymi,
XML w integracji aplikacji 11 grudnia XML w integracji aplikacji Cel: umożliwienie wymiany danych pomiędzy aplikacjami: aplikacje/komponenty/moduły.
Marcin Pamuła Mateusz Stefek
Visual Studio Codename „Orcas”, LINQ
18/11/ Języki programowania 1 Piotr Górczyński Łączenie z bazą danych.
Opracował: Patryk Kołakowski(s1715)
.NET - możliwości Jarosław Balcer & Jan Góralski.
RMI I RMI-IIOP Wprowadzenie Co to jest RMI?
Internet Communication Engine
Co to jest studium przypadku?
Metody autoryzacji użytkowników wymaga integracji z systemem operacyjnym nie wymaga logowania mała pewność mechanizmu wymaga logowania duża pewność mechanizmu.
Wykład 2. Wprowadzenie do architektur systemów rozproszonych
Bezpieczeństwo Procedury składowane Funkcje i Wyzwalacze
Gniazda komunikacji sieciowej w języku Java
Proxy WWW cache Prowadzący: mgr Marek Kopel
Wykład 8 Wojciech Pieprzyca
Information Bridge Framework platforma integracji Microsoft Office 2003 z aplikacjami Line of Business Krzysztof Michalski10/01/2005.
.NET Remoting Łukasz Zawadzki.
Systemy zarządzania treścią CMS
Architektura SOA.
Technologia.Net Bazy danych. Technologia ADO.Net Służy do dostarczania danych z rożnych źródeł (baz danych) do aplikacji Jest produktem Microsoft Umożliwia.
Technologia ASP.NET.
Przykład włamania do aplikacji internetowej poprzez modyfikację zapytań SQL Skrypty ASP Serwer bazy danych MS SQL Server Piotr Kuźniacki BDi.
Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska.
Platformy Technologiczne web services
Aplikacje Internetowe
Integracja aplikacji Wykład 2
Web Serwisy w praktyce Technologie internetowe ( )
Wirtualna baza SQL zgodna z SQL Server SQL as a Service
WebAPI – funkcjonalność i rozwój narzędzia
System wspierający obsługę przedmiotów projektowych
Prezentacja i szkolenie
Arkadiusz Twardoń ZTiPSK
Tworzenie typów danych i tabel
SQL - Structured Query Language
Wykonał: Michał Nikołajuk
Aplikacje bazodanowe ADO.NET PHP i MySQL
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 8.
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 3.
Autor: Joanna Barańska Promotor: dr inż. Paweł Figat Konsultant:
S IMON SAYS … A RCHITECTURE ! Usługi zdalne Technologie, techniki i praktyki implementacji.
PL/SQL – dalsza wędrówka
Clustering Technologia klastrowa - architektura łącząca serwery i urządzenia pamięci masowych w celu zwiększenia niezawodności, bezpieczeństwa i wydajności.
Projektowanie Aplikacji Internetowych Artur Niewiarowski Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska.
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Active Directory Federation Services w Windows Server 2012 R2
Technologia.Net Bazy danych. Technologia ADO.Net Służy do dostarczania danych z rożnych źródeł (baz danych) do aplikacji Jest produktem Microsoft Umożliwia.
Komendy SQL do pracy z danymi
Piotr Czapiewski Wydział Informatyki ZUT. Web Services Description Language.
XML w serwisach webowych. Zapotrzebowanie na serwisy XML.
.NET i Bazy Danych Projekt: Wadim Grasza.
1. Podaj definicję kartografii internetowej. 2. Geographic Markup Language: a) Jest schematem XML a) Opisuje obiekty w fizycznej przestrzeni a) Jest formatem.
Maciej Wierzchowski Mariusz Sołtysiak. Założenia  Autentykacja użytkownia  Autentykacja dostawcy  Zapewnienie bezpiecznego połączenia.
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Web services w PHP Inżynieria e-systemów - technologia Java Miłosz Dybizbański Małgorzata Gocał Kinga Knapik
Web services w PHP Inżynieria e-systemów - technologia Java Miłosz Dybizbański Małgorzata Gocał Kinga Knapik
SQL Server Analysis Services Action!
Wydział Matematyki, Informatyki i Architektury Krajobrazu
Aplikacje i usługi internetowe
Windows Workflow Foundation
Aplikacje i usługi internetowe
Zapis prezentacji:

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

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

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

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)

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

Konfiguracja serwera SQL jako Web Service (2) Definiowanie ENDPOINT’a 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– opis parametrów STATE - poczatkowy stan endpoint’u (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

WSDL Jezyk XML Opis Web services Jeśli dla ENDPOINT’a 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 http://localhost/Customer?wsdl

WSDL – opis procedury składowanej wraz z parametrami - <xsd:element name="CustomerName"> - <xsd:complexType> - <xsd:sequence> <xsd:element minOccurs="1" maxOccurs="1" name="CustomerId" type="sqltypes:int" nillable="true" /> </xsd:sequence> </xsd:complexType> </xsd:element> - <xsd:element name="CustomerNameResponse"> <xsd:element minOccurs="1" maxOccurs="1" name="CustomerNameResult" type="sqltypes:int" nillable="true" />

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 ENDPOINT’u 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

Visual Studio 2005 - 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

SOAP via RPC Żądanie SOAP udostępnionego Web service Odpowiedź MS SQL 2005 <SOAP-ENV:Envelope xmlns:SOAP- ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP- ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <m:CustomerName xmlns:m="http://AdventureWorks/Customer"> <m:CustomerId>0</m:CustomerId> </m:CustomerName> </SOAP-ENV:Body> </SOAP-ENV:Envelope> <SOAP-ENV:Envelope><SOAP-ENV:Body> <method:CustomerNameResponse> <method:CustomerNameResult>A Bike Store</method:CustomerNameResult> </method:CustomerNameResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope>

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());

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

SOAP via RPC - sqlbatch (1) Wywołanie metody sqlbatch wraz z parametrami <m:sqlbatch xmlns:m="http://schemas.microsoft.com/sqlserver/2004/SOAP"> <m:BatchCommands> SELECT LoginID,Title FROM HumanResources.Employee WHERE EmployeeID=@x FOR XML AUTO; </m:BatchCommands> <m:Parameters> <m0:SqlParameter name="x" sqlDbType="Int" direction="Input" maxLength="1" precision="18" scale="0" clrTypeName="" sqlCompareOptions="Default" localeId="-1" sqlCollationVersion="0" sqlSortId="0" xmlSchemaCollection=""> <m0:Value>1</m0:Value> </m0:SqlParameter> </m:Parameters> </m:sqlbatch>

SOAP via RPC - sqlbatch (2) Odpowiedź SQL Server 2005 <sqlresultstream:SqlXml xsi:type="sqlsoaptypes:SqlXml"> <SqlXml><HumanResources.Employee LoginID="adventure-works\guy1" Title="Production Technician - WC60"/></SqlXml> </sqlresultstream:SqlXml>

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 EmployeeID=@x " + "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);

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