• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>
    當前位置: 首頁 > 專利查詢>微軟公司專利>正文

    注入組合查詢的單子評估制造技術

    技術編號:8271320 閱讀:207 留言:0更新日期:2013-01-31 03:31
    本申請涉及注入組合查詢的單子評估。這里的實施例能在單子內部對注入的查詢進行評估。一個或多個帶有閉包的運算符將被從第一進程接收。帶有閉包的運算符代表的是由第二進程應用的一個或多個函數(shù)。第二進程對接收到的帶有閉包的運算符進行評估,以便在單子內部應用函數(shù)。在評估過程中,第二進程將閉包轉換成簡單類型的閉包。更進一步,第二進程將經過轉換的閉包綁定在單子內部,以便限制函數(shù)的運行。在一些實施例中,所述查詢(例如一個或多個帶有閉包的運算符的序列)是使用來自編碼在表述性狀態(tài)轉移(REST)風格的統(tǒng)一資源定位符(URL)中的語言集成查詢(LINQ)框架的查詢運算符集合組成的。

    【技術實現(xiàn)步驟摘要】
    注入組合查詢的單子評估的制作方法注入組合查詢的單子評估
    技術介紹
    計算機之間的數(shù)據(jù)交換可以采用客戶機-服務器通信、點到點通信、進程到進程通信等形式。一些已有的系統(tǒng)嘗試通過預先編程一個設備從另一個設備接收的數(shù)據(jù)查詢來預期這些數(shù)據(jù)查詢。然而,此類系統(tǒng)需要相當多的資源,并且無法預期每一個可能的數(shù)據(jù)查詢。其他已有的系統(tǒng)允許設備創(chuàng)建命令式查詢,例如在JAVASCRIPT腳本語言中。然而,對此類系統(tǒng)來說,這些查詢會因為所述查詢所具有的長度及其句法復雜度而難以構成、序列化和解析。更進一步,至少由于命令式查詢考慮了執(zhí)行來自不可信的來源的代碼(例如執(zhí)行不受限制的分配和拷貝),所述命令式查詢會暴露出安全漏洞。就此而論,這些現(xiàn)有系統(tǒng)無法防止或包含那些已被注入到經由超文本傳輸協(xié)議(HTTP)之類的傳輸協(xié)議發(fā)送的通信之中的惡意查詢的執(zhí)行
    技術實現(xiàn)思路
    本公開的實施例允許將操作雙向、動態(tài)可編程地注入到第一進程與第二進程之間的通信中。第二進程從第一進程接收一個或多個具有閉包的運算符的序列。所述閉包代表的是第二進程在單子(monad)內部應用的一個或多個函數(shù)。第二進程對所接收的具有閉包的運算符進行評估,以便執(zhí)行函數(shù)。在評估過程中,所述閉包被轉換成簡單類型的閉包。更進一步,對具有經過轉換的閉包的運算符所進行的評估將被綁定在單子內部,以便限制函數(shù)的運行。本概述是為了以簡化形式引入精選概念而被提供的,并且在以下的詳細描述中將會進一步描述這些概念。本概述的目的既不是唯一確定所保護主題的關鍵或決定性要素,也不是幫助確定描述所保護的主題的范圍。附圖說明圖I是示出了第一進程與第二進程進行通信來獲取具有查詢注入的數(shù)據(jù)的例示框圖。圖2是示出了用以評估所接收的具有閉包的運算符的第二進程的操作的例示流程圖。圖3示是出了通過與web服務進行通信來獲取具有查詢注入的數(shù)據(jù)的客戶機設備的例示框圖。圖4是不出了對作為統(tǒng)一資源定位符(URL)中具有l(wèi)ambda表達式的運算符嵌入的查詢所進行的單子處理的例示流程圖。圖5是示出了用于注入查詢的單子處理(monadic processing)的計算設備上的計算機可執(zhí)行組件的例示框圖。在附圖中,相應的參考字符指示相應的部分。具體實施方式參考附圖,本公開的實施例允許評估可動態(tài)編程、組成的非命令式(non-imperative)查詢。在一些實施例中,使用了查詢運算符集合的聲明閉包(declarative closure)是在用于web應用和移動應用中的雙向查詢注入的腳本語言中實施的。雖然這里的一些示例是參考lambda表達式公開的,但是本公開的各方面并不局限于lambda表達式,而是可以結合任何形式的閉包或其他閉合表達式來操作。例如,這里的實施例是可以與匿名內部類一起操作的。本公開的方面包括能對可枚舉的數(shù)據(jù)集合(例如其元素在指定 時間在存儲器中是可用的)或異步數(shù)據(jù)集合(例如其元素是在不同時間到達的)實施組合查詢的查詢運算符集合。枚舉量(enumerables)代表的是分布在空間域上的數(shù)據(jù),而可觀測量(observables)代表的則是分布在時間域上的數(shù)據(jù)。舉個例子,枚舉量可以跨越包括存儲器、本地磁盤存儲器、遠端數(shù)據(jù)庫等等在內的空間域。利用枚舉量,可以將應用編寫成好像所有數(shù)據(jù)在存儲器中是同時可用的,即使這些數(shù)據(jù)在物理上分布于多個設備。在可觀測模型中,應用被編寫成好像數(shù)據(jù)是以不可預測的方式分布于時間上的,即使一些或所有數(shù)據(jù)在特定時間是部分可用的。由于是可編程的,本公開的方面中的查詢允許應用開發(fā)人員以不可預測的方式來使用服務器或web應用的數(shù)據(jù)資源。例如,在這里沒有必要使用客戶機可能希望的所有可能的查詢來對服務器進行預先編程。由于一些不可預測的方式可能是惡意的,因此,本公開的方面設想了沙箱、類型檢查、超時、重啟及其他手段來防止運行惡意功能。就此而論,本公開的方面能夠實現(xiàn)可編程的web服務,例如web服務304。舉例來說,組合查詢是模塊化的,并且很容易在圖形用戶界面中構造(例如按鈕、下拉列表、菜單等等)。這些查詢由具有l(wèi)ambda表達式的一個或多個運算符的管道序列(例如查詢管道或單子管道)組成。管道序列中的每一個階段都包括具有至少一個lambda表達式的至少一個運算符。由于這些具有l(wèi)ambda表達式的運算符很短并且是聲明式的,因此,具有l(wèi)ambda表達式的運算符是以很低的成本發(fā)送、簽名、記人日志、解析、處理、分析、改寫、編譯、沙箱化及歸檔的,而這至少會使處理得以簡化。這些查詢可以由服務器使用網絡套接字和/或基于事件的輸入-輸出環(huán)境來實現(xiàn)。在一些實施例中,這些查詢被封裝到超文本標記語言(HTML)中(例如使用統(tǒng)一資源定位符來編碼)和/或在超文本傳輸協(xié)議(HTTP)POST主體中用公鑰密碼加密系統(tǒng)(PKCS)來進行數(shù)字簽名。此外,這些查詢還可以被解析成JAVASCRIPT對象標注(notation),以便與C#之類的編程語言進行互通。關于具有l(wèi)ambda表達式的運算符的一個示例是Select (X => x < 10)”。運算符是Select”并且lambda表達式是“X => x〈 10”。這個lambda表達式的含義是“返回布爾表達式‘X < 10’的值的X的函數(shù)”。Lambda表達式是從一種類型的值到另一種類型的值的函數(shù)或其他變換。在本段的這個示例中,X具有數(shù)值類型(例如由于小于運算符“〈”的存在而推斷出),并且返回的函數(shù)值具有布爾類型(例如從返回類型“〈”推斷為“真”或“偽,,)。每一個具有l(wèi)ambda表達式的運算符都具有一個處于點”左側的單子表達式。舉例來說,如果M是單子表達式,那么“M. Select (X => x〈 10) ”是具有l(wèi)ambda表達式的例示運算符。每一個具有l(wèi)ambda表達式的運算符轉而產生新的單子表達式。如果將具有l(wèi)ambda表達式的運算符鏈接在一起,則能夠創(chuàng)建單子管道。舉例來說,“M. Select (someLambda).Where (someLambda) ”是一個單子表達式,其中 M是一個單子表達式 Select (some lamb da) ”是具有l(wèi)ambda表達式的運算符, Where (some lamb da) ”是另一個具有l(wèi)ambda表達式的運算符,“M. Select (somelambda) ”是另一個單子表達式,以及 “M. Select (somelambda). Where (somelambda) ” 是第三個單子表達式。這些查詢可以用來自語言集成查詢(LINQ)框架的查詢運算符集合來組成,但是其·他基于查詢的框架也是可以考慮的。具有l(wèi)ambda表達式的查詢運算符組合或管道可以依照表述性狀態(tài)轉移(REST)樣式而被嵌入在統(tǒng)一資源定位符(URL)中。所述查詢是雙向的,而這至少部分是因為所述查詢可被從客戶機注入到服務器或是從服務器注入到客戶機。此外,這些查詢還可以被推送-拉取(push-pull),其中推送風格的表達式(例如基于IObservable)和拉取風格的表達式(例如基于IEnumerable)可以使用許多相同的LINQ運算符和lambda來編寫。在一些情況中,用于IEnumerable數(shù)據(jù)集合(例如分布在空間中)的查詢管道在句法本文檔來自技高網...

    【技術保護點】
    一種用于以雙向、可動態(tài)編程的方式來將操作注入到第一進程(104)與第二進程(106)之間的通信中的系統(tǒng),所述系統(tǒng)包括:與第二進程(106)相關聯(lián)的存儲區(qū)域(506),所述存儲區(qū)域(506)存儲統(tǒng)一資源定位符(URL)(510),所述統(tǒng)一資源定位符中嵌入了帶有閉包的一個或多個運算符,所述帶有閉包的運算符對應于至少一個關于數(shù)據(jù)的請求;以及處理器(502),其被編程成:經由網絡從第一進程(104)接收該URL(510),以及將接收到的URL(510)保存在存儲區(qū)域(506)中;從存儲區(qū)域(506)中保存的URL(510)中提取帶有閉包的運算符;由第二進程(106)評估所提取的帶有閉包的運算符,以便產生所請求的數(shù)據(jù),所述評估包括:將閉包轉換成簡單類型的閉包,以及將帶有經過轉換的閉包的運算符綁定在單子內部,以便封裝從帶有經過轉換的閉包的運算符中產生的數(shù)據(jù);以及將所產生的數(shù)據(jù)發(fā)送到第一進程(104)。

    【技術特征摘要】
    2011.10.21 US 13/2792451.一種用于以雙向、可動態(tài)編程的方式來將操作注入到第一進程(104)與第二進程(106)之間的通信中的系 統(tǒng),所述系統(tǒng)包括 與第二進程(106)相關聯(lián)的存儲區(qū)域(506),所述存儲區(qū)域(506)存儲統(tǒng)一資源定位符(URL) (510),所述統(tǒng)一資源定位符中嵌入了帶有閉包的一個或多個運算符,所述帶有閉包的運算符對應于至少一個關于數(shù)據(jù)的請求;以及 處理器(502),其被編程成 經由網絡從第一進程(104)接收該URL (510),以及將接收到的URL (510)保存在存儲區(qū)域(506)中; 從存儲區(qū)域(506)中保存的URL (510)中提取帶有閉包的運算符; 由第二進程(106)評估所提取的帶有閉包的運算符,以便產生所請求的數(shù)據(jù),所述評估包括 將閉包轉換成簡單類型的閉包,以及 將帶有經過轉換的閉包的運算符綁定在單子內部,以便封裝從帶有經過轉換的閉包的運算符中產生的數(shù)據(jù);以及 將所產生的數(shù)據(jù)發(fā)送到第一進程(104)。2.權利要求I的系統(tǒng),其中第一進程是由客戶機設備運行的,并且第二進程是由云服務運行的。3.權利要求I的系統(tǒng),其中第一進程是由云服務運行的,并且第二進程是由客戶機設備運行的。4.權利要求I的系統(tǒng),其中處理器被編程成通過將至少一個操作應用于通過評估每一個帶有經過轉換的閉包的運算符所產生的數(shù)據(jù)而將帶有經過轉換的閉包的運算符綁定在單子內部,其中相同的操作被應用于從管道中帶有經過轉換的閉包的在先運算符中產生的數(shù)據(jù)上。5.權利要求I的系統(tǒng),還包括 用于利用單子處理以腳本語言嵌入在URL中的查詢運算符的裝置;以及 用于由web服務來對帶有閉包的運算符進行單子評估的裝置。6.一種方法,包括 從第一進程(104)接收一個或多個帶有閉包的運算符,所述帶有閉包的運算符代表的是由第二進程(106)執(zhí)行的一個或多個函數(shù);以及 第二進程(...

    【專利技術屬性】
    技術研發(fā)人員:B貝克曼E格森G金基A巴齊夫S欽奈HJM梅杰
    申請(專利權)人:微軟公司
    類型:發(fā)明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 无码一区二区三区老色鬼| 久久中文精品无码中文字幕| 人妻中文字幕无码专区| 亚洲国产精品无码久久久蜜芽| 日日摸日日踫夜夜爽无码| 国产精品无码亚洲精品2021| 亚洲午夜国产精品无码| 人妻精品久久无码区| 国产AV无码专区亚洲AV毛网站| 无码免费午夜福利片在线| 中文字幕精品无码亚洲字| 久久男人Av资源网站无码软件 | 亚洲欧洲无码一区二区三区| 日韩人妻系列无码专区| 99精品国产在热久久无码| 一本大道无码日韩精品影视| 久久久久av无码免费网| 亚洲国产AV无码专区亚洲AV| 亚洲成av人片不卡无码久久| 色综合99久久久无码国产精品| 亚洲av永久无码精品表情包| 无码 免费 国产在线观看91| 亚洲日韩精品无码专区| 无码精品国产一区二区三区免费| 色欲AV无码一区二区三区| 国模无码一区二区三区| 无码Aⅴ在线观看| 无码无套少妇毛多18PXXXX| 久久午夜无码鲁丝片秋霞 | 不卡无码人妻一区三区音频| 日韩av片无码一区二区不卡电影 | 亚洲av中文无码乱人伦在线咪咕 | 亚洲AV无码国产丝袜在线观看 | 亚洲人成影院在线无码观看 | 人妻丰满AV无码久久不卡| 中文字幕无码一区二区免费| 久久99久久无码毛片一区二区| 亚洲国产精品成人AV无码久久综合影院| 亚洲成a∧人片在线观看无码| 中文无码一区二区不卡αv| 蜜桃无码一区二区三区|