使用delphi 开发多层应用(二十三)KbmMW 的WIB

简介: 解释WIB 是什么之前,先回顾以下我们前面的各种服务工作方式。前面的各种服务的工作方式都是请求/应答方式。 客户端发送请求,服务器端根据客户端的请求,返回相应的结果。这种方式是一种顺序式访问,是一种紧耦合的方式。

      解释WIB 是什么之前,先回顾以下我们前面的各种服务工作方式。前面的各种服务的工作方式都是请求/应答方式。

客户端发送请求,服务器端根据客户端的请求,返回相应的结果。这种方式是一种顺序式访问,是一种紧耦合的方式。

服务器被动接受访问,服务器无法直接给客户端发消息。针对这种情况出现了发布/订阅方式。现在这种方式很热呀!

      发布/订阅方式类似出版社发行杂志,出版社每年要求大家订阅杂志,当你订阅后,每月到时,不管你有没有问,

杂志都会准时送到你家门口。对于计算机系统类似,当你订阅了服务器上的某种消息后,不管你是否一直访问?当服

务器上的这个消息来时,客户端就会自动触发消息事件。客户端就可以针对该消息进行相应的处理。

      每一个发布者与订阅者连接在一个虚拟的总线上,这个总线就叫WIB(Wide Information Bus).叫Information Bus,

是因为这是一个虚拟的信息传输通道。wide 是因为这个总线可以传输任何KbmMW 识别的数据类型。比如说数组、流、

数据集等等。

      任何连接在WIB 上的服务器或者客户端都可能作为发布者或者是订阅者,因此在WIB 里面不再区分服务器与客户端,

统一将他们称为节点(nodes).任何节点都可以生产或者消费消息。

    WIB 既可以在一个局域网内,也可以跨越到intranet,乃至这个internet 上。

下图是一个典型的多网段的发布/订阅方式的原理图

 

     上图中所有的服务器与PC 都是节点。当然有的只发布信息,有的只接受信息,有的即发布信息也接受信息。既然是发布/订阅方式,作为双方通信,

肯定就要一个主题(subject). 发布者发布主题,订阅者订阅主题。当发布者发布一个主题时,根据订阅者的要求。发送到对应的订阅者。

      在KBM中,主题是一个支持通配符的字符串组成的,类似上面图里面的MSG.A.B.C,每个. 表示不同的消息划分。主题的开始必须是这些

打头的:MSG, REQ, RES, SUB, USB, CAC,THR, SRV。

先简单的说一下消息匹配的方式,比如说发布的主题为: MSG.F.G, 那么订阅者可以订阅MSG.F.G, 也可以订阅MSG.*.G

也可以订阅MSG.F.>   . 上面三种方式都可以收到订阅的消息。

 

目录
相关文章
|
C# iOS开发
《MonoTouch开发实践指南》一2.3 MonoTouch的工作原理
本节书摘来自华章出版社《MonoTouch开发实践指南》一 书中的第2章,第2.3节,作者:(美)Michael Bluestein,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1136 0
|
Swift
Swift语言精要 - 扩展(Extension)
swift的Extension用户在不访问代码的情况下扩展基本结构类型或自定义类 extension Int { var doubled : Int { return self * 2 } func multiplyWith(anotherNum...
840 0
|
XML 数据格式
WCF技术剖析之二十七: 如何将一个服务发布成WSDL[编程篇]
原文:WCF技术剖析之二十七: 如何将一个服务发布成WSDL[编程篇] 对于WCF服务端元数据架构体系来说,通过MetadataExporter将服务的终结点导出成MetadataSet(参考《如何导出WCF服务的元数据》),仅仅是完成了一半的工作。
844 0
|
关系型数据库 Oracle
OAF_OAF Framework常用代码汇总(概念)
dERP技术讨论群: 288307890 技术交流,技术讨论,欢迎加入 Technology Blog Created By Oracle ERP - 鲍新建
854 0
|
存储 Oracle 关系型数据库
OAF_OAF Framework学习笔记的基本概念(概念)
2014-11-02 Created By BaoXinjian 一、名词解释 1. OAF(Oracle Application Framework) 是针对EBS12的新的框架,UI比其他版本(form)要好,功能也有所增强, 12里不少新的功能都是基于OAF开发的 2.
1411 0
|
数据安全/隐私保护
使用delphi 开发多层应用(二十二)使用kbmMW 的认证管理器
从kbmmw 4.4 开始,增加了认证管理器,这个比原来的简单认证提供了更多的功能。细化了很多权限操作。 今天对这一块做个介绍。   要做一个认证管理,大概分为以下5步:        1.  定义你要保护的资源,一般是服务、函数,当然你只要不限麻烦,可以是任何东西;        2.  定义使用者(用户);        3.  定义角色,使用者通过角色与服务器打交道;        4.  定义角色或用户可以访问的资源(授权);        5. 定义认证与登录的限制(本步不是必须的)。
1010 0