• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于RESTful Web Services的智能報(bào)表系統(tǒng)設(shè)計(jì)

      2017-04-13 01:34:40楊絲雨孫連山
      軟件導(dǎo)刊 2017年3期
      關(guān)鍵詞:報(bào)表架構(gòu)模板

      楊絲雨,孫連山

      (陜西科技大學(xué) 電氣與信息工程學(xué)院,陜西 西安 710021)

      基于RESTful Web Services的智能報(bào)表系統(tǒng)設(shè)計(jì)

      楊絲雨,孫連山

      (陜西科技大學(xué) 電氣與信息工程學(xué)院,陜西 西安 710021)

      為提高企業(yè)總部與分支機(jī)構(gòu)之間報(bào)表數(shù)據(jù)交換效率,降低報(bào)表系統(tǒng)客戶端與服務(wù)器之間的耦合度,結(jié)合REST架構(gòu)簡(jiǎn)單性、松散耦合、高度可伸縮性以及良好的性能等特點(diǎn),提出了以RESTful Web Services作為在線智能報(bào)表系統(tǒng)Web服務(wù)的方案。分析了系統(tǒng)的整體業(yè)務(wù)功能,詳細(xì)介紹了系統(tǒng)在服務(wù)端和客戶端的設(shè)計(jì),實(shí)現(xiàn)了該系統(tǒng),驗(yàn)證了RESTful Web Services對(duì)提高系統(tǒng)整體性能的作用。

      RESTful;智能報(bào)表;URI;HTTP方法;智能報(bào)表系統(tǒng)

      0 引言

      在企業(yè)信息化建設(shè)中,報(bào)表占據(jù)著非常重要的地位,越來(lái)越多的智能報(bào)表系統(tǒng)應(yīng)運(yùn)而生。大型企業(yè)通常采用樹(shù)狀的組織架構(gòu),總部下轄多個(gè)分部,而各個(gè)分部又可能進(jìn)一步管轄多個(gè)單位,每個(gè)單位甚至又可以進(jìn)一步細(xì)分為部門(mén)和班組。智能報(bào)表系統(tǒng)就用于滿足企業(yè)總部與分支機(jī)構(gòu)之間的基于靈活可定制報(bào)表的數(shù)據(jù)交換和匯總。主要功能包括:企業(yè)各單位設(shè)計(jì)創(chuàng)建報(bào)表模板、分發(fā)報(bào)表模板至下屬單位或協(xié)作單位、對(duì)所獲得的上報(bào)數(shù)據(jù)進(jìn)行匯總并持久化封存,形成企業(yè)管理的信息資源庫(kù)。各單位需填寫(xiě)來(lái)自上級(jí)或協(xié)作單位的報(bào)表模板并上報(bào)企業(yè)運(yùn)行數(shù)據(jù)。顯而易見(jiàn),在企業(yè)不同層次的機(jī)構(gòu)之間存在著復(fù)雜的數(shù)據(jù)交換,協(xié)調(diào)著企業(yè)運(yùn)營(yíng)。提高數(shù)據(jù)交換效率,并加快其查詢速度是智能報(bào)表系統(tǒng)亟需解決的問(wèn)題。

      多數(shù)研究者傾向于報(bào)表系統(tǒng)的靈活性以及方便用戶使用等特性的研究,例如,蘇子林和王林[1]研究并實(shí)現(xiàn)了中國(guó)式報(bào)表的通用格式,設(shè)計(jì)出多層結(jié)構(gòu)的智能報(bào)表系統(tǒng),使得系統(tǒng)能夠面向開(kāi)發(fā)人員、系統(tǒng)管理員和一般用戶(業(yè)務(wù)處理人員和高層決策人員)。胡佐和肖文[2]介紹了將模板技術(shù)應(yīng)用于智能報(bào)表系統(tǒng),提高了系統(tǒng)的易用性及可維護(hù)性。本文旨在使用RESTful API技術(shù),提高智能報(bào)表系統(tǒng)的數(shù)據(jù)交換效率及系統(tǒng)整體性能,同時(shí)保持其靈活性、易用性等特點(diǎn)。

      1 REST架構(gòu)

      REST(Representational State Transfer,表述性狀態(tài)移交)是由Roy Fielding博士2000年在其博士于論文中首次提出,作為分布式系統(tǒng)設(shè)計(jì)的一種架構(gòu)風(fēng)格,它使得HTTP協(xié)議最初的設(shè)計(jì)思想得到了最大發(fā)揮,讓人們真正理解HTTP的本來(lái)面貌。在REST的名稱“表述性狀態(tài)轉(zhuǎn)移”中,省略了主語(yǔ),表述性指資源的表述性,所謂“資源”,就是網(wǎng)絡(luò)上的一個(gè)實(shí)體,或者說(shuō)是網(wǎng)絡(luò)上的一個(gè)具體信息,可以是一段文本、一張圖片、一首歌曲、一種服務(wù),總之就是一個(gè)具體的實(shí)在。用一個(gè)特定的URI(統(tǒng)一資源定位符)指向每種資源,要獲取該資源,只需訪問(wèn)它的URI。因此URI就成了每個(gè)資源的地址或獨(dú)一無(wú)二的識(shí)別符[3]。對(duì)資源的獲取、創(chuàng)建、修改和刪除4種基本操作對(duì)應(yīng)于HTTP協(xié)議提供的GET、POST、PUT和DELETE方法[4]。當(dāng)一個(gè)客戶端對(duì)一個(gè)資源發(fā)起GET請(qǐng)求時(shí),服務(wù)器會(huì)以一種有效的方式提供一個(gè)采集了資源信息的文檔作為回應(yīng)。這就是表述——一種以機(jī)器可讀的方式對(duì)資源當(dāng)前狀態(tài)的說(shuō)明[5]。

      總體而言,在REST的概念中,整個(gè)Web被看作是一組資源的集合,資源由URI標(biāo)識(shí),對(duì)資源進(jìn)行的操作由客戶端指定的URI和HTTP協(xié)議動(dòng)詞的組合來(lái)實(shí)施,同時(shí)將資源和資源的表示分開(kāi),為構(gòu)建可擴(kuò)展、簡(jiǎn)單性、可移植和松耦合的Web程序提供了一個(gè)架構(gòu)上的準(zhǔn)則,REST這種基于資源的設(shè)計(jì)改變了傳統(tǒng)的基于服務(wù)的設(shè)計(jì)思想,可以降低開(kāi)發(fā)的復(fù)雜性,提高系統(tǒng)的可伸縮性,提高資源的訪問(wèn)效率[6]。

      2 系統(tǒng)業(yè)務(wù)分析

      RESTful Web服務(wù)是面向資源的服務(wù),因此構(gòu)建基于RESTful Web服務(wù)的智能報(bào)表系統(tǒng),重點(diǎn)是分析智能報(bào)表系統(tǒng)的業(yè)務(wù),將業(yè)務(wù)所涉及的事物抽象成資源,根據(jù)業(yè)務(wù)為每個(gè)資源設(shè)計(jì)URI和資源表示。資源確定后,才可以設(shè)計(jì)和實(shí)現(xiàn)整個(gè)系統(tǒng)。本文所設(shè)計(jì)的智能報(bào)表系統(tǒng)基本業(yè)務(wù)功能主要包括六大部分。

      2.1 報(bào)表模板及模板類(lèi)別管理

      模板定義了用戶上報(bào)數(shù)據(jù)的規(guī)范,企業(yè)內(nèi)部數(shù)據(jù)流轉(zhuǎn)是基于模板的,因此報(bào)表模板在智能報(bào)表系統(tǒng)中占據(jù)重要地位。模板具有類(lèi)別,例如財(cái)務(wù)報(bào)表、生產(chǎn)報(bào)表,生產(chǎn)報(bào)表又可以細(xì)分為生產(chǎn)情況完成表、生產(chǎn)成本表等。即模板的類(lèi)別形成一個(gè)層次結(jié)構(gòu),而模板則是最下層類(lèi)別中的元素。企業(yè)中的各個(gè)部門(mén)可基于系統(tǒng)創(chuàng)建的報(bào)表類(lèi)別樹(shù)新增自定義的模板。每個(gè)單位自主創(chuàng)建一系列模板。每個(gè)單位可以查找并使用其自己創(chuàng)建的模板或系統(tǒng)提供的模板,創(chuàng)建周期性下發(fā)任務(wù)或單個(gè)下發(fā)任務(wù)。

      2.2 數(shù)據(jù)采集任務(wù)管理

      數(shù)據(jù)采集任務(wù)管理即報(bào)表的下發(fā)任務(wù)管理,是用戶管理其數(shù)據(jù)采集工作過(guò)程的核心概念。數(shù)據(jù)采集任務(wù)可以大致分為兩類(lèi):一類(lèi)是隨機(jī)發(fā)布的單個(gè)采集任務(wù),一類(lèi)是周期性下發(fā)的一系列采集任務(wù)。

      2.3 上報(bào)任務(wù)及上報(bào)數(shù)據(jù)管理

      企業(yè)內(nèi)的某個(gè)部門(mén)既可能作為數(shù)據(jù)采集方,主動(dòng)下發(fā)報(bào)表模板,采集數(shù)據(jù),又可能作為數(shù)據(jù)提供方,填報(bào)數(shù)據(jù)。一般地,一個(gè)數(shù)據(jù)采集的報(bào)表模板會(huì)下發(fā)給多個(gè)不同的部門(mén),即每個(gè)部門(mén)實(shí)際上接受了一個(gè)需要完成的數(shù)據(jù)上報(bào)任務(wù),需要在系統(tǒng)中填報(bào)數(shù)據(jù)并將這些數(shù)據(jù)保存在數(shù)據(jù)庫(kù)中。即下發(fā)任務(wù)和上報(bào)任務(wù)之間是一對(duì)多的關(guān)系。

      2.4 報(bào)表匯總數(shù)據(jù)管理

      針對(duì)同一報(bào)表模板進(jìn)行填報(bào)所得的上報(bào)數(shù)據(jù)均可被匯總在一起,展現(xiàn)企業(yè)運(yùn)營(yíng)過(guò)程中的價(jià)值和規(guī)律。因此匯總表與報(bào)表模板以及匯總范圍密切相關(guān)。報(bào)表模板和匯總范圍就確定了一個(gè)匯總表。對(duì)符合同一模板的不同數(shù)據(jù)上報(bào)表的匯總,就是將各單位數(shù)據(jù)上報(bào)表中相同位置的單元格數(shù)據(jù)進(jìn)行累加并保存在匯總表中的相應(yīng)位置。

      允許用戶對(duì)匯總表的相應(yīng)位置進(jìn)行透視查詢,獲取匯總明細(xì)數(shù)據(jù),即觀察該匯總數(shù)據(jù)的數(shù)據(jù)來(lái)源以及具體的數(shù)據(jù)內(nèi)容。

      2.5 企業(yè)分支機(jī)構(gòu)管理

      企業(yè)一般包含總部與多個(gè)分支機(jī)構(gòu)。各個(gè)分支機(jī)構(gòu)內(nèi)部也包含多個(gè)部門(mén),分支機(jī)構(gòu)之間也存在著層次關(guān)系,系統(tǒng)需要對(duì)企業(yè)的各個(gè)分支機(jī)構(gòu)進(jìn)行管理。

      2.6 用戶信息管理

      按照用戶權(quán)限,可以將用戶分為一般用戶、系統(tǒng)管理員及超級(jí)管理員。除了超級(jí)管理員外,其他系統(tǒng)用戶必須隸屬于唯一的一個(gè)部門(mén),允許管理員新增人員、修改其基本信息、根據(jù)其姓名或編號(hào)查詢?nèi)藛T。允許所有用戶修改其基本信息及登錄密碼,但一般用戶不能修改其部門(mén)等信息。

      3 系統(tǒng)設(shè)計(jì)

      REST風(fēng)格的Web Services即按照REST原則創(chuàng)建“輕量級(jí)”的Web服務(wù),它是一種面向資源的架構(gòu)[7],所有智能報(bào)表系統(tǒng)的數(shù)據(jù)和功能都被設(shè)計(jì)成資源對(duì)外呈現(xiàn),用戶通過(guò)資源的URI和統(tǒng)一的HTTP方法(GET、POST、PUT、DELETE等)訪問(wèn)資源、執(zhí)行操作。本文提出了一種基于REST架構(gòu)風(fēng)格的Web服務(wù)的系統(tǒng)體系結(jié)構(gòu)(見(jiàn)圖1),主要由Web服務(wù)客戶端和Web服務(wù)器兩大部分構(gòu)成。

      圖1 REST風(fēng)格Web服務(wù)體系結(jié)構(gòu)

      客戶端部分包括Web瀏覽器、桌面應(yīng)用以及移動(dòng)設(shè)備等。本文所設(shè)計(jì)的智能報(bào)表系統(tǒng)采用B/S架構(gòu)即瀏覽器和服務(wù)器的網(wǎng)絡(luò)結(jié)構(gòu)模式[8]。這種結(jié)構(gòu)具有分布性特點(diǎn),可以隨時(shí)隨地進(jìn)行查詢、瀏覽等業(yè)務(wù)處理,并且方便業(yè)務(wù)的拓展,因此采用Web瀏覽器作為Web服務(wù)的客戶端。通過(guò)報(bào)表資源的URI(通常就是URL)和標(biāo)準(zhǔn)的HTTP方法向服務(wù)器發(fā)出請(qǐng)求。如果請(qǐng)求成功,服務(wù)器將返回HTTP響應(yīng)狀態(tài)碼200 OK,對(duì)于GET和PUT請(qǐng)求將返回相應(yīng)格式的資源表述(如XML、JSON等);否則,服務(wù)器返回其它相應(yīng)的HTTP響應(yīng)狀態(tài)碼和錯(cuò)誤信息。對(duì)于本文所采用的Web瀏覽器,可以直接在地址欄輸入地理信息資源的URL,根據(jù)所需通過(guò)HTTP GET方法獲取資源相對(duì)應(yīng)的表述。如下為通過(guò)GET請(qǐng)求報(bào)表模板資源的請(qǐng)求和響應(yīng)代碼,資源的表述形式為JSON格式,資源的具體表現(xiàn)可在HTTP請(qǐng)求頭中進(jìn)行設(shè)置:

      GET /base/template/10001 HTTP/1.1

      Host:localhost:8080

      服務(wù)器返回的響應(yīng):

      HTTP/1.1 200 OK

      Content-Type:application/json

      {

      “Template”:[

      {

      “TemplateID”: “10001”,

      “TemplateName”: “for test”,

      ““”TemplateData”: “0x2deab8f…..”,

      “TemplateType”: “type”,

      “TemplateDesc”: “for test”,

      “CreatorId”: “00001”,

      “CreatorName”: “sonya”,

      “CreateTime”: “2016-10-20T15:58:22.674Z”

      }

      ]

      }

      服務(wù)器端主要由Web服務(wù)器、服務(wù)應(yīng)用程序和數(shù)據(jù)庫(kù)組成。當(dāng)Web服務(wù)器接收到REST服務(wù)請(qǐng)求后,由服務(wù)應(yīng)用程序來(lái)解析并處理請(qǐng)求,然后對(duì)數(shù)據(jù)庫(kù)執(zhí)行相應(yīng)的CRUD操作,并返回相應(yīng)請(qǐng)求的資源表示。依據(jù)上文對(duì)智能報(bào)表系統(tǒng)業(yè)務(wù)進(jìn)行分析,所有模板、周期性下發(fā)任務(wù)、上報(bào)任務(wù)及報(bào)表數(shù)據(jù)、匯總報(bào)表數(shù)據(jù)、系統(tǒng)用戶信息,以及企業(yè)各個(gè)分支機(jī)構(gòu)信息等均應(yīng)被設(shè)計(jì)為資源,有相應(yīng)的URI和允許的HTTP操作(即RESTful API),本文以模板資源為例,分析資源的抽象過(guò)程,其它主要資源的URI和HTTP方法如表1所示。為便于系統(tǒng)擴(kuò)展,本文在設(shè)計(jì)時(shí)為每類(lèi)資源均提供了HTTP的4個(gè)標(biāo)準(zhǔn)方法。

      表1 部分資源及其對(duì)應(yīng)的URI和HTTP方法

      報(bào)表系統(tǒng)的業(yè)務(wù)功能復(fù)雜多樣,但都圍繞報(bào)表模板展開(kāi),因此模板可被抽象成資源,其中模板的創(chuàng)建對(duì)應(yīng)資源的創(chuàng)建,查詢對(duì)應(yīng)資源的讀取,對(duì)模板的修改對(duì)應(yīng)資源的修改,廢棄對(duì)應(yīng)資源的刪除。查詢還可細(xì)分為3類(lèi):查詢所有模板、按模板ID查詢、按關(guān)鍵詞查詢。進(jìn)一步分析發(fā)現(xiàn),模板的創(chuàng)建、查詢和按關(guān)鍵詞查詢均是針對(duì)整個(gè)模板資源而言,因此模板資源還需要?jiǎng)澐譃樗心0遒Y源和單個(gè)模板資源,其URI設(shè)計(jì)如下:①所有模板資源URI:/template;②單個(gè)模板資源URI:/template/{templateid}。

      4 結(jié)語(yǔ)

      利用Restful Web Services實(shí)現(xiàn)企業(yè)信息管理系統(tǒng),可以避免傳統(tǒng)基于SOAP協(xié)議的Web Services復(fù)雜的協(xié)議集解析,更易于實(shí)現(xiàn),更符合Web的本源,具有簡(jiǎn)單性、可尋址性及緩存性等特性,服務(wù)器的開(kāi)銷(xiāo)和維護(hù)成本更低,同時(shí)方便更多的服務(wù)無(wú)縫地在桌面和手持式平臺(tái)進(jìn)行大規(guī)模部署。本文針對(duì)REST架構(gòu)的Web Services的特點(diǎn),研究了其在智能報(bào)表系統(tǒng)中的應(yīng)用與實(shí)現(xiàn)。所設(shè)計(jì)的方案能夠提高智能報(bào)表系統(tǒng)數(shù)據(jù)交換的效率,也提高了系統(tǒng)的整體性能,同時(shí)降低了開(kāi)發(fā)成本,具有良好的可擴(kuò)展性和廣闊的應(yīng)用前景。此后,還需要更深入地研究REST這種全新并且優(yōu)秀的Web設(shè)計(jì)風(fēng)格,以更好地為企業(yè)信息系統(tǒng)服務(wù)。企業(yè)信息管理系統(tǒng)是個(gè)龐大復(fù)雜的系統(tǒng),有著不同的機(jī)構(gòu)、不同類(lèi)別的內(nèi)容等,因此,如何規(guī)劃數(shù)據(jù)集、如何將數(shù)據(jù)集轉(zhuǎn)化為資源、如何命名資源、如何設(shè)計(jì)表示、如何將資源與資源間的聯(lián)系表達(dá)出來(lái)即創(chuàng)建資源的連通性整合資源等諸多問(wèn)題都需要作進(jìn)一步研究。

      [1] 李大鵬.基于Rest風(fēng)格web服務(wù)的研究[J].電子商務(wù),2010(4):63-65.

      [2] 阮一峰.理解RESTful架構(gòu)[EB/OL].[2011-9-12].http://www.ruanyifeng.com/blog/2011/09/restful.html.

      [3] RICHARDSON L,RUBY S.RESTful web services[M].Reilly Media,2007.

      [4] 王非,蔡勇,賀志軍.RESTful Web Services在信息系統(tǒng)中的應(yīng)用[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2013,2(22):221-225.

      [5] [美]RICHARDSON,L AMUNDSEN M.RESTful Web APIs中文版[M].趙震一,李哲,譯.北京:電子工業(yè)出版社,2014.

      [6] 單劍鋒,馬德錦.常用Web服務(wù)技術(shù)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,6(23):253-257.

      [7] L RICHARDSON.RESTful web services中文版[M].徐涵,譯.北京:電子工業(yè)出版社,2008.

      [8] 王進(jìn).B/S模式下的三層架構(gòu)模式[J].軟件導(dǎo)刊,2011,10(3):30-31.

      (責(zé)任編輯:孫 娟)

      楊絲雨(1993-),女,陜西潼關(guān)人,陜西科技大學(xué)電氣與信息工程學(xué)院碩士研究生,研究方向?yàn)檐浖夹g(shù);孫連山(1977-),男,黑龍江佳木斯人,博士,陜西科技大學(xué)電氣與信息工程學(xué)院副教授,研究方向?yàn)榭尚跑浖夹g(shù)、軟件安全工程。

      10.11907/rjdk.162841

      TP319

      A

      1672-7800(2017)003-0077-03

      猜你喜歡
      報(bào)表架構(gòu)模板
      鋁模板在高層建筑施工中的應(yīng)用
      基于FPGA的RNN硬件加速架構(gòu)
      鋁模板在高層建筑施工中的應(yīng)用
      功能架構(gòu)在電子電氣架構(gòu)開(kāi)發(fā)中的應(yīng)用和實(shí)踐
      LabWindows/CVI中Excel報(bào)表技術(shù)研究
      從三大報(bào)表讀懂養(yǎng)豬人的成績(jī)單
      LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實(shí)現(xiàn)
      鋁模板在高層建筑施工中的應(yīng)用
      城市綜改 可推廣的模板較少
      一種基于FPGA+ARM架構(gòu)的μPMU實(shí)現(xiàn)
      麦盖提县| 宝鸡市| 西乌| 建阳市| 马山县| 大埔区| 开江县| 仪陇县| 泸西县| 威宁| 弥勒县| 得荣县| 彰化市| 曲松县| 南开区| 德州市| 修武县| 湟源县| 许昌市| 博湖县| 青川县| 榆林市| 金昌市| 夹江县| 原平市| 永和县| 漳浦县| 郎溪县| 兴国县| 安阳市| 尉犁县| 芮城县| 渑池县| 昂仁县| 潮州市| 固始县| 鄂尔多斯市| 县级市| 郯城县| 蛟河市| 乌鲁木齐市|