GpIndy pack is the Indy version of Gp library for remote control.

The use of Indy, is not only for the SSL support but it is also used for standaring with the most popular internet developer library for Delphi at the moment: Indy 9 and Indy 10. Indy makes Gp easier, more robust, SSL compatible and suitable to grow with other Indy components.

core Components  
TgpIndySSL Indy server with remote control purposes in SSL mode. is a new class to handle both https and http connections at same time (in different ports)
TGpIndyBridge Hi level component which actue like as single Gp Http server or a Bridge server.

is the basic TIdCustomHTTPServer extension that provide primary remote control web access to your program


One of the greatest 'refactoring' that I have done in Gp to make Indy compatible, is in session management, in order to have a unique session list between different GpIndy components (both normal and ssl web servers, bridges, clients...). So the session management in the kernet library is similar to Indy management but it resides outside the traditional Indy compatible servers. The inclusion of SSL and Normal server modes working together was a problem too.


Indy and SSL

Basically I introduce HTTPS or SSL communications between gpIndy server and the Java Applet client.

Concerning SSL, Java 2 SDK 1.4 includes JSSE (Java Secure Socket Extension).

This link might help you more for HTTPS and securing Java URLconnection :

It is well known HTTPS (SSL mode) which is always ~30-50% slower than HTTP communications for the same WebPages. The sample certificate is 1024 bits key. That means, every packets will be encrypted with a large key. Encrypting and decrypting few hundred POSTs per minute between client's machine and server machine will take long and will need lots of CPU.

In fact, both machines, the client’s and server one will need to have some good CPU and memory to handle few hundred encryption and decryption transactions per minute.

As engineers, we need to think of deployment and if we are aware of our clients and what happens with the speed ,, I am sure they will all complain and stop using it.

I don't see any harm in Java applet to communicate in default HTTP mode, since the speed is really important here. The worst case scenario is that a hacker could get encoded binary small snapshot of images.

We need to find a way to handle both protocols (HTTP & HTTPS) with the Indy web server. We need to create two web servers (one for each port). Somehow JAVA APPLET allows as a default to surf through HTTP or as an option HTTPS. BUT it also let us surf exclusively the WEB PAGES and ONLY with HTTPS.


core Components  
TGranprimo Hi level spy component with full HTTP connections purposes.


TGpIndy = class (TGpIndyServer) indy Server with self contained remote functions
Gran :TServer self contained Tspy service.
  property active : boolean Is the server active ?


TGpIndyServer = class (TIdTCPServer) Base class of all gpindy servers
  function DoExecute(AThread: contextoIndy): Boolean Execute the action asociated with thread overriding TidTCPServer method
  procedure runBrowser_ run in the browser
  procedure DoCommandGet (AThread: contextoIndy; rere: TresponRequest); get the result
  property DefaultPort inherited from TidTCPServer
  property OnCommandGet: TIdHTTPGetEvent to extend the get response feature
granprimo :TSpy link to gp system


TChildIndyServer = class (TGpIndyServer) indy Server which actue as child of other component.


TGpIndySSL = class (TcustomGranprimo) gp component with full ssl and normal support.

addMenuMain (const titulo,subtitulo,detalle:string);

Add a new entry in menu.
  function getVirtualPort :integer; obtain the 'virtual' listening port
  function GetLocalAddr: TStringlist; obtain the local ip interface address.

sendafile ( th:TmiInfileThread; const remotedir,namefile:string):boolean;

send file to remote connection
  function MakeSpyce (AClass: TPersistentClass):Tspyce; create a child spyce class
  procedure MakeRegisterSpyce (const AClasses: array of TPersistentClass); create the array of spyce classes
  function addaction (const paction:string; ev:TGranPrimoEvent; spice:Tkspy):TmiWebAction; add a new action to the response engine.
Create a new TmiWebAction item with pathinfo=paction and onaction=ev

procedure LogAuto;

procedure to add action to can be handled by Gp
  property Active: boolean Active or desactive the listen socket.
  property serverNormal : TChildIndyServer Child server for normal connection
  property serverSSL : TChildIndyServer Child server for SSL connection
  property IdServerIOHandlerSSL : tmiServerIOHandlerSSL Component to do the ssl filter
  property FclassProxy: TGpIndyServerClass; class of proxy server generated in a client connection.
  property modoServer : tmodoserver Indicate the mode ( in which servers will be able to open it)








Teléfono: 978-610539 - Fax: 978-610861 -Trav.Agustina Aragón 1,1e 44002 Teruel ( España ).webmaster

Copyright © 1997-2004 , [Multi-Informatica Teruel, S.L].La información contenida en este documento está sujeta a modificaciones sin previo aviso. Otros productos u organizaciones mencionadas aquí son marcas comerciales o marcas registradas propiedad de sus respectivas organizaciones o propietarios.