Arquitectura aplicación escritorio + bd + aplicación asp

31/08/2006 - 10:15 por Sergio | Informe spam
Hola:

Tengo alguna duda sobre la arquitectura de una aplicación que tengo
que llevar a cabo.

Por un lado quiere una aplicación de escritorio que acceda a una base
de datos para su trabajo cotidiano (hasta aquí no hay problema puesto
que la lógica dice que el servidor debería estar pinchado en su red
local y la aplicación de escritorio instalada en cada puesto).

Por el otro lado, el cliente tiene actualmente contratado un hosting en
un proveedor donde tiene alojada su página web (estática, sin bd ni
contenido dinámico), pero ahora quiere que también acceda a la misma
bd de la aplicación de escritorio para servir datos a sus clientes.

Solución 1 (todo en el cliente)
-
Lo suyo sería (imagino) que el cliente comprara una máquina,
instalara el IIS, y con una ip fija y la redirección de DNS (dejaría
de contratar el hosting actual), alojara en su servidor la aplicación
web que ahora sólo debería acceder a una bd accesible directamente
desde su red local.

Solución 2 (desde el hosting acceder a la red local del cliente para
consultar la bd)

Si no quiere perder su hosting, la idea que he pensado es acceder desde
las páginas .asp del hosting a la red local del cliente (redirigiendo
en el router el puerto 1433 - SQL Server, a un máquina de la red local
donde esté la bd.

La cadena de conexión sería algo parecido a Provider=SQLOLEDB.1;Data
Source=<IP_FIJA_CLIENTE>:<PUERTO>, donde <IP_FIJA_CLIENTE> sería la
dirección del router que luego haría un NAT a la máquina interna.

Solución 3 (desde el cliente acceder a la bd alojada en el hosting)

Esta solución parece la más rocambolesca, pero...
¿Se podría acceder por OLEDB o DSN a una base de datos que está en
el hosting?
Es decir, no se si normalmente la base de datos está una ip públic
del hosting...

Desde ya, gracias por vuestras comentarios.
La verdad es que siempre he trabajado en entorno controlado (LAN) y
ahora que salgo a internet me surgen las dudas.

Preguntas similare

Leer las respuestas

#1 richi
31/08/2006 - 12:39 | Informe spam
Hola Sergio,

Solución 1,
bastante cara y costosa. Compra servidor, configura máquina,
mantenimiento, seguridad, coste IP fija, ancho de banda! (importante)

Solución 2:
Piensa que esta maquina local tiene que tener un buen ancho de manda
para satisfacer las demandas del cliente. Además necesitarias una IP fija.

Solución 3:
Para mí la mejor.
Las BBDD en sqlserver alojadas en el servidor tienen asignada una ip,
puerto, usuario y contraseña. Por lo que cualquier aplicación de
escritorio, web, ... puede acceder a ella.
Te olvidas de comprar hardware, mantenimiento y evitas problemas de
seguridad, contratar ip fija, ancho de banda, caidas de tu sistema ...


Como caso practico implementamos en mi empresa un portal juvenil donde
los chicos se dan de alta para solicitar una tarjeta joven.
La asociación tiene en su sede un programa a medida para crear tarjetas
en soporte de plástico con sus datos. Esta aplicación conecta a la BBDD
en sqlserver de la web para obtener los datos.

Es decir, web y aplicación de escritorio trabajan sobre la BBDD remota.

Saludos.
Respuesta Responder a este mensaje
#2 Matias Iacono
31/08/2006 - 14:31 | Informe spam
Acotando un poco.

En todo caso, si el hosting pagado no diera acceso publico a su SQL Server
(Que es raro), y soportara .Net (O no), podrias desarrollar un par de
servicios webs, y en vez de conectarte directamente a la DB, te conectas a
los servicios, los cuales hacen de puente entre la DB y las Apps de
escritorio.

De cualquier manera, en los 3 casos, el cliente se quejara que alguno de los
lados de su aplicacion no es tan rapido como esperaba, asi que tendras que
tener a la mano un buen manojo de explicaciones para hacerle entender las
consecuencias de sus requerimientos.

Saludos.
Microsoft MVP
Orador Regional INETA


"richi" wrote:

Hola Sergio,

Solución 1,
bastante cara y costosa. Compra servidor, configura máquina,
mantenimiento, seguridad, coste IP fija, ancho de banda! (importante)

Solución 2:
Piensa que esta maquina local tiene que tener un buen ancho de manda
para satisfacer las demandas del cliente. Además necesitarias una IP fija.

Solución 3:
Para mí la mejor.
Las BBDD en sqlserver alojadas en el servidor tienen asignada una ip,
puerto, usuario y contraseña. Por lo que cualquier aplicación de
escritorio, web, ... puede acceder a ella.
Te olvidas de comprar hardware, mantenimiento y evitas problemas de
seguridad, contratar ip fija, ancho de banda, caidas de tu sistema ...


Como caso practico implementamos en mi empresa un portal juvenil donde
los chicos se dan de alta para solicitar una tarjeta joven.
La asociación tiene en su sede un programa a medida para crear tarjetas
en soporte de plástico con sus datos. Esta aplicación conecta a la BBDD
en sqlserver de la web para obtener los datos.

Es decir, web y aplicación de escritorio trabajan sobre la BBDD remota.

Saludos.

Respuesta Responder a este mensaje
#3 Manuel Vera
31/08/2006 - 14:47 | Informe spam
Humildemente opino...

Solución 1 (todo en el cliente)
-
Muy costoso: instalación, mantenimiento y operacion. A menos que tu cliente
sea la mega empresa y estos costos le resulten juego de niños. Evalua las
caracteristicas de tu cliente y su capacidad economica.

Solución 2 (desde el hosting acceder a la red local del cliente para
consultar la bd)

Me parece la mejor opcion asumiendo que ya tienen un servidor de BD
instalado y operativo.
Debes tener en cuenta la versión de SQL instalada y el número de licencias,
etc.
De esta forma tu cliente mantiene el control y privacidad de su data, sin
tener que entregarsela al ISP.
En tu red le das acceso exclusivo al ISP a accesar a tu servidor de datos.
Encapsula todas las operaciones en StoredProcedures en tu base de datos y le
das los permisos a ellos al usuario que crearas para la web aumentando la
seguridad de tus datos.

Solución 3 (desde el cliente acceder a la bd alojada en el hosting)

Esta opcion es viable tambien. En el caso de que no tengas un servidor de
datos, no tengas un DBA especializado, el crecimiento estimado de la BD sea
grande, y que a tu cliente no le incomode alojar su data corporativa fuera
de sus instalaciones, etc... no veo inconveniente en que tomes esta opcion.
En cuanto a las facilidades de acceso, no hay problema. Es totalmente
factible que puedas acceder a tu BD del ISP desde tu LAN corporativa,
siempre y cuando los PC clientes en tu LAN tengan acceso libre al web.
Con esta opcion te ahorras los costos de mantenimiento, soporte, "licencias"
(relativamente), infraestructura, etc.
En mi caso particular, tenemos nuestra pagina web con BD web y en nuestra
LAN tengo aplicaciones varias en VB, Excel y Access que consultan datos de
la BD web via ADO OLEDB.

Salu2
MV
Respuesta Responder a este mensaje
#4 Sergio
01/09/2006 - 09:03 | Informe spam
Hola:

Lo primero agradeceros vuestras contestaciones, muuuuchas gracias ;-)

Ahora sólo queda valorar como encaja el cliente no tener sus datos
alojados en local (si lo tolera o no).

De verdad, muchas gracias.

Un saludo.
Respuesta Responder a este mensaje
#5 Marcel
01/09/2006 - 10:58 | Informe spam
Piensa tambien separar las lecturas de las grabaciones en tu nueva
aplicacion,
de esa forma, replicando la DB podrias leer en local y grabar en remoto
desde uno de los puntos.

Eso, si has de desarrollar de nuevo.

Un saludo.
Marcel Zayas

"Sergio" escribió en el mensaje
news:
Hola:

Lo primero agradeceros vuestras contestaciones, muuuuchas gracias ;-)

Ahora sólo queda valorar como encaja el cliente no tener sus datos
alojados en local (si lo tolera o no).

De verdad, muchas gracias.

Un saludo.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida