国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Restful+OData:企業(yè)信息系統(tǒng)集成的簡(jiǎn)明之道

2018-01-03 01:59:13衛(wèi)
關(guān)鍵詞:動(dòng)名詞組態(tài)報(bào)文

王 衛(wèi) 列

(南瑞集團(tuán)公司(國(guó)網(wǎng)電力科學(xué)研究院) 江蘇 南京 211106)

Restful+OData:企業(yè)信息系統(tǒng)集成的簡(jiǎn)明之道

王 衛(wèi) 列

(南瑞集團(tuán)公司(國(guó)網(wǎng)電力科學(xué)研究院) 江蘇 南京 211106)

企業(yè)都希望能復(fù)用已有的IT子系統(tǒng),但在規(guī)劃子系統(tǒng)服務(wù)的接口標(biāo)準(zhǔn)時(shí)普遍感到困難,針對(duì)這一問(wèn)題,提出Restful+OData的技術(shù)方案。闡述了為什么這一方案能夠簡(jiǎn)化接口標(biāo)準(zhǔn)設(shè)計(jì),為企業(yè)信息系統(tǒng)集成提供了一個(gè)新的思路。實(shí)踐結(jié)果表明,該方案對(duì)簡(jiǎn)化企業(yè)信息系統(tǒng)集成過(guò)程有一定的參考價(jià)值。

系統(tǒng)集成 服務(wù)接口 Restful OData 面向服務(wù)

0 引 言

現(xiàn)在一個(gè)企業(yè)內(nèi)常包含多個(gè)信息化系統(tǒng),且這些系統(tǒng)常常不是由一個(gè)開(kāi)發(fā)商做的,各開(kāi)發(fā)商使用的開(kāi)發(fā)平臺(tái)常不相同(如:J2EE、WCF等)。如果要基于這些系統(tǒng)進(jìn)行集成,如形成高層決策系統(tǒng),首先需要制定各子系統(tǒng)的服務(wù)接口標(biāo)準(zhǔn)。另外為了不同類型系統(tǒng)能互聯(lián),需要各子系統(tǒng)能提供具有開(kāi)放性標(biāo)準(zhǔn)的接口,其中制定服務(wù)接口標(biāo)準(zhǔn)看似很簡(jiǎn)單,但具體實(shí)施時(shí)會(huì)發(fā)現(xiàn)非常困難。本文分析了其實(shí)施困難的原因,并提出了用Restful+OData方案來(lái)解決這個(gè)難題。

明確了構(gòu)什么,有必要思考怎么構(gòu),點(diǎn)是線線相交所得,需要思考作怎樣的兩條線,就是思考點(diǎn)具有怎樣的特征,假設(shè)點(diǎn)存在,追問(wèn)與此點(diǎn)會(huì)有哪些相關(guān)定的量或定的關(guān)系.以本題為例,如圖3,需要確定點(diǎn)B,分析點(diǎn)B特征,由AB=AC,即點(diǎn)B的軌跡就是以A為圓心,AC為半徑的弧,即定長(zhǎng)軌跡;∠ABD=30°,點(diǎn)A、D是兩個(gè)定點(diǎn),即點(diǎn)B的軌跡就是即定角軌跡.同時(shí)滿足兩個(gè)條件,即為兩軌跡的交點(diǎn).

1 集成的要求

隨著IT技術(shù)的應(yīng)用普及,現(xiàn)在一個(gè)企業(yè)里已經(jīng)有不少信息子系統(tǒng)了,為了綜合決策時(shí)更多地復(fù)用子系統(tǒng)、快速構(gòu)建高層決策系統(tǒng),對(duì)系統(tǒng)集成有如下一些要求。

1.充分認(rèn)識(shí)制度控制的局限性,及時(shí)修訂整改,重在腐敗預(yù)防。內(nèi)部控制理論的建立和實(shí)踐是一個(gè)不斷完善的過(guò)程。廉政建設(shè)中對(duì)其的借鑒和利用應(yīng)突破其局限性,應(yīng)當(dāng)將眼光關(guān)注到制度未涵蓋的例外事項(xiàng)??陀^而言,有些黨風(fēng)廉政建設(shè)和反腐敗的制度操作性更不強(qiáng),原因是制度的制訂者對(duì)廉政的虛與應(yīng)付,陽(yáng)奉陰違。因此,在實(shí)施中對(duì)制度中存在的問(wèn)題做到及時(shí)發(fā)現(xiàn)及時(shí)修訂整改十分必要。

(1) 子系統(tǒng)及接口的標(biāo)準(zhǔn)化 企業(yè)IT系統(tǒng)標(biāo)準(zhǔn)化可以避免受制于某些軟件開(kāi)發(fā)商,可以提高企業(yè)IT構(gòu)建效率,利于系統(tǒng)持續(xù)改進(jìn)。

而在Restful中,動(dòng)詞是和資源分離的,在Restful的請(qǐng)求行中,首先是動(dòng)詞(如:GET),然后是指向要訪問(wèn)的資源(數(shù)據(jù))的url。

若能形成這方面的標(biāo)準(zhǔn),將為提高行業(yè)內(nèi)IT系統(tǒng)構(gòu)建的敏捷性打下基礎(chǔ)。

例:GET http://server1/WdsData/X1

(3) 易于向互聯(lián)網(wǎng)移植 隨著業(yè)務(wù)的發(fā)展,企業(yè)的IT應(yīng)用邊界已不能再局限在局域網(wǎng)內(nèi)了,而是需要越來(lái)越多地被部署在互聯(lián)網(wǎng)上,為了避免重復(fù)投資,創(chuàng)建新應(yīng)用時(shí)企業(yè)需要考慮其向互聯(lián)網(wǎng)移植的便利性。

2 存在的困難

(1) 制定子系統(tǒng)接口標(biāo)準(zhǔn) 相對(duì)于子系統(tǒng)劃分標(biāo)準(zhǔn)的制定,子系統(tǒng)接口標(biāo)準(zhǔn)的制定難度較大。究其原因,是因?yàn)槲覀兂3J褂脛?dòng)名詞結(jié)構(gòu)來(lái)制定API接口(如:GetX1Data(參數(shù)1,參數(shù)2,…)),但實(shí)際開(kāi)發(fā)經(jīng)驗(yàn)告訴我們,這樣設(shè)計(jì)出的接口很難穩(wěn)定下來(lái)。修改參數(shù)、增加接口都需要客戶端改動(dòng)代碼后重新編譯,而我們不可能一次性將接口標(biāo)準(zhǔn)制定得很完美,接口的頻繁改動(dòng)造成系統(tǒng)極不穩(wěn)定,這給我們實(shí)現(xiàn)子系統(tǒng)接口標(biāo)準(zhǔn)化帶來(lái)很大麻煩。

(2) 多種類型的應(yīng)用和設(shè)備連接服務(wù) 企業(yè)內(nèi)部的IT服務(wù)很多是前些年開(kāi)發(fā)的,而現(xiàn)在的應(yīng)用和終端設(shè)備類型大幅增長(zhǎng),所使用的開(kāi)發(fā)語(yǔ)言也越來(lái)越豐富。除了傳統(tǒng)的Java、.NET外,javascript、python、Ruby、Go等語(yǔ)言都需要能編寫(xiě)訪問(wèn)服務(wù)的代碼,這時(shí)會(huì)發(fā)現(xiàn)以前的技術(shù)開(kāi)發(fā)出的服務(wù)已不能為這些豐富的客戶端提供連接了。

3 Restful+OData的解決方案

針對(duì)上述問(wèn)題,Restful+OData的解決方案存在著一些天然的優(yōu)勢(shì)。

3.1 服務(wù)標(biāo)準(zhǔn)的挑選

針對(duì)上述所提的企業(yè)需求和所要克服的困難,我們把主要分布式服務(wù)構(gòu)建技術(shù)和他們對(duì)各種需求的適應(yīng)性列表如表1所示。

建筑企業(yè)要想在復(fù)雜殘酷的市場(chǎng)競(jìng)爭(zhēng)中生存發(fā)展,首先要提高企業(yè)自身的綜合素質(zhì)。綜合素質(zhì)的提高對(duì)建筑企業(yè)能否在市場(chǎng)中立足至關(guān)重要。綜合素質(zhì)的高低是一個(gè)企業(yè)的面貌體現(xiàn),是能否在市場(chǎng)競(jìng)爭(zhēng)中占據(jù)主導(dǎo)地位的體現(xiàn)。如建筑企業(yè)綜合素質(zhì)較低,就無(wú)法對(duì)市場(chǎng)需求與走向進(jìn)行理性分析與研究,導(dǎo)致逐漸被市場(chǎng)所淘汰或者摒棄。所以,建筑企業(yè)應(yīng)該加強(qiáng)工程施工管理模式的創(chuàng)新,只有創(chuàng)新的理念才是提升企業(yè)綜合素質(zhì)的基礎(chǔ)與保障。

表1 服務(wù)類型及其適應(yīng)性

從表1可以看出,Restful技術(shù)僅對(duì)分布式事務(wù)不支持,其他方面都比較優(yōu)秀,而我們的系統(tǒng)集成大多數(shù)是信息集成,如果沒(méi)有對(duì)分布式事務(wù)要求,那么選擇Restful是比較合適的。

3.2 化解動(dòng)名詞接口形式的缺點(diǎn)

Restful的技術(shù)是基于http的請(qǐng)求響應(yīng)機(jī)制的(注:后面所講的http報(bào)文就是指Restful使用的報(bào)文),在http的請(qǐng)求行中也有動(dòng)詞。GET、POST、PUT、DELETE是http中最常用動(dòng)詞,那么為什么說(shuō)Restful支持非動(dòng)名詞接口形式呢?

首先讓我們來(lái)分析采用動(dòng)名詞形式接口的特點(diǎn)。假設(shè)我們要訪問(wèn)標(biāo)志為X1資源的數(shù)據(jù),我們?yōu)樗O(shè)計(jì)了接口GetX1Data(參數(shù)1,參數(shù)2),構(gòu)成了動(dòng)詞+名詞的函數(shù)名,這就是動(dòng)名詞形式接口。動(dòng)名詞形式接口發(fā)生變化時(shí),需要服務(wù)端和客戶端都重新編譯、部署后才能使用,假設(shè)需求的不斷增加,我又需要增添對(duì)X2,X3,…,Xn的數(shù)據(jù)訪問(wèn),那么我們就需要分別為他們?cè)O(shè)計(jì)出GetX2Data,…,GetXnData。由于設(shè)計(jì)了新的接口后,需要重新編譯、部署服務(wù),客戶端也需要重新編碼來(lái)適應(yīng)這些新的接口,兩側(cè)的頻繁改動(dòng)會(huì)使系統(tǒng)很不穩(wěn)定。或許我們可以設(shè)計(jì)一個(gè)萬(wàn)能接口GetData(參數(shù)),其中的參數(shù)使用一個(gè)非常易于伸縮的數(shù)據(jù)結(jié)構(gòu),看似問(wèn)題解決了,但這個(gè)又會(huì)帶來(lái)參數(shù)的標(biāo)準(zhǔn)化問(wèn)題,而制定這個(gè)標(biāo)準(zhǔn)是很困難的。

要實(shí)現(xiàn)企業(yè)內(nèi)IT服務(wù)的復(fù)用和組合,首先必須實(shí)現(xiàn)系統(tǒng)劃分和接口的標(biāo)準(zhǔn)化。其標(biāo)準(zhǔn)化過(guò)程可分為兩個(gè)部分,子系統(tǒng)劃分標(biāo)準(zhǔn)化和子系統(tǒng)接口標(biāo)準(zhǔn)化。其中子系統(tǒng)劃分標(biāo)準(zhǔn)是子系統(tǒng)接口標(biāo)準(zhǔn)的前提條件。

(2) 符合開(kāi)放標(biāo)準(zhǔn)的服務(wù) 隨著互聯(lián)網(wǎng)和移動(dòng)設(shè)備的技術(shù)發(fā)展,現(xiàn)在構(gòu)建的IT服務(wù),不能只考慮PC的連接,要考慮多類型應(yīng)用和設(shè)備的連接,這對(duì)IT服務(wù)的開(kāi)放性提出了越來(lái)越高的要求。

如此,盡管今后要訪問(wèn)的數(shù)據(jù)資源會(huì)不斷增加,我們只需通過(guò)url指向不同的資源即可。

例:GET http://server1/WdsData /X2

從上面的例子可以看出,無(wú)論要訪問(wèn)的數(shù)據(jù)資源增加多少,從形式上看,只是與動(dòng)詞組合的url發(fā)生變化,訪問(wèn)命令只是動(dòng)詞和url的字符串組態(tài)形式而已,而軟件通過(guò)組態(tài)設(shè)計(jì)可以很輕松地處理這種變化。

2.通過(guò)對(duì)折現(xiàn)率R取9%~11%的值,g取2%~6%,計(jì)算永續(xù)增長(zhǎng)(第二種情況)和零增長(zhǎng)(第三種情況)模型下的不同的投資因子,見(jiàn)表1和表2:

上面的例子中給出的是http請(qǐng)求報(bào)文的簡(jiǎn)單形式,讓我們?cè)俜治鲆幌耯ttp完整報(bào)文是否具有可組態(tài)性。

先看一下http報(bào)文的結(jié)構(gòu)(注:要詳細(xì)了解http的報(bào)文可閱讀相關(guān)的RFC文檔,這里只是簡(jiǎn)述),報(bào)文分為請(qǐng)求報(bào)文和響應(yīng)報(bào)文,其結(jié)構(gòu)見(jiàn)表2。

表2 http報(bào)文結(jié)構(gòu)

報(bào)文中的字符串是由ASCII字符組成,每部分的格式是有一定規(guī)則的。下面是一個(gè)具體請(qǐng)求報(bào)文的例子(見(jiàn)圖1)。

圖1 http報(bào)文舉例

}

3.3 OData進(jìn)一步標(biāo)準(zhǔn)化Restful服務(wù)

解析:從實(shí)物圖中可以看出燈泡與滑動(dòng)變阻器和電流表串聯(lián)連接,根據(jù)實(shí)物圖用各元件符號(hào)表示即可。從電源正極出發(fā),依次經(jīng)過(guò)開(kāi)關(guān)、小燈泡、電流表、滑動(dòng)變阻器,然后回到電源負(fù)極,最后把電壓表并聯(lián)在小燈泡的兩端即可。

上面談到Restful命令報(bào)文可組態(tài)化提供了巨大的靈活性,但是大家還是要認(rèn)識(shí)到Restful只是一種思想,不是一種標(biāo)準(zhǔn)。雖然報(bào)文的結(jié)構(gòu)是基于http標(biāo)準(zhǔn),但報(bào)文結(jié)構(gòu)的每一部分都保留了一定自由度,這種自由度對(duì)Web瀏覽應(yīng)用沒(méi)有什么負(fù)作用,但對(duì)于需要在應(yīng)用間共享的服務(wù),則顯然會(huì)帶來(lái)很大的麻煩。

例如:假設(shè)軟件開(kāi)發(fā)商A和B都實(shí)現(xiàn)了一個(gè)Restful 接口通過(guò)工號(hào)查詢?nèi)藛T信息,因?yàn)闆](méi)有統(tǒng)一的標(biāo)準(zhǔn),那么其請(qǐng)求命令的報(bào)文可能各不相同,其中url是可能產(chǎn)生差異最大的一部分。

A的請(qǐng)求行中的url 可能是這樣:http://Server/api/person/001。

B的請(qǐng)求行中的url 可能是這樣:http://Server/api/person?id=001。

如果我們使用的Restful服務(wù)命令格式不能標(biāo)準(zhǔn)化,則會(huì)阻礙Restful服務(wù)在各應(yīng)用之間的分享。

為了規(guī)范Restful,提高Restful在各應(yīng)用之間的兼容性,微軟提出了OData協(xié)議(OData v4已于2014年3月17日在OASIS投票通過(guò)成為開(kāi)放工業(yè)標(biāo)準(zhǔn))。它實(shí)現(xiàn)了在Restful中通過(guò)標(biāo)準(zhǔn)化的資源標(biāo)識(shí)來(lái)訪問(wèn)任何數(shù)據(jù)。

圖3展示了L=100個(gè)地面移動(dòng)IoT設(shè)備的初始分布以及應(yīng)用本文方法所確定的最優(yōu)UAV布署效果.此次實(shí)驗(yàn)采用8個(gè)UAV,如圖3(a)所示,100個(gè)IoT設(shè)備初始分布位置隨機(jī),基于通信節(jié)能策略,首先形成了8個(gè)最優(yōu)分簇,其次在各簇聚類中心的影響下,UAV的布署位置實(shí)現(xiàn)最優(yōu),如圖3(b)所示.

符合開(kāi)放數(shù)據(jù)協(xié)議OData的Restful服務(wù)在各方面都得到了標(biāo)準(zhǔn)化,但由于篇幅所限,這里只能重點(diǎn)介紹一下對(duì)url結(jié)構(gòu)的標(biāo)準(zhǔn)化(也是最重要的一部分),讓我們用一個(gè)例子來(lái)說(shuō)明。

首先介紹一點(diǎn)基礎(chǔ)知識(shí),OData服務(wù)是可以自描述的,通過(guò)Restful的請(qǐng)求與響應(yīng)可以獲得該服務(wù)兩個(gè)元數(shù)據(jù)文檔:service document和metadata document。其中service document描述服務(wù)中提供那些數(shù)據(jù),metadata document則描述服務(wù)中的數(shù)據(jù)結(jié)構(gòu)。有了這兩個(gè)元數(shù)據(jù)文檔,我們就可以組態(tài)出各種標(biāo)準(zhǔn)化的url。

下面舉一個(gè)OData的例子來(lái)說(shuō)明這個(gè)問(wèn)題。這里需要在數(shù)據(jù)集People中找出他的FirstName等于Vincent的某些人,其url如下:

http:/abc.com/svc/People?$filter=FirstNameeq′Vincent′

上面的url可被劃分成Service root、Resource path和Query option三個(gè)部分,各部分的內(nèi)容如表3所示。

表3 示例url各部分對(duì)應(yīng)的內(nèi)容

前兩個(gè)部分的格式標(biāo)準(zhǔn)由service document就可以限定,后面的Query option格式則可由相應(yīng)的語(yǔ)法規(guī)則和metadata document限定。

″name″:″People″,

讓我們先來(lái)看看服務(wù)的元數(shù)據(jù)之一service document是如何限定Service root和Resourece path的。

首先我們肯定知道該服務(wù)的http地址,例如:

http://abc.com/svc/

在實(shí)際授課過(guò)程中,我們以海軍部隊(duì)實(shí)際衛(wèi)生學(xué)問(wèn)題為出發(fā)點(diǎn),通過(guò)上述教學(xué)內(nèi)容、教學(xué)方法、教學(xué)手段以及考核方式改進(jìn),有效提高了學(xué)生海軍衛(wèi)生學(xué)學(xué)習(xí)熱情和學(xué)習(xí)效果,也在一定程度上提高了學(xué)生發(fā)現(xiàn)、解決衛(wèi)生學(xué)問(wèn)題的能力。

其中abc.com是服務(wù)所在的服務(wù)器域名,然后我們就可以發(fā)出如下請(qǐng)求報(bào)文來(lái)獲取service document,如:

GET /svc/ HTTP/1.1

Host: abc.com

Cache-Control: no-cache

(19)一些西方國(guó)家的環(huán)保主義者則成立了“綠黨”或“綠色和平運(yùn)動(dòng)”,其宗旨是保護(hù)環(huán)境和恢復(fù)生態(tài)平衡。(1990·《人民日?qǐng)?bào)》)

只要是OData數(shù)據(jù)服務(wù),它就會(huì)返回相應(yīng)的service document,類似如下的數(shù)據(jù)。

{

″@odata.context″:″http:/abc.com/svc/$metadata″,

″value″:[

{

″name″:″Photos″,

″kind″:″EntitySet″,

″url″:″Photos″

},

{

在互聯(lián)網(wǎng)快速發(fā)展的背景下,網(wǎng)絡(luò)學(xué)習(xí)資源日益增多,隨之產(chǎn)生的是資源的質(zhì)量和共享的問(wèn)題。為了避免資源浪費(fèi),更高效快捷地建設(shè)學(xué)習(xí)資源,有效擴(kuò)展溝通平臺(tái)課程,在制作課程時(shí)應(yīng)遵守相關(guān)標(biāo)準(zhǔn)。2017 年,在中共中央組織部的領(lǐng)導(dǎo)下,中國(guó)干部網(wǎng)絡(luò)學(xué)院開(kāi)展了中國(guó)干部網(wǎng)絡(luò)教育標(biāo)準(zhǔn)的研制工作,截止到2018 年10 月,第一批10 項(xiàng)標(biāo)準(zhǔn),已經(jīng)通過(guò)國(guó)家標(biāo)準(zhǔn)立項(xiàng),這10 項(xiàng)標(biāo)準(zhǔn)的主要內(nèi)容如表2 所示。

″kind″:″EntitySet″,

″url″:″People″

用掃描電子顯微鏡測(cè)試4種噴墨打印紙的表面微觀結(jié)構(gòu),并以紙張的掃描電鏡(SEM)圖和青色油墨網(wǎng)點(diǎn)的平均直徑為質(zhì)量標(biāo)準(zhǔn),檢驗(yàn)紙張質(zhì)量的優(yōu)劣性,并與模型評(píng)價(jià)結(jié)果進(jìn)行對(duì)比,以檢驗(yàn)?zāi)P偷暮侠硇浴?/p>

}

該服務(wù)會(huì)返回相應(yīng)的metadata document,如下:

上面的例子是一個(gè)修改某product實(shí)體的一個(gè)請(qǐng)求包。可以看出,它和動(dòng)名詞形式的接口不同,在于這個(gè)請(qǐng)求命令完全可以通過(guò)字符串按規(guī)則組態(tài)而成。據(jù)此客戶端軟件完全可以通過(guò)組態(tài)來(lái)實(shí)現(xiàn)對(duì)服務(wù)的訪問(wèn),這相比那些需要事先編譯好的軟件,其靈活性大大增強(qiáng)了,這大大提高了客戶端軟件對(duì)服務(wù)接口變化的適應(yīng)性。

從上面的元數(shù)據(jù)描述可以得知,從這個(gè)服務(wù)中可以獲得兩種數(shù)據(jù)集(EntitySet)Photos和People,其Resourece path分別為Photos和People。

假設(shè)你要訪問(wèn)People這個(gè)數(shù)據(jù)集,那么url前面兩個(gè)部分的組合是:

http://abc.com/svc/ People

至此,url中的Service root和Resources path已經(jīng)成為確定格式了。

針對(duì)后面的Query option,OData制定了極為豐富的標(biāo)準(zhǔn)化參數(shù)來(lái)控制數(shù)據(jù)的輸出,很多Sql查詢的功能都具有。如:$select、$filter、$orderby、$expand、$count、$skip、$top、$search、$format等,它具有嚴(yán)格的語(yǔ)法規(guī)則,嚴(yán)格控制了Query option的格式。另外在寫(xiě)Query option中的查詢參數(shù)(如:$filter=FirstName eq ′Vincent′)時(shí)會(huì)涉及到數(shù)據(jù)集中的數(shù)據(jù)結(jié)構(gòu),其中FirstName就是數(shù)據(jù)集People中對(duì)應(yīng)實(shí)體的數(shù)據(jù)結(jié)構(gòu)成員。至于數(shù)據(jù)集Photos和People的數(shù)據(jù)結(jié)構(gòu)則可以通過(guò)訪問(wèn)metadata document獲得。訪問(wèn)metadata document的url已經(jīng)在service document中的第一條數(shù)據(jù)中告訴你了。

使用該url向該OData服務(wù)發(fā)送報(bào)文來(lái)獲取相應(yīng)的metadata document:

GET /svc/$metadata HTTP/1.1

Host: abc.com

Cache-Control: no-cache

]

與單純的句酷批改網(wǎng)反饋方式相比,學(xué)生對(duì)三稿式人機(jī)結(jié)合的寫(xiě)作教學(xué)模式的態(tài)度更加積極,他們認(rèn)為后者反饋的準(zhǔn)確性和清晰度顯著高于前者(P=0.000),學(xué)生能更好地理解反饋信息并進(jìn)行修改。此外,學(xué)生認(rèn)為三稿式人機(jī)結(jié)合的寫(xiě)作教學(xué)模式能更全面關(guān)注到他們作文中的問(wèn)題,包括篇章結(jié)構(gòu)、寫(xiě)作內(nèi)容的一致性與連貫性、詞匯、語(yǔ)法、長(zhǎng)句等,兩種模式有顯著差異(P=0.000)。由這兩點(diǎn)可以看出,學(xué)生很認(rèn)可三稿式人機(jī)結(jié)合的寫(xiě)作教學(xué)模式,因?yàn)樗唧w、全面,彌補(bǔ)了句酷批改網(wǎng)單一反饋模式的不足。至此,第三個(gè)假設(shè)得到驗(yàn)證。上文五篇作文的三稿成績(jī)呈遞增狀與這一結(jié)論相一致。

2.1 兩組患者的臨床治療效果對(duì)比 實(shí)驗(yàn)組患者41耳的臨床治療有效率為87.80%,其中,22耳為治愈,14耳為好轉(zhuǎn),5耳無(wú)效;對(duì)照組患者37耳的臨床治療有效率為64.86%,其中,11耳治愈,13耳好轉(zhuǎn),13耳無(wú)效。治療后實(shí)驗(yàn)組患者的臨床治療有效率顯著高于對(duì)照組,差異有統(tǒng)計(jì)學(xué)意義(χ2=5.766,P=0.016)。

第二,輸入搜索內(nèi)容為:隨機(jī)抽取一整段文字。如果在百度和谷哥的瀏覽器上顯示有80%以上的紅色字,則可判定該文章有一稿多投的嫌疑。

image/jpeg

我們從上面的元數(shù)據(jù)文檔中可以看到實(shí)體集People對(duì)應(yīng)的實(shí)體數(shù)據(jù)類型是Person,而Person中有個(gè)屬性就是FirstName,這樣的屬性就可以用在Query option中了。

如此,再按OData規(guī)定的語(yǔ)法,Query option部分也被標(biāo)準(zhǔn)化了,這樣整個(gè)url都被標(biāo)準(zhǔn)化了。

OData不僅僅是對(duì)url進(jìn)行了標(biāo)準(zhǔn)化,其標(biāo)準(zhǔn)化是全方位的,它包括OData協(xié)議規(guī)范、OData URL約定、OData通用架構(gòu)定義、OData json格式、OData ABNF、OData數(shù)據(jù)聚合。OData協(xié)議是集數(shù)據(jù)技術(shù)的大全,從數(shù)據(jù)描述到操作都有非常周到的設(shè)計(jì),您所需要的功能特性一定能在OData中找到。

3.4 方案優(yōu)點(diǎn)

下面讓我們來(lái)分析一下,采用Restful+OData服務(wù)相對(duì)于其他服務(wù)有那些優(yōu)點(diǎn)。

1) 直觀易用,非軟件人員可以參加接口設(shè)計(jì) 使用Restful+OData做出的服務(wù)是DaaS模式,它好似將一張張數(shù)據(jù)表呈現(xiàn)給客戶端,非常直觀。過(guò)去在設(shè)計(jì)動(dòng)名詞形式的接口時(shí),似乎只有軟件開(kāi)發(fā)人員才可以參加設(shè)計(jì)?,F(xiàn)在由于所提供數(shù)據(jù)的直觀性,非軟件開(kāi)發(fā)人員也可參與到接口的設(shè)計(jì)中,這樣能使得接口標(biāo)準(zhǔn)能在更廣泛的范圍內(nèi)得到研究,利于早日形成接口標(biāo)準(zhǔn)。

2) 客戶端易于調(diào)整,利于接口的調(diào)整 制定子系統(tǒng)接口標(biāo)準(zhǔn)的整個(gè)過(guò)程,不可能一蹴而就,期間不可避免地需要調(diào)整。由于基于Restful+OData的客戶端命令的可組態(tài)性,較之其他形式的接口調(diào)整就方便得多。服務(wù)端接口調(diào)整后,軟件開(kāi)發(fā)商只要獲得該服務(wù)的Service Document和Metadata Document,很快就可以通過(guò)組態(tài)將軟件功能調(diào)整好,這減少了接口調(diào)整的負(fù)擔(dān),有利于最終接口標(biāo)準(zhǔn)的形成。

3) 利于子系統(tǒng)劃分的標(biāo)準(zhǔn)化 雖然企業(yè)內(nèi)的子系統(tǒng)類型進(jìn)行了標(biāo)準(zhǔn)化劃分,但與企業(yè)內(nèi)的實(shí)際子系統(tǒng)不一定是一一對(duì)應(yīng)的。例如企業(yè)子系統(tǒng)規(guī)劃為A、B、C標(biāo)準(zhǔn)系統(tǒng),實(shí)際上的子系統(tǒng)為甲、乙、丙、丁,需要我們通過(guò)面向服務(wù)將甲、乙、丙、丁系統(tǒng)映射成標(biāo)準(zhǔn)化的A、B、C系統(tǒng)(見(jiàn)圖2)。

圖2 實(shí)際系統(tǒng)到標(biāo)準(zhǔn)子系統(tǒng)的映射

因?yàn)镽estful+OData實(shí)現(xiàn)的是數(shù)據(jù)服務(wù),對(duì)外公布的是一個(gè)個(gè)實(shí)體集,如同設(shè)計(jì)數(shù)據(jù)庫(kù)的一張張表,技術(shù)概念非常形象、直觀,可非常方便地實(shí)現(xiàn)所需的數(shù)據(jù)映射,所以非常利于子系統(tǒng)劃分的標(biāo)準(zhǔn)化。

4) 與其他系統(tǒng)更好的對(duì)接 由于Restful就是在互聯(lián)網(wǎng)中產(chǎn)生的,這個(gè)天然的優(yōu)勢(shì)使得將系統(tǒng)移植到互聯(lián)網(wǎng)非常方便。而現(xiàn)在云計(jì)算大多部署在互聯(lián)網(wǎng)上,這種標(biāo)準(zhǔn)化的數(shù)據(jù)服務(wù)也使得它可以非常容易地成為云計(jì)算的數(shù)據(jù)源,為企業(yè)未來(lái)的應(yīng)用前景打好了基礎(chǔ)。

由于互聯(lián)網(wǎng)技術(shù)的普及,眾多設(shè)備和開(kāi)發(fā)語(yǔ)言都支持與Restful服務(wù)的連接,較之以前技術(shù)所提供的服務(wù),提供的數(shù)據(jù)服務(wù)可以在更多應(yīng)用之間共享,使得以后企業(yè)的IT應(yīng)用更加豐富。

3.5 案例分析

下面我們用一個(gè)簡(jiǎn)單的案例來(lái)說(shuō)明Restful+OData方案的優(yōu)勢(shì)。

假設(shè)某水電廠有三個(gè)業(yè)務(wù)子系統(tǒng):發(fā)電監(jiān)控系統(tǒng)、水情測(cè)報(bào)系統(tǒng)、閘門(mén)監(jiān)控系統(tǒng)。我們要在此基礎(chǔ)上進(jìn)行系統(tǒng)集成,形成綜合決策系統(tǒng)(注:篇幅所限,本文以簡(jiǎn)單的數(shù)據(jù)綜合輸出為例),例如我們要輸出如下的綜合數(shù)據(jù)表(見(jiàn)表4)。

表4 水電廠某輸出表格

其中的數(shù)據(jù)需要分別從三個(gè)子系統(tǒng)(發(fā)電、水情、閘門(mén))中抽取,具體見(jiàn)表5。

表5 從各子系統(tǒng)抽取的數(shù)據(jù)

如果用OData服務(wù)來(lái)提供數(shù)據(jù),那么我們需要在各子系統(tǒng)中發(fā)布相應(yīng)的EntitySet,這些Entity就相當(dāng)于子系統(tǒng)的API接口,假設(shè)各子系統(tǒng)公布的EntitySet如表6所示。

表6 各子系統(tǒng)公布的EntitySet

圍繞這些EntitySet,我們可以進(jìn)行非常豐富的數(shù)據(jù)操作。

下面我們以其中的發(fā)電監(jiān)控子系統(tǒng)為例,來(lái)介紹如何使用OData服務(wù)。

假設(shè)發(fā)電監(jiān)控子系統(tǒng)OData服務(wù)的http地址為:

http:/abc.com/powerdata

首先我們需要知道服務(wù)中發(fā)布了哪些內(nèi)容,這些信息可以通過(guò)訪問(wèn)OData服務(wù)的Service document獲得,需要向OData服務(wù)發(fā)出如下的http請(qǐng)求:

GET/powerdata/HTTP/1.1

Host:abc.com

Cache-Control:no-cache

服務(wù)響應(yīng)此請(qǐng)求時(shí)會(huì)在包體中返回相應(yīng)的service document,它告知該系統(tǒng)發(fā)布了哪些EntitySet。

例如:

{

″@odata.context″:″http://abc.com/powerdata/$metadata″,

″value″:[

{

″name″:″PowerOut″,

″kind″:″EntitySet″,

″url″:″PowerOut″

}

]

}

從中我們可以看到該系統(tǒng)發(fā)布了一個(gè)名稱為PowerOut的EntitySet。要進(jìn)一步了解該EntitySet的數(shù)據(jù)結(jié)構(gòu),可以通過(guò)訪問(wèn)OData服務(wù)的metadata document獲得,需要發(fā)出如下的http請(qǐng)求:

GET/powerdata/$metadataHTTP/1.1

Host:abc.com

Cache-Control:no-cache

服務(wù)響應(yīng)此請(qǐng)求時(shí),會(huì)返回所有實(shí)體集的數(shù)據(jù)結(jié)構(gòu)定義。

例如:

從中我們可以看出實(shí)體集PowerOut的數(shù)據(jù)結(jié)構(gòu)被定義在POType中,其中的Property非常類似數(shù)據(jù)庫(kù)中的表字段定義。

至此,客戶端已經(jīng)明白了該服務(wù)的發(fā)布內(nèi)容以及相應(yīng)的數(shù)據(jù)結(jié)構(gòu),后面就可以根據(jù)OData標(biāo)準(zhǔn)中的語(yǔ)法標(biāo)準(zhǔn)來(lái)組態(tài)各種數(shù)據(jù)訪問(wèn)命令了。

例如:我們要訪問(wèn)1號(hào)站點(diǎn)和2號(hào)站點(diǎn)2010年11月10日9點(diǎn)的數(shù)據(jù),可以發(fā)出如下http請(qǐng)求:

GET/powerdata/PowerOut?$filter=dteqdatetimeoffset′2010-11-10T09:00:00Z′∧(stationId=1∨stationId=2)HTTP/1.1

Host:abc.com

Cache-Control:no-cache

服務(wù)端在接收到該請(qǐng)求后,會(huì)將返回?cái)?shù)據(jù)放在返回包的包體部分,例如:

{

“value”:[

{

“dataId”:1026

“dt”:”2010-11-10T09:00:00Z”

“stationId”:1

“powerOutput”:63.5

“waterUsed”:4.24

},

{

“dataId”:2038

“dt”:”2010-11-10T09:00:00Z”

“stationId”:2

“powerOutput”:0.0

“waterUsed”:0.0

}

]

}

客戶端接收到上述的JSON數(shù)據(jù),可以很容易地進(jìn)行解析并處理。

注意上面例子中的數(shù)據(jù)請(qǐng)求命令中所含的Query option(Filter)只是一個(gè)簡(jiǎn)單的數(shù)據(jù)過(guò)濾。實(shí)際上OData的標(biāo)準(zhǔn)中含有類型非常豐富的Query option,提供類似SQL語(yǔ)句的功能,因此圍繞發(fā)布的PowerOut實(shí)體集,可以有非常豐富的數(shù)據(jù)輸出。這個(gè)特點(diǎn)使得在數(shù)據(jù)需求發(fā)生變化,我們的接口形式可以保持穩(wěn)定。

另外當(dāng)需求發(fā)生變化時(shí),OData標(biāo)準(zhǔn)還保證了很強(qiáng)的適應(yīng)性。無(wú)論是實(shí)體集的數(shù)據(jù)結(jié)構(gòu)增加Property(類似數(shù)據(jù)庫(kù)中的表增加字段),還是數(shù)據(jù)需要分組統(tǒng)計(jì),OData都提供了相應(yīng)的設(shè)計(jì)??傊跀?shù)據(jù)集相對(duì)穩(wěn)定的情況下,圍繞這些數(shù)據(jù)集,我們能產(chǎn)生千變?nèi)f化的操作。

OData不但能輸出獨(dú)立的數(shù)據(jù),還可輸出關(guān)系數(shù)據(jù)。有些自動(dòng)生成工具可以將關(guān)系數(shù)據(jù)庫(kù)發(fā)布為OData服務(wù),可想而知OData的功能是多么的強(qiáng)大和靈活,它能充分滿足你對(duì)信息發(fā)布的需求。

信息系統(tǒng)集成很多時(shí)候就是客戶端和服務(wù)端的相互磨合,而采用Restful+OData技術(shù),提高了兩端的相互適應(yīng)性,減少因需求變化而付出的代價(jià),因而簡(jiǎn)化了信息系統(tǒng)集成的過(guò)程。

4 結(jié) 語(yǔ)

Restful+OData的技術(shù)價(jià)值相當(dāng)于PC時(shí)代的ODBC,它為我們打通了系統(tǒng)數(shù)據(jù)互聯(lián)的通道。OData的技術(shù)內(nèi)涵相當(dāng)豐富,它是IT界長(zhǎng)期以來(lái)數(shù)據(jù)技術(shù)的結(jié)晶,各種數(shù)據(jù)查詢和操作功能應(yīng)有盡有,不僅提供了極強(qiáng)的數(shù)據(jù)服務(wù)功能,甚至連動(dòng)名詞形式的接口都能提供,絕大部分應(yīng)用的需求都能滿足。

當(dāng)您需要標(biāo)準(zhǔn)化企業(yè)內(nèi)的子系統(tǒng),同時(shí)想為各種應(yīng)用和設(shè)備提供最廣泛連接時(shí),它應(yīng)該是一個(gè)不錯(cuò)選擇。

[1] Thomas Erl,Benjamin Carlyle,Cesare Pautasso . SOA與REST:用REST構(gòu)建企業(yè)級(jí)SOA解決方案[M]. 北京:人民郵電出版社,2014.

[2] 謝鵬壽.基于SOA的制造業(yè)集成服務(wù)平臺(tái)構(gòu)建方法[M].國(guó)防工業(yè)出版社,2013.

[3] 全國(guó)信息技術(shù)標(biāo)準(zhǔn)化技術(shù)委員會(huì)SOA標(biāo)準(zhǔn)工作組.中國(guó)SOA最佳應(yīng)用及云計(jì)算融合實(shí)踐[M].電子工業(yè)出版社,2012.

[4] 中國(guó)電子技術(shù)標(biāo)準(zhǔn)化研究所. SOA用戶指南[M].電子工業(yè)出版社,2008.

[5] 汪芳琴, 謝強(qiáng), 丁秋林. 基于REST的Web服務(wù)研究[J]. 機(jī)械設(shè)計(jì)與制造工程,2009, 38(23):44-47,52.

[6] 許卓明, 栗明, 董逸生. 基于RPC和基于REST的Web服務(wù)交互模型比較分析[J].計(jì)算機(jī)工程, 2003,29(20):6-8.

[7] 馮新?lián)P, 沈建京. REST和RPC:兩種Web服務(wù)架構(gòu)風(fēng)格比較分析[J].小型微型計(jì)算機(jī)系統(tǒng), 2010, 31(7):1393-1395.

[8] 張少敏, 張帆, 王保義. 基于REST和IEC61970的智能電網(wǎng)數(shù)據(jù)集成方法[J].電力自動(dòng)化設(shè)備, 2012, 32(8):124-129.

[9] 程冬梅, 王瑞聰, 劉燕,等. 基于REST架構(gòu)風(fēng)格的物聯(lián)網(wǎng)服務(wù)平臺(tái)研發(fā)[J].計(jì)算機(jī)工程與應(yīng)用, 2012, 48(14):74-78,157.

[10] 戴亞娥, 俞成海, 堯飄海,等. 基于REST架構(gòu)風(fēng)格的Web 2.0實(shí)現(xiàn)[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2009, 18(7):165-168.

[11] 鐘約夫. 基于RESTWeb服務(wù)的資源定位方法研究[J]. 自動(dòng)化與儀器儀表, 2010(5):8-10.

[12] 李久剛, 唐新明, 汪匯兵,等. REST架構(gòu)的WebGIS技術(shù)研究與實(shí)現(xiàn)[J]. 測(cè)繪科學(xué), 2011, 36(3):85-87.

RESTFUL&ODATA:ASIMPLIFIEDWAYFORENTERPRISEINFORMATIONSYSTEMINTEGRATION

Wang Weilie

(NARIGroupCorporation(StateGridElectricityPowerResearchInstitute),Nanjing211106,Jiangsu,China)

All companies hope that the existing IT system can be reused, but it is difficult to program the interface standards of subsystem service, thus Restful+OData technical solution is provided. The reason of why this solution can simplify interface standards design to provide a new approach of enterprise information system integration. Experiments results indicate that the proposed solution can be referred in simplifying enterprise information system integration.

System-integration Service-interface Restful OData SOA

2017-06-05。王衛(wèi)列,教授級(jí)高工,主研領(lǐng)域:電力系統(tǒng)軟件開(kāi)發(fā)。

TP3

A

10.3969/j.issn.1000-386x.2017.12.028

猜你喜歡
動(dòng)名詞組態(tài)報(bào)文
基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
基于PLC及組態(tài)技術(shù)的恒溫控制系統(tǒng)開(kāi)發(fā)探討
CTCS-2級(jí)報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
日語(yǔ)動(dòng)名詞中二字漢語(yǔ)與四字漢語(yǔ)語(yǔ)構(gòu)成的對(duì)比研究
A team works smoothly
動(dòng)名詞or不定式,真的只能死記硬背嗎?
淺析反駁類報(bào)文要點(diǎn)
基于PLC和組態(tài)的智能電動(dòng)擰緊系統(tǒng)
ATS與列車(chē)通信報(bào)文分析
PLC組態(tài)控制在水箱控制系統(tǒng)的應(yīng)用
普安县| 长岛县| 靖安县| 荣昌县| 静安区| 天祝| 上蔡县| 闵行区| 祁连县| 聂荣县| 成安县| 张家港市| 都匀市| 丰宁| 虎林市| 东至县| 静安区| 平潭县| 安福县| 淳安县| 新竹市| 延庆县| 治多县| 武隆县| 高碑店市| 垣曲县| 正宁县| 三穗县| 淮安市| 报价| 吐鲁番市| 延安市| 休宁县| 临武县| 大姚县| 定襄县| 平原县| 胶州市| 崇阳县| 缙云县| 伊川县|