使用物件、物範本與物形式為資產建模
物件是具備內容及企業邏輯的實體裝置、資產、產品、系統、人員或流程的表示。
ThingWorx 透過提供「物範本」與「物形式」來協助為應用程式建模,讓您可以一次定義一個行為並跨應用程式重複使用該行為。「物範本」可透過其內容、服務、事件與訂閱,為「物件」提供基本功能。「物形式」允許跨單一應用程式中的資產重複使用內容。
「物件」會從「物範本」繼承功能。「物範本」可藉由實行「物形式」衍生出一或多個其他特徵。
使用者會與「物件」進行互動,以便取得應用程式中的資訊,以及讀取或寫入資料。
建立物件、物範本與物形式的最佳作法
建立「物件」、「物範本」與「物形式」時,請遵循下列最佳作法:
• 為您的物件、物範本與物形式定義命名慣例。請記住以下幾點:
◦ 請跨實體使用標準命名法。例如:您可跨不同的實體類型使用唯一命名空間前缀,以避免發生衝突。
◦ 為實體提供有意義的名稱。
◦ 嘗試為您建立的每個實體提供一段有意義的描述。
◦ 請避免使用不明確的名稱。
◦ 請盡量避免使用長實體名稱。
• 針對您建立及修改的所有實體使用標籤。對於複雜的應用程式而言,這有助於區分相同應用程式或多個應用程式的各種模組。對於客戶而言,這有助於區分 ThingWorx 平台相同實例上不同應用程式的實體。身為開發人員,它允許您透過 ThingWorx Composer 中的實體快速篩選,以及匯出應用程式的模組,以進行測試。建議為標籤設定命名慣例,當您計劃跨相同應用程式的不同模組使用不同標籤時尤其如此。
• 將模組中的相同實體編組到專案中。每個模組都有它自己的專案。
• 請盡可能使用「物形式」。
|
建議您使用物形式來定義内容與服務。如果您在「物範本」中定義內容與服務,則很難將其定義移至「物形式」。
|
◦ 在「物形式」層級定義所有內容、服務與事件。
◦ 「物範本」可用來為「物形式」編組及支援繼承。
◦ 請盡可能不要在「物範本」與「物件」中實行內容或服務。
◦ 允許在「物形式」與「物範本」中執行服務取代。
◦ 確保現成的「物形式」與「物範本」無法編輯。
◦ 定義註釋以識別支援的 API。如此可確保在升級時會保留服務與內容。
• 使用「物形式」封裝特定功能。透過使用「物形式」,您可以將新功能輕鬆新增至 ThingWorx 中的現有「物範本」。請勿直接在「物件」中實行「物形式」。請透過「物範本」在「物件」中繼承「物形式」的特徵。
例如,如果您已使用自訂「物範本」與「物件」實行資產,將「物形式」新增至這些「物範本」會很簡單。但是,如果內容或服務是在「物範本」中直接定義,您必須重新建立所有資產才能使用新功能,因為「物範本」或「物件」的基礎「物範本」無法變更。
• 請勿直接從系統「物範本」衍生「物件」。建議您建立衍生自 ThingWorx 所提供基礎物範本的自訂物範本。如此,您便可透過實行其他「物形式」並將其新增至「物範本」,於稍後新增其他功能。
• 如果您的應用程式擁有許多已連線的遠端裝置,或者使用 ThingWorx Edge Micro Server 或 EDGE SDK,請使用 RemoteThing 物範本,而不是 GenericThing 物範本作為基礎物範本。根據您需要檔案傳輸還是通道傳輸,使用 RemoteThingWithTunnels、RemoteThingWithFileTransfer 或 RemoteThingWithTunnelsAndFileTransfer 物範本。建議您透過指令集檢查是否存在未繫結的遠端「物件」,並在平台上自動建立這些「物件」,來自動化新增遠端繫結的流程。如此一來,您便可在新裝置出貨並投入生產時,在平台上自動建立「物件」。
|
建立「物件」或「物範本」之後,您無法再變更基礎「物範本」。
|
• 使用網路來定義「物件」之間的關係。在網路中,一個「物件」可以是另一個「物件」的父項、子項或同等項。這可讓您為階層結構建模。
永續性考量
此部份描述其他適用的考量事項:
• 安全性
◦ 請務必將所有「物件」、「物範本」與「物形式」都設定為無法編輯。
◦ 新增對「物範本」或「物形式」的適當可見度、執行時間與設計時間權限。
◦ 定義可存取物形式、物範本或物件的「使用者組織」、「使用者群組」與「使用者」。
• 升級
◦ 使用專案與標籤組織物件、物範本與物形式。如此,您便可以執行例如搜尋、匯出、修改可見度權限以及識別實體以進行升級等任務。
◦ 請確保您在建立實體時使用正確的命名慣例。這樣可以節省在升級期間重新命名實體的成本。
• 延伸與自訂
◦ 若要延伸元件物件,請建立繼承 OOTB 物範本的子類型物範本。
◦ 根據延伸功能開發人員的指示,取代子類型物範本中的服務與內容。
◦ 在新物形式中引入新服務與內容。