1 / 47

SQL Server 2005 als Applikationsserver

SQL Server 2005 als Applikationsserver. Die Client-Server-Renaissance?. DD3, D1. Marcel Gnoth (Avanade), Jörg Neumann (Resco). Agenda. Übersicht – SOA und SQL CLR Integration Web Services Service Broker Diskussion. Jörg Neumann. Consultant, Autor, Speaker

wood
Download Presentation

SQL Server 2005 als Applikationsserver

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SQL Server 2005 als Applikationsserver Die Client-Server-Renaissance? DD3, D1 Marcel Gnoth (Avanade), Jörg Neumann (Resco)

  2. Agenda • Übersicht – SOA und SQL • CLR Integration • Web Services • Service Broker • Diskussion

  3. Jörg Neumann • Consultant, Autor, Speaker • Schulungen, Coachings, Entwicklung • Schwerpunkte: • Client-Technologien • Datenbanken • Links zu weiterführenden Artikeln finden Sie am Ende der Slides. • Mail: Joerg.Neumann@Resco.de • Blog: WWW.HeadWriteLine.BlogSpot.com

  4. Das Programmierhandbuch SQL Server 2005 Jörg Neumann, u.a.

  5. Marcel Gnoth • Dipl. Inf. Marcel Gnoth, MCSD • Senior Consultant, Avanade Deutschland GmbH • Office Business Application Group & Business Intelligence • marcel@gnoth.net , www.gnoth.net (Code+Folien) • Autor • dotnetpro, dotnet-magazin, Developerworld, MSDN • Sprecher • BASTA!, TechTalk, SQL Server Days, NRW06 • Themen • Verteilte nachrichtenbasierte Informationssysteme • MS Message Queueing, SQL Server Service Broker • Office System 2003 / 2007 Integration • BI, ETL, Reporting • VB6, COM, SQL Server, .Net

  6. Übersicht SOA und SQL Server

  7. Applikations Szenarien

  8. CLR – Integration Komponenten für den Server

  9. Warum CLR-Integration? • SQLCLR • Einheitliches Programmiermodell • Sprach- und Funktionsvielfalt von .NET • Mit T-SQL kombinierbar

  10. Programmierbare Objekte

  11. SQL Server vs. CLR • Speichermanagement • Thread-Management • Typsystem • Sicherheit • Verfügbarkeit • CLR-Integration muss explizit aktiviert werden

  12. CLR-Erweiterungen in .NET 2.0 • Runtime Hosting API • Assembly Loading • AppDomain Management • Thread-Management/Synchronisation • Deadlock-Erkennung • Security Management • Speicherverwaltung

  13. CLR-Integration

  14. CLR-Datenbankobjekte erstellen • CLR-Methoden werden mit Attributen gekennzeichnet • SqlProcedure • SqlFunction • SqlUserDefinedAggregate • SqlUserDefinedType • SqlTrigger • Enthalten zum Teil auch Laufzeitinformationen • Für jede CLR-Methode wird ein Datenbankobjekt erstellt

  15. Funktionen und Assemblies

  16. Zugriff auf die aktive Session Zugriff auf den Ausgabestrom Zugriff auf Trigger-Daten Definition einer Datenzeile Serverseitiges ADO.NET • Namespace Microsoft.SqlServer.Server • Programmiermodell wie auf dem Client • SqlConnection • SqlDataAdapter • SqlCommand • Zusätzliche Serverklassen • SqlContext • SqlPipe • TriggerContext • DataRecord

  17. Demo CLR-Prozedur erstellen

  18. T-SQL vs. SQLCLR • T-SQL • Bei mengenorientierten Operationen • High-Performance-Zugriffe • SQLCLR • Bei zeilenorientierten Operationen • Komplexen Berechnungen • Regular Expressions • Verschlüsselung • Stringmanipulation • Externe Zugriffe

  19. Wofür SQLCLR nicht ist • Ersatz für T-SQL • Serverseitige Datenzugriffsschicht • O/R-Mapping mit UDTs • Word/Excel/PDF-Generierung • Image Processing

  20. Ressourcen – CLR Bücher • A First Look at SQL Server 2005 for Developers Bob Beauchemin u.a., Addison-Wesley, ISBN: 0321180593 Artikel • Using CLR Integration in SQL Server 2005http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql90/html/sqlclrguidance.asp Links • SQL Server 2005 Developer Centerhttp://www.msdn.microsoft.com/SQL/2005/ • Virtual Lab: SQL Server 2005 SQL CLR Integrationhttp://msdn.microsoft.com/virtuallabs/sql/default.aspx/

  21. Web Service

  22. Warum Web Services? • Interoperabilität • Vermeidung binärer Datenformate • Vermeidung von plattformspezifischer Zugriffs-APIs • Integration • Business to Business • Business to Customer • Application to Application • Processing • Abbildung hierarchischer Daten • Speicherung von „intelligenten“ Dokumenten • Validierung und Transformation von Strukturen

  23. Web Services mit SQL2005 • Zugriff über HTTP / HTTPS • Veröffentlichung von • Stored Procedures • User Defined Functions • SQL-Abfragen • Einsatzfälle • Anbindung von DBs über Intra-/Internet • Service Orientierte Architekturen • Integration mit BizTalk, SharePoint, InfoPath

  24. Features • Dynamische WSDL-Generierung • Session-Support • Batch-Abfragen • Umfangreiches Security-Modell

  25. Standards • Basiert auf offenen Standards • HTTP • SOAP 1.1 und 1.2 • WSDL 1.1 • XSD Schemas

  26. Kompatibilität • Visual Studio 2002, 2003 und 2005 • MS SOAP Toolkit 3.0 • JBuilder 9 • Perl • Axis 1.1 • WASP • Glue • WSI-BP

  27. HTTP Endpoints • Definiert Schnittstelle für die Kommunikation • Vergleichbar mit einem virt. Verzeichnis im IIS • Verwendet intern HTTP.SYS Kernel Mode Treiber • Läuft unter Windows Server 2003 / WinXP (SP2) • HTTP und HTTPS möglich

  28. Authentifizierung • Anonym • Basic • Digest • Integrated (NTLM, Kerberos) • WS-Security

  29. WSDL-Generierung • Dynamische Generierung • Complex • Komplexe Typbeschreibung • Ideal für die Verwendung von DataSets • Simple • Minimale Beschreibung • Hohe Interoperabilität • Benutzerdefinierte Generierung • Eigene Stored Procedure erstellt WSDL

  30. Batch Abfragen • In XML verpackte SQL-Abfragen • Basiert auf SOAP • Muss für einen Endpoint explizit freigegeben werden • Kann über Web Service-Proxy ausgeführt werden

  31. Demo Web Services

  32. Ressourcen - Webservices Artikel • What‘s New in FOR XML in SQL Server 2005http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql90/html/forxml2k5.asp • Usage Scenarios for SQL Server 2005 Native Web Serviceshttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql90/html/soapscenarios.asp

  33. SQL Server Service Broker

  34. Service Broker • Neu in SQL2005 • Ermöglicht asynchrones Messaging zwischenSQL-Servern • Warteschlangen sindversteckte Tabellen • Können mit SQL verwendet werden • Stored Procedures übernehmen Verarbeitung

  35. Einsatzszenarien • Entkoppeln von Transaktionen • Verteilen der Arbeit auf mehrere SQL Server • Garantierte Nachrichtenzustellung • Entlastung bei Spitzenlast • Batch-Verarbeitung

  36. Die Kommunikation • Nicht zwischen zwei Queues, Datenbanken oder Servern • Zwischen Diensten (Services) • Abstrahieren Infrastruktur • Änderungen an der Infrastruktur können vorgenommen werden, ohne Systeme zu beeinträchtigen • SOA 

  37. Nachrichten Infrastruktur • Message, MessageType • Nachrichten haben definierten Typ • Contract • Wer darf wem, welche Nachrichtentypen senden • Queue • Aktiv / Inaktiv

  38. Service anlegen • Ordnet Contract einer Queue zu • Dialoge verwenden Serivces als Endpunkte • Beim Deployment können den Services physische Queues zugeordnet werden

  39. Conversations • Kommunikation zwischen zwei Services erfolgt in Conversations • Beliebig viele Nachrichten können zu einer Conversation gehören • Feste Reihenfolge • Aktuell nur ein Typ: Dialog • Begin Conversation • FromService muss lokal existieren • ToService wird als Text übergeben • Wird über eine Route lokalisiert

  40. Senden • Conversation Handle, Nachrichtentyp, Nachricht • Nachrichten landen erst in Transmission Queue • Interne Ack-Messages send on conversation @hmessage type [mtAskKyoto](@msg) select * from sys.transmission_queue

  41. Empfangen • Select • Receive • Body ist varbinary -> casten select cast(message_body as XML), * From quKyoto Receive cast(message_body as nvarchar(MAX)),* From quKyoto

  42. Queue Aktivierung • Beim Eintreffen einer Nachricht kann eine Aktion ausgelöst werden • Stored Proc (Internal Activation) ALTER QUEUE quKyoto WITH ACTIVATION( STATUS = On,PROCEDURE_NAME = [QueueActivation], MAX_QUEUE_READERS = 1, EXECUTE AS SELF) ALTER QUEUE quKyoto WITH ACTIVATION( STATUS = Off)

  43. Queue Aktivierung - SP • Normale Stored Procedure • Mehrere Instanzen möglich CREATE PROCEDURE [dbo].[QueueActivation]WITH EXECUTE AS CALLER AS DECLARE @dh uniqueidentifierDECLARE @msg XML WAITFOR(RECEIVE TOP(1) @dh = conversation_handle, @msg = message_body FROM [quKyoto] ), TIMEOUT 15000 INSERT INTO XML_MESSAGES (Nachricht) VALUES (cast(@msg as XML))

  44. Demo Nachrichten senden und empfangen

  45. Ressourcen SSB • Blogs • Rushi Desai: http://blogs.msdn.com/rushidesai/ • Niels: http://www.sqljunkies.com/WebLog/nielsb/ • Newsgroup • SQL Server 2005 Beta News Groups: http://msdn.microsoft.com/SQL/2005/ • SSB Devolopers Spot • www.sqlservicebroker.com • dotnetpro Marcel Gnoth, 6+7 2005 • www.gnoth.net

  46. Uff... Alles wird gut 

  47. Fragen?

More Related