Delphi - Acceso remoto

 
Vista:

Acceso remoto

Publicado por Daniel (12 intervenciones) el 09/08/2004 15:29:36
Hola!!!
Planteo una consulta:
Tengo una aplicacion que funciona perfectamente en una red local, esta aplicacion LLEVA A CABO MUCHAS TRANSACCIONES CON UNA BASE DE DATOS, ¿que me recomiendan utilizar para lograr que esa misma aplicacion funcione pero accediendo a traves de internet?
En este foro lei muchas recomendaciones para el acceso remoto, intraweb entre ellas pero... si mi aplicacion tiene una fuerte interaccion con mi base de datos, ¿es los mas indicado esto de intraweb? o hay algo mejor?

Espero recomendaciones, GRACIAS!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Acceso remoto

Publicado por BigLuis (713 intervenciones) el 09/08/2004 16:37:49
¿Que base de datos utilizas?.Yo he probado MySQL e Interbase a traves de la red local e Internet y la diferencia es minima teniendo mucho cuidado en las sentencias SQL(es decir que manejen unicamente los datos absolutamente necesarios).Tambien he probado el acceso a un servidor MySQL a traves de PHP y Delphi y no he notado diferencia, salvo que para mi es muchisimo mas sencillo Delphi (soy principiante en PHP).
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceso remoto

Publicado por Daniel (12 intervenciones) el 09/08/2004 16:45:33
Estoy usando SQL Server, estas seguro de que usando los componentes tradicionales de Delphi (TADOTable, TTable, TQuery, TADOQuery, etc ) no tardas muchisimas horas para realizar transacciones a traves de internet que son rapidas en una red local?
O acaso estas usando alguna otra cosa como corba, midas o algo asi, algo que no sea parte de las aplicaciones cliente/servidor tradicionales?

te agradeceria que me aclares esto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceso remoto

Publicado por mamcx (533 intervenciones) el 09/08/2004 17:09:06
Para que te hagas una idea. Piensa en una clase simple como:

TCliente
Nombre:String
Id:Integer
Foto:Blob
Descripcion:String

Y lo accesas remotamente. Y haces algo como:

(Desde el cliente:)

A:=Cliente.Id;
B:=Cliente.Nombre;
.
.
.

Estas haciendo al menos, unas 2-3 llamadas REMOTAS que viajan a travez de la red WAN. Si tienes una aplicacion y las has programado del tipo anterior, definitivamente te tiene que ir lento. Lo que se debe hacer, es:

ObjetoCopiaLocalCliente:=Servidor.ObtenerCliente:TClientDataSet

Es mas economico hacer transacciones en batch si vas a tener una aplicacion remota. La manera directa con Delphi es usar TClientDataSet. Sin embargo te recomiendo www.remobjects.com o www.msgconnect.com para aplicaciones de este tipo, aunque si el asunto es MUY simple (ie: solo se hacen transacciones CRUD basicas), lo de TClientDataSet va muy bien.

Intraweb te serviria pero es un rediseño del gui, aunque puede ser un cambio menos brutal que pasar la aplicacion a cliente/servidor multinivel...

Si nos explicas mas concretamente que es lo que pasa, te damos una recomendacion mas especifica...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceso remoto

Publicado por Daniel (12 intervenciones) el 09/08/2004 17:27:44
Concretamente, el sistema que tengo desarrollado es muy grande, lo desarrolle usando los componentes de acceso a base de datos tradicionales, esto es, arrastrar un TQuery o un TTable luego conectarlo a mi base datos, agregar campos persistentes, conectar un TDBEdit, etc. Toda la aplicacion esta hecha asi, ahora bien, cuando yo me conecto a mi SQL Server, uso una direccion IP para conectarme y obviamente el SQL Server esta en esa direccion escuchando por un puerto. Pero si esa ip es un dns remoto, creo que mi aplicacion no funcionaria o estaria MILLONES DE HORAS para que muestre un formulario con datos. Cuando incie este hilo, pregunte que otra tecnologia o framework o componente o lo que sea me recomendaban, pero BigLuis me sembro una duda diciendome que mi aplicacion funcionaria sin problemas.
Ademas de las recomendaciones que me dio mamcx, quisieran que confirmen algo que ya lo tengo asumido, TODA MI SISTEMA DEBE SER ESCRITA DE NUEVO O MODIFICADO CASI INTEGRAMENTE para que funcione a traves de internet, o hay algo que me permita reutilizar lo mas que se pueda mi sistema? ya funcionando correctamente
Es asi?

Gracias por la ayuda y espero mas recomendaciones

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceso remoto

Publicado por mamcx (533 intervenciones) el 09/08/2004 22:46:11
La verdad, si. Debes replantear tu diseño.

Basicamente:

Si usas un FrontEnd Web, por ejemplo con Intraweb o ASP.NET (Intraweb TAMBIEN fuciona con ASp:NET y Delphi.NET), puedes mantener el codigo de conexion pero pierdes el del cliente. Si la interaccion del cliente con la aplicacion es basica (por ejemplo, tipo MS Outlook) es posible que la ruta sea corta.

De lo contrario, debes analizar y buscar informacion sobre aplicaciones multi-nivel. No necesariamente pierdes todo el codigo, de hecho, lo IDEAL es ir portando/mejorando por SECCIONES de tu aplicacion. Debes es SEPARAR REALMENTE lo que es acceso a datos, de procesos, de la interfaz grafica, etc...

Los link que te di te dan la idea de lo que hay que hacer, y personalmente, me gusta mucho RemObjects. Sin embargo, para quienes son mas del estilo tradicional tambien puedes chequear ASTA (que va muy bien).

BigLuis no esta equivocado, la aplicacion SI funciona asi PERO el diseño o la manera como esta hecho es impractica en un ambiente de internet.

Ten en cuenta que hacer el cambio toma su tiempo, no importa que parte elijas. Yo te recomiendo:

Haz un plan donde, luego de LEER los links que te pase:

1- Crea un proyecto aparte. NO BOTES TU CODIGO, copialo tal cual
2- Lee sobre programacion extrema y especialmente usa DUNIT (busca en internet) porque vas a hacer refactorizacion masiva de codigo
3- Mira que framework te gusta mas entre RemObjects, ASTA, msgConnect o DataSnap (= Baja los componentes, mira las ayudas, prueba un poco)
4- Determina que es codigo de acceso a datos, codigo de procesos y de cliente. Crea un proyecto POR CADA UNO y separalo

Buena suerte. Seran mas o menos 1 mes de investigacion, 6 de quebradero de coco y unos 3 mas terminando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceso remoto

Publicado por Daniel (12 intervenciones) el 10/08/2004 01:19:18
Muchas gracias!!!!
Excelentes aclaraciones, me ayudaron un monton para aclarar mis ideas.
No es que sea pesimista ni que busque siempre el lado malo, pero si uso algunas de las opciones que me diste, ¿tengo alguna limitacion en cuanto a la cantidad de clientes que esten atacando la aplicacion distribuida? esto es, es posible que mi servidor colapse con este tipo de tecnologia? Si me respondes a esto culminare el hilo y no preguntare mas, de todos modos muchisimas gracias por brindarme tantos conocimientos!!!!!

Gracias, muchas gracias!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceso remoto

Publicado por BigLuis (713 intervenciones) el 10/08/2004 13:52:38
Que puedo decir yo (una bicicleta) despues de un tanque (Mamcx).Solamente apuntar que cuando he utilizado Interbase lo he hecho con los componentes nativos de Delphi y actualmente que me he decantado por MySQL (basicamente por las herramientas potentes que he encontrado para administracción del servidor tanto de forma local como remota, en lo referente a creacion de bases de datos, tablas, permisos, indices etc) estoy utilizando ZeosLib y estoy muy satisfecho con su comportamiento (es una pena que de momento no tenga soporte para SQLServer).
Como MySQL hasta la version 5 (todavia no liberada, es decir creo que es Alfa o Beta) no soportaba Triggers y Procedimientos almacenados yo cargo un poco mas el cliente con todas las reglas de negocio e integridad de datos.En lo referente a tu cuestion sobre el numero de conexiones mi consejo es que repartas el trabajo entre el servidor y los clinetes.Que las rutinas que se repitan muy a menudo las implementes en el servidor y lo referente a la integridad de datos.Al fin y al cabo la fluidez de datos basicamente depende de la potencia del equipo servidor, de los equipos clientes, de como este repartidp, por lo tanto el trabajo, y del trafico en la red que sea.
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Acceso remoto

Publicado por mamcx (533 intervenciones) el 10/08/2004 16:22:30
Hey, como asi tanque? Si soy todo menudito!!! Si no fuera por la ropa, creo que hasta me darian limosna ;)

Fresco Daniel, que la comunidad de componentes de Delphi es exceletne. El asunto de la escalabilidad es muy sobreestimado...realmente cuantos de nosotros REALMENTE manejos cientos de peticiones/segundo de forma intensiva y continua por horas y horas? Pero la respuesta es si, tanto las opciones que te da BigLuis y las que te di TIENEN buena arquitectura...LO UNICO que hay que hacer es entender esa arquitectura y como funcionan las aplicaciones cliente/servidor. Como dato adicional, se que RemObjects tiene failover y balanceo de cargas ya incluido...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar