RealThinClient delphi

 

         

    RealThinClient

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

    功能描述 About Featurehtml

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

    • 编写可经过防火墙的客户端、服务器和ISAPI扩展(兼容Apache 2.x and MS IIS 5.x)浏览器

    • 做为独立的服务器或ISAPI扩展安全

    • 使用RTC Web服务器(包含Delphi源码)进行ISAPI扩展的调试服务器

    • 只需经过设置属性(内置的线程池)就可使你的客户端、服务器采用多线程处理网络

    • 可以自动压缩和强加密:
      - 经过设置属性激活内置的压缩功能
      - 经过设置属性激活内置的加密功能
       多线程

    • 使用RTC脚本引擎搭建Delphi代码和你的可视化HTML之间的桥梁框架

    • 基于组件的模块化设计容许您将远程客户端/服务器的新功能集成到您现有的Delphi应用程序和从新使用现有的代码ide

    • 经过使用RTC格式或标准的XML-RPC格式(经过设置属性选择本身的格式)编写和调用远程函数

    • 使用远程函数向导轻松的编写调用服务器端函数的客户端类

    • Delphi组件提供完整的源代码:
      - Borland/CodeGear Delphi 6 - 2007 for Windows
      - CodeGear Delphi / RAD Studio 2009 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)。

    demo:参见http://www.realthinclient.com          

    相关文章
    相关标签/搜索