Turn: What is realthinclient (RTC)?

Source: Internet
Author: User
Tags soap client

The Realthinclient SDK is used to develop standard HTTP (S) servers, ISAPI extensions, and client-side VCL controls. Available for CodeGear Delphi 6-xe5 under Windows.

Function description about Feature

The Realthinclient SDK is used to develop standard HTTP (S) servers, ISAPI extensions, and client-side VCL controls. Available for CodeGear Delphi 6-xe5 under Windows.

    • Write a firewall-capable client, server, and ISAPI extension (compatible with Apache 2.x and MS IIS 5.x)
    • As a standalone server or ISAPI extension
    • Debugging ISAPI extensions using the RTC Web server (including Delphi source code)
    • Just by setting properties (built-in thread pool), you can make your client, server multithreading
    • Ability to automatically compress and strongly encrypt:
      -Activate the built-in compression function by setting properties
      -Activate the built-in encryption function by setting properties
    • Use the RTC scripting engine to build a bridge between Delphi code and your visual HTML
    • Component-based modular design allows you to integrate new features of remote client/server into your existing Delphi applications and reuse existing code
    • Write and invoke remote functions by using the RTC format or the standard XML-RPC format (choose your own format by setting properties)
    • Easily write client classes that invoke server-side functions using the Remote Function Wizard
    • The Delphi component provides the complete source code:
      -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: A brief description of the feature
Multi-deployment:
ISAPI extensions,
Stand-alone server,
Third-party servers
You can create:
Standalone server with no limit to the number of clients
As an ISAPI extension DLL (MS IIS or Apache)
Consolidate your applications into third-party message-based servers, such as NEXUSDB servers
Rad:
Writing events,
No user interface
Everything you develop with RTC is component-based, so all the code you need to write is defined as events, which means you just have to write the code under the appropriate event, so you can design your own server and client applications without the need for a wizard or a user interface.
Easy Multi-Threading:
Simple on/off toggle
All of the RTC connectivity components are embedded in a very mature multithreading mechanism. All you need to do is simply set the multithreaded property to true to allow thousands of active connections to run in separate threads at the same time, and any newly received connections will be processed by a single thread pool. This mechanism can save valuable system resources.
HTTP Protocol:
No need to worry about firewalls
The RTC client can reach the network through the firewall without any configuration.
By setting the UseProxy property to True, the data client can use an identical set of connection stations to transmit data to the network, just as IE browses the web. This means that customers can access the network on any LAN.
Non-blocking Unlike most of the other network components, the RTC connectivity components are non-blocking and event-driven. This means that even if you do not use multithreaded mode, the client communicates with the server without blocking ("The application is not responding"). In the entire connection, each state change triggers a corresponding event.
Remote functions:
Reusable,
Simple writing,
Simple call
Execute and use remote functions just as you would with local functions.
You only need to place a rtcfunction component in your form or datamodule, then set the function name and write your own code in the OnExecute event.
The OnExecute event will receive the connection object, function arguments, and a result object, and you just need to pass the arguments to the pre-written function, leaving the control to handle.

Powerful encryption capabilities
& Automatic compression function

The RTC component provides built-in, easy-to-use, variable-length key encryption and data compression capabilities.
You do not have to consider keys or data compression, all of which are provided by the control for you.
You simply set the encryption and compression properties in Rtcclientmodule and Rtcservermodule, leaving the rest to the control's handling.
Plugin framework:
Write your own plug-in or
Using third-party plugins
All client and server-side code written using the RTC SDK will be integrated with applications written using the RTC SDK in the form of functional modules and plug-ins. For example, you can consolidate Web servers, messaging servers, application servers, database servers, and function functions that you write to a data server, even if they are not intentionally designed to share the same service space.
Based on the easy-to-use plug-in framework, you can combine any number of functional components and data components together. For example, Rtcdataprovider, Rtcservermodule, and Rtcdataserverlink are integrated into a data service connectivity component, which expands the functionality of the server. And because keeping the code in a different unit (Data Modules), you can even provide your own plugins (and, of course, sell plugins) to other people who also use the RTC SDK.
Small volume When using D7 compression, a full Web server developed using the RTC SDK occupies less than 600KB of space. Although it is so small, it has rich features, high stability and good scalability.
Create stable and powerful Web applications
All RTC components are subjected to stress testing.

With a non-blocking, event-driven, and built-in thread pool communication mechanism, the Realthinclient SDK can handle thousands of of active connections with a few threads in a real multithreaded environment (for example, 100 threads are sufficient to handle thousands of active connections).
Automatic Session processing (timeout processing during session time) due to reduced use of all important resources (CPU, memory, threads, timers, processors, etc.), automatic processing of all communication-related objects, flexible remote functions (receiving parameters of any structure and returning results of any other structure) And so on. These make the servers and clients written using the Realthinclient component more stable.

What is included in the Realthinclient SDK package?
Realthinclient SDK: Server-side components
Rtchttpserver: implements the HTTP protocol on TCP/IP to compile the RTC component into a standalone server application (inheriting Trtcdataserver). All high-level server-side RTC components use the Trtcdataserver subclass with the HTTP client (RTC Client, Web browser, SOAP client, etc.) Communication. The best way to do this is to separate the code that you wrote with the high-level RTC component into different data modules, and then compile the rtchttpsever into a separate application (EXE) using a separate datamodule.
Rtcisapiserver: implements an ISAPI interface to extend an ISAPI-compatible Web server (inheritance trtcdataserver).
All high-level server-side RTC components use the Trtcdataserver subclass to communicate with HTTP clients (RTC clients, Web browsers, SOAP clients, and so on). The best approach is to separate the code you write with the high-level RTC component into different data modules, and then compile the rtcisapisever into an ISAPI extension (DLL) using a separate datamodule.
Rtcmessageserver: implements a scalable, message-based server-side component that can be used to access the RTC application through a third-party message layer. The RTC SDK includes a ready-to-use NEXUSDB plug-in that uses the Rtcmessageserver component to consolidate the RTC application to the NEXUSDB server.
Rtcdataserverlink: It is useful when you have a unit that has data that provides components or service module components that intersect, because it can cluster related data to provide components and link them to their data servers. If you have only one or a few data supply components, you can link them directly to the data server connection component without rtcdataserverlink.
Rtcdualdataserverlink: Connect a set of RTC components to 2 or more server connectivity components (Rtchttpserver and Rtcmessageserver). This allows you to write your application only once, and can then be obtained through a standard HTTP protocol or through a secure HTTPS protocol, if needed, through different message-based transports such as the NEXUSDB Transport layer.
rtcdataprovider: Used to implement an event that handles HTTP requests and responses. Each data provider responds only to its own request and does not process other requests. Data providers works on the server as a plug-in, which allows the data providers to develop a multifunctional server, either individually or in combination with other RTC components.
Here are some possible data providers lists:
  • File provider for transferring files
  • PHP provider for working with PHP scripts and sending HTML pages
  • SOAP provider is used to implement different Web servers
  • Page providers for generating dynamic HTML pages
  • Image providers for dynamically generating pictures for the web
Rtcservermodule: executes a set of remote functions. It allows the server to provide remote access to its own remote functions. Rtcservermodule No event executable, you only need to connect Rtcservermodule and its server on one side, and with Rtcfunctiongroup on the other side, you can activate the remote function.
Rtcfunctiongroup: provides access to functions. When used with Rtcservermodule, it automatically activates the remote Access feature for all RTC clients. When used with Rtcclientmodule, the server can invoke the client's function in the form of a return result of a client function call. To implement a remote function, you need at least one Rtcfunctiongroup component and one or more rtcfunction components, and function groups lets you call other functions of the same group. Rtcfunctiongroup is first used by Rtcservermodule and rtcclientmodule to implement remote functions, but other components can also be used directly.
rtcfunction: The steps to add a new remote function for your RTC Server are:
  • Connect a rtcfunction to a rtcfunctiongroup,
  • Make sure that the function group assigns a rtcservermodule,
  • Select a "functionname" and then write your own code in the OnExecute event.
When writing a remote function, you don't have to think about anything other than your own code. Once an exception occurs (you can throw an exception in the OnExecute event), the client Gets the exception message (result.istype=rtc_exception), so you don't need to worry.
rtcscriptengine: You can use a script language like Pascal in HTML and XML files.
When using the RTC scripting engine, you can determine how many application code your Delphi functions, compiled servers, or ISAPI extensions should have, and how many scripts should be in your Html/xml file. This allows you to integrate the language and Delphi such as PHP and JSP.
Realthinclient SDK: Client Components
rtchttpclient: It is responsible for communicating directly with your server using the HTTP/HTTPS protocol.
It sends requests initiated by the high-level client RTC components, such as Rtcdatarequest and Rtcclientmodule, and then receives the response and uses the high-level components to handle the response as well.
rtcmessageclient: It is a component that can integrate your high-level client components, such as Datarequest and Clientmodule, into a third-party transport layer. For example, you can invoke the RTC remote function in your NEXUSDB server using the Nexusdb plugin .
Rtcdataclientlink: It is useful when you have a large number of data request or client module cross-units. This is because it can be integrated with the cluster-related client request components and their data client connections. If you have only one or two data request components, you can integrate directly with the data client connectivity component without the need for a rtcdataclientlink.
Rtcdualdataclientlink: used to create a small client connection pool, when a request is submitted, the component can decide which connection to use based on the number of pending requests in the currently available connection. A new request will be submitted by a connection with the fewest pending/active requests, unless you explicitly indicate a different connection object.
rtcdatarequest: The client component that corresponds to the rtcdataprovider. It allows the client to submit requests to the RTC Server or to other HTTP servers. Using this component, you can request a file from a Web server, submit a SOAP request, execute a server-side PHP script, and so on. You can use this component to request all the services provided by the HTTP server.
Rtcclientmodule: The client component that corresponds to the rtcservermodule. It allows the client to invoke a function provided by a service module of the server. Rtcclientmodule no event can be implemented, you only need to consolidate a client connection component (Rtchttpclient) to invoke the remote function. If you define client functions and then integrate them into Rtcclientmodule, you can execute these client remote functions. There is no particular need to implement the section. The server invokes the client remote function as a result of the client's return to the server-side call.
Rtcresult: Handles the results returned by the remote function call. Using the Onresult event (Onresult event receive connection (sender:trtcconnection), passed parameters (Param:trtcvalue), and received results (Result:trtcvalue)), You can easily write code that handles the return results.
  • Maybe just if the function performs a successful check,
  • or a dialog box pops up,
  • Or create a form that contains all the data received.
  • or other components in the same form or datamodule (for example, populating data from the database to Clientdataset).

Turn: What is realthinclient (RTC)?

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.