ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
带FSM的组件类实现Java接口Component。该接口定义了一系列状态间移动的方法。为了统一,每个方法关联一个通用的动作(actions)集合。这些动作主要在功能上实现一个组件在两个状态间迁移: * register() [INIT -> INACTIVE]:添加组件到映射表并存储,检验依赖条件是否满足(例如,新的端口必须添加到已经存在的交换机上) * boot() [INACTIVE -> ACTIVE]:打开控制信道,激活依赖的组件(例如:如果一个链路两端的端口上线,则启动该链路) * teardown() [ACTIVE -> INACTIVE]:关闭控制信道,激活依赖的组件(例如:如果一个端口下线,其关联的链路也会下线) * unregister() [INACTIVE -> STOPPED]:从映射表和存储中删除,去激活或者去注销依赖的组件。(例如:一条链路不再存在,所以必须调用unregister()函数,并且其关联的两个端口也要被注销。) 图2.1 给出了一个组件FSM的一般模型:状态迁移及其触发方法。派生自每个OVX组件类类都要实现Component及其FSM。 ![这里写图片描述](http://img.blog.csdn.net/20160429121347109) 图2.1 OVX组件FSM状态转移图 注意,一个组件只能从INACTIVE状态被激活(activated)或者被停止(stopped ),以保证所有依赖项在某依赖启动运行或从网络中删除之前能够被安全地处理。本节讨论了组件FSM如何被耦合到一起以完成组件依赖并实现网络状态同步。