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列表:
|
RtcServerModule: 執行一組遠程函數。它可讓服務器爲本身的遠程函數提供遠程訪問的能力。RtcServerModule沒有事件可執行,你只須要在一邊將RtcServerModule和它的服務器鏈接起來,同時配合另外一邊的RtcFunctionGroup就能夠激活遠程函數。 |
RtcFunctionGroup: 提供訪問函數的功能。當配合RtcServerModule使用時,它會自動爲全部的RTC客戶端激活遠程訪問的功能。當配合RtcClientModule使用時,服務器能夠以客戶端函數調用的返回結果的形式調用客戶端的函數。爲了實現遠程函數,你至少須要一個RtcFunctionGroup組件以及鏈接一個或多個RtcFunction組件,Function Groups也可讓你調用同一組的其餘函數。 RtcFunctionGroup首先是由RtcServerModule 和 RtcClientModule爲了實現遠程函數而使用的,可是其餘的組件也能夠直接使用它。 |
RtcFunction: 爲你的RTC服務器添加新的遠程函數的步驟是:
|
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)),你能夠輕鬆的編寫處理返回結果的代碼。
|
demo:參見http://www.realthinclient.com