日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

SQL Server 2005基于消息的應(yīng)用程序介紹_Mssql數(shù)據(jù)庫教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:逐行掃描 為你講解幾個(gè)基本SQLPLUS命令
本文章幫你充分認(rèn)識SQLPLUS命令。 remark:告訴SQLPLUS接下來的文字是注釋,不是命令。 set haedsep:標(biāo)題分隔符標(biāo)識一個(gè)告訴SQLPLUS將一個(gè)標(biāo)題分為兩行或更多行的字符。 ttitle:設(shè)置報(bào)

基于消息的應(yīng)用程序并不是一個(gè)新概念,一直以來,從頭編寫這樣的應(yīng)用程序都相當(dāng)困難。我將在一系列三篇文章中討論一個(gè)建立異步消息應(yīng)用程序的新平臺,本文為第一篇,我將在其中說明基于消息的應(yīng)用程序這一概念,以及一個(gè)建立包含在SQL Server 2005中的這些應(yīng)用程序的新型基礎(chǔ)程序。

基于消息的應(yīng)用程序介紹

處理消息的應(yīng)用程序是大體上會(huì)成功的應(yīng)用程序。實(shí)際上,大多數(shù)大型應(yīng)用程序都應(yīng)用了某種類型的消息處理。這種處理可能相當(dāng)簡單,例如,把一個(gè)文件放在網(wǎng)絡(luò)共享中,以便另一個(gè)應(yīng)用程序能夠處理這個(gè)文件;之后,你就可以檢查網(wǎng)絡(luò)共享,看文件是否得到處理。

雖然這不是一個(gè)非常復(fù)雜的消息應(yīng)用程序,但其背后的概念是一樣的:提交一條消息,應(yīng)用程序執(zhí)行其工作。然后,再檢查看是否收到確認(rèn)消息已得到處理的信息。這種處理方法擁有許多獨(dú)特的優(yōu)點(diǎn):

延期處理:有時(shí)候,要想在給定的時(shí)間處理某個(gè)任務(wù)的所有工作是不切實(shí)際的。許多時(shí)候,當(dāng)你的應(yīng)用程序能夠處理的任務(wù)達(dá)到一個(gè)瓶頸點(diǎn)時(shí),最好把剩下的任務(wù)交給另一個(gè)應(yīng)用程序進(jìn)行處理。

在線購買機(jī)票就屬于這種情況。當(dāng)你到一個(gè)網(wǎng)站購買機(jī)票時(shí),你輸入諸如出發(fā)城市、到達(dá)城市、旅行日期和隨行乘客人數(shù)之類的信息。在你輸入信用卡信息后,你將收到一封確認(rèn)電子郵件。在后臺,某種類型的消息已被提交給另一個(gè)執(zhí)行請求的服務(wù)進(jìn)行處理。如果不能滿足訂票請求,你收到的電子郵件就會(huì)說明這一點(diǎn)。
這種處理的好處在于它減輕了后臺數(shù)據(jù)庫系統(tǒng)堵塞的壓力。而且,如果要求顧客長時(shí)間等待網(wǎng)站的確認(rèn),大多數(shù)顧客都會(huì)感到非常不滿。另外,如果所有處理任務(wù)都在一個(gè)單功能事務(wù)中完成,就可能發(fā)生嚴(yán)重的死鎖情況,從而負(fù)面影響在網(wǎng)站上購買機(jī)票的顧客的購買體驗(yàn)。

分布式處理:一般來說,最好盡可能迅速地處理一項(xiàng)任務(wù)。但是,有時(shí)候很難確定有多少待處理的任務(wù)、完成這些任務(wù)需要耗用多少資源。下面我們看一個(gè)這種處理的實(shí)例。

超市中有許多結(jié)賬通道。通道的數(shù)量一般根據(jù)超市的資源來配備。有時(shí),例如星期六下午,結(jié)賬通道變得十分擁擠,顧客必須排隊(duì)等候。只要超市的資源沒有耗盡,超市就能分配更多收銀員給顧客結(jié)賬。這樣既可加快結(jié)賬速度,又不至于影響超市的總體運(yùn)作。
同樣的道理,消息應(yīng)用程序也以相似的方式運(yùn)作。如果你的應(yīng)用程序充滿了待處理的請求,通常應(yīng)該增加另外一條處理隊(duì)列來緩解系統(tǒng)的總體處理壓力。
微軟消息隊(duì)列

現(xiàn)在你可能已經(jīng)體會(huì)到基于消息的應(yīng)用程序帶來的價(jià)值,你也許想知道為什么你沒有經(jīng)常聽說這種應(yīng)用程序。主要的原因在于,開發(fā)這種應(yīng)用程序是一個(gè)非常困難的任務(wù)。如果你計(jì)劃編寫自己的基于消息的應(yīng)用程序,你要用大部分時(shí)間來開發(fā)處理消息的基礎(chǔ)架構(gòu)。

好消息是,你不再需要開發(fā)自己的消息基礎(chǔ)架構(gòu)。微軟消息隊(duì)列(MSMQ)提供一個(gè)開發(fā)這類應(yīng)用程序的框架。它使得應(yīng)用程序可以在不同種類的網(wǎng)絡(luò)間進(jìn)行通信,并且需要保證消息傳送(guaranteed message delivery)、路由和可配置安全。MSMQ應(yīng)用程序一般在以Visual Basic、C#或C 編寫的應(yīng)用程序中開發(fā),不過也可以用其它程序語言編寫。這些應(yīng)用程序在處理通常需要幾步完成的任務(wù)時(shí)表現(xiàn)優(yōu)異。這時(shí),一個(gè)任務(wù)的每個(gè)步驟需要邏輯到達(dá)任務(wù)的下一個(gè)步驟,如一個(gè)業(yè)務(wù)工作流應(yīng)用程序。

數(shù)據(jù)庫——不再只是用于存儲數(shù)據(jù)

過去20年來,我們對關(guān)系數(shù)據(jù)庫系統(tǒng)的依賴程度顯著增加。最初,存儲數(shù)據(jù)并對數(shù)據(jù)進(jìn)行某種處理,是建立商業(yè)關(guān)系數(shù)據(jù)庫系統(tǒng)的主要目的。隨著關(guān)系數(shù)據(jù)庫系統(tǒng)的發(fā)展,其功能和復(fù)雜性的變化,它的主要用途已由單一數(shù)據(jù)存儲轉(zhuǎn)變?yōu)楦又髁鞯纳虡I(yè)智能目的、更加復(fù)雜的ETL處理、數(shù)據(jù)報(bào)告、數(shù)據(jù)通知;在SQL Server 2005中,它甚至已具備編寫在數(shù)據(jù)庫引擎中執(zhí)行的.NET CLR語言代碼的能力。因此,完全可以肯定地說,數(shù)據(jù)庫引擎已不再僅用于數(shù)據(jù)存儲。

Service Broker

微軟認(rèn)為,允許你在數(shù)據(jù)庫內(nèi)建立基于消息的應(yīng)用程序,這樣才有意義。Service Broker是SQL Server 2005中新添加的基礎(chǔ)程序,主要用于在數(shù)據(jù)庫引擎內(nèi)建立基于消息的應(yīng)用程序。這些應(yīng)用程序在數(shù)據(jù)庫引擎內(nèi)使用新的TSQL結(jié)構(gòu)而開發(fā)。

Service Broker應(yīng)用程序以松散連接的應(yīng)用程序而開發(fā),它具有高度可擴(kuò)展性,并提供其它消息平臺所不具備的功能,如消息組協(xié)調(diào)和鎖定。這些應(yīng)用程序充分支持事務(wù),并能夠跨越數(shù)據(jù)庫實(shí)例和服務(wù)器。

分享:防范sql注入式攻擊js版本
SQL注入式攻擊是利用是指利用設(shè)計(jì)上的漏洞,在目標(biāo)服務(wù)器上運(yùn)行Sql命令以及進(jìn)行其他方式的攻擊 。 動(dòng)態(tài)生成Sql命令時(shí)沒有對用戶輸入的數(shù)據(jù)進(jìn)行驗(yàn)證是Sql注入攻擊得逞的主要原因。 比如:

來源:模板無憂//所屬分類:Mssql數(shù)據(jù)庫教程/更新時(shí)間:2008-08-22
相關(guān)Mssql數(shù)據(jù)庫教程