一个完整的系统通常都是由许多不同的功能模块构成,模块和模块之间有不同的接口。这些接口可以采用松耦合的方式,也可以采用紧耦合的方式。所谓的松耦合的方式指的是不同模块之间通过队列、共享内存、Socket等方式实现所需要的接口的信息传递,即不通过直接调用被引用模块所提供的函数(接口)的方式。所谓的紧耦合的方式,即直接调用被引用模块所提供的函数(接口)的方式。
在系统架构中,不同的模块之间的接口可以采用松耦合的方式互相提供/引用接口,也可以采用紧耦合的方式进行,但是,通常意义上,紧耦合的方式相对松耦合的方式能够提供更高的系统性能。
对于松耦合的方式,可以通过操作系统提供的系统服务,如队列、消息、信号量等,提供一致的接口,通过这样的方式能够提供较好的模块之间的无关性。但是,对于交换机/路由器之类的网络产品,处于系统整体性能的考虑,大部分的模块之间采用紧耦合的方式互相引用。这就造成了模块直接很强的依赖性,不便于系统的扩展和裁剪。因此,必须提供一个系统层面的配置管理机制,提供类似于队列、消息这样的一种机制,能够实现通过紧耦合的方式互相引用的模块之间的独立性。
Hook-bait就是通过定义一系列的规则、方法,使得按照这些规则、方式实现的彼此关系紧密地模块之间能够实现互相之间的独立性、无关性,实现系统可裁剪、可扩展的目标。