Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

SYNTACTIC SUGAR MS SQL 2005 – SOA Petr Krejzl

Podobné prezentace


Prezentace na téma: "SYNTACTIC SUGAR MS SQL 2005 – SOA Petr Krejzl"— Transkript prezentace:

1 SYNTACTIC SUGAR MS SQL 2005 – SOA Petr Krejzl petr.krejzl@syntacticsugar.com

2 Obsah Service Oriented Architecture Web Services v MS SQL 2005 Service Broker

3 Service Oriented Architecture Co tomu předcházelo? XML Webové služby Hromadné nasazení platformě nezávislých web. služeb a XML pro výměnu dat v heterogenním prostředí SOA – architektura informačních systémů orientovaná na služby

4 Service Oriented Architecture Systém volně vázaných (loosely coupled) asynchronních webových služeb Nemusí být přímé vazby mezi aplikacemi Databázové servery, aplikační servery, messaging Modularita Reusability (ne na úrovni tříd) Zkracuje se doba vývoje

5 Web Services WS = aplikace identifikovaná pomocí URI WS nabízí aplikační logiku dostupnou přes Internet WS komunikují pomocí protokolu SOAP (Simple Object Access Protocol) – XML WSDL (Web Services Description Language) – popis služeb

6 Web Services – HTTP Endpoints Jak to funguje v MS SQL 2005? Nepotřebuje IIS Potřebuje ale serverový OS (Win Server 2003) - zajišťuje HTTP.sys

7 Web Services – HTTP Endpoints Kdy je to vhodné? Databázově orientovaná aplikace Žádná další logika – chceme vystavit výsledky uložené procedury

8 Web Services - HTTP Endpoints CREATE ENDPOINT PocetEndpoint STATE = STARTED AS HTTP ( PATH='/sql', AUTHENTICATION = (INTEGRATED), PORTS = (CLEAR) ) FOR SOAP ( WEBMETHOD 'Sluzba1' (NAME = 'DB.dbo.SP1'), WEBMETHOD 'Sluzba2' (NAME = 'DB.dbo.SP2'), WSDL = DEFAULT, DATABASE = 'JmenoDB', NAMESPACE = DEFAULT )

9 Web Services – HTTP Endpoints Využití v kódu (C#) Přidáme Web Reference Vytvoříme instanci Zavoláme localhost.Endpoint ws = new localhost.Endpoint(); ws.Credentials = CredentialCache.DefaultCredentials; int vysledek = ws.VratNeco();

10 Web Services – HTTP Endpoints DEMO

11 Service Broker Message-based komunikační platforma Umožňuje budovat asynchronní, volně vázané aplikace Aplikace si vyměňují zprávy nutné k dokončení úlohy

12 Service Broker Aplikační vrstva 2 aplikace, příp. aplikace a procedura Jedna z nich iniciuje komunikaci – pošle zprávu Logická vrstva Komunikace mezi službami (kontrakt) Kontrakt definuje způsob komunikace – zákazník pošle objednávku, potvrdíme mu převzetí Definuje se také typ zpráv Fyzická vrstva TCP/IP Fronty zpráv (bezpečné doručení)

13 Service Broker - složení Message – zpráva, která se posílá Contract – definuje jaké zprávy mohou být přijaty/poslány v rámci úlohy Úloha – např. poslání objednávky do skladu Fronta – jsou v ní zprávy Service – bod, kde se napojí fronta na kontrakt Dialog – výměna zpráv mezi službami

14 Service Broker - komunikace

15 Service Broker - Message Definuje „šablonu“ posílaných zpráv CREATE MESSAGE TYPE message_type_name [ AUTHORIZATION owner_name ] [ VALIDATION = { NONE | EMPTY | WELL_FORMED_XML | VALID_XML WITH SCHEMA COLLECTION schema_collection_name } ] CREATE MESSAGE TYPE [//SyntacticSugar/SendOrder] VALIDATION = WELL_FORMED_XML

16 Service Broker - Contract Definuje, které zprávy mohou být přijaty/poslány v rámci úlohy CREATE CONTRACT [//SyntacticSugar/OrderContract] ( [//SyntacticSugar/SendOrder] SENT BY INITIATOR, [//SyntacticSugar/OrderReceived] SENT BY TARGET )

17 Service Broker - Queue Obsahuje zprávy Přístup: SELECT nebo RECEIVE Může být spojena s uloženou procedurou CREATE QUEUE StoreQueue WITH STATUS=ON STATUS: ON/OFF MAX_QUEUE_READERS Jméno procedury

18 Service Broker - Service Bod, kde se spojuje fronta s kontraktem CREATE SERVICE [//SyntacticSugar/OrderService] ON QUEUE dbo.StoreQueue ([//SyntacticSugar/BookOrderContract])

19 Service Broker - Dialog Vlastní výměna zpráv mezi službami Každý dialog má unikátní ID DECLARE @Conv_Handler uniqueidentifier BEGIN DIALOG CONVERSATION @Conv_Handler FROM SERVICE [//SyntacticSugar/OrderService] TO SERVICE '//SyntacticSugar/DistributionService' ON CONTRACT [//SyntacticSugar/OrderContract]; SEND ON CONVERSATION @Conv_Handler MESSAGE TYPE [//SyntacticSugar/SendOrder] ('XML');

20 Service Broker – Message Receiving Výběr zprávy SELECT CAST(message_body AS XML) FROM dbo.Queue RECEIVE TOP (1) message_body FROM dbo.Queue <LineItem ItemNumber="1" ISBN="1-59059-592-0" Quantity="1" /> Výsledek

21 Service Broker Konverzace sestává z posílání a přijímaní zpráv Délka je libovolná Kterákoliv strana ji může ukončit END CONVERSATION @Conv_Handler;

22 Service Broker - Dodatky Při komunikaci mezi různými instancemi DB ROUTE Šifrování, certifikáty

23 Service Broker - Event Notification Umožňuje asynchronně zachytávat události Přihlášení uživatelů, DDL atd. Je potřeba pouze fronta a služba, zbytek udělá systém sám

24 Service Broker – Event Notification DEMO

25 Shrnutí MS SQL 2005 nabízí webové služby Service Broker – komunikační platforma pro zasílání zpráv Notifications SqlDependency

26 SYNTACTIC SUGAR Děkuji za pozornost

27 Syntactic Sugar s.r.o. Specializujeme se na vývoj software na zakázku na platformě Microsoft Windows s použitím technologií.NET (C#, ASP.NET, Web Services, MS SQL Server…) Pracujeme na projektech pro klienty z USA, ČR a Rakouska Spolupracujeme s mnoha studenty ze ZČU Nabízíme studentům získání praxe, vydělání peněz i pracovní pobyty v USA Hledáme nové kolegy! jobs@syntacticsugar.com


Stáhnout ppt "SYNTACTIC SUGAR MS SQL 2005 – SOA Petr Krejzl"

Podobné prezentace


Reklamy Google