RealThinClient SDK是用於開發標准的HTTP(S)服務器,ISAPI擴展以及客戶端的VCL控件。可用於Windows下的CodeGear Delphi 6-XE5。
功能描述 About Feature
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個線程就足以處理幾千個活動連接)。 由於減少所有的重要資源(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)),你可以輕松的編寫處理返回結果的代碼。
|