SYNTACTIC SUGAR
-
Upload
lois-gaines -
Category
Documents
-
view
42 -
download
0
description
Transcript of SYNTACTIC SUGAR
Service Oriented Architecture
Co tomu předcházelo?XMLWebové 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
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, messagingModularitaReusability (ne na úrovni tříd)
Zkracuje se doba vývoje
Web Services
WS = aplikace identifikovaná pomocí URIWS nabízí aplikační logiku dostupnou přes InternetWS komunikují pomocí protokolu SOAP (Simple Object Access Protocol) – XMLWSDL (Web Services Description Language) – popis služeb
Web Services – HTTP Endpoints
Jak to funguje v MS SQL 2005?Nepotřebuje IISPotřebuje ale serverový OS (Win Server 2003) - zajišťuje HTTP.sys
Web Services – HTTP Endpoints
Kdy je to vhodné?Databázově orientovaná aplikace
Žádná další logika – chceme vystavit výsledky uložené procedury
Web Services - HTTP Endpoints
CREATE ENDPOINT PocetEndpointSTATE = STARTEDAS 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)
Web Services – HTTP Endpoints
Využití v kódu (C#)Přidáme Web ReferenceVytvoříme instanciZavoláme
localhost.Endpoint ws = new localhost.Endpoint();
ws.Credentials = CredentialCache.DefaultCredentials;
int vysledek = ws.VratNeco();
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
Service BrokerAplikační vrstva
2 aplikace, příp. aplikace a proceduraJedna z nich iniciuje komunikaci – pošle zprávu
Logická vrstvaKomunikace 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á vrstvaTCP/IPFronty zpráv
(bezpečné doručení)
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 skladuFronta – jsou v ní zprávyService – bod, kde se napojí fronta na kontraktDialog – výměna zpráv mezi službami
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
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
)
Service Broker - Queue
Obsahuje zprávyPřístup: SELECT nebo RECEIVEMůže být spojena s uloženou procedurou
CREATE QUEUE StoreQueueWITH STATUS=ON
STATUS: ON/OFFMAX_QUEUE_READERS
Jméno procedury
Service Broker - Service
Bod, kde se spojuje fronta s kontraktem
CREATE SERVICE [//SyntacticSugar/OrderService]ON QUEUE dbo.StoreQueue([//SyntacticSugar/BookOrderContract])
Service Broker - DialogVlastní výměna zpráv mezi službamiKaždý dialog má unikátní ID
DECLARE @Conv_Handler uniqueidentifier
BEGIN DIALOG CONVERSATION @Conv_HandlerFROM SERVICE [//SyntacticSugar/OrderService]TO SERVICE '//SyntacticSugar/DistributionService'ON CONTRACT [//SyntacticSugar/OrderContract];
SEND ON CONVERSATION @Conv_HandlerMESSAGE TYPE [//SyntacticSugar/SendOrder]('XML');
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
<order id="3439" customer="22" orderdate="7/15/2005"><LineItem ItemNumber="1" ISBN="1-59059-592-0" Quantity="1" />
</order>
Výsledek
Service Broker
Konverzace sestává z posílání a přijímaní zprávDélka je libovolnáKterákoliv strana ji může ukončit
END CONVERSATION @Conv_Handler;
Service Broker - Event Notification
Umožňuje asynchronně zachytávat událostiPřihlášení uživatelů, DDL atd.Je potřeba pouze fronta a služba, zbytek udělá systém sám
Shrnutí
MS SQL 2005 nabízí webové služby
Service Broker – komunikační platforma pro zasílání zpráv
Notifications
SqlDependency
Syntactic Sugar s.r.o.Specializujeme se na vývoj softwarena zakázku na platformě Microsoft Windowss 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 mnohastudenty ze ZČUNabízíme studentům získánípraxe, vydělání peněz ipracovní pobyty v USA
Hledáme nové [email protected]