RO07 - Smart Services

 
RO07 - Smart Services
当它在 2003 年被发布时, RemObjects SDK 介绍了 Smart Services 的概念,思想是组合高效率,私有的开放标准系统通信方法,使服务可供很多客户端无损效率的使用
有时你希望你的服务可以向第三方开放,或者给任何人或者购买服务接口的客户 . 这种情况下 , 除非所有的客户都使用 RemObjects SDK( 或者他支持的语言 , 平台 , 操作系统 ) 否则不可能实现 . 所以服务应使用开放标志协议如 SOAP web Services Simpler XML-RPC. 
更多的信息可以在这里发现 :
- RO12:
RemObjects SDK 中使用 SOAP Web Services
- RO40:
XML-RPC 的支持
-
coming soon : SOAP for .NET
其通讯协议效率低 ( 占用高带宽 , 数据解析效率地下 , 基于文本的 XML 消息等 ), 但是事实上 , 他的跨平台优点可以抵消这些缺点
同时你还要在这个服务器上运行你自己的使用 RemObjects SDK 开发的客户端 , 你当然希望使用 BinMessage 协议保持 RO 的优点 . 保证你的客户端高效率通讯 .
进入 Smart Services
使用 Smart Services 架构 , RemObjects SDK 允许同时使用不同的协议发布同一个服务 . 这样你自己的客户端程序 ( 或其他使用 RemObjects SDK 或与 RemObjects 兼容的 .Net 第三方 ) 就能在不牺牲开放性的同时保持高效通讯 .
相关消息类型
一个使用 Smart Services 的应用程序一般用 BinMessage SOAP 消息类型开放其服务,也会使用 XML-RPC PostMessage 支持其他属性从而能开放简单的解析消息格式供给非 RO 客户端  
SOAP Web Services 对很多调用提供支持 , 选择这种方式的每个接收平台实现最大的连接范围 . 在过去的 5 年中 SOAP 已经变为跨平台连接的标准 , RemObjects SDK SOAP 提供良好的支持 .
XML-RPC 不常用 , 他比 SOAP 提供了更易用和更简洁的 XML 消息格式 , 如果平台可以使用 XML-RPC 则他是首选 通常 XML-RPC 代码为 PHP 调用而生成的 ( Vinci 中已经介绍过了 ), XML-RPC 是一个使 PHP 调用可以服务的一个方案 .
SDK 开放可扩展的架构使开发人员可以轻松的定义自己的消息格式 , 并可以轻松的将 其加入到结构中 , 使用时与现有的完全一样 . 这样可以使 Smart Service 通过选择不同的通讯方式支持更多的平台 .
Smart Services, 当然允许同时使用两种以上的消息协议 , 所以它可以同时支持 SOAP,XML-RPC BinMessage. 
根据 Smart Service 的服务通道的不同这里有两个选择 :
1) 使用不同的消息类型发布服务
基于 HTTP 的服务可以同时支持多种消息格式 , 连接时用不同的 URL 区分 .
使用服务组件的 Dispatchers 集合属性可以设置多种通讯消息格式,并指定不同的 URL 服务地址 . 例如可以用做如下设置 :
  • BinMessage http://yourserver/bin
  • SOAP http://yourserver/soap
HTTP 服务将根据连接的 URL 地址自动调整消息请求格式 .
由于 HTTP XML-RPC SOAP 的标准传输协议( SOAP 允许使用不同的传输通道),一般不使用其他的通道发布 SOAP XML-RPC. 否则非 RO 客户端将无法与之通讯 ..
2) 使用不同的服务通道发布你的服务
其他的服务同时不支持多种消息格式,但是 RemObjects SDK 可以同时使用多个服务控件 . 例如 , 你可以使用 Super 通道提供 BinMessage 消息格式 , 另外使用 HTTP 通道提供 BinMessage SOAP 消息格式 , 或者使用 TCP 服务通道开通不同的端口支持 BinMessage XML-RPC.
ServerMultiMessage 控件 - new for 'Vinci'
除了上面两个方面 ,RemObjects SDK 还提供了新的 ServerMultiMessage 控件 . 与其他 Message 控件相比 ,ServerMultiMessage 控件可以为所有的服务通道的 Dispatcher 属性引用 , 他不提供某种特定的消息格式 , ServerMultiMessage 可以分发任意一种其可处理的消息类型 . 当消息传递到服务器 ServerMultiMessage 使用特定的消息格式接收 , 并使用相应的消息组件解析消息 , 同样的方式对应答信息编码 .
这样就很容易使用一个端口或 URL 发布 Smart Service, 而不用考虑消息类型了 .
显然 , ServerMultiMessage 组件需要从接收的消息前几个字符中确定消息的格式 . 理论上对所有想象中的编码格式这是不可能实现的 , 但是对 RO 常用的 4 中消息类型来说能很好的实现 , 因为每种消息格式前都有唯一的标示类型数据位 .
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值