Multi-informatica
 

Products

 

Resources

 

 

 

GpIndy

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.
TGpIndy

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 :
http://cannings.org/oldCourses/javaAdvanced/jsse.html

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
public      
  property
Gran :TServer self contained Tspy service.
  property active : boolean Is the server active ?
end;      

 

TGpIndyServer = class (TIdTCPServer) Base class of all gpindy servers
public      
  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
  property
granprimo :TSpy link to gp system
end;      

 

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

 

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

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.
  function

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

procedure LogAuto;

procedure to add action to can be handled by Gp
public      
  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)
end;      

 

 

 

 
   

 

 

 

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.

  Zapatec