一、 發現在建立station的時候存在一些問題,所以對技術文檔部分做一個詳細的了解,在這之前對出現的問題總結一下
1、 在 Windows操作系統中Application Direction中可以同時顯示幾個Station。啟動station之后status狀態一直顯示的是Starting 不能遞進到Running,但是Station也能打開。首先看運行狀態碼,出現443端口占用問題,查看占用443端口的服務,將其關閉。復制端口進程的PID碼 ,查看服務 使用命令 tasklist|findstr 。直接將其關閉即可 使用關閉服務命令taskkill /f /t /im “服務名””。成出現這種情況,可能還有其他的原因應當在響應的服務中設置開啟 。



2、入了將離線的Station復制導入到自己的Workbench中。
將C:\ProgramData\Niagara4.3\vykon\stations 中的station拷貝下來導入了另一台電腦 的相對應的目錄下。打開Application Direction 直接選取拷貝進的station 運行,輸入station的密碼即可。

二、Niagara platform框架的名詞解釋
1、Supervisor 其實就是自己的電腦安裝了Niagara workbench品台 。

· Station(站點):
它是Niagara的運行時程序,一個運行於Java虛擬機之上的Niagara 組件應用程序。后文還會詳細介紹。
· Workbench(工作台):
它是一個可視化的Niagara編程工具,類似於一個瀏覽器,它也是運行在Java虛擬機上的,用戶可以通過它用來訪問platform和station.
· Daemon(守護進程):
守護進程用來啟動station並管理着platform的配置項,比如IP地址等等。
· Web Browser(瀏覽器):
Niagara可以通過標准的瀏覽器來訪問。
2.和Niagara 架構相關的三個Protocols
上一節所述的4個Niagara程序通過3種網絡協議來進行交互。
· Fox:
它是一個基於TCP/IP的私有協議,用於station和station之間的通訊以及workbench和station之間的通訊。
·HTTP:
這里就是指標准的HTTP協議,瀏覽器通過http協議來訪問station中的網頁。
·Niagarad:
它是一個私有協議,用於workbench和daemon之間的通訊。
備注:Foxs協議和Https協議都是Niagara默認支持的協議,分別對應fox和http協議的加密版本協議。
3.Platforms(Niagara可以運行的平台)
Niagara 可以部署的平台非常廣,小到一個嵌入式設備,大到高端的服務器都可以。主要包括:
·Jace:
Java ApplicationControl Engine,這個詞用來指代各種沒有界面的,嵌入式設備平台。Jace上通常會運行一個Station和一個daemon進程,但是沒有workbench。Jace上通常運行的是QNX操作系統。
·Supervisor:
通常指運行在一個工作站或服務器上運行的station。Supervisor通常是指在整個系統中給其他station提供支持服務的station,這些服務包括歷史數據和報警數據的收集等。Supervisor通常用來指代一個station,但它也可以運行workbench和daemon。
·Client:
通常的client是指那些運行着桌面操作系統,比如Windows或Linux,通過workbench或者瀏覽器來訪問Niagara的設備。
4.Station (站點)
Niagara 架構是圍繞着面向組件編程(Component Oriented Programming)的概念來設計的。組件(component)是用java程序編寫的一個完備的部件,並通過模塊(module)來部署。各個組件通過連線的方式組合在一起實現特定的應用並通過 station runtime來執行。一個Niagara應用程序就是通過station來實現的。Station是一個名字為config.bog的XML文件。Bog文件中包含了一個組件樹,每個組件的屬性配置,以及各個組件是如何相互連接的。有很多創建station的方法:
1)在現場通過workbench圖形化編程工具創建
2)離線狀態下,通過workbench圖形化編程工具創建
3)產品設計過程中創建,並在生產過程中直接安裝到設備中(針對特定領域的固定應用)
4)在現場,根據現場設備情況,通過“自學習”的方式,動態創建.
那些不允許通過編程更改的station,通常叫做appliance。說到一個station,它可以在Jace上,也可以在Supervisor上。它只是描述了一個組件的運行時環境,對所有platform都是一樣的。Supervisor和Jace則是指明了platform的不同。
5.Daemon (守護進程)
Daemon是一個后台進程,它負責初始化並引導platform啟動。
它的功能包括:
1) 管理station安裝和備份station database
2) 加載和監控station
3) 配置Platform的 TCP/IP 設置
4) 安裝和升級操作系統(僅限於QNX系統)
5)安裝和升級Java 虛擬機
6)安裝和升級 Niagara 軟件
7)安裝多語言環境
8)安裝授權文件
在 Windows platforms上,daemon作為一個Windows service在后台運行. 在QNX系統上,它在啟動時作為daemon進程來運行。通常來說可以通過workbench訪問daemon的各個功能,具體的方法是,通過“Open Platform”命令來建立和遠程目標機的Platform會話。當會話建立起來后,PlatformSession提供一組可視化界面來呈現上面所述的各個功能。另外一種訪問daemon的方式是通過命令行的plat.exe命令。通過這種方式可以完成大部分workbench所提供的功能。
6.Workbench
Niagara提供了一個非常強大的工具——workbench。Workbench是基於bajaui widget建立的,它本身也是通過Niagara的標准組件模型創建的。
Workbench是為了提供一個通用的可以呈現不同用戶所開發的Niagara插件的可視化工具。最常見的插件是用來呈現Niagara組件和文件的視圖。其他還包括側邊欄和工具欄。
Workbench本身允許用戶通過BWbProfile API做訂制化開發。Profile允許開發者基於workbench的主架構來創建自己的應用,比如可以增加或移除:部分菜單條目,工具欄,側邊欄以及視圖。
7.Web UI
Niagara一個重要的特性就是能夠提供一個通過標准的瀏覽器能夠訪問的界面。Niagara同時提供客戶端和服務器端技術來創建網頁界面。
關於服務器端,Niagara通過Station中的WebService組件來提供HTTP和HTTPS。WebService提供一個標准的servlet引擎。Servlets通過BWebServlet的一個子類來部署。還有其他基於此的類和相關API來提供高階功能,比如BServletView。
Niagara提供了兩種針對client端的技術。第一個就是基於web的workbench。它允許標准的workbench通過Java插件運行在瀏覽器上。Web workbench通過一個叫做wbapplet的applet來下載客戶端運行workbench所需要的java模塊。這些模塊被下載之后會被緩存在瀏覽器上。
此外,除了web workbench,Niagara還提供了一種叫做hx的技術。Hx framework是一組包括服務端的servlet和客戶端的JavaScript庫。Hx支持一個不必基於Java插件的實時用戶界面。Hx只基於HTML,CSS和JavaScript。
Niagara通過Bajaux給用戶提供了一個開發基於網頁用戶界面的環境。在Niagara4,用戶界面更加偏重基於HTML5和web開放技術的用戶界面。Niagara提供了大量framework和應用,就是為了讓用戶可以創建自己的基於網頁的應用,小到一個field editor大到包含很多功能的整個頁面。更多關於此的信息請參照Niagara的Building JavaScriptApplication。
8.Fox
NiagaraFramework使用一個叫做Fox的私有協議來進行Station和station之間的通訊,以及workbench和station之間的通訊。Fox協議是基於TCP協議的點對點的通訊協議。Fox協議的默認端口是1911。Foxs協議是fox協議的加密版本,它默認的端口是4911。fox協議的特性包括:
1)基於TCP socket連接
2)摘要式身份驗證(用戶名/密碼加密)
3)點對點
4)請求/應答式
5)異步事件
6)流
7)通過channel multiplexing來支持基於一個socket的多個應用
8)基於文本的消息,便於調試
9)統一的消息格式
10)高性能
11)通過Java程序實現協議棧
9.API Stack
Niagara提供了一組API允許用戶自定義並擴展station和workbench。Niagara架構中各個軟件層的設計請參照下圖:
· Baja:
它是整個架構的最基礎部分,通過Baja moduleapi定義。這些api定義了架構基礎,包括模塊,組件模型,命名,導航和安全。
· Base Interfaces:
Niagara包括了一個可擴展的組件庫,這些模塊包含了很多標准的組件和API,比如:alarming, historicaldata collection, scheduling, and BQL.
· Drivers:
Niagara的一個設計初衷就是要支持各種協議。通過driver(驅動)模型,以便和其他設備進或系統行數據同步。驅動是通過驅動框架來創建的。驅動包括各種現場總線協議,bacnent和lonworks,也包括企業級系統,比如關系型數據庫和網絡服務。
· Human Interfaces:
系統提供了用戶界面擴展。Gx framework為底層圖形界面提供了一個標准的模型以及API。在gx之上是bajaui,它為各種的widget提供了一個專業的工具包。在bajaui之上就是workbench,workbench提供了各種插件的api。Px framework和工具用來幫助那些非程序員通過xml創建圖形界面。Bajaux framework幫助Niagara實現基於網頁的界面,比如應用HTML5, JavaScript以及其他web端開放技術。
