數(shù)智化物聯(lián)網(wǎng)平臺(tái),從低代碼理念到物模型的演化
在數(shù)字化時(shí)代,物聯(lián)網(wǎng)和低代碼技術(shù)正逐漸改變著我們的工作和生活方式。本文將深入探討數(shù)智化物聯(lián)網(wǎng)平臺(tái)的發(fā)展,特別是低代碼理念在物聯(lián)網(wǎng)領(lǐng)域的應(yīng)用和物模型的演化。
近期學(xué)習(xí)低代碼產(chǎn)品的設(shè)計(jì)理念,在不同平臺(tái)上看到了很多觀點(diǎn),有的人認(rèn)為低代碼技術(shù)是福音,特別是國(guó)內(nèi)外IT大廠的官方說(shuō)法,總體對(duì)其保持樂(lè)觀態(tài)度。也有很多人拋出了低代碼簡(jiǎn)直就是“毒瘤”的觀點(diǎn)。
在學(xué)習(xí)過(guò)程中,尤其是了解新事物的過(guò)程中,我們始終都應(yīng)該帶著批判性的思維去看待各種觀點(diǎn),與直接認(rèn)同某個(gè)看起來(lái)正確的觀點(diǎn)相比,深入了解發(fā)言人的立場(chǎng)、了解他為什么抱有這種觀點(diǎn),才是更高層次的學(xué)習(xí)方式。
01 為什么不看好?
低代碼所處的位置比較尷尬,很多人認(rèn)為其恰恰處于一個(gè)半吊子的位置。尤其是從大多數(shù)程序員的視角來(lái)看,低代碼這個(gè)東西的定位非常雞肋。
首先,對(duì)于非技術(shù)人員,比如產(chǎn)品、運(yùn)營(yíng)、銷售甚至是甲方客戶來(lái)說(shuō),低代碼的操控并不算便捷,上手是有一定難度的,并且還需要系統(tǒng)的學(xué)習(xí),才能初步掌握其使用方法。
而對(duì)于開(kāi)發(fā)者來(lái)說(shuō),低代碼的自由程度和靈活性跟真正的代碼肯定無(wú)法比擬,一些用戶的靈活需求,如果要是一開(kāi)始設(shè)計(jì)的低代碼系統(tǒng)能配置還好,如果不能配置,最終還是得在底層進(jìn)行修改,而且修改起來(lái)肯定比直接按需開(kāi)發(fā)的系統(tǒng)費(fèi)勁的多。
這個(gè)東西就像混動(dòng)汽車一樣充滿爭(zhēng)議,混動(dòng)汽車的動(dòng)力系統(tǒng)介于油車和電車之間。認(rèn)為它好的人,認(rèn)為它平時(shí)既能燒電省錢,萬(wàn)一充不上電還可以加油續(xù)航,不用擔(dān)心趴窩,滿眼都是它的優(yōu)點(diǎn)。看不起混動(dòng)汽車的人,認(rèn)為它燒起油來(lái)比油車費(fèi)油的多,動(dòng)力又不太足,總之滿是槽點(diǎn)。
其實(shí),無(wú)論是用來(lái)舉例的混動(dòng)汽車也好,還是低代碼這個(gè)工具也好,處在中間位置的這類工具,必然是優(yōu)劣兼具,甚至還將某些優(yōu)勢(shì)和劣勢(shì)進(jìn)行了放大。關(guān)鍵還是要明確使用場(chǎng)景和使用者,之后恰當(dāng)?shù)厥褂迷摴ぞ?,從而揚(yáng)長(zhǎng)避短。
講到這里,我們需要明確低代碼這一工具,真正的使用者應(yīng)該是誰(shuí)。筆者認(rèn)為,應(yīng)該是數(shù)字化轉(zhuǎn)型技術(shù)廠商的“產(chǎn)品運(yùn)營(yíng)”或“售后/售前技術(shù)支持”??偠灾?,應(yīng)該交給乙方的非技術(shù)人員使用。這些專門人員在經(jīng)過(guò)合理的上崗培訓(xùn)后,也會(huì)熟練使用低代碼工具。
與此相匹配的工作流程是:產(chǎn)品研發(fā)者在大量項(xiàng)目中不斷積累經(jīng)驗(yàn),開(kāi)發(fā)出不同場(chǎng)景下對(duì)應(yīng)的低代碼產(chǎn)品,之后由乙方非技術(shù)人員操刀,通過(guò)與客戶進(jìn)行持續(xù)溝通,使用低代碼工具為同場(chǎng)景下不同的客戶配置并交付符合其使用習(xí)慣的最終平臺(tái),并在實(shí)際使用過(guò)程中發(fā)現(xiàn)問(wèn)題,提出需求,為研發(fā)團(tuán)隊(duì)迭代優(yōu)化低代碼產(chǎn)品提供依據(jù)。
(圖片來(lái)源:點(diǎn)維數(shù)智PM原創(chuàng))
02 數(shù)智化,走向標(biāo)準(zhǔn)還是定制
任何一家提供數(shù)字化轉(zhuǎn)型服務(wù)的技術(shù)廠商都會(huì)告訴你,不同行業(yè)、甚至同一個(gè)行業(yè)的不同公司,數(shù)字化產(chǎn)品的設(shè)計(jì)都是千差萬(wàn)別的。然而等他們以各種方式拿下項(xiàng)目后,研發(fā)人員一定都會(huì)想著在做系統(tǒng)時(shí),能不能照搬和復(fù)用之前做過(guò)的系統(tǒng),實(shí)在不濟(jì),參考著改一下也行。
數(shù)字化轉(zhuǎn)型產(chǎn)品,到底是走向標(biāo)準(zhǔn)化還是定制化,其實(shí)是一個(gè)難以抉擇的問(wèn)題。對(duì)于數(shù)字化轉(zhuǎn)型解決方案提供商來(lái)說(shuō),走標(biāo)準(zhǔn)化路線意味著可以大量、快速地復(fù)制并推廣其產(chǎn)品,從而極大減少邊際成本,實(shí)現(xiàn)持續(xù)盈利,也可以薄利多銷,讓數(shù)字化轉(zhuǎn)型技術(shù)普惠更多受眾。
另一方面,基于用戶使用體驗(yàn)來(lái)說(shuō),客戶也期望看到數(shù)字化轉(zhuǎn)型服務(wù)商深入其一線調(diào)研,并對(duì)其實(shí)際出現(xiàn)的問(wèn)題進(jìn)行深刻的理解,并最終交付與其業(yè)務(wù)流程高度匹配的產(chǎn)品。客戶的想法也很簡(jiǎn)單:“既然我給你錢了,那你的眼里只能有我,不要拿給別人做的東西復(fù)制過(guò)來(lái)糊弄我?!?/p>
而筆者個(gè)人的看法是,數(shù)字化產(chǎn)品也趨向于走入標(biāo)準(zhǔn)和定制的中間態(tài)模式。當(dāng)然,這種和稀泥的結(jié)論,也意味著產(chǎn)品設(shè)計(jì)者需要結(jié)合具體情況,審時(shí)度勢(shì),能力要求和主動(dòng)程度都需要進(jìn)行大幅度的提升。
在瀏覽過(guò)大量的項(xiàng)目案例后,筆者發(fā)現(xiàn),在很多產(chǎn)品場(chǎng)景中,使用低代碼可以很好地解決系統(tǒng)在標(biāo)準(zhǔn)化和定制化之間的平衡問(wèn)題。
流程引擎其實(shí)就是一個(gè)非常好的例子。目前很多低代碼或零代碼產(chǎn)品,都習(xí)慣性地往OA工具上發(fā)展,這就是因?yàn)榈痛a高度靈活性和可配置性的特點(diǎn),實(shí)實(shí)在在解決了企業(yè)審批系統(tǒng)的痛點(diǎn)。
比如說(shuō),一個(gè)大型制造業(yè)企業(yè)中,不同事業(yè)部、不同部門和不同產(chǎn)線上,審批流程花樣百出。還有的需要加很多規(guī)則在里邊,例如“資金超過(guò)200需要領(lǐng)導(dǎo)審批,低于200自動(dòng)通過(guò)”。再加上頻繁的人事調(diào)動(dòng),也意味著審批環(huán)節(jié)上的每個(gè)人都需要及時(shí)更新。
假如所有的流程都是研發(fā)同事們直接開(kāi)發(fā)出來(lái)的,那對(duì)于這種變動(dòng)非常頻繁,規(guī)則復(fù)雜且繁雜的應(yīng)用場(chǎng)景,幾乎每天都需要不斷迭代,耗費(fèi)大量開(kāi)發(fā)精力。
所以,如果OA系統(tǒng)靈活可配置,在日常運(yùn)營(yíng)過(guò)程中,即使流程千變?nèi)f化,也只需要安排一些普通員工隨時(shí)配置即可?,F(xiàn)在的OA工具,低代碼基本已經(jīng)占據(jù)主導(dǎo),但在其他領(lǐng)域,筆者認(rèn)為,這種產(chǎn)品理念貫徹地還不夠深入。
(圖片來(lái)源:點(diǎn)維數(shù)智PM原創(chuàng))
接下來(lái),筆者將通過(guò)自己設(shè)計(jì)的產(chǎn)品案例,來(lái)進(jìn)行低代碼這一產(chǎn)品理念在產(chǎn)品設(shè)計(jì)中應(yīng)用的復(fù)盤。在實(shí)際項(xiàng)目中,筆者對(duì)這兩個(gè)產(chǎn)品進(jìn)行了大膽創(chuàng)新,雖然還有很多地方需要完善,但這兩個(gè)案例,在低代碼解決數(shù)字化項(xiàng)目中標(biāo)準(zhǔn)與定制之間矛盾的問(wèn)題上,已初具雛形。
03 案例:樓宇自控項(xiàng)目復(fù)盤
樓宇自控系統(tǒng)一般會(huì)在智慧樓宇項(xiàng)目中體現(xiàn)。我們平日所見(jiàn)的高樓大廈,內(nèi)部都安裝著復(fù)雜的電氣設(shè)備,來(lái)保障樓宇內(nèi)環(huán)境的舒適。其中包括調(diào)節(jié)溫度的空調(diào)系統(tǒng)、保持室內(nèi)環(huán)境清新的送排風(fēng)系統(tǒng)、以及常見(jiàn)的給排水系統(tǒng)、變配電系統(tǒng)、照明系統(tǒng)等。
樓宇內(nèi)各種系統(tǒng)的詳細(xì)工作原理,日后再與大家做詳細(xì)討論。在數(shù)字化項(xiàng)目中,針對(duì)樓宇自控系統(tǒng),我們一般需要做如下功能:
- 設(shè)備臺(tái)賬管理,樓宇自控系統(tǒng)包含空調(diào)、送排風(fēng)機(jī)、潛水泵等設(shè)備設(shè)施,照明、電梯、監(jiān)控等電器也包含在內(nèi)。按照統(tǒng)一標(biāo)準(zhǔn)為所有設(shè)備建立臺(tái)賬,構(gòu)建逐一對(duì)應(yīng)關(guān)系,并在其他流程中引用,確立系統(tǒng)與硬件之間的交互關(guān)系,都需要基于設(shè)備臺(tái)賬這一系統(tǒng)基礎(chǔ)。
- 數(shù)據(jù)監(jiān)控,樓宇內(nèi)各個(gè)系統(tǒng)的傳感器或數(shù)據(jù)監(jiān)測(cè)點(diǎn),都可以實(shí)時(shí)采集大量數(shù)據(jù),例如當(dāng)下的溫度、濕度、送風(fēng)溫濕度、水箱水位等。數(shù)據(jù)監(jiān)控系統(tǒng)也是大多數(shù)綜合解決方案提供商所能做到的層次,核心技術(shù)就是協(xié)議解析、數(shù)據(jù)采集與分析。
- 下發(fā)控制命令,有采集信息的點(diǎn)位,必然也有下發(fā)控制指令的點(diǎn)位,例如設(shè)置空調(diào)制冷溫度,打開(kāi)送風(fēng)閥,控制水泵開(kāi)始運(yùn)作等等。在產(chǎn)品設(shè)計(jì)層面,我們可以設(shè)計(jì)為手動(dòng)控制,或根據(jù)一定的條件由系統(tǒng)自動(dòng)控制。
- 可視化,無(wú)論是組態(tài)圖繪制,還是數(shù)字孿生技術(shù)的使用,都是可視化的一種。
- 自動(dòng)調(diào)度,這也是最難但是能形成核心壁壘的東西,通過(guò)引入智能算法,根據(jù)現(xiàn)場(chǎng)條件,自動(dòng)控制樓宇內(nèi)各個(gè)環(huán)節(jié),達(dá)到環(huán)境舒適的同時(shí),又能節(jié)能,且可以延長(zhǎng)設(shè)備使用壽命的目標(biāo)。
筆者在設(shè)備臺(tái)賬管理、數(shù)據(jù)監(jiān)控和下發(fā)控制命令層面,引入了低代碼的設(shè)計(jì)理念,設(shè)計(jì)了一套自由,可配置化程度比較高的通用型產(chǎn)品。
首先,要想實(shí)現(xiàn)樓宇自控的基礎(chǔ)功能,大體需要規(guī)劃兩個(gè)模塊,一個(gè)是軟件平臺(tái),另一個(gè)是協(xié)議解析模塊。
先說(shuō)協(xié)議解析模塊,如果我們遇到比較好的硬件商家,從系統(tǒng)平臺(tái)上直接提供API接口,那開(kāi)發(fā)就可以直接寫代碼對(duì)接了,省時(shí)省力。如果硬件商家提供的是遵循某個(gè)協(xié)議的數(shù)據(jù)傳輸服務(wù),那我們就需要解析協(xié)議,并封裝成標(biāo)準(zhǔn)接口或消息推送,常見(jiàn)的物聯(lián)網(wǎng)傳輸協(xié)議包括obix、modbus等。
總之,提供給軟件平臺(tái)的,必然是已經(jīng)封裝好的標(biāo)準(zhǔn)化接口,按照以往的開(kāi)發(fā)方式,我們都會(huì)先按照客戶需求,開(kāi)發(fā)好對(duì)應(yīng)的界面,之后由開(kāi)發(fā)同事進(jìn)行接口對(duì)接,提取數(shù)據(jù)進(jìn)行分析,并做一些按鈕,下發(fā)控制指令。
這樣做的劣勢(shì)是,系統(tǒng)的定制化屬性太強(qiáng),特別還是智慧樓宇這種,不同客戶差異性比較大的項(xiàng)目,幾乎每換一個(gè)客戶,都要重新開(kāi)發(fā)一次。而且還需要拿到所有電氣及弱電系統(tǒng)的點(diǎn)位、設(shè)計(jì)圖之后,才能進(jìn)行分析、開(kāi)發(fā),不僅開(kāi)發(fā)量大,工期也難以保障。
所以,為了使系統(tǒng)更為靈活,筆者從數(shù)據(jù)角度出發(fā),對(duì)點(diǎn)位數(shù)據(jù)進(jìn)行分類整理,設(shè)計(jì)了一套智慧樓宇低代碼產(chǎn)品。產(chǎn)品部署完成后,可以由非技術(shù)人員進(jìn)行配置,在拿到設(shè)備點(diǎn)表以及接口列表后,可以快速配置并上線。
(圖片來(lái)源:點(diǎn)維數(shù)智PM原創(chuàng))
對(duì)智慧樓宇場(chǎng)景下的數(shù)據(jù)來(lái)說(shuō),如果按照數(shù)據(jù)類型來(lái)劃分,總共也就數(shù)字類型和模擬類型兩種。工科的同學(xué)可能清楚,數(shù)字類型無(wú)非就是0或1,例如設(shè)備的開(kāi)和關(guān),設(shè)備的在線/離線,就可以用0和1來(lái)代替。模擬類型則代表連續(xù)值,例如溫度值、濕度值等連續(xù)且可以在一定范圍內(nèi)任意取值的數(shù)據(jù)指標(biāo)。當(dāng)然,在實(shí)際場(chǎng)景中,受制于設(shè)備采集精度,也只能取離散值。
如果按照功能類型來(lái)劃分,所有的數(shù)據(jù)分為兩種,采集數(shù)據(jù)和控制數(shù)據(jù)。例如某些接口中的數(shù)據(jù),我們需要調(diào)用接口將其采集上來(lái),而某些接口中的字段,我們可以通過(guò)調(diào)用進(jìn)而控制其開(kāi)關(guān)或進(jìn)行溫度、濕度等數(shù)值的設(shè)定。
基于此,我們可以開(kāi)始設(shè)計(jì)智慧樓宇低代碼管理系統(tǒng)的雛形。首先,在主頁(yè)面設(shè)置一個(gè)列表,列表橫向分為三個(gè)區(qū),一是設(shè)備信息區(qū),用來(lái)導(dǎo)入設(shè)備臺(tái)賬;二是數(shù)據(jù)采集區(qū),用來(lái)讀取各個(gè)點(diǎn)位所檢測(cè)的數(shù)據(jù);三是控制指令區(qū),用來(lái)手動(dòng)發(fā)送控制指令。
在設(shè)備信息區(qū),我們可以添加一個(gè)導(dǎo)入功能,將設(shè)備臺(tái)賬中的設(shè)備導(dǎo)入進(jìn)去,并且獲取其設(shè)備ID。這樣就可以明確,每一行數(shù)據(jù)在調(diào)接口時(shí),采集的是哪個(gè)設(shè)備的信息。當(dāng)然,在設(shè)備信息區(qū),我們也可以隨設(shè)備臺(tái)賬加入其他設(shè)備屬性,例如設(shè)備名稱、設(shè)備位置、設(shè)備自定義編碼等。
在數(shù)據(jù)采集區(qū),我們可以逐個(gè)為指定設(shè)備添加一個(gè)個(gè)需要采集上來(lái)的字段,在配置每一個(gè)字段時(shí),我們需要配置以下幾點(diǎn)信息:
- 字段名稱:為這個(gè)數(shù)據(jù)指標(biāo)起一個(gè)自定義的名稱,例如出風(fēng)閥溫度,進(jìn)水流量,室內(nèi)溫度,設(shè)備在/離線狀態(tài)等。
- 字段類型:作為數(shù)據(jù)監(jiān)測(cè)字段來(lái)說(shuō),字段類型共分為兩類,一類是模擬類型,這種類型的字段直接取返回值即可,例如溫度,濕度等。另一類是枚舉類型,該類型一般能夠包含數(shù)字類型,不同的是,數(shù)字類型一般就是0和1兩種枚舉,而廣泛的枚舉類型,一般可以有多個(gè)枚舉值。枚舉類型的數(shù)據(jù),一般返回值都是枚舉值,例如0,1,2這樣的編碼,我們需要根據(jù)接口定義,對(duì)每一個(gè)枚舉值定義其含義,例如0代表關(guān)閉、1代表設(shè)備在線等等。
- 接口地址:對(duì)于系統(tǒng)來(lái)說(shuō),我們需要明確調(diào)用哪個(gè)接口,輸入對(duì)應(yīng)的調(diào)用值以后,才能返回我們需要的監(jiān)測(cè)數(shù)據(jù),一般每個(gè)接口在一定網(wǎng)絡(luò)范圍內(nèi)都會(huì)提供一個(gè)唯一的接口調(diào)用地址,我們將接口地址配置好,系統(tǒng)就知道找哪個(gè)接口去執(zhí)行調(diào)用操作了。
- 對(duì)應(yīng)字段:一個(gè)接口調(diào)用后,往往會(huì)返回一大堆值,那么具體返回的哪個(gè)值能對(duì)應(yīng)上我們配置的這個(gè)字段呢?這時(shí)候就需要明確所配置字段與實(shí)際接口返回字段的映射關(guān)系,將接口中對(duì)應(yīng)的返回值填入對(duì)應(yīng)字段輸入框。
控制指令區(qū)與數(shù)據(jù)采集區(qū)的道理基本相同,我們?cè)诳刂浦噶顓^(qū)配置控制字段時(shí),每個(gè)字段都需要配置字段名稱、字段類型、接口地址和對(duì)應(yīng)字段這幾項(xiàng),不同的是,數(shù)據(jù)采集區(qū)錄入的對(duì)應(yīng)字段要從接口的輸出值中找,而控制指令區(qū)錄入的對(duì)應(yīng)字段要從接口的輸入值中找。
(圖片來(lái)源:點(diǎn)維數(shù)智PM原創(chuàng))
04 物模型
以上章節(jié)都是在沒(méi)有相關(guān)理論知識(shí)儲(chǔ)備的情況下,作為一個(gè)新入門的產(chǎn)品經(jīng)理,在行業(yè)通用產(chǎn)品的設(shè)計(jì)過(guò)程中普遍的思考邏輯。
在對(duì)市面上成熟的物聯(lián)網(wǎng)平臺(tái)產(chǎn)品進(jìn)行使用和分析后,我們可以發(fā)現(xiàn),雖然與低代碼工具有一定差別,但物聯(lián)網(wǎng)平臺(tái)要實(shí)現(xiàn)其靈活性,貫徹低代碼的理念是非常重要的。
面對(duì)復(fù)雜多樣的物聯(lián)網(wǎng)設(shè)備,現(xiàn)行的通用且先進(jìn)的解決方案是將具有同一類功能的設(shè)備定義為一個(gè)產(chǎn)品,之后為這個(gè)產(chǎn)品匹配物模型。物模型在物聯(lián)網(wǎng)平臺(tái)中也是一個(gè)重要的概念,受篇幅限制,本次只進(jìn)行簡(jiǎn)單介紹,后續(xù)有機(jī)會(huì)我們可以詳細(xì)拆解。
當(dāng)我們把同一類功能相同的設(shè)備集合成一個(gè)產(chǎn)品后,對(duì)產(chǎn)品物模型的定義,要從三個(gè)維度進(jìn)行,分別是屬性、服務(wù)和事件。
- 屬性:設(shè)備的功能模型之一,一般用于描述設(shè)備運(yùn)行時(shí)的狀態(tài),如環(huán)境監(jiān)測(cè)設(shè)備所讀取的當(dāng)前環(huán)境溫度等。應(yīng)用系統(tǒng)可發(fā)起對(duì)屬性的讀取和設(shè)置請(qǐng)求。(相當(dāng)于給設(shè)備定義一個(gè)數(shù)據(jù)庫(kù),并且把表頭寫好)
- 服務(wù):設(shè)備的功能模型之一,設(shè)備可被外部調(diào)用的能力或方法,可設(shè)置輸入?yún)?shù)和輸出參數(shù)。相比于屬性,服務(wù)可通過(guò)一條指令實(shí)現(xiàn)更復(fù)雜的業(yè)務(wù)邏輯,如執(zhí)行某項(xiàng)特定的任務(wù)。(相當(dāng)于給設(shè)備定義好相關(guān)的功能接口)
- 事件:設(shè)備的功能模型之一,設(shè)備運(yùn)行時(shí)的事件。事件一般包含需要被外部感知和處理的通知信息,可包含多個(gè)輸出參數(shù)。例如,某項(xiàng)任務(wù)完成的信息,或者設(shè)備發(fā)生故障或告警時(shí)的溫度等,事件可以被訂閱和推送。(相當(dāng)于給設(shè)備加上幾個(gè)消息推送,并把消息體定義好)
物模型定義好以后,相當(dāng)于在物聯(lián)網(wǎng)軟件平臺(tái)上構(gòu)建好了相關(guān)設(shè)備的虛擬數(shù)字化實(shí)體,該虛擬實(shí)體實(shí)時(shí)映射實(shí)際設(shè)備,而我們接下來(lái)在搭建應(yīng)用時(shí),如設(shè)備臺(tái)賬、設(shè)備巡檢、組態(tài)可視化、邏輯編排等,可以直接面向已經(jīng)設(shè)置好物模型的虛擬數(shù)字化實(shí)體進(jìn)行操作。所謂數(shù)字化的第一步——數(shù)據(jù)采集,我們也算踏過(guò)了其中一個(gè)門檻。
本文由 @點(diǎn)維數(shù)智空間 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自 Unsplash,基于 CC0 協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)
- 目前還沒(méi)評(píng)論,等你發(fā)揮!