RealThinClient (RTC)是什么?
RealThinClient SDK是用于开发标准的HTTP(S)服务器,ISAPI扩展以及客户端的VCL控件。可用于Windows下的CodeGear Delphi 6-XE5。
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个线程就足以处理几千个活动连接)。 |
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列表:
|
RtcServerModule: 执行一组远程函数。它可以让服务器为自己的远程函数提供远程访问的能力。RtcServerModule没有事件可执行,你只需要在一边将RtcServerModule和它的服务器连接起来,同时配合另一边的RtcFunctionGroup就可以激活远程函数。 |
RtcFunctionGroup: 提供访问函数的功能。当配合RtcServerModule使用时,它会自动为所有的RTC客户端激活远程访问的功能。当配合RtcClientModule使用时,服务器可以以客户端函数调用的返回结果的形式调用客户端的函数。为了实现远程函数,你至少需要一个RtcFunctionGroup组件以及连接一个或多个RtcFunction组件,Function Groups也可以让你调用同一组的其他函数。 RtcFunctionGroup首先是由RtcServerModule 和 RtcClientModule为了实现远程函数而使用的,但是其他的组件也可以直接使用它。 |
RtcFunction: 为你的RTC服务器添加新的远程函数的步骤是:
当编写远程函数时,你除了自己的代码外无需再考虑其他的事情。一旦出现异常(你可以在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)),你可以轻松的编写处理返回结果的代码。
|
RealThinClient (RTC)是什么?的更多相关文章
- 转:RealThinClient (RTC)是什么?
RealThinClient SDK是用于开发标准的HTTP(S)服务器,ISAPI扩展以及客户端的VCL控件.可用于Windows下的CodeGear Delphi 6-XE5. 功能描述 Abou ...
- 使用delphi 开发多层应用(十六)使用XMLRPC 实现basic4android 远程调用RTC服务(讲述了RTC的特点,其底层通讯协议是自己封装SOCK 库,与kbmmw 的适合场合不完全一样)
RealThinClient (以下简称RTC) 也是一款delphi 多层开发的框架,由于其底层通讯协议是自己封装SOCK 库,抛弃了 大家诟病的indy,因此表现的非常稳定,效率也非常高, ...
- STM32F746的RTC使用
1.RTC模块采用低速晶振外接始终:32.768KHz,如下图所示 2.配置RTC模块: 其中,Fck_apre.Fck_spre始终上配置不容易理解, 如果想得到1Hz的始终频率,则需要将PERDI ...
- [nRF51822] 10、基础实验代码解析大全 · 实验15 - RTC
一.实验内容: 配置NRF51822 的RTC0 的TICK 频率为8Hz,COMPARE0 匹配事件触发周期为3 秒,并使能了TICK 和COMPARE0 中断. TICK 中断中驱动指示灯D1 翻 ...
- RTC时钟
1.设置时间之前取消备份区域(BKP)写保护 主要有两部分组成 1.用来和APB1总线对接,对其进行读写操作 2. 预分频模块:在RTC_CR设置相应的允许,位每个TR_CLK周期中RTC产生一个中断 ...
- S3C2440上RTC时钟驱动开发实例讲解(转载)
嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤.一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便.如有错误之处,谢请指正. 共享资源,欢迎转载:http:/ ...
- RTC实时时钟
作者:宋老师,华清远见嵌入式学院讲师. 1.1 RTC介绍 在 一个嵌入式系统中,通常采用RTC 来提供可靠的系统时间,包括时分秒和年月日等,而且要求在系统处于关机状态下它也能够正常工作(通常采用后备 ...
- 解决服务器时间Local time和RTC time不一致的问题
今天遇到了一个问题,发现程序读取的时间比实际的时间快了几分钟. 执行 timedatectl status 发现 Local time比实际的快,但是RTC time是准确的. 各种google也没搞 ...
- alarm rtc
http://sharp2wing.iteye.com/blog/1329518 http://blog.csdn.net/sking002007/article/details/6593809 io ...
随机推荐
- 控件WebView网页的加载
Android:控件WebView网页的加载 WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用. webview有两个方法:setWebChromeClient 和 setWe ...
- Android 珍藏(二)
一.如何控制Android LED等?(设置NotificationManager的一些参数) 代码如下: final int ID_LED=19871103; NotificationManage ...
- 在CentOS下安装配置MySQL
经常需要在linux环境下部署项目或安装Mysql数据库,由于记性不好,每次都是求助度娘,每次搜到的步骤都不一样,所以每次都在尝试.冒险:于是乎,把安装的重要步骤贴出,供自己以后参照. 1.首先要看看 ...
- javacv实战篇
看到之前有248位小伙伴看我写的水文还是比较受鼓舞的,所以决定把这个细写一下: 就是javacv怎么实际应用一下: 其实无外乎导包,写测试代码. 这样 那我们先导包儿. javacv-1.2-bin( ...
- Composer 中国镜像
1.修改Composer的全局配置文件 config.json 使用sudo composer config -l -g 查看composer全局配置信息,在这些信息中查找 [home] 配置项就是 ...
- 解决ThinkPHP开启APP_DEBUG=>false时报错的问题
最近用ThinkPHP开发一个项目,本地开发测试完成上传到服务器后,第一次打开正常,再刷新页面时就出现 “页面调试错误,无法找开页面,请重试”的错误,我就郁闷啦,明明本地设置define('APP_D ...
- Centos7.5 java环境的安装配置
1.查看系统中的java环境 [root@localhost ~]# java -version openjdk version "1.8.0_101" OpenJDK Runti ...
- DATASNAP REST WEBSERVICES中间件如何跨平台使用
DATASNAP REST WEBSERVICES中间件如何跨平台使用 准备使用DELPHI开发移动设备开发的朋友对DATASNAP REST中间件不可不了解. DATASNAP REST新型WE ...
- hdu 4403 简单搜索
思路:分等号左边和右边进行搜索 #include<iostream> #include<cstdio> #include<cstring> #include< ...
- JavaScript--变量、作用域及内存(12)
// JS变量是松散型的(不强制类型)本质,决定了它只是在特定时间用于保存特定值的一个名字而已; // 由于不存在定义某个变量必须要保存何种数据类型值的规则,变量的值及其数据类型可以在脚本的生命周期内 ...