¿Cuál es la mejor tecnología de ancho de banda bajo Delphi n-tier?
datasnap remobjects (5)
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 (tengo que admitir más de 700)? ¡Gracias!
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 KBM y REM son conocidos por ser buenos proveedores).
Nota personal: 700 usuarios en una aplicación de imágenes de documentos a través de mala conectividad suena como un desastre. Gaste el dinero en actualizar la conectividad ya que será más barato a largo plazo.
Tanto kbmMW como 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 hacer sus servicios.
Además, dale un aspecto al SDK RealThinClient , es un marco de interacción remoto ligero.
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 de archivos.
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.
Una cosa para recordar ... no es la cantidad de usuarios, sino el número de ellos que usarán los recursos al mismo tiempo. 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.
Si realmente quieres utilizar un "ancho de banda bajo", utiliza BSD Sockets API, que te dará un control total sobre lo que se está enviando y allí podrás enviar la menor cantidad de información que desees. Por supuesto, entonces tendrá que implementar todos los niveles usted mismo, pero bueno, esa es todavía una opción : D