Niagara AX常见单词深入理解1

本文介绍了Niagara框架的核心组件,包括Station、Workbench、Daemon及WebUI等,详细解释了各部分的功能及其相互间的通讯机制,并概述了Niagara支持的平台类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不慌先热热身醒醒啊:

1、女友:“你在我之前是不是处了好几个对象?”
我:“你怎么看出来的?”
女友:“没看出来,我感觉出来的。。。”
我。。。

2、经过女同事的位置,她指着电脑问我:“你是不是有一件这样的衣服?”
我看了看说:“嗯是的,想买给你老公?”
她:“你上星期打麻将说先欠着我三百时,穿的就是这件衣服。”

3、女友说心情不好,要我陪她玩游戏,石头剪刀布,谁输了就发红包给对方,每次一块钱,结果一晚上下来,我硬是输了一百多,还欠了她200。。。
因为,她的石头是金刚石,剪刀是任意剪,布是铁布衫;而我的石头是粉滑石,剪刀是锈铁剪,布是破抹布。。。

4、今早,在上班的路上接到女友电话,说她刚下公交车就发现,她包的拉链是开着的,可能是遇到了小偷,我赶紧让她看看包里丢了什么东西没有。
电话里就听到她说:钱包,钥匙,化妆品。。。老公,我手机不见了!!!

5、同事老婆刚生了双胞胎儿子,引得一群人问他,生双胞胎有啥秘诀么?同事一听这个,便气定神闲的喝了口茶,说:当然有了,先给我点根烟~
有人毕恭毕敬的给他点上,众目睽睽之下,同事很淡定的说:让我来啊。。。
沈默三秒后,场面就控制不住了。。。

来了来了;


1.和


· Station(站点):

它是Niagara的运行时程序,一个运行于Java虚拟机之上的Niagara 组件应用程序。运行于Platform这个服务之上的具体应用,也就是站点。win系统下,Station在物理结构上就是一个文件夹,包含了核心的xml配置文件(Niagara把它打包成了bog后缀)和周边的图片、文本等。由platform对其进行解析运行,由Workbench对其进行解析查看.在PC机上可以同时运行多个,使用不同的fox端口,station之间通过fox协议连接。在JACE上只能运行1个,同样与Workbench的打开与否无关。

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的不同。


· Workbench(工作台):

Workbench他娘的就是Niagara的‘用户智能开发界面’--它是一个可视化的Niagara编程工具,你所看到的东西,说白了就是个软件界面,用于操作和观看的,类似于一个浏览器,它不是Niagara,而只是Niagara的图形化的开发工具,但是这个开发工具有别于以往我们所使用的自动化系统的开发工具,以往的自动化系统开发工具,主要是完成程序的编译和下载过程,但是Workbench可以实时反映所开发和修改的Station的状态(实时编程),并且我们可以同时打开多个station,也可以用多个Workbech连接一个station,为什么我要说是连接呢,因为Workbench 和station之间建立的是就是一个通讯连接,衔接的关键部件正是NiagaraD。NiagaraD也不是Niagara,它是一个运行操作系统之上的一个守护进程,可以理解为一个常驻后台的服务,可以在任务管理器中找到它。它负责接收Workbench的命令,对Platform和station进行修改和设置,说白了就是完成文件的读写操作,不同版本的操作系统和Niagara有不同的NiagaraD。它也是运行在Java虚拟机上的,用户可以通过它用来访问platform和station.Niagara提供了一个非常强大的工具——workbench。Workbench是基于bajaui widget建立的,它本身也是通过Niagara的标准组件模型创建的。
Workbench是为了提供一个通用的可以呈现不同用户所开发的Niagara插件的可视化工具。最常见的插件是用来呈现Niagara组件和文件的视图。其他还包括侧边栏和工具栏。

Workbench本身允许用户通过BWbProfile API做订制化开发。Profile允许开发者基于workbench的主架构来创建自己的应用,比如可以增加或移除:部分菜单条目,工具栏,侧边栏以及视图。


· Daemon(守护进程):

Daemon是一个后台进程,用来启动station并管理着platform的配置项,比如IP地址等等。,它负责初始化并引导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所提供的功能。


· Web Browser(浏览器):


Niagara可以通过标准的浏览器来访问。

.和Niagara 架构相关的三个Protocols

上一节所述的4个Niagara程序通过3种网络协议来进行交互。
· Fox:
它是一个基于TCP/IP的私有协议,用于station和station之间的通讯以及workbench和station之间的通讯。
·HTTP:
这里就是指标准的HTTP协议,浏览器通过http协议来访问station中的网页。

·Niagarad:
它是一个私有协议,用于workbench和daemon之间的通讯。

备注:Foxs协议和Https协议都是Niagara默认支持的协议,分别对应fox和http协议的加密版本协议。

.Platforms(Niagara可以运行的平台)


是安装在一台Niagara主机上不属于Niagara Station的部分的统称,运行于OS后台的服务(niagara service),即使不打开Workbench,它该运行还是在运行,可以通过直接在OS服务管理器里面进行停止和开启;

Windows平台下,platform是服务,在物理结构上就是一堆dll文件,在windows后台运行;

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的设备。

.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。 

.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程序实现协议栈
### 回答1: CentOS 7启动httpd服务失败可能有多种原因,以下是一些常见的解决方法: 1. 检查httpd配置文件是否正确:可以使用命令`httpd -t`检查httpd配置文件是否正确,如果有错误,需要修改配置文件。 2. 检查端口是否被占用:可以使用命令`netstat -tlnp`查看端口是否被占用,如果被占用需要释放端口或修改httpd配置文件中的端口号。 3. 检查httpd服务是否安装:可以使用命令`rpm -qa | grep httpd`查看httpd服务是否安装,如果没有安装需要先安装httpd服务。 4. 检查httpd服务是否启动:可以使用命令`systemctl status httpd`查看httpd服务是否启动,如果没有启动需要使用命令`systemctl start httpd`启动httpd服务。 5. 检查SELinux是否开启:如果SELinux开启,可能会导致httpd服务启动失败,需要使用命令`setenforce 0`关闭SELinux,或者修改SELinux策略。 以上是一些常见的解决方法,如果以上方法都无法解决问题,可以查看httpd服务日志文件,找到具体的错误信息,然后根据错误信息进行解决。 ### 回答2: CentOS 7上的httpd服务启动失败可能有多种原因。以下列出了一些常见问题和解决方法: 1. 端口被占用 当httpd试图占用已被其他程序占用的端口时会启动失败。此时可以通过使用`netstat -tunlp`命令检查端口占用情况,然后杀死占用该端口的进程及时释放端口。或者修改httpd的配置文件,将端口修改为未被占用的端口。 2. 配置文件错误 有时httpd服务的配置文件中可能出现错误,例如语法错误或路径错误等等。在启动httpd服务之前,可以使用`apachectl configtest`命令进行检查,如果输出“Syntax OK”,则表示配置文件没有错误。如果出现错误,则需要根据错误提示进行相应修改。 3. 依赖关系问题 如果httpd依赖的其他程序或库缺失,也会导致启动失败。可以通过使用`systemctl status httpd.service`命令来查看httpd服务状态,如果输出“Failed to start”或“Loaded: failed”,则需要检查依赖关系是否完整。 4. SELinux问题 当SELinux启用时,有时会导致httpd服务启动失败。在这种情况下,可以在SELinux上禁用httpd服务,或者修改httpd配置文件解决SELinux相关的问题。 5. 用户权限问题 httpd服务启动可能需要特定的用户权限。如果使用的用户权限不够,则无法启动。可以尝试使用root用户启动httpd服务,或者根据需要修改相应的用户权限。 ### 回答3: CentOS 7中的Apache HTTP服务器(httpd)是一个常见的Web服务器,如果遇到httpd服务启动失败的情况,可能会影响服务器正常的工作和对外服务的稳定性。本文将提供一些可能会导致httpd服务启动失败的原因,并给出相应的解决方法。 1. 端口被占用 如果端口被其他进程占用,httpd服务就无法启动。可以通过 netstat -tulpn 命令查看端口占用情况,并杀死占用该端口的进程。如果端口被 httpd 服务自身占用,可以通过 systemctl restart httpd 命令重启 httpd 服务;如果是其他进程占用了端口,可以通过 kill 命令杀死该进程或更改 httpd.conf 文件配置,将 httpd 服务的端口改为其他空闲端口,重新启动。 2. 配置文件错误 httpd 服务的配置文件通常是 /etc/httpd/conf/httpd.conf,如果其中存在语法错误、权限问题或者其它配置错误,可能会导致 httpd 服务启动出错。可以通过将 httpd.conf 文件备份后删掉,重新执行 yum install httpd 命令安装 httpd 服务,然后手动修改 httpd.conf 文件,逐个检查每个配置项是否正确,确认无误后重启 httpd 服务。 3. SELinux 问题 SELinux 是 CentOS 7中提供的一种安全模块,它可以对系统文件和应用程序进行安全管控。如果 SELinux 配置不正确,可能会阻止 httpd 服务正常启动。可以通过修改 /etc/selinux/config 文件中 SELINUX=disabled 来暂时关闭 SELinux,然后重新启动 httpd 服务;或者一个更优的方式是,根据日志确定问题原因,使用命令 semanage 或者 setsebool 等工具将相关目录或者配置加入到 SELinux 许可列表中,重新启动 httpd 服务,以恢复服务正常工作。 4. 防火墙问题 如果你的 CentOs 7 服务器启用了防火墙,有可能会导致 httpd 服务启动失败。可以通过检查防火墙相关配置来确定问题原因,解决方案是修改防火墙规则,将端口 80 或者 443 等 httpd 服务需要的端口放行,重新启动 httpd 服务。 总之,当遇到 httpd 服务启动失败时,不要慌张,可以先通过日志或者执行命令查看错误信息,找到错误原因,然后根据错误原因一步一步解决问题。在解决问题过程中注意备份原始配置文件,以免造成不必要的损失。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值