1 背景
1.1 背景和現(xiàn)狀分析
隨著城市建設(shè)進(jìn)程推進(jìn),在城市中建設(shè)了越來(lái)越多的地下管網(wǎng)和管井,包括通訊井、污水井、雨水井等多種類型。這些管井建設(shè)周期不一,由于道路擴(kuò)寬、市政規(guī)劃不完善等多種原因,導(dǎo)致這些數(shù)量龐大管井分布于主干道、非機(jī)動(dòng)車道、人行道甚至小區(qū)內(nèi),材質(zhì)和工藝也不統(tǒng)一,金屬井蓋易被盜,塑料材質(zhì)易破損,造成井蓋完好率低。管理長(zhǎng)期依賴于人工巡檢,若井蓋丟失不及時(shí)處理,行人和非機(jī)動(dòng)車可能跌落井中,造成人員傷害事件,近年來(lái)類似事件也常見于媒體報(bào)道。城市管理部門急需一種能在井蓋破壞或者丟失時(shí)候自動(dòng)報(bào)警,及時(shí)處理的技術(shù)手段支撐。
近年來(lái)隨著物聯(lián)網(wǎng)(IoT)技術(shù)的發(fā)展,在傳統(tǒng)的設(shè)備上面加裝智能傳感器,通過(guò)物聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)聯(lián)網(wǎng)、信息上報(bào)和控制,讓傳統(tǒng)不具備實(shí)時(shí)管理手段的設(shè)備接入到IoT平臺(tái)管理已經(jīng)成為一種趨勢(shì),推送了城市管理向“智能化”邁進(jìn)的進(jìn)程,越來(lái)越多的“智慧城市”應(yīng)運(yùn)而生。
成都四方信息技術(shù)有限公司20年來(lái)一直致力于通訊運(yùn)營(yíng)商M2M業(yè)務(wù)領(lǐng)域,對(duì)戶外啞資源的管理有深刻的理解和技術(shù)積累,先后開發(fā)出交接箱電子鎖,有線人井鎖,基站動(dòng)力環(huán)境監(jiān)控設(shè)備,無(wú)線人井鎖等戶外資源管理的物聯(lián)網(wǎng)設(shè)備。同時(shí)配套研發(fā)了啞資源管理系統(tǒng)(LOCMAN),為通訊運(yùn)營(yíng)商領(lǐng)域的物聯(lián)網(wǎng)的設(shè)備接入、管理和運(yùn)營(yíng)維護(hù)提供了全面的解決方案,先后在北京,深圳,杭州,沈陽(yáng),成都,重慶等城市規(guī)模部署運(yùn)用,支撐了北京奧運(yùn),APEC會(huì)議, G20峰會(huì)的通訊保障,獲得客戶一致好評(píng),取得了大量的物聯(lián)網(wǎng)應(yīng)用的實(shí)踐經(jīng)驗(yàn)和技術(shù)沉淀。
1.2 技術(shù)要求
基于對(duì)現(xiàn)狀的分析和城市管理要求,軟件平臺(tái)應(yīng)滿足:平臺(tái)兼容性和開發(fā)性、維護(hù)人員關(guān)聯(lián)性、告警及時(shí)性。
1.2.1 平臺(tái)兼容性和開放性
城市管井建設(shè)周期長(zhǎng),廠家不統(tǒng)一,要對(duì)這些數(shù)量眾多、廠家不同的井蓋實(shí)現(xiàn)統(tǒng)一管理,平臺(tái)必須具備兼容性和開放性。隨著“智慧城市”的建設(shè)步伐的加快,也要求平臺(tái)具備物聯(lián)網(wǎng)設(shè)備接入能力,不僅能接入智能人井,越來(lái)越多的不同類型戶外公共市政設(shè)施(路燈、垃圾桶等)也能接入進(jìn)行管理。
四方LOCMAN平臺(tái)底層包含物聯(lián)網(wǎng)(IoT)使能層,不僅對(duì)物聯(lián)網(wǎng)廣泛使用的公有協(xié)議(MQTT、HTTP等)具備接入能力,對(duì)廠家私有協(xié)議也能進(jìn)行適配。協(xié)議的開放性讓平臺(tái)能接入四方智能井蓋,也能兼容其它廠家井蓋。物聯(lián)網(wǎng)公共協(xié)議的采用,使得平臺(tái)具備了擴(kuò)展能力,遵循公共協(xié)議的其它戶外公共設(shè)施設(shè)備(如智能路燈、智能垃圾桶等)也能接入到平臺(tái)中進(jìn)行管理,真正推動(dòng)“智能城管”和“智慧城市”建設(shè)的進(jìn)程。
1.2.2 維護(hù)信息關(guān)聯(lián)性
城市井蓋數(shù)量多、分布廣,包含的基礎(chǔ)信息量大(如位置、GIS坐標(biāo)、廠家、尺寸、材質(zhì)、歸屬單位等),需依賴于大量的人員投入和維護(hù)。如果不對(duì)這些井蓋的基礎(chǔ)信息進(jìn)行有效的搜集和管理,在發(fā)生損害時(shí)候就難以快速定位,明確所屬單位,缺乏材質(zhì)、尺寸等信息可能造成更換不及時(shí),影響維護(hù)作業(yè)效率,無(wú)法實(shí)施精準(zhǔn)管理。城市管理水平的提升也要求人員配置的精準(zhǔn)化,將不同的人員分配到一定范圍的街區(qū)實(shí)現(xiàn)“網(wǎng)格化”管理。平臺(tái)要具備將不同片區(qū)管井關(guān)聯(lián)到該片區(qū)網(wǎng)格維護(hù)人員的能力,以便在發(fā)生破壞時(shí)能就近處理。
四方平臺(tái)對(duì)設(shè)施信息具備了靈活配置的能力,在固有屬性的基礎(chǔ)上,能通過(guò)定義擴(kuò)展屬性方式,將一些特定信息配置到井蓋上。對(duì)組織和人員的配置也具備靈活性,能通過(guò)組織樹的方式配置不同層級(jí)架構(gòu),為人員分配不同角色和權(quán)限。并將他們關(guān)聯(lián)到不同的設(shè)施管理歸屬上,實(shí)現(xiàn)管理的“網(wǎng)格化”。
1.2.3 告警及時(shí)性
在井蓋發(fā)生破損或者丟失時(shí)能及時(shí)通知相關(guān)維護(hù)人員到現(xiàn)場(chǎng)處理,是預(yù)防事故發(fā)生、防范于未然,實(shí)現(xiàn)“智能城管”的關(guān)鍵,因而要求平臺(tái)告警必須具備及時(shí)性。
四方智能井蓋采用數(shù)據(jù)流量聯(lián)網(wǎng)方式,在發(fā)生破壞或者丟失時(shí)候能通過(guò)無(wú)線通訊網(wǎng)絡(luò)及時(shí)上報(bào)到平臺(tái)。相比傳統(tǒng)短信方式延時(shí)短、可靠性更高。支持新一代的主流物聯(lián)網(wǎng)通訊和組網(wǎng)技術(shù)(NB-IoT)。告警信息到達(dá)平臺(tái)后通過(guò)告警規(guī)則引擎服務(wù)能力,會(huì)自動(dòng)匹配到井蓋歸屬的維護(hù)人員,將告警信息采用短信或者APP提示信息兩種方式,推送到維護(hù)人員手機(jī)上,及時(shí)告知現(xiàn)場(chǎng)處理排除隱患。
2 關(guān)鍵技術(shù)
2.1 IoT使能平臺(tái)
IOT使能平臺(tái)即基于物聯(lián)網(wǎng)的數(shù)據(jù)采集于應(yīng)用服務(wù)平臺(tái)。因物聯(lián)網(wǎng)生態(tài)產(chǎn)業(yè)鏈條很長(zhǎng),涉及技術(shù)領(lǐng)域眾多,到目前為止還沒有一家平臺(tái)公司能提供從終端管理監(jiān)測(cè)、連接管理到應(yīng)用開發(fā)、數(shù)據(jù)分析端到端的服務(wù),四方科技公司結(jié)合二十幾年在電信領(lǐng)域的軟件開發(fā)背景和經(jīng)驗(yàn),以及近十年在設(shè)備監(jiān)控領(lǐng)域的獨(dú)特的實(shí)踐經(jīng)驗(yàn),決定自主研發(fā)“基于物聯(lián)網(wǎng)的數(shù)據(jù)采集與應(yīng)用服務(wù)平臺(tái)”,簡(jiǎn)稱“IoT使能平臺(tái)”。
IOT使能平臺(tái)是提供應(yīng)用開發(fā)和統(tǒng)一數(shù)據(jù)存儲(chǔ)兩大功能的PaaS平臺(tái)。具體來(lái)看IOT使能平臺(tái)具體功能有提供成套應(yīng)用開發(fā)工具(大部分能提供圖形化開發(fā)工具,甚至不需要開發(fā)者編寫代碼)、中間件、數(shù)據(jù)存儲(chǔ)功能、業(yè)務(wù)邏輯引擎、對(duì)接第三方系統(tǒng)API等。物聯(lián)網(wǎng)應(yīng)用開發(fā)者在IOT使能平臺(tái)平臺(tái)上快速開發(fā)、部署、管理應(yīng)用,而無(wú)需考慮下層基礎(chǔ)設(shè)施擴(kuò)展、數(shù)據(jù)管理和歸集、通信協(xié)議、通信安全等問(wèn)題,降低開發(fā)成本、大大縮短開發(fā)時(shí)間。
IOT使能平臺(tái)幫助企業(yè)極大節(jié)省物聯(lián)網(wǎng)應(yīng)用開發(fā)時(shí)間和費(fèi)用,同時(shí)上層應(yīng)用大規(guī)模擴(kuò)張時(shí)無(wú)需擔(dān)心底層資源擴(kuò)展問(wèn)題。建立完整的IoT解決方案(從底層設(shè)備管理系統(tǒng)、網(wǎng)絡(luò)到上層應(yīng)用)對(duì)任何企業(yè)來(lái)說(shuō)都是浩大的工程,且需要眾多不同領(lǐng)域?qū)I(yè)技術(shù)人員聯(lián)合開發(fā)搭建,建設(shè)周期長(zhǎng)、ROI較低。IOT使能平臺(tái)幫助企業(yè)極大節(jié)省物聯(lián)網(wǎng)應(yīng)用開發(fā)時(shí)間和費(fèi)用,據(jù)Aeris測(cè)算,開發(fā)者使用IOT使能平臺(tái)開發(fā)應(yīng)用,可以節(jié)省70%的時(shí)間,使應(yīng)用更快能推向市場(chǎng),同時(shí)為企業(yè)節(jié)省了雇傭底層架構(gòu)技術(shù)人員的費(fèi)用。IOT使能平臺(tái)解決的另一個(gè)重大問(wèn)題時(shí)隨上層應(yīng)用靈活擴(kuò)展問(wèn)題,即使企業(yè)M2M管理規(guī)模迅猛增加,使用IOT使能平臺(tái)無(wú)需擔(dān)心底層資源跟不上連接設(shè)備擴(kuò)展速度。
2.2 微服務(wù)架構(gòu)
近十年左右作為平臺(tái)技術(shù)架構(gòu)主要采用SOA的架構(gòu)設(shè)計(jì)模式,由于 SOA 早期均使用了總線模式,這種總線模式是與某種技術(shù)棧強(qiáng)綁定的,比如:J2EE。這導(dǎo)致很多企業(yè)的遺留系統(tǒng)很難對(duì)接,切換時(shí)間太長(zhǎng),成本太高,新系統(tǒng)穩(wěn)定性的收斂也需要一些時(shí)間。最終 SOA 開起來(lái)很美,但卻成為企業(yè)級(jí)奢侈品,中小公司都望而生畏。在高速發(fā)展的現(xiàn)代社會(huì)環(huán)境中,傳統(tǒng)的SOA架構(gòu)無(wú)法真正快速的適應(yīng)業(yè)務(wù)的變化,使得平臺(tái)越來(lái)越重,越來(lái)越難以持續(xù)發(fā)展,最終給企業(yè)提供不了技術(shù)應(yīng)該帶來(lái)的業(yè)務(wù)提升和幫助企業(yè)發(fā)展。
在這樣的技術(shù)背景下,微服務(wù)架構(gòu)應(yīng)運(yùn)而生,微服務(wù),從本質(zhì)意義上看,還是 SOA 架構(gòu)。但內(nèi)涵有所不同,微服務(wù)并不綁定某種特殊的技術(shù),在一個(gè)微服務(wù)的系統(tǒng)中,可以有 Java 編寫的服務(wù),也可以有 Python、或C++ 編寫的服務(wù),他們是靠Restful 架構(gòu)風(fēng)格統(tǒng)一成一個(gè)系統(tǒng)的。
最粗淺的理解就是將微服務(wù)之間的交互看作是各種字符串的傳遞,各種語(yǔ)言都可以很好的處理字符串,所以微服務(wù)本身與具體技術(shù)實(shí)現(xiàn)無(wú)關(guān),擴(kuò)展性強(qiáng)。另一個(gè)不同是微服務(wù)架構(gòu)本身很輕,底層也有類似于 SOA 的總線,不過(guò)非常輕薄,現(xiàn)在看到的就兩種方式:MQ 和 HTTP,而 HTTP 都不能完全等同于總線,而僅僅是個(gè)信息通道。
微服務(wù)的架構(gòu)優(yōu)勢(shì):
l 獨(dú)立的可擴(kuò)展性
平臺(tái)的每個(gè)服務(wù)都可以獨(dú)立進(jìn)行橫向或縱向擴(kuò)展,根據(jù)業(yè)務(wù)實(shí)際增長(zhǎng)情況來(lái)進(jìn)行快速擴(kuò)展,真正實(shí)現(xiàn)業(yè)務(wù)服務(wù)高內(nèi)聚、松耦合,極大滿足復(fù)雜業(yè)務(wù)未來(lái)發(fā)展的可擴(kuò)展性。
l 獨(dú)立的可升級(jí)性
平臺(tái)的每個(gè)服務(wù)都可以獨(dú)立進(jìn)行服務(wù)升級(jí)、更新,不用依賴于其它服務(wù),結(jié)合持續(xù)集成工具可以進(jìn)行持續(xù)發(fā)布,開發(fā)人員就可以獨(dú)立快速完成服務(wù)升級(jí)發(fā)布流程,實(shí)現(xiàn)部分業(yè)務(wù)能力的增量升級(jí),有效保護(hù)現(xiàn)有其他業(yè)務(wù)服務(wù)能力不受干擾和影響,實(shí)現(xiàn)整體平臺(tái)的可靠性及平滑升級(jí)的能力。
l 故障和資源的隔離性
若系統(tǒng)中出現(xiàn)不好的資源操作行為時(shí),例如內(nèi)存泄露、數(shù)據(jù)庫(kù)連接未關(guān)閉等情況,基于平臺(tái)分布式的能力,此時(shí)的故障將僅僅只會(huì)影響單個(gè)業(yè)務(wù)服務(wù),不會(huì)影響到系統(tǒng)整體崩潰,導(dǎo)致業(yè)務(wù)完全中斷的情況。
l 易維護(hù)性
平臺(tái)每個(gè)業(yè)務(wù)服務(wù)的代碼均只專注于完成該單個(gè)業(yè)務(wù)范疇的事情,因此業(yè)務(wù)服務(wù)項(xiàng)目代碼數(shù)量將減少至IDE可以快速加載的大小,這樣可以提高了代碼的可讀性,進(jìn)而可以提高研發(fā)人員日常的生產(chǎn)效率,同時(shí)也解決了后期系統(tǒng)不斷迭代演進(jìn)中復(fù)雜度增加以后更易于修改和更替,有效保護(hù)系統(tǒng)資產(chǎn),極大的延續(xù)平臺(tái)生命力。
l 原生基于“云”的系統(tǒng)架構(gòu)設(shè)計(jì)
基于微服務(wù)架構(gòu)設(shè)計(jì)風(fēng)格,平臺(tái)能構(gòu)建出來(lái)原生對(duì)于“云”具備超高友好度的系統(tǒng),與常用容器工具如Docker能夠很方便地結(jié)合,構(gòu)建持續(xù)發(fā)布系統(tǒng)與IaaS、PaaS平臺(tái)對(duì)接,使其能夠方便的部署于各類“云”上,如公用云、私有云以及混合云。
l 優(yōu)化跨團(tuán)隊(duì)溝通
按實(shí)踐微服務(wù)架構(gòu)設(shè)計(jì)風(fēng)格,研發(fā)團(tuán)隊(duì)勢(shì)必會(huì)按照新的原則來(lái)進(jìn)行劃分,由之前的按照技能、職能劃分的方式變?yōu)榘凑諛I(yè)務(wù)(單個(gè)業(yè)務(wù)服務(wù))來(lái)進(jìn)行劃分,團(tuán)隊(duì)里將有各個(gè)方向技能的研發(fā)人員,溝通效率上來(lái)說(shuō)要優(yōu)于之前按照技能進(jìn)行劃分的組織架構(gòu),并且可以同時(shí)實(shí)現(xiàn)并行開發(fā)多個(gè)完整的業(yè)務(wù)服務(wù)。
l 語(yǔ)言無(wú)關(guān)性
研發(fā)人員可以選用自己最為熟悉的語(yǔ)言(JAVAC++Python等)和框架來(lái)完成他們的微服務(wù)項(xiàng)目,平臺(tái)在未來(lái)在面對(duì)新技術(shù)或新框架的選用時(shí),能夠更好地進(jìn)行快速響應(yīng),不受語(yǔ)言技術(shù)的限制。
組網(wǎng)架構(gòu)圖