2008-12-12 12 views
9

Necesito implementar una aplicación Delphi en un entorno que necesita datos centralizados y un sistema de almacenamiento de archivos (para imágenes de documentos) pero tiene varias sucursales con interconectividad relativamente pobre. Creo que una aplicación de base de datos de 3 niveles es la mejor manera de hacerlo, así puedo brindar una experiencia de escritorio rica con necesidades de transferencia de datos relativamente livianas. Hasta ahora, he analizado brevemente Delphi Datasnap, kbmMW y Remobjects SDK. Parece que kbmMW y Remobjects SDK usan el menor ancho de banda. ¿Alguien tiene alguna experiencia en la implementación de cualquiera de estas tecnologías en entornos desafiantes con un número significativo de usuarios (necesito admitir más de 700)? ¡Gracias!¿Cuál es la mejor tecnología de ancho de banda bajo Delphi n-tier?

Respuesta

5

Depende si está vinculado a conjuntos de datos remotos. Si no está vinculado al conjunto de datos, entonces SOAP probablemente sea una buena opción. O lo que hice fue escribir mi propio protocolo que es similar a SOAP en la naturaleza. Esto se hizo antes de que SOAP fuera estándar y estoy contento de haberlo hecho, esto te da la posibilidad de controlar más el flujo de datos. Se da que si tienes una conectividad pobre, pasarás el tiempo soportándola. Es muy bueno si es tu propio código lo que estás soportando versus tener que esperar a un proveedor. (Aunque se sabe que KBM y REM son buenos proveedores).

Nota personal: 700 usuarios en una aplicación de imágenes de documentos por mala conectividad suena como un desastre. Gaste el dinero en actualizar la conectividad ya que será más barato a largo plazo.

4

Ambos kbmMW y RO SDK ofrecen formato binario, que es más compacto que el formato SOAP, especialmente si está trabajando con documentos.

RO sdk parece ofrecer más herramientas GUI para ayudarlo a realizar sus servicios.

También dale un aspecto a RealThinClient SDK, es un armazón remoto liviano.

Pero cualquiera que sea el marco con el que vaya, su diseño de trabajo lo hará rápido o lento, tengo algunas aplicaciones que funcionan en líneas lentas de 128kb, y funciona perfectamente sin que el usuario se queje, pero no hago una gran transferencia para archivos.

2

No sé si es el mejor/el más eficiente (¡me alegro de que haya hecho esta pregunta!), Pero he tenido buenos resultados con RemObjects SDK + DataAbstract. Este último hizo que gran parte de los detalles de plomería fueran menos complicados, lo que fue útil. Todavía estoy implementando, pero hasta ahora todo va bien.

5

Una cosa para recordar ... no es la cantidad de usuarios, sino el número de ellos que usarán los recursos al mismo tiempo que será el problema. Si es posible, intente desarrollar su aplicación "servidor sin estado", esto le permitirá una mayor flexibilidad a largo plazo si encuentra que debe agregar más servidores al grupo para respaldar su base de clientes. Lo más difícil de n-tier es escalar más allá del primer servidor ... planee eso desde el principio. Cada solicitud no debe saber nada sobre una solicitud previa ... o al menos la solicitud debe tener una forma de pasar el contexto para que el servidor pueda buscarlo en una tabla de sesión o algo así.

Personalmente, recomendaría RemObjects. Lo he usado con buenos resultados.

1

Si realmente quieres usar un "ancho de banda bajo", utiliza BSD Sockets API, que te dará control total sobre lo que se está enviando y allí puedes enviar la menor cantidad de información que desees. Por supuesto, entonces tendrá que implementar todos los niveles usted mismo, pero bueno, eso todavía es una opción: D

Cuestiones relacionadas