Eclipse基金會(huì)新增物聯(lián)網(wǎng)項(xiàng)目
提起Eclipse,讀者首先想到的可能是廣泛使用的集成開(kāi)發(fā)環(huán)境,但是Eclipse基金會(huì)不僅有這個(gè)IDE,它還有超過(guò)250個(gè)的開(kāi)源項(xiàng)目,其目標(biāo)在于促進(jìn)業(yè)界參與者將標(biāo)準(zhǔn)與實(shí)現(xiàn)結(jié)合起來(lái)。最近,Eclipse為了推進(jìn)物聯(lián)網(wǎng)領(lǐng)域的標(biāo)準(zhǔn)化,添加了多個(gè)新的項(xiàng)目。
據(jù)負(fù)責(zé)Eclipse營(yíng)銷和生態(tài)系統(tǒng)的副總裁Ian Skerrett介紹,目前大多數(shù)的物聯(lián)網(wǎng)項(xiàng)目都是基于專有的解決方案,Eclipse希望通過(guò)一個(gè)開(kāi)放的M2M(machine-to-machine)協(xié)議以及相關(guān)的工具推進(jìn)開(kāi)放的物聯(lián)網(wǎng),關(guān)于M2M、Eclipse以及物聯(lián)網(wǎng),可以參見(jiàn)該文檔的介紹。目前,IBM、Sierra Wireless、Eurotech和Axeda已經(jīng)在Eclipse基金會(huì)下參與規(guī)范的制定和實(shí)現(xiàn)。不過(guò),Eclipse希望能夠有更多的公司參與進(jìn)來(lái)。
為了推進(jìn)這個(gè)愿景的實(shí)現(xiàn),Eclipse基金會(huì)新增了多個(gè)開(kāi)源項(xiàng)目,具體來(lái)講包括Ponte、Eclipse SCADA、Concierge以及Kura。目前這些項(xiàng)目大多還處于提議階段,但基金會(huì)希望這些新項(xiàng)目能夠結(jié)合一些已有的項(xiàng)目形成開(kāi)放的社區(qū)。
隨著物聯(lián)網(wǎng)技術(shù)的推進(jìn)會(huì)有越來(lái)越多的設(shè)備進(jìn)行互聯(lián),設(shè)備之間如何進(jìn)行交互成為了很大的挑戰(zhàn)。這些互聯(lián)的設(shè)備,通常稱之為機(jī)器(Machine),可 以分為傳感器和傳動(dòng)器(sensor和actuator)。傳感器會(huì)響應(yīng)現(xiàn)實(shí)世界中的事件,而傳動(dòng)器會(huì)響應(yīng)虛擬的事件。不管怎樣,在物聯(lián)網(wǎng)項(xiàng)目中,事件處 理都是核心的特性。如今,互聯(lián)的機(jī)器之間有多種稱之為M2M的協(xié)議,但是機(jī)器和人的需求是不一樣的,很難定義出同時(shí)滿足兩者的協(xié)議和最佳實(shí)踐。Ponte項(xiàng)目就是應(yīng)這種需求產(chǎn)生的,其涵蓋的范圍可以分為三個(gè)方面:
通過(guò)REST定義簡(jiǎn)單API來(lái)暴露機(jī)器的需求,基于相同的API支持多種協(xié)議(MQTT、CoAP);
提供多種數(shù)據(jù)格式,如JSON、XML、Msgpack以及Bysant 并提供各種方式之間進(jìn)行自動(dòng)轉(zhuǎn)換的方式,最終會(huì)定義出通用的傳感器和傳動(dòng)器數(shù)據(jù)展現(xiàn);
定義并構(gòu)建用戶驅(qū)動(dòng)的安全解決方案以支持所有設(shè)備之間的交互。
為了監(jiān)控和管理大規(guī)模的工業(yè)項(xiàng)目,基金會(huì)創(chuàng)立了Eclipse SCADA項(xiàng) 目。SCADA(supervisory control and data acquisition)是一類工業(yè)控制系統(tǒng)(ICS,industrial control system )的統(tǒng)稱。Eclispe SCADA的目標(biāo)在于將不同的設(shè)備以通用的通信系統(tǒng)進(jìn)行連接并且以圖形化的形式將數(shù)據(jù)展現(xiàn)給操作的用戶。Eclipse SCADA會(huì)基于openSCADA的代碼進(jìn)行開(kāi)發(fā)。Eclispe SCADA的范圍包括:
通信系統(tǒng);
內(nèi)部的通信總線
用來(lái)實(shí)現(xiàn)驅(qū)動(dòng)模塊/設(shè)備適配器的框架
內(nèi)置的一組驅(qū)動(dòng)模塊/設(shè)備適配器
監(jiān)控系統(tǒng),用來(lái)評(píng)估收集到的數(shù)據(jù)并存儲(chǔ)生成的事件;
一種數(shù)據(jù)存儲(chǔ)格式,用來(lái)存儲(chǔ)收集到的數(shù)據(jù);
創(chuàng)建參考實(shí)現(xiàn);
圖形化的用戶界面,展現(xiàn)監(jiān)控系統(tǒng)中的告警以及事件等信息。
針對(duì)小型的嵌入式設(shè)備,Concierge提供了OSGi核心規(guī)范的 實(shí)現(xiàn)。不管是面向終端用戶的設(shè)備如智能手機(jī)以及平板,還是傳統(tǒng)的M2M應(yīng)用,如傳感平臺(tái)和家用自動(dòng)化網(wǎng)關(guān),部署在上面的軟件都需要進(jìn)行有效的管理。在這方 面,OSGi是很重要的技術(shù),它可以提供很多的幫助,最初的OSGi也是應(yīng)用于嵌入式的領(lǐng)域,但是現(xiàn)在OSGi的實(shí)現(xiàn)更加關(guān)注于有充足資源的環(huán)境,包含的 功能非常多,很難嵌入到系統(tǒng)之中。正是基于這樣的現(xiàn)狀,Eclipse發(fā)起了Concierge項(xiàng)目,它是一個(gè)輕量級(jí)的OSGi實(shí)現(xiàn),針對(duì)嵌入式的設(shè)備進(jìn) 行了優(yōu)化,同時(shí)兼容于最新的OSGi核心規(guī)范,也就是目前的R5版本。它與Equinox的定位有所差別,但是未來(lái)會(huì)考慮兩個(gè)項(xiàng)目之間的協(xié)作。
Kura是 針對(duì)M2M服務(wù)網(wǎng)關(guān)(service gateway)的應(yīng)用框架,它基于OSGi的技術(shù)來(lái)實(shí)現(xiàn)。目前來(lái)講,大多數(shù)的網(wǎng)關(guān)都是私有的解決方案,這樣軟件系統(tǒng)的開(kāi)發(fā)和集成難度很大,并且軟件重用 性很低,Kura致力于抽象出這種復(fù)雜性,進(jìn)而為Java開(kāi)發(fā)人員提供一種更加便利的方式來(lái)進(jìn)行開(kāi)發(fā)。Kura的范圍包括:
為運(yùn)行在服務(wù)網(wǎng)關(guān)中的M2M應(yīng)用提供基于OSGi的容器。Kura的API和服務(wù)涵蓋了M2M應(yīng)用常見(jiàn)的需求。這些擴(kuò)展包括但不限于:I/O訪問(wèn)、數(shù)據(jù)服務(wù)、watchdog、網(wǎng)絡(luò)配置以及遠(yuǎn)程管理等等。
Kura包含了已有的javax.* API,如javax.comm、javax.usb以及javax.bluetooth,這樣當(dāng)需要這些功能時(shí),只需選擇一個(gè)符合Eclipse許可的開(kāi)源實(shí)現(xiàn)并將其打包為OSGi bundle就可以了。
設(shè)計(jì)了一個(gè)構(gòu)建環(huán)境,這個(gè)環(huán)境隔離了原生的代碼組件。
提供開(kāi)發(fā)環(huán)境,允許開(kāi)發(fā)人員在Eclipse IDE中以模擬環(huán)境運(yùn)行M2M應(yīng)用。
因?yàn)榛贠SGi技術(shù)實(shí)現(xiàn),因此Kura可以很容易地為M2M應(yīng)用集成所需的常見(jiàn)服務(wù)。目前,這個(gè)項(xiàng)目的參與者包括IBM、Hitachi以及openHAB等。
借助于Arduino和Raspberry Pi所引發(fā)的浪潮,有越來(lái)越多的開(kāi)源開(kāi)發(fā)人員開(kāi)始關(guān)注于硬件項(xiàng)目,這會(huì)是推進(jìn)物聯(lián)網(wǎng)發(fā)展的機(jī)遇,Skerrett希望這也能推動(dòng)基金會(huì)在這方面的發(fā)展。



