最新消息:

RealThinClient SDK Pro教程也就是叫RTC-delphi中间件常用组件

Delphi-组件 koic 285浏览 0评论

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

RealThinClient SDK是一个灵活和模块化框架,可以使用Delphi构建可靠和可扩展的跨平台应用程序,通过利用具有完整IPv4和IPv6支持的HTTP/S和内置的多线程,为Web设计了压力测试,以确保最高稳定性。通过使用内置线程池的非阻塞事件驱动通信,使用RealThinClient SDK构建的应用程序可以在所有支持的平台上通过在真正的多线程环境中使用有限数量的线程来处理数千个活动连接。

    • 编写可通过防火墙的客户端、服务器和ISAPI扩展(Apache和MS IIS兼容)
    • 编写可靠的HTTP(S)服务器\路由器\代理服务器\反向代理服务器和负载平衡器
    • 使用第三方加密组件作为RealThinClient SDK的插件(例如:StreamSec Tools 2.x = 99€)添加强大的SSL/TLS加密,或者在Windows上运行RTC客户端的内置SSL支持,并将RTC服务器代码转换为ISAPI DLL以在具有SSL支持的第三方Web服务器上运行(例如MS IIS,Apache或Abyss)
    • 使用RTC Web服务器(包含Delphi源码)进行ISAPI扩展的调试
    • 基于组件和模块化设计,您可以在现有的Delphi应用程序中添加新的远程处理功能,并重新使用现有的代码
    • 只需通过设置属性(内置的线程池)就可以使你的客户端、服务器采用多线程处理
    • 只需通过设置属性启用自动压缩和内置加密
    • 通过使用RTC脚本引擎增强您的“静态”HTML页面,在本地Delphi代码和可视化HTML演示文稿之间建立桥梁
    • 一个服务器端代码可以编译成独立服务器和ISAPI扩展
    • 灵活且强大的RTC远程功能,支持创建和维护链接对象,以及完全可自定义的基于模板的远程功能向导。
    • 集成完整的JSON和XML-RPC支持:在Delphi中编写函数,并通过XML-RPC和/或JSON格式(JSON + REST,JSON-RPC 1.0和2.0)使第三方可以远程访问它们。轻松调用第三方以XML-RPC和/或JSON格式发布的远程功能。
    • 具有完整源代码的组件和演示项目,可以使用Delphi构建跨平台应用程序。

 

RealThinClient SDK特征说明


多部署: 单一的代码库针对Windows、Mac OSX、iOS和Android

在Delphi中编写一个项目,并将其编译为(a)用于Windows、Mac OSX、iOS或Android的强大的独立客户端或服务器,或…(b)用于MS IIS或Apache的ISAPI DLL扩展或…(c )将你的应用程序整合到第三方的基于消息的服务器,比如NexusDB服务器。

RAD: 编写事件,无用户界面

使用RTC开发的一切都是基于组件的,因此你需要编写的所有代码都以事件的形式定义的,也就是说你只需要在相应的事件下编写代码即可,因此你可以不需要向导或编写用户界面就可以设计自己的服务器和客户端应用程序。

轻松的多线程: 简单的打开/关闭切换

所有的RTC连接组件都嵌入了一种非常成熟的多线程机制。你只需要简单的设置MultiThreaded属性为True就可以让成千上万的活动连接同时运行在独立的线程中,这时任何新接收到的连接都会由一个线程池进行处理。这种机制可以节约宝贵的系统资源。

HTTP(S): 无需担心防火墙

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。虽然它如此小,但它的功能丰富,稳定性高,可扩展性好。

 

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 SDK 各版本的IDE和平台支持情况:

IDE / 平台

Win

32-bit

Win

64-bit

Mac

OSX

iOS
32-bit
iOS
64-bit
Android
Delphi 7–XE
YES
Delphi XE2
YES
YES
YES
YES
Delphi XE3
YES
YES
YES
Delphi XE4
YES
YES
YES
YES
Delphi XE5–XE7
YES YES YES YES YES
Delphi XE8–XE10.2
YES YES YES YES YES YES

 

转载请注明:Delphi学习者 » RealThinClient SDK Pro教程也就是叫RTC-delphi中间件常用组件

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址