随着各家厂商的强力背书与推销,Web Services 俨然成为未来分布式系统开发的主流架构,但是Web Services 至今仍然存在一些问题,其中有些是属于规格的问题,有些则是先天上的限制,许多使用Web Services 开发系统的人都会有一个困扰,那就是效率不高,其原因很简单,XML 本身属于纯文字型态,加上必须依赖XML Parser 剖析XML 文件,在传输与解译上都是造成效率不彰的原因,这是Web Services 的先天限制,也是为了兼容性所付出的代价。当然! 如果网络频宽够大,计算机速度够快,这些都不是问题。但事实是目前的频宽与计算机速度还不足以胜任,这使得Web Services 的应用面缩减不少,因此许多的Web Servcies开发工具都会提供将SOAP讯息压缩的解决方案,藉此减少网络传输时间。另一个问题则是Web Services 必须依赖网络通讯协议,以现今的情况来看是以HTTP或TCP两种网络通讯协议为主流,假如客户想将系统安装于一台计算机上(不管是何理由,或许是因为节省金钱),Web Services 还是需要一个占用Port,就实务上来看这并不是什么大问题,但如果可以不占用Port岂不更好?? RO 就是这样一套组件,首先! RO 支持两种讯息标准,一个是SOAP(也就是Web Services)、另一个则是Binary(二进制讯息),支持SOAP 可让其它支持Web Services 的开发工具经由SOAP连上RO Server,支持Binary 可以让RO Client以更快的速度与RO Server 沟通,这比起将SOAP压缩后传递的效率高上许多,更令人兴奋的是RO允许设计者混用这两种讯息协议,也就是说只须撰写一个Server并放上这两个讯息组件,这一个Server 就可以同时服务使用SOAP 与 Binary 讯息的Client 端。有趣吗??更有趣的事情还在后面,RO 支持HTTP、TCP、Windows Message、DLL、UDP(2.0)、MSMQ(RO Enterprise) 多种通讯协议,并且允许设计者混用这些协议(DLL 是例外),简单的说! 就是写一个Server 同时允许Client 端以HTTP、TCP、Windows Message、UDP、MSMQ 方式连结,再加上之前所提的两种讯息标准,这个Server是不是更有趣了呢??呵!还没讲完呢,RO 不但具备这些特色,同时也允许设计者撰写自己的讯息协议与通讯协议,其步骤也不复杂,这些都是RO出色的主要原因。另外RO 也支持Kylix 3 for DELPHI,这代表着使用RO 可撰写Linux Server/Client,Windows Server/Client,日后的RO Client SDK.NET支援.NET Framework、Mono、Ractor,及Compact Framework,你能想象这种情况吗??
RemObjects SDK的特征
以下列表概述了 RemObjects SDK的核心特征,这些特征是目前可用版本中都拥有的。请跟踪连接以获取这些特征的更多信息。
总特征
支持广泛的通信信道,包括HTTP, TCP, Email, Named Pipes,以及 local/single-tier.
Super TCP以及 New Super HTTP Communication信道。
支持不同的消息格式,包括 BinMessage,公开标准 SOAP,以及 XML-RPC格式 XML-RPC.
提供了用于建模以及定义服务的RAD Service Builder工具。
提供了用于压型、基准以及压力测试服务应用程序的Service Tester,以确保在加载量较高时仍能正确允许。
支持在跨网发送大量的本地以及用户自定义数据类型,包括:自定义结构体、ANSI以及 Unicode string formats以及 XML.
平台间完整的电报兼容性,允许用户混和使用不同版本的SDK实现的客户端以及服务器,或者在不同操作系统上运行。
支持用于PHP client的CodeGen,允许用户从 PHP实现的网站上访问 XML-RPC服务器。
完全不用支付许可费用。
完全支持C#, Chrome, Visual Basic .NET (.NET Edition), Delphi/Win32以及 C++Builder (Delphi Edition).
库特征
支持一系列平台,包括.NET, Mono, 32-bit and 64-bit Windows以及 Linux.
纯本地化以及指定平台的实现,对于单个平台,能够从底层设计。
提供了完整的源代码,如果有必要,允许用户进行更改并且重新编译库。
线程安全以及完整的面向对象体系结构,设计时考虑了无国界以及最大可量测性。
可扩展的库实现,为了满足用户指定的需要,它允许开发者添加自己的信道、消息格式或者框架的其他可替换部分。
提供了丰富的类库,以控制服务实力化选项(pooled, singleton, per-call以及更多)
集成了 ZLib data compression,以改进较慢网络中的消息传输。
支持Server-to-Client事件,以及通过 Event Sinks回调。
编译独立的可执行的Windows Services或者在 ASP.NET (.NET Edition)或 ISAPI/Apache Web Servers (Delphi)中运行你的工程。
自带了安全特征,以防止 DOS攻击以及服务器在 .NET的 Internet Pack中使用。
在 .NET的 Internet Pack中,完全支持 IPv6.
Service Builder特性
RAD用户界面为在一个平台,语言和不可知技术方式中定义服务及相关类型。
创建和编辑服务,Event Sinks, Structs, Arrays和 Enums.
在Service Builder中为你的服务和类型正确写入文档。
生成的代码广泛支持多种语言,包括C#, Chrome, Delphi, Visual Basic .NET, C++和 PHP.
可插拔架构,让用户使用自定义插拔来扩展Service Builder,其中包括支持新的语言 (需要Hydra 3).
IDE集成特性
支持 IDEs的全面集成。
广泛的项目模板和新项目向导。
使用 IDE的 Service Builder项目集成,使你可以在 IDE项目系统内编辑你的服务定义。
集成 Service Tester.
新的欢迎页面显示后,显示首次安装,以帮助新用户更好的熟悉产品。
网络服务
全面支持发展基于网络服务的 SOAP.
全面支持第三方提供的基于网络服务的消费 SOAP,并且使用了 non-RemObjects SDK技术。
支持从服务性消费的外部资源导入 WSDL服务定义。
支持新的 Document/Literal和 RPC/Literal编码风格,除了RPC/Encoding.