RealThinClient SDK是用于开发标准的HTTP(S)服务器,ISAPI扩展以及客户端的VCL控件。可用于Windows下的CodeGear Delphi 6-XE5。

功能描述 About Feature

RealThinClient SDK是用于开发标准的HTTP(S)服务器,ISAPI扩展以及客户端的VCL控件。可用于Windows下的CodeGear Delphi 6-xe5。

  • 编写可通过防火墙的客户端、服务器和ISAPI扩展(兼容Apache 2.x and MS IIS 5.x)
  • 作为独立的服务器或ISAPI扩展
  • 使用RTC Web服务器(包含Delphi源码)进行ISAPI扩展的调试
  • 只需通过设置属性(内置的线程池)就可以使你的客户端、服务器采用多线程处理
  • 能够自动压缩和强加密:
    - 通过设置属性激活内置的压缩功能
    - 通过设置属性激活内置的加密功能
  • 使用RTC脚本引擎搭建Delphi代码和你的可视化HTML之间的桥梁
  • 基于组件的模块化设计允许您将远程客户端/服务器的新功能集成到您现有的Delphi应用程序和重新使用现有的代码
  • 通过使用RTC格式或标准的XML-RPC格式(通过设置属性选择自己的格式)编写和调用远程函数
  • 使用远程函数向导轻松的编写调用服务器端函数的客户端类
  • Delphi组件提供完整的源代码:
    - Borland/CodeGear Delphi 6 - XE5 for Windows
    - CodeGear Delphi / RAD Studio XE5 for Windows
    - Lazarus for Windows
    - Lazarus for Linux and MacOSX (beta)
RealThinClient SDK : 特征的简短说明
多部署:
ISAPI 扩展,
独立的服务器,
第三方的服务器
你可以创建: 
独立的、对客户端无个数限制的服务器 
作为ISAPI扩展DLL (MS IIS或Apache)
将你的应用程序整合到第三方的基于消息的服务器,比如NexusDB服务器
RAD:
编写事件, 
无用户界面
使用RTC开发的一切都是基于组件的,因此你需要编写的所有代码都以事件的形式定义的,也就是说你只需要在相应的事件下编写代码即可,因此你可以不需要向导或编写用户界面就可以设计自己的服务器和客户端应用程序
轻松的多线程:
简单的打开/关闭切换
所有的RTC连接组件都嵌入了一种非常成熟的多线程机制。你只需要简单的设置MultiThreaded属性为True就可以让成千上万的活动连接同时运行在独立的线程中,这时任何新接收到的连接都会由一个线程池进行处理。这种机制可以节约宝贵的系统资源。
HTTP 协议:
无需担心防火墙
RTC客户端可以不用进行任何配置就可以通过防火墙到达网络。 
通过设置UseProxy属性为True,数据客户端就可以使用一个同样设置的连接供应站与网络进行数据传输,就像IE浏览Web一样。这就意味着客户可以在任何局域网内都可以访问网络。
非阻塞 不同于其他大部分的网络组件,RTC连接组件是非阻塞型和事件驱动型的。这就意味着即使不使用多线程模式,客户端与服务器端通信时都不会被阻塞(出现”应用程序没有响应”的情况).在整个连接中,每一个状态的改变都会触发一个相应的事件。
远程函数:
可重用, 
简单编写,
简单调用
就像使用本地函数一样执行和使用远程函数。 
你只需要放置一个RtcFunction组件在你的Form或DataModule中,然后设置函数名称和在OnExecute事件中编写自己的代码即可。 
OnExecute事件将接收连接对象、函数参数和一个结果对象,你只需要使将参数传递到事先写好的函数中,剩下的就留给控件处理。

强大的加密功能
& 自动压缩功能

RTC组件提供内置的、易使用的、可变长度的密钥的加密和数据压缩功能。 
你无需考虑密钥或数据压缩,所有的这一切都由控件为你提供。 
你只需在RtcClientModule和RtcServerModule中简单的设置Encryption 和 Compression属性,剩下的就留给控件处理。
插件框架:
编写自己的插件或
使用第三方插件
所有使用RTC SDK编写的客户端、服务器端的代码都将以功能模块和插件的形式与同样使用RTC SDK编写的应用程序整合。比如,你可以整合Web服务器、消息服务器、应用服务器、数据库服务器、自己编写的功能函数到一个数据服务器中,即使这些组件并没有被特意设计成共享同一个服务空间。
基于简单易用的插件框架,你可以将任意多个的功能性组件和数据性组件整合到一起。比如将RtcDataProvider, RtcServerModule 和RtcDataServerLink整合到一个数据服务连接组件中,使服务器的功能得以扩展。同时由于保持代码在不同的单元(Data Modules),你甚至可以向其他同样使用RTC SDK开发的人提供自己的插件(当然也可以出售插件).
小体积 当使用D7压缩后,一个完整的使用RTC SDK开发的Web服务器占用的空间不到600KB。虽然它如此小,但它的功能丰富,稳定性高,可扩展性好。
创建稳定强大的网络应用程序
所有的RTC组件都经过压力测试。

采用无阻塞、事件驱动与内置的线程池通信机制,RealThinClient SDK可以在一个真实的多线程环境下以少数的线程处理数千计的活动连接(比如,100个线程就足以处理几千个活动连接)。
由于减少所有的重要资源(CPU、内存、线程、计时器、处理器等)的使用,自动处理所有与通信有关的对象,灵活的远程函数(接收任何结构的参数和返回任何其他结构的结果),自动的会话处理(在会话时间内的超时处理)等等这些使得使用RealThinClient组件编写的服务器和客户端更加稳定。

RealThinClient SDK 包里包含什么?
RealThinClient SDK :服务器端组件
RtcHttpServer: 实现TCP/IP上的HTTP协议,用于将RTC组件编译到独立的服务器应用程序中(继承TRtcDataServer). 所有高层的服务器端的RTC组件都使用TRtcDataServer 子类与HTTP客户端(RTC客户端、Web浏览器、SOAP客户端等)通信.最好的方法是将你使用高层RTC组件编写的代码分开到不同的数据模块中,然后使用单独的一个DataModule将RtcHttpSever编译到一个独立的应用程序(EXE)中。
RtcISAPIServer: 实现ISAPI接口,扩展ISAPI兼容的Web服务器(继承TRtcDataServer)。
所有高层的服务器端的RTC组件都使用TRtcDataServer 子类与HTTP客户端(RTC客户端、Web浏览器、SOAP客户端等)通信。最好的方法是将你使用高层RTC组件编写的代码分开到不同的数据模块中,然后使用单独的一个DataModule将RtcISAPISever编译到ISAPI扩展(DLL)中。
RtcMessageServer: 实现可扩展的基于消息的服务器端的组件,可用于通过第三方的消息层访问RTC应用程序。RTC SDK包含一个随时可使用的NexusDB插件,该插件使用RtcMessageServer组件将RTC应用程序整合到NexusDB服务器。
RtcDataServerLink: 在你有一些数据提供组件或服务模块组件交叉的单元时是非常有用的,因为它可以群集相关的数据提供组件以及将它们链接到它们的数据服务器。如果你只有一个或少数几个数据提供组件,你可以直接将链接它们到数据服务器连接组件,而无需RtcDataServerLink。
RtcDualDataServerLink: 连接一组RTC组件到2个或更多的服务器连接组件(RtcHttpServer 和 RtcMessageServer)。这可以让你只需编写你的应用程序一次,然后可以通过标准的HTTP协议或通过安全的HTTPS协议(如果需要也可以通过不同的基于消息的传输比如NexusDB传输层)获取。
RtcDataProvider: 用于实现处理HTTP请求和响应的事件。每一个Data Provider只响应对应自己的请求而不会处理其他的请求。Data Providers以插件的形式在服务器上工作,这使得Data Providers可以单独或则与其他RTC组件结合来开发多功能的服务器。
下面是一些可能用到的Data Providers列表:

  • File provider 用于传送文件
  • PHP provider 用于处理php脚本和发送html页面
  • SOAP provider 用于实现不同的Web服务器
  • Page providers 用于生成动态的 HTML 页面
  • Image providers 用于为Web动态生成图片
RtcServerModule: 执行一组远程函数。它可以让服务器为自己的远程函数提供远程访问的能力。RtcServerModule没有事件可执行,你只需要在一边将RtcServerModule和它的服务器连接起来,同时配合另一边的RtcFunctionGroup就可以激活远程函数。
RtcFunctionGroup: 提供访问函数的功能。当配合RtcServerModule使用时,它会自动为所有的RTC客户端激活远程访问的功能。当配合RtcClientModule使用时,服务器可以以客户端函数调用的返回结果的形式调用客户端的函数。为了实现远程函数,你至少需要一个RtcFunctionGroup组件以及连接一个或多个RtcFunction组件,Function Groups也可以让你调用同一组的其他函数。 RtcFunctionGroup首先是由RtcServerModule 和 RtcClientModule为了实现远程函数而使用的,但是其他的组件也可以直接使用它。
RtcFunction: 为你的RTC服务器添加新的远程函数的步骤是:

  • 将一个RtcFunction连接到一个RtcFunctionGroup,
  • 务必让Function Group指派一个RtcServerModule,
  • 选择一个"FunctionName",然后在OnExecute事件中编写自己的代码。

当编写远程函数时,你除了自己的代码外无需再考虑其他的事情。一旦出现异常(你可以在OnExecute事件里抛出异常),客户端会得到异常信息(Result.isType=rtc_Exception),所以你不需要担心。

RtcScriptEngine: 可以在HTML和XML文件里使用像Pascal一样的脚本语言。
当使用RTC脚本引擎时,你就可以决定你的Delphi函数、编译服务器或ISAPI扩展应该有多少应用程序代码以及在你的HTML/XML文件中应该有多少脚本。这使得你可以将PHP和JSP这样的语言和Delphi整合。
RealThinClient SDK : 客户端组件
RtcHttpClient: 它负责使用HTTP/HTTPS协议和你的服务器直接通信。
它发送由高层客户端RTC组件比如RtcDataRequest 和 RtcClientModule发起的请求,然后接收响应并同样使用高层组件处理这些响应。
RtcMessageClient:它是一个可以将你的高层客户端组件(比如DataRequest 和 ClientModule)整合到第三方传输层的组件。比如,你可以在你的NexusDB服务器中使用NexusDB插件调用RTC远程函数
RtcDataClientLink: 在你有大量的Data Request或Client Module交叉单元时它是非常有用的。因为它可以群集相关的客户端请求组件以及与它们的数据客户端连接相整合。如果你只有一两个数据请求组件,你可以直接与数据客户端连接组件整合,而不需要RtcDataClientLink。
RtcDualDataClientLink: 用于创建小型的客户端连接池,当提交一个请求时,组件可以根据当前可用连接中挂起的请求的数量决定使用哪个连接。一个新的请求将由挂起/活动请求最少的连接提交,除非你明确的指出了不同的连接对象。
RtcDataRequest: 与RtcDataProvider相对应的客户端组件。它可以让客户端向RTC服务器或其他的HTTP服务器提交请求。使用该组件,你可以向一个Web服务器请求一个文件,提交一个SOAP请求,执行一个服务器端的PHP脚本等等。你可以使用该组件请求HTTP服务器提供的所有服务。
RtcClientModule: 与RtcServerModule相对应的客户端组件。它可以让客户端调用由服务器的一个服务模块提供的函数。RtcClientModule没有事件可以实现,你只需要整合一个客户端连接组件(RtcHttpClient)就可以调用远程函数。如果你定义了客户端函数然后整合到RtcClientModule中,那就可以执行这些客户端远程函数。没有特别需要实现的部分。服务器是以客户端对服务器端调用的返回结果的形式调用客户端远程函数的。
RtcResult: 处理远程函数调用返回的结果。使用OnResult事件(OnResult事件接收连接(Sender:TRtcConnection),传递的参数(Param:TRtcValue)以及接收到的结果(Result:TRtcValue)),你可以轻松的编写处理返回结果的代码。

  • 也许只是在函数是否执行成功的检查,
  • 或则弹出一个对话框,
  • 或则创建一个包含所有接收到的数据的窗体,
  • 或则装填在同一窗体或datamodule的其他组件(比如,从数据库中填充数据到ClientDataSet)。

转:RealThinClient (RTC)是什么?的更多相关文章

  1. RealThinClient (RTC)是什么?

    RealThinClient SDK是用于开发标准的HTTP(S)服务器,ISAPI扩展以及客户端的VCL控件.可用于Windows下的CodeGear Delphi 6-XE5. 功能描述 Abou ...

  2. 使用delphi 开发多层应用(十六)使用XMLRPC 实现basic4android 远程调用RTC服务(讲述了RTC的特点,其底层通讯协议是自己封装SOCK 库,与kbmmw 的适合场合不完全一样)

        RealThinClient (以下简称RTC) 也是一款delphi 多层开发的框架,由于其底层通讯协议是自己封装SOCK 库,抛弃了 大家诟病的indy,因此表现的非常稳定,效率也非常高, ...

  3. STM32F746的RTC使用

    1.RTC模块采用低速晶振外接始终:32.768KHz,如下图所示 2.配置RTC模块: 其中,Fck_apre.Fck_spre始终上配置不容易理解, 如果想得到1Hz的始终频率,则需要将PERDI ...

  4. [nRF51822] 10、基础实验代码解析大全 · 实验15 - RTC

    一.实验内容: 配置NRF51822 的RTC0 的TICK 频率为8Hz,COMPARE0 匹配事件触发周期为3 秒,并使能了TICK 和COMPARE0 中断. TICK 中断中驱动指示灯D1 翻 ...

  5. RTC时钟

    1.设置时间之前取消备份区域(BKP)写保护 主要有两部分组成 1.用来和APB1总线对接,对其进行读写操作 2. 预分频模块:在RTC_CR设置相应的允许,位每个TR_CLK周期中RTC产生一个中断 ...

  6. S3C2440上RTC时钟驱动开发实例讲解(转载)

    嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤.一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便.如有错误之处,谢请指正. 共享资源,欢迎转载:http:/ ...

  7. RTC实时时钟

    作者:宋老师,华清远见嵌入式学院讲师. 1.1 RTC介绍 在 一个嵌入式系统中,通常采用RTC 来提供可靠的系统时间,包括时分秒和年月日等,而且要求在系统处于关机状态下它也能够正常工作(通常采用后备 ...

  8. 解决服务器时间Local time和RTC time不一致的问题

    今天遇到了一个问题,发现程序读取的时间比实际的时间快了几分钟. 执行 timedatectl status 发现 Local time比实际的快,但是RTC time是准确的. 各种google也没搞 ...

  9. alarm rtc

    http://sharp2wing.iteye.com/blog/1329518 http://blog.csdn.net/sking002007/article/details/6593809 io ...

随机推荐

  1. 关于谷歌浏览器 表单元素获取焦点后自动增加外边线的问题解决CSS代码

    input,textarea:focus { outline: none;} /*去除表单元素默认边框*/

  2. 3、JS中的语句

    1.块语句 常用于组合0~多个语句:语法:{语句1;语句2……} *没有块级作用域:如:在for循环里面定义一个自增数 i,可以在for循环外取到它跳出循环时的值,而且for循环里面新定义的数据也能取 ...

  3. IOS UIWebView引用外部CSS样式(转载)

    首先,将要引用的CSS样式导入到工程文件,然后我们可以自己拼装一个网页并引用这个样式,具体代码实现如下: -(void)viewDidLoad { [super viewDidLoad]; NSStr ...

  4. cocos2d 艺术标签没有显示

    今天自己挖了个坑,设置数字标签的时候,无论怎么搞,程序运行后还是显示的是普通文本数字,各种原因找了一半天,最后发现在资源名字.png的前面多了一个空格,眼瞎一直没看到,最后去掉就OK了

  5. 该应用的登录功能版本较旧,无法使用QQ账号登录,请升级到最新版本,如果还无法解决,请联系开发者升级。(错误码:100044)

    该原因应该是你的应用数据签名更改的原因 解决步骤已经写到我的公众号,二维码在下面. 欢迎观看我的CSDN学院课程,地址:http://edu.csdn.net/course/detail/2877 本 ...

  6. UVA 11235 频繁出现的数值 RMQ

    题目链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  7. find查找命令的各种使用方法

    find是文件查找工具,实时查找,速度慢,精确匹配 find命令基本使用格式 find [options] [查找路径] [查找条件] [处理动作] 查找路径:默认为当前目录 查找条件:默认为查找指定 ...

  8. Qt之阴影边框(转)

    原文地址:http://blog.sina.com.cn/s/blog_a6fb6cc90101eoc7.html 阴影边框很常见,诸如360以及其他很多软件都有类似效果,了解CSS3的同学们应该都知 ...

  9. [vijos P1880]ファーラの力

    据说这是一道 JOI 的题?反正我觉着挺好的喵~ 题目看起来十分可怕,但是代码还是很短的 显而易见的,ans 因分为3个部分:1.中途增加光压的时间 2.中途减少光压的时间 3. 所有路程的总时间 发 ...

  10. DedeCMS织梦动态分页类,datalist标签使用实例

    <?php require_once(dirname(__FILE__)."/include/common.inc.php");//载入基础文件 require_once(D ...