姚明海,陳占省,顧勤龍
(浙江工業(yè)大學 計算機科學與技術(shù)學院,浙江 杭州 310023)
?
基于REST架構(gòu)的離散制造業(yè)物聯(lián)網(wǎng)平臺
姚明海,陳占省,顧勤龍
(浙江工業(yè)大學 計算機科學與技術(shù)學院,浙江 杭州 310023)
摘要:因離散制造業(yè)傳統(tǒng)物聯(lián)網(wǎng)系統(tǒng)設(shè)計臃腫、擴展性差、復(fù)雜度高且系統(tǒng)應(yīng)用之間耦合性大,使得新應(yīng)用的引入與集成需要大量的工作,難以滿足企業(yè)日益增長的業(yè)務(wù)需求.提出了基于REST架構(gòu)風格的離散制造業(yè)物聯(lián)網(wǎng)平臺.將傳感節(jié)點和節(jié)點狀態(tài)數(shù)據(jù)抽象成資源,采用REST架構(gòu)風格設(shè)計適合離散制造業(yè)的物聯(lián)網(wǎng)平臺原型并積木式搭建系統(tǒng),便于系統(tǒng)整合應(yīng)用,屏蔽設(shè)備異構(gòu).最后描述了系統(tǒng)的具體實現(xiàn)細節(jié)并將平臺應(yīng)用于企業(yè)生產(chǎn)實踐進行驗證.
關(guān)鍵詞:REST;物聯(lián)網(wǎng);離散制造
隨著傳感網(wǎng)絡(luò)、嵌入式技術(shù)和無線通信等物聯(lián)網(wǎng)技術(shù)的不斷成熟,離散制造業(yè)在信息化過程中也越來越多的引入物聯(lián)網(wǎng)系統(tǒng).物聯(lián)網(wǎng)系統(tǒng)的引入,可以有效地幫助企業(yè)提高工藝流程的精確度、降低人工成本和提高效率.但企業(yè)物聯(lián)網(wǎng)地引入是分階段的引入,不同階段引入不用的物聯(lián)網(wǎng)應(yīng)用,而這些不同階段引入物聯(lián)網(wǎng)應(yīng)用都是獨立開發(fā),這些應(yīng)用通常采用SOA架構(gòu)進行設(shè)計,應(yīng)用之間接口各異且契約不統(tǒng)一,導(dǎo)致應(yīng)用之間孤立,信息流通困難,造成了整個系統(tǒng)緊耦合擴展性差、并且復(fù)雜度高,同時存在設(shè)備異構(gòu)等缺點[1].
基于這些離散制造業(yè)現(xiàn)有的問題,提出了基于REST架構(gòu)風格的離散制造業(yè)物聯(lián)網(wǎng)平臺.將傳感節(jié)點和節(jié)點的狀態(tài)數(shù)據(jù)抽象成資源,采用REST架構(gòu)風格組建應(yīng)用,設(shè)計適合離散制造業(yè)的物聯(lián)網(wǎng)平臺原型,便于整合應(yīng)用,屏蔽設(shè)備異構(gòu),并描述了具體實現(xiàn)以及驗證.
1相關(guān)工作
1.1REST技術(shù)
REST(Representational state transfer,表述狀態(tài)轉(zhuǎn)移)是由Roy Thomas Fielding博士于2000年在其博士論文中作為組建大規(guī)模分布式超媒體系統(tǒng)的架構(gòu)風格首次提出的[2].REST架構(gòu)風格將Web中的所有事物抽象成資源的集合,使用統(tǒng)一的資源標識符(URI)對資源進行標識,利用HTTP動詞(GET,POST,PUT,DELETE等)作為統(tǒng)一接口對資源進行操作,同時客戶端和服務(wù)器之間的交互式無狀態(tài)的,但是交互的信息具有自描述性.所有的這些特性為構(gòu)建一個低耦合、低復(fù)雜度及高擴展性的Web應(yīng)用提供了良好的架構(gòu)約束.
在REST被提出之前,也有一些架構(gòu)風格也能實現(xiàn)統(tǒng)一接口的特性,如SOAP.但REST具有更好的效率與可擴展性.REST的統(tǒng)一接口是基于HTTP這一廣泛使用的協(xié)議的接口;而SOAP使用的是自定義的接口[3-4].REST支持多種的數(shù)據(jù)交換格式,如XML,JSON,HTML等,但SOAP是一種基于XML的協(xié)議.當Web請求需要跨越兩個或兩個以上的Web服務(wù)時,可能會引起通信延時,REST Web服務(wù)相較于SOAP Web服務(wù)能減小這種通信延時[5].
1.2REST與物聯(lián)網(wǎng)
目前,已經(jīng)有一些研究者將REST思想應(yīng)用在物聯(lián)網(wǎng)上,文獻[6]是基于Big Web Services采用SenseWeb將傳感器等設(shè)備集成到Web服務(wù)中,但Big Web Services最初是為了整合分布式系統(tǒng)異構(gòu)的API而設(shè)計的,會隨著物聯(lián)網(wǎng)應(yīng)用的整合而變得復(fù)雜.隨著android系統(tǒng)與智能移動設(shè)備以及Arduino與Raspberry Pi等開源硬件的發(fā)展,文獻[7-9]將REST物聯(lián)網(wǎng)應(yīng)用到了這些方面.文獻[10-12]將REST應(yīng)用于物聯(lián)網(wǎng)平臺,但未涉及到具體行業(yè)業(yè)務(wù).文獻[13]將REST應(yīng)用到了智能農(nóng)場物聯(lián)網(wǎng),文獻[14]將REST物聯(lián)網(wǎng)應(yīng)用到了地下作業(yè)安全方面.不同于以往的工作,實現(xiàn)了一個針對離散制造業(yè)基于REST架構(gòu)風格的物聯(lián)網(wǎng)平臺的原型,解耦了離散制造業(yè)中不同的物聯(lián)網(wǎng)系統(tǒng),屏蔽了底層網(wǎng)關(guān)及節(jié)點與平臺之間的異構(gòu),并提供了統(tǒng)一的接口.
2離散制造業(yè)物聯(lián)網(wǎng)總體設(shè)計
離散制造業(yè)的物聯(lián)網(wǎng)系統(tǒng)是一個分層系統(tǒng),各個層次之間通過統(tǒng)一的REST風格接口進行信息交流,可以有效的降低各層系統(tǒng)之間的耦合性.下面將詳細描述系統(tǒng)的各個層次,并重點描述系統(tǒng)服務(wù)平臺的設(shè)計思想,以及層次統(tǒng)一接口的設(shè)計方式.
2.1離散制造業(yè)物聯(lián)網(wǎng)體系結(jié)構(gòu)
離散制造業(yè)的物聯(lián)網(wǎng)體系結(jié)構(gòu),遵循著傳統(tǒng)物聯(lián)網(wǎng)的體系結(jié)構(gòu),如圖1所示.
圖1 離散制造業(yè)聯(lián)網(wǎng)體系結(jié)構(gòu)Fig.1 IOT for discrete manufacture system structure
感知設(shè)備層:該層的主要職能是采集生產(chǎn)中的實時數(shù)據(jù)并將這些數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)接入層.該層的設(shè)備是傳感器節(jié)點,可以是Zigbee節(jié)點(如XB24-API-001J節(jié)點),也可以是支持REST API的節(jié)點.Zigbee節(jié)點將采集到的數(shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò)接入層進行處理.而支持REST API的節(jié)點,則可以直接將采集好的數(shù)據(jù)解析后通過統(tǒng)一的API接口發(fā)送到服務(wù)平臺層,能夠省去網(wǎng)絡(luò)接入層的網(wǎng)關(guān),減少傳輸開銷.但支持REST API節(jié)點的價格比較昂貴.
網(wǎng)絡(luò)接入層:該層是服務(wù)平臺層與感知設(shè)備層之間的數(shù)據(jù)通道.該層的主要職能是收集感知設(shè)備層采集的數(shù)據(jù),將這些數(shù)據(jù)進行整合(如數(shù)據(jù)分類,格式轉(zhuǎn)化等),并將整合完成的數(shù)據(jù)通過以太網(wǎng)轉(zhuǎn)發(fā)到服務(wù)平臺層.同時也對外提供REST API,服務(wù)平臺可以通過網(wǎng)關(guān)提供的REST API,將節(jié)點的配置信息發(fā)送網(wǎng)關(guān),網(wǎng)關(guān)將這些信息轉(zhuǎn)化成節(jié)點的配置命令,進而動態(tài)的配置節(jié)點信息.
服務(wù)平臺層:是整個物聯(lián)網(wǎng)體系最重要的部分.服務(wù)平臺提供了一系列的統(tǒng)一接口.這些統(tǒng)一接口能夠減小行業(yè)應(yīng)用層系統(tǒng)之間的耦合度,能靈活的為企業(yè)提供不同的應(yīng)用服務(wù);對下層的物理設(shè)備,這些統(tǒng)一接口能夠接收不同節(jié)點傳送的感知數(shù)據(jù),同時也能為用戶提供統(tǒng)一的節(jié)點配置方式,實現(xiàn)了不同應(yīng)用與傳感設(shè)備之間的靈活組網(wǎng),也屏蔽了物理節(jié)點的多樣性給平臺帶來的影響.服務(wù)平臺的主要模塊如下:
1) 路由模塊,負責處理平臺的通信功能.不論是接收節(jié)點或網(wǎng)關(guān)的信息,或是為行業(yè)應(yīng)用提供數(shù)據(jù),對外REST式Web服務(wù)API都是由路由模塊去的驅(qū)動.可以說是路由模塊定義了服務(wù)平臺的訪問方式.
2) 數(shù)據(jù)處理模塊,負責整個平臺的數(shù)據(jù)處理,包括了將接收到的節(jié)點數(shù)據(jù)解析存儲,根據(jù)行業(yè)應(yīng)用層的業(yè)務(wù)需求對數(shù)據(jù)進行分析、篩選以及序列化后再將數(shù)據(jù)提供給業(yè)務(wù)使用.
3) 設(shè)備管理模塊,為設(shè)備提供了動態(tài)的注冊、配置與注銷功能.該模塊通過對外的API,接收設(shè)備的信息,不論是節(jié)點發(fā)送的注冊信息,或是用戶發(fā)送的動態(tài)配置信息或注銷信息.該模塊會對這些信息進行分析,在對這些信息進行存儲或轉(zhuǎn)發(fā).
4) 緩存模塊,對數(shù)據(jù)的查詢結(jié)構(gòu)進行緩存,減小了對數(shù)據(jù)庫的IO讀寫,優(yōu)化了應(yīng)用數(shù)據(jù)查詢的效率.
5) 日志管理模塊,提供了對平臺故障的記錄及平臺訪問的記錄,為系統(tǒng)錯誤恢復(fù)提供了依據(jù)與保險.
行業(yè)應(yīng)用層:該層是針對離散制造業(yè)行業(yè)特點所創(chuàng)建的應(yīng)用集合.如制造資源計劃(Manufacture resource planning, MRPII)、企業(yè)資源計劃(Enterprise resource planning, ERP)和制造執(zhí)行系統(tǒng)(Manufacture execution system, MES)等系統(tǒng).這些系統(tǒng)實現(xiàn)了企業(yè)生產(chǎn)的自動化與信息化,提高了企業(yè)的生產(chǎn)效率.
2.2REST接口設(shè)計與實現(xiàn)
REST架構(gòu)風格將所有的事物都被抽象成資源,需要有為每個資源分配一個URI,來對資源進行標識.
下面以節(jié)點實時數(shù)據(jù)收集這一離散制造業(yè)物聯(lián)網(wǎng)最基本的功能為例.節(jié)點采集的實時數(shù)據(jù)對應(yīng)的URI就是http://[DOMAIN]/realtime/nodes/{id}/.URI中的[DOMAIN]表示部署平臺服務(wù)器的域名,也可以是該服務(wù)器的IP地址.上述的URI分為兩類:
1) http://[DOMAIN]/realtime/nodes/是集合類型,表示整個平臺收集的節(jié)點實時數(shù)據(jù)的集合.
2) http://[DOMAIN]/realtime/nodes/id/是單一類型,該URI帶有特定的唯一id,指定了與該id對應(yīng)的某一條實時數(shù)據(jù).
REST接口除了需要每個資源的URI之外,還需要指定資源的訪問方式.REST架構(gòu)風格是由HTTP協(xié)議驅(qū)動的,通過HTTP協(xié)議定義GET、POST、PUT及DELETE四種方法對資源進行操作.例如對上述的URI http://[DOMAIN]/realtime/nodes/{id}/進行這四種方法的操作:
1) GET方法:獲取實時數(shù)據(jù),對不帶id的URI,獲取到的是整個實時數(shù)據(jù)集合,帶有id的URI則獲取到了該id對應(yīng)的特定的某條實時數(shù)據(jù).
2) POST方法:該方法只適合http://[DOMAIN]/realtime/nodes/,表示傳感器采集了新的實時數(shù)據(jù),向集合中添加實時數(shù)據(jù).
3) PUT方法:該方法只適合http://[DOMAIN]/realtime/nodes/id/,表示修改指定的實時數(shù)據(jù).
4) DELETE方法:該方法表示刪除需要的實時數(shù)據(jù),不帶id則表示刪除所有的數(shù)據(jù)(是一種比較危險的行為,一般不推薦實現(xiàn)),帶有id則表示刪除指定的某條實時數(shù)據(jù).
同時接口可以攜帶查詢參數(shù),如節(jié)點實時數(shù)據(jù),根據(jù)車間篩選,可以攜帶workshop_id的查詢參數(shù):http://[DOMAIN]/realtime/nodes/?workshop_id=1,之所以采用查詢參數(shù)的方式,而不是增加接口目錄的深度,是因為增加接口目錄深度會給整個接口的實現(xiàn)帶來巨大的工作量,同時接口設(shè)計復(fù)雜度增加,不易維護,靈活度會較差.在需要根據(jù)多個條件篩選時,接口的意義會變得模糊.基于這些原因,在后面實現(xiàn)上,將篩選功能放到查詢參數(shù)中處理.
3系統(tǒng)實現(xiàn)
電機制造是一個典型的離散制造行業(yè).下面將以浙江迪貝公司物聯(lián)網(wǎng)系統(tǒng)的開發(fā)部署為例介紹系統(tǒng)的具體實現(xiàn).
如圖2所示,生產(chǎn)決策者可以根據(jù)公司接收到訂單情況安排各個車間的車間生產(chǎn)計劃,每個車間又可以根據(jù)車間計劃的制定相應(yīng)班組計劃,然后車間根據(jù)這些班組計劃進行生產(chǎn).對每個車間的生產(chǎn)的數(shù)據(jù)進行采集,對這些數(shù)據(jù)進行統(tǒng)計分析,輸出到看板反饋給生產(chǎn)決策者,決策者可以根據(jù)這些反饋,對生產(chǎn)過程與計劃進行掌控,必要時可以進行調(diào)整,以對生產(chǎn)資源優(yōu)化.
圖2 電機生產(chǎn)計劃流程Fig.2 Process for plan of motor manufacture
3.1路由與數(shù)據(jù)處理模塊
整個平臺架構(gòu)利用了Python下Django框架進行了實現(xiàn),Django是一個采用了MVC模式并有著強大路由功能的高效Web開發(fā)框架,也包含了類似緩存模塊與日志管理模塊等常見模塊;并采用了Django REST Framework框架作為補充,在Django的基礎(chǔ)上能夠高效方便的搭建REST API同時提供了各種數(shù)據(jù)格式的序列化,提高開發(fā)效率.
在整個平臺的實現(xiàn)中,各個功能是由一個個的Django app(應(yīng)用)進行積木式搭建而成的,一般每個app中都包含了這三個文件:models.py、views.py與urls.py,分別對應(yīng)于數(shù)據(jù)表的映射模型、視圖顯示控制(在API中用來處理API的具體實現(xiàn))以及路由配置.系統(tǒng)項目組織結(jié)構(gòu)如圖3所示.
圖3 項目組織結(jié)構(gòu)Fig.3 Project organization structure
將整個平臺取名為miot(Motor things of internet),由于系統(tǒng)僅用于內(nèi)網(wǎng),這里將平臺對應(yīng)的域名為一級域名dibei.com/,這是所有程序的對應(yīng)入口,也是資源URI根目錄.之后對應(yīng)的app分為兩類.
一類是專門用來處理不同物聯(lián)網(wǎng)web應(yīng)用的,對應(yīng)于上圖的apps以及之后的分支.如制造執(zhí)行系統(tǒng)對應(yīng)于上圖名為MES的app,其訪問地址是mes.dibei.com這個二級域名開頭的部分.另一類是專門提供對外的統(tǒng)一接口的,對應(yīng)于圖3的apis以及之后的分支.其訪問方式都是www.dibei.com/api/為前綴,之后的分支則表示資源的具體描述.如realtime app表示實時數(shù)據(jù)的目錄,用以存儲實時數(shù)據(jù)這一類型的資源,如節(jié)點信息nodes/.
3.1.1通過路由配置資源接口的訪問路徑
每個app的路由會根據(jù)api路徑來處理.若當前目錄不是路徑的終點,則將訪問轉(zhuǎn)到下一目錄,當?shù)竭_api路徑的終點,則將該api的訪問引導(dǎo)到接口的具體實現(xiàn)中(及對應(yīng)的Views中).
http://www.dibei.com/api/realtime/nodes/{id}/接口的訪問顯示在miot app中將訪問轉(zhuǎn)到apis app中url(r'^api/', include('apis.urls')),在apis中又將訪問轉(zhuǎn)到realtime app中url(r'^realtime/', include('realtime.urls')),在realtime app中,到達了api路徑的終點,調(diào)用views.py中接口的具體實現(xiàn)url(r'', include(routerRealTime.urls)),routerRealTime.register(r'^nodes', NodedataViewSet).路由的訪問流程如圖4所示.
圖4 路由訪問流程Fig.4 Process of route access
3.1.2實現(xiàn)接口功能完成數(shù)據(jù)處理
在views中實現(xiàn)接口的具體操作,利用Django REST Framework快速的實現(xiàn)了接口的四個操作動作,并為接口的輸出數(shù)據(jù)做了序列化.如果需要應(yīng)付復(fù)雜的業(yè)務(wù),也可以很方便在ViewSet類中覆寫GET、POST、PUT與DELETE四個操作動作來完成復(fù)雜的業(yè)務(wù).接口快速實現(xiàn)的代碼片段如下:
#文件realtime/views的接口具體實現(xiàn)
#利用Django REST Framework快速的序列化與反序列化節(jié)點信息數(shù)據(jù)
class NodedataSerializer(serializers.ModelSerializer):
class Meta:
model=Nodedata #引入數(shù)據(jù)表映射模型
fields=('id', 'workshop_id', 'gateway_id',
'node_id', 'node_type', 'data_value',
'upload_date', 'status', 'feedback')
#利用Django REST Framework快速的實現(xiàn)
#api/realtime/nodes/[id]接口GET、POST、PUT及DELETE四個動作
class NodedataViewSet(viewsets.ModelViewSet):
queryset=Nodedata.objects.all()
serializer_class=NodedataSerializer
#將最后的nodes/[id]路徑與具體實現(xiàn)注冊到路由
routerRealTime=routers.DefaultRouter()
routerRealTime.register(r'^nodes', NodedataViewSet)
部分API的訪問方式如圖5所示.
圖5 接口訪問方式Fig.5 Access methods of interface
3.2設(shè)備管理模塊
由于智能設(shè)備的發(fā)展普及,以及Arduino與Raspberry Pi等開源硬件的發(fā)展,網(wǎng)關(guān)或節(jié)點的功能越發(fā)的強大,可以在網(wǎng)關(guān)或者直接在節(jié)點中布置一個小型的Web服務(wù),這樣便可以使用統(tǒng)一的REST接口通過網(wǎng)關(guān)管理節(jié)點或者直接管理節(jié)點,同時實現(xiàn)了關(guān)注點分離,將節(jié)點的配合方式從服務(wù)平臺中轉(zhuǎn)移到節(jié)點自身,避免了由于節(jié)點種類的增加,導(dǎo)致設(shè)備管理模塊的復(fù)雜度的增長.
在節(jié)點連接上物聯(lián)網(wǎng)平臺時,會向http://www.dibei.com/api/realtime/sensers/[id]/發(fā)送POST請求,并將自己的信息注冊到管理平臺,該信息必須包括節(jié)點自身的id與ip地址.
當要修改某個節(jié)點的配置時,可以根據(jù)該節(jié)點的id,向http://www.dibei.com/api/realtime/sensers/id/發(fā)送PUT請求,此時在該接口PUT請求對應(yīng)的實現(xiàn)中,需要進行一個轉(zhuǎn)發(fā)機制,根據(jù)該節(jié)點注冊到服務(wù)平臺的ip,將新的配置信息轉(zhuǎn)發(fā)給該節(jié)點.服務(wù)平臺實現(xiàn)節(jié)點配置信息轉(zhuǎn)發(fā)功能的代碼片段如下:
#文件realtime/views
#對Sensers的PUT請求進行轉(zhuǎn)發(fā)處理
#…
url='http://'+ipAddress+'/api/senser/config/
req=urllib.request.Request(url,data)
response=urllib.request.urlopen(req)
#…
同樣的道理,對節(jié)點進行注銷,也只需要發(fā)送DELETE請求到對應(yīng)的http://www.dibei.com/api/realtime/sensers/id/接口,并在服務(wù)平臺上對應(yīng)的轉(zhuǎn)發(fā)該請求即可,設(shè)備管理方式如圖6所示.
圖6 設(shè)備管理方式Fig.6 Method of equipment management
動態(tài)的設(shè)備管理方式可以對節(jié)點進行重復(fù)利用,以適生產(chǎn)線的重組.
3.3結(jié)果展示
REST架構(gòu)風格的物聯(lián)網(wǎng)平臺能夠為應(yīng)用提供服務(wù)數(shù)據(jù).通過統(tǒng)一接口,應(yīng)用能夠快速方便地獲取所需的數(shù)據(jù),不必考慮平臺的限制,從而為跨平臺的應(yīng)用實現(xiàn)提供了簡便的基礎(chǔ).下面以電機生產(chǎn)中高沖這個工序為例:
在每次高沖動作完成時,設(shè)備的繼電器會產(chǎn)生一個脈沖信號,表示動作完成.采用Arduino UNO R3作為傳感節(jié)點處理單元,傳感節(jié)點到智能網(wǎng)關(guān)之間采用ZigBee作為傳輸協(xié)議,傳感節(jié)點傳輸模塊采用了Digi公司XBee模塊.而智能網(wǎng)關(guān)架構(gòu)在Tiny4412開發(fā)板上,采用Android操作系統(tǒng).傳感節(jié)點采集每一次的高沖動作,按照節(jié)點設(shè)定的比例轉(zhuǎn)化成對應(yīng)的產(chǎn)品數(shù),數(shù)據(jù)從傳感節(jié)點經(jīng)智能網(wǎng)關(guān)通過統(tǒng)一接口上傳至服務(wù)平臺,車間看板程序通過統(tǒng)一接口向服務(wù)平臺請求整合過的生產(chǎn)數(shù)據(jù),展示了生產(chǎn)的實時數(shù)據(jù).圖7的車間看板Android應(yīng)用展示了高沖工序的實時生產(chǎn)數(shù)據(jù).
圖7 車間看板android應(yīng)用Fig.7 Android app for workshop board
4結(jié)論
提出了基于REST架構(gòu)風格的離散制造業(yè)物聯(lián)網(wǎng)平臺,將REST架構(gòu)風格應(yīng)用到了離散制造業(yè)的物聯(lián)網(wǎng)系統(tǒng)中,構(gòu)建一個松耦合,復(fù)雜度低且高效的物聯(lián)網(wǎng)平臺,可以將各種不同的應(yīng)用以積木的方式搭建,同時提供的統(tǒng)一接口為各種行業(yè)應(yīng)用的跨平臺開發(fā)提供了便捷的基礎(chǔ),更好的為離散制造業(yè)的生產(chǎn)提供信息化支持.但目前平臺的研發(fā)還處于探索實驗階段,應(yīng)用中,對于生產(chǎn)線的節(jié)點部署并未對所有的生產(chǎn)過程進行部署.服務(wù)平臺所有的緩存模塊是Django自帶的模塊,而日志管理模塊使用了Apache HTTP Server與Django的自帶模塊,還未在這些基礎(chǔ)上進行優(yōu)化.這些問題有待進一步的研究和解決.
參考文獻:
[1]秦海平,王美清.離散制造企業(yè)應(yīng)用集成開發(fā)研究[J].制造業(yè)自動化,2010(7):29-33.
[2]FIELDING R T. Architectural styles and the design of network-based software architectures[D]. California:University of California at Irvine,2000.
[3]毛力銳,蔡鴻明,徐博藝,等.基于REST面向資源的企業(yè)集成平臺框架[J].計算機工程,2010,36(2):254-256.
[4]馮新?lián)P,沈建京.REST和RPC:兩種Web服務(wù)架構(gòu)風格比較分析[J].小型微型計算機系統(tǒng),2010(7):1393-1395.
[5]陳海明,崔莉,謝開斌.物聯(lián)網(wǎng)體系結(jié)構(gòu)與實現(xiàn)方法的比較研究[J].計算機學報,2013,36(1):168-188.
[6]PAUTASSO C, ZIMMERMANN O, LEYMANN F. Restful web services vs. big'web services: making the right architectural decision[C]//WWW '08: Proceedings of the 17th International Conference on World Wide Web. New York: ACM,2008:805-814.
[7]CHRISTENSEN J H. Using RESTful web-services and cloud computing to create next generation mobile applications[C]//OOPSLA '09: Proceedings of the 24th ACM SIGPLAN Conference Companion on Object Oriented Programming Systems Languages and Applications. New York: ACM,2009:627-634.
[8]GUINARD D, FLOERKEMEIER C, SARMA S. Cloud computing, REST and mashups to simplify RFID application development and deployment[C]//WOT '11: Proceedings of the Second International Workshop on Web of Things. New York:ACM,2011:9-15.
[9]KOVATSCH M, LANTER M, DUQUENNOY S. Actinium: a RESTful runtime container for scriptable internet of things applications[J]. International Conference on Internet of Things,2012,567(1):135-142.
[10]ZHANG Xinshuang, WEN Zhigang, WU Yuexin, et al. The implementation and application of the internet of things platform. based on the rest architecture[J]. Business Management & Electronic Information International Conference on,2011(2):43-45.
[11]程冬梅,王瑞聰,劉燕,等.基于REST架構(gòu)風格的物聯(lián)網(wǎng)服務(wù)平臺研發(fā)[J].計算機工程與應(yīng)用,2012,48(14):74-78.
[12]LAINE M. RESTful web services for the Internet of things[EB/OL]. [2015-05-09]. http://media. tkk. fi/webservices/personnel/markku_laine/restful_web_services_for _the_internet_of_things. pdf.
[13]SIVAMANI S, KWAK K, CHO Y. A design of Web-based services using RESTful API for vertical farm[J]. Life Science Journal,2014,11(7):763-767.
[14]CHENG Bo, CHENG Xin, CHEN Junliang. Lightweight monitoring and control system for coal mine safety using REST style[J]. Isa Transactions,2015,54(1):229-239.
(責任編輯:陳石平)
Research on the internet of things platform of discrete manufacturing
enterprises based on REST architecture
YAO Minghai, CHEN Zhansheng, GU Qinlong
(College of Computer Science and Technology, Zhejiang University of Technology, Hangzhou 310023, China)
Abstract:For the problems of bloated design, poor scalability, high complexity and tight coupling between application systems in the internet of things of traditional discrete manufacturing, the import and integration of new applications requires a lot of work, It is difficult to meet the growing business needs of enterprises. An internet of things platform for discrete manufacturing enterprises based on REST-style architecture is presented. The sensor and their status are abstracted as resources. The REST architecture is used to construct block system in order to facilitate the integration of applications and shield heterogeneity of devices. Finally, specific implementation details of the system are described and the platform will be applied in the enterprises for verification.
Keywords:REST; internet of things; discrete manufacturing
文章編號:1006-4303(2015)04-0425-06
中圖分類號:TP393
文獻標志碼:A
作者簡介:姚明海(1963—),男,浙江嘉興人,教授,研究方向為模式識別與智能控制,E-mail:ymh@zjut.edu.cn.
基金項目:國家自然科學基金資助項目(61070113);浙江省科技廳重大科技專項(2012C01035-8)
收稿日期:2013-02-08