安裝與升級 > 部署架構指南 > ThingWorx Foundation 部署元件
ThingWorx Foundation 部署元件
您可將 ThingWorx 元件想像成在三層中 - 用戶端、應用程式與資料。以下幾個圖顯示了任何 ThingWorx 解決方案的基本起點:
物件/裝置:此層包含與 ThingWorx 平台連接、傳送資料至 ThingWorx 平台以及從 ThingWorx 平台接收內容的物件、裝置、代理與其他資產。
使用者/用戶端:此層包含人們用來存取 ThingWorx 平台的產品 (主要是 Web 瀏覽器)。
平台:平台層 (或應用程式層) 是 ThingWorx Foundation 所在的位置,擔任 ThingWorx 系統的中心。此層提供與用戶端層的連線、執行驗證與授權檢查、內嵌/處理/分析內容,以及對傳送警示等條件做出反回應。
資料庫:資料庫層會維護 ThingWorx 執行時間模型中繼資料與系統資料:
模型中繼資料包括 ThingWorx 實體定義、物件定義及其關聯的內容定義。
針對 ThingWorx 模型執行時間資料內嵌。資料可以是表格或時間序列資料,其會由 ThingWorx model 保持為部落格、wiki、串流、值串流與資料表中的內容列。
隨著 ThingWorx 解決方案在功能與複雜度方面的成長,每一層的結構需求也都會成長。
以下幾節將介紹元件操作時所在層內 ThingWorx 解決方案的每個元件。
使用者/用戶端元件
必須要有透過 ThingWorx Composer 或透過執行時間混搭存取 ThingWorx 平台的使用者或用戶端,才能使用支援 HTML/HTML5 的最新瀏覽器 (例如:Microsoft Edge、Firefox、Safari 或 Chrome)。
物件/裝置元件
ThingWorx Edge MicroServer - ThingWorx Edge MicroServer (EMS) 可與需要透過網際網路連線至 ThingWorx 伺服器的 Edge 裝置或資料儲存區搭配使用。它可讓位於防火牆後的裝置與資料儲存區能夠安全地與 ThingWorx 伺服器通訊,並在解決方案環境中成為完整參與者。ThingWorx EMS 不是簡單的連接器,但可讓您對要移至 Edge 的資料進行智慧及預先處理。
ThingWorx Edge SDK - ThingWorx Edge SDK 是類別、物件、函數、方法與變數的集合,它們提供一個架構,可用來建立將資料從 Edge 裝置安全傳送至 ThingWorx 平台的應用程式。ThingWorx Edge SDK 為具有 C、.NET 及 Java 程式設計語言經驗的開發人員提供工具。
ThingWorx EMS 與 ThingWorx Edge SDK 支援透過 Proxy 連線。管理 Proxy 組態與關聯變更管理的流程會因客戶與/或專案而異。ThingWorx Edge SDK 提供最大的彈性,由於 SDK 程式庫可由任何自訂 Edge 元件包括或參考,因此可以根據解決方案的設計來更新。
平台元件
ThingWorx Connection Server - ThingWorx Connection Server 是一種伺服器應用程式,可協助遠端裝置的連線,以及處理與裝置之間路由的所有訊息。ThingWorx Connection Server 可使用 ThingWorx AlwaysOn 通訊協定,在 Websocket 上提供可擴充的連線能力。當要從 ThingWorx Foundation 伺服器卸載管理連線的資產超過 25,000 個時,PTC 建議使用連線伺服器。在高可用性組態中需要連線伺服器,才能跨使用中叢集節點分配裝置連線。PTC 也建議針對每 100,000 個對於 ThingWorx Foundation 伺服器的同時連線使用至少一個連線伺服器。這個裝置與連線伺服器的比率可能會隨著許多因素而變更,例如:
裝置數量
從裝置寫入提交的頻率
Tomcat - Apache Tomcat 是由 Apache Software Foundation (ASF) 所開發的開放原始碼 servlet 容器。Tomcat 實行了 Oracle Corporation 的 Java Servlet 與 Java Server Pages (JSP) 規格,並提供一個純 Java HTTP Web 伺服器環境來執行 Java 程式碼。
ThingWorx Foundation 伺服器 - ThingWorx Foundation 提供機器對機器 (M2M) 與 IoT 應用程式的完整設計、執行時間與智慧環境。ThingWorx Foundation 的設計目的是為了有效地建立、執行及擴大從遠端資產中控制及報告資料的應用程式,例如連線的裝置、機器、感應器和工業設備。
ThingWorx Foundation 可成為 ThingWorx 環境的中心。其中包括可協助您開發應用程式以定義在您的環境中部署之遠端資產 (或裝置) 的行為,以及資產之間關係的一組工具。
為資產建模之後,它們可以註冊並與 ThingWorx Foundation 通訊,讓您監視及管理實體裝置並從中收集資料。
資料庫元件
ThingWorx 平台提供插入式資料存放區模型,其可讓每個客戶選擇最適合其需求的資料庫 - 從示範或訓練環境的小型實行,到支援每秒數千個交易的高度可用、高容量資料庫。
會將值串流、串流、資料表、部落格與 wiki 定義為 ThingWorx 的資料提供者。會將資料提供者視為儲存執行時間資料的資料庫。執行時間資料是在物件組成後將持續存在的資料,且可由相連裝置用來儲存其資料 (如溫度、濕度或方位)。模型提供者可用於儲存有關物件的中繼資料。
持續性提供者可以包含資料提供者、模型提供者或兩者。
如需有關資料庫選項的詳細資訊,請參閱持續性提供者
高可用性元件
高可用性是企業連續性的重要考量因素。必須在應用程式與資料庫層上套用高可用性元件才有效。
從 9.0 發行版本開始,即可在具有處理企業邏輯與使用者請求的叢集組態中部署 ThingWorx。此組態可取代先前發行版本中提供的主動-被動容錯移轉組態。
在叢集組態中,需要有連線伺服器才能跨主動叢集節點分配裝置連線。
ThingWorx 應用程式層需要 Apache ZooKeeper 和 Apache Ignite 作為其他元件。高可用性資料庫層需求取決於所選資料提供者的需求。
* 
高可用性的考量因素必須超出軟體堆疊之外才能真正有效。也應評估諸如電源、硬碟及網路基礎結構 (路由器、負載平衡器、防火牆等) 的多餘基礎結構。
ZooKeeper - Apache ZooKeeper 是一種集中式服務,可維護組態資訊、命名、提供分散式同步處理,並提供群組服務。這是跨整個叢集啟用同步處理之分散式應用程式的協調服務。在 ThingWorx 的特定情況下,ZooKeeper 可用來監視叢集節點可用性,並在在失敗時選擇新的 ThingWorx Foundation 前置節點。
Ignite - Apache Ignite 是一種開放原始碼的分散式資料庫、快取與處理平台,專門設計來跨節點叢集儲存及計算大量資料。在叢集 ThingWorx 部署中,Ignite 可用來儲存及維護跨叢集中所有節點之裝置資料的共用快取。
磁碟使用量最少的 HA 部署
Ignite 可以內嵌在 ThingWorx Foundation 流程中執行,而不需要單獨安裝。只有當環境足跡比效能更重要時,才應使用內嵌 Ignite。它應該用於僅需要高可用性而無需擴充的小型環境。它無法擴充,且無法解決效能問題。
在內嵌 Ignite 雙伺服器方案中,唯一的優勢是讀取。Ignite 會將某些資料標記為伺服器 A 上的主要資料、將某些資料標記為伺服器 B 上的主要資料,並將其他伺服器用於資料備份。通常,所有讀取都會移到主伺服器中的資料。這可能是遠端呼叫,也可能不是遠端呼叫。在內嵌 Ignite 中,主要差異是您可以將從備份讀取設為 true。在這種情況下,讀取不會跳躍網路。
寫入不一定會進入相同電腦,且會導致在另一台電腦上進行備份。因此,不會提升寫入功能的效能優勢。
執行內嵌 Ignite 可能會降低效能,這要視電腦的大小而定。單一伺服器 ThingWorx 設定與 HA 叢集中的 Ignite 伺服器實例不同:
與平台共用記憶體。除了儲存內容記憶體以外,Ignite 還會新增其他佇列與其他物件。
JVM 的執行緒數目有限,可隨時根據 CPU 數目來啟動。Ignite 需要許多執行緒來處理請求、備份資料以及執行某些例外任務。單一伺服器沒有此負載。
進出快取的所有物件都會在 HA 系統中序列化,而單一伺服器設定中的 caffeine 快取圖層並非如此。
資料庫高可用性功能
PostgreSQL - ThingWorx 支援使用 PostgreSQL 高可用性作為資料解決方案。高可用性可供您設定單獨的伺服器,以在主要伺服器失敗時,捕捉資料的讀取與寫入。如需詳細資訊,請參閱 PostgreSQL 高可用性
SQL Server - 一般而言,SQL Standard 版本適用於生產使用,因為它能夠支援大多數必要功能。針對需要高可用性功能、記憶體內 OLTP 或表格與索引分區的生產設定,建議使用 SQL Enterprise 版本。如需詳細資訊,請參閱 Microsoft SQL Server 高可用性
InfluxDB Enterprise - 提供 InfluxDB 資料庫的叢集版本。叢集可讓資料跨節點共用,以支援高可用性與水平擴充,允許透過不同的伺服器執行讀取與查詢,以增加整個系統的可擴充性。可以輕鬆擴展資料節點數以支援新工作負載。如需詳細資訊,請參閱將 InfluxDB 用作持續性提供者
這是否有幫助?