Navegando en torno al iceberg cliente/servidor

Requerimientos comerciales para aplicaciones cliente/servidor corporativas

Durante los cinco últimos años, las empresas y organizaciones han comenzado a utilizar herramientas cliente/servidor funcionando en desktops con el fin de desarrollar rápidamente aplicaciones a nivel de empresa. Sin embargo, cada vez en mayor medida, aquellas organizaciones están descubriendo que esas herramientas no funcionan adecuadamente para aplicaciones de gran escala a nivel de empresa. Tales aplicaciones requieren herramientas que sean fáciles de utilizar como herramientas cliente/servidor de primera generación y lo suficientemente potentes para hacer frente a la complejidad y a los requerimientos de rendimiento de las aplicaciones de empresa.

Las empresas están navegando en dirección a un "iceberg cliente/servidor". Y, ¿qué significa esta frase? Al migrar desde aplicaciones basadas en hosts a aplicaciones cliente/servidor, las organizaciones se han concentrado en la utilización de prototipos de aplicaciones y no han empleado el mismo tiempo en analizar sus requerimientos comerciales, técnicos y de infraestructura. Y además, en base a ese supuesto, los desarrolladores de aplicaciones han estado utilizando herramientas de primera generación para enfrentarse a la parte superior del iceberg cliente/servidor: el interface de usuario y los simples requerimientos lógicos de las aplicaciones cliente/servidor de primera generación.

Sin embargo, los desarrolladores que utilizan estas herramientas han comenzado a detectar requerimientos "por debajo de la línea de flotación". Estos son los mismos requerimientos a los que se habrían enfrentado los desarrolladores si hubieran estado desarrollando aplicaciones basadas en hosts: la capacidad de manejar niveles de complejidad cada vez mayores, escalabilidad para soportar cantidades crecientes de usuarios, control de transacciones, etc.

Las herramientas cliente/servidor de próxima generación o de empresa satisfacen estos requerimientos situados "por debajo de la línea de flotación" y permiten a las organizaciones enfrentarse de manera efectiva al iceberg cliente/servidor.

El rostro cambiante del desarrollo cliente/servidor

La primera generación de herramientas de desarrollo de aplicaciones cliente/servidor comercializadas durante los cinco últimos años ofrecía desarrollo rápido de aplicaciones (RAD) gráfico. Los desarrolladores y profesionales comerciales que utilizan estas herramientas se concentran en lo que ven en la pantalla, y no en la complejidad subyacente. Y además, como los interfaces GUI de estas herramientas son bastante sofisticados, los desarrolladores asumen que las herramientas son también lo suficientemente sofisticadas para manejar otros aspectos de la aplicación, como lógica comercial compleja y gestión de datos.

Desafortunadamente, este supuesto no es válido. La sofistificación del interface GUI de una herramienta de primera generación representa sólo la punta del iceberg, y no se extiende por debajo de la línea de flotación.

Los desarrolladores de aplicaciones han comprobado esto dolorosamente. Cuando intentan hacer que una herramienta de primera generación maneje los requerimientos de aplicaciones de mayor escala, generalmente tienen que programar en uno o más lenguajes de tercera generación (3GLs), como Cobol, C o C++.

Además, la mayoría de las herramientas de primera generación integran estrechamente codificación de interface de usuario con lógica de aplicación, y requieren que toda la lógica resida en el cliente. Si esa lógica incluye acceso a datos, la escalabilidad que se obtendría moviéndola al servidor resulta casi imposible. Esta integración hace también que todos los datos se muevan en la red entre cliente y servidor, dando lugar a un atasco en la misma.

Finalmente, las herramientas de primera generación, al requerir la utilización de extensiones y lenguajes SQL propietarios, requieren también la creación de aplicaciones en las que la lógica de gestión de datos esté ligada a una única base de datos, de forma que si la aplicación necesita acceder a otra base de datos, el desarrollador debe modificar la lógica de aplicación. La utilización de una herramienta de primera generación impide a la aplicación aumentar en complejidad, debido a la falta de modularidad y a la dificultad de añadir lógica de aplicación compleja.

El grado de madurez alcanzado por el mercado de desarrollo de aplicaciones ha dado lugar a una segunda generación de herramientas de desarrollo cliente/servidor, que no sólo permiten niveles cada vez mayores de complejidad, sino que también hacen posible una mayor productividad de los programadores en toda la gestión de interfaces de usuario, lógica y datos.

Estas herramientas incluyen también servicios sofisticados, destinados a manejar el proceso de desarrollo de aplicaciones, en el que generalmente intervienen equipos de desarrolladores. Y además, las capacidades de despliegue de las herramientas pueden dar cabida a su vez a una variedad de capacidades entre plataformas, a los niveles de interface, middleware y comunicaciones en red.

Para trasladar el desarrollo a nivel de empresa desde el mainframe al proceso cliente/servidor se requieren las mismas herramientas y funciones que formaban parte integral del desarrollo en el host. Estas herramientas han comenzado a aparecer recientemente en el mercado, para ayudar a las empresas en su migración hacia el desarrollo de aplicaciones cliente/servidor a nivel corporativo.

Futuros requerimientos cliente/servidor

Al seleccionar herramientas de segunda generación para desarrollo de aplicaciones a gran escala, las empresas deben tomar en consideración sus capacidades de desarrollo, sus capacidades de despliegue, y la flexibilidad de la herramienta para adaptarse a los cambios a lo largo del tiempo.

Por ejemplo, las herramientas de desarrollo utilizadas para crear aplicaciones a nivel de toda la organización deben soportar diversas complejidades en el interface de usuario, en la lógica y en los componentes de datos de la aplicación. En términos de despliegue, las herramientas deben ser capaces de resolver los problemas que presenta la existencia de múltiples plataformas de proceso, cantidad creciente de usuarios, y múltiples bases de datos.

La herramienta en cuestión deberá ofrecer también flexibilidad en el tiempo. Los productos, servicios y unidades comerciales evolucionan continuamente, y los entornos de desarrollo y de despliegue de aplicaciones deben reflejar y soportar esos cambios. Las aplicaciones departamentales actuales pueden evolucionar hacia un mañana en que habrá aplicaciones a nivel de la totalidad de la empresa, y un departamento grande podría quedar dividido geográficamente, posiblemente a nivel internacional. Los entornos de desarrollo cliente/servidor de segunda generación están diseñados para hacer frente a esos cambios.

Requerimientos de herramientas

Al seleccionar una herramienta de desarrollo para crear una aplicación cliente/servidor a nivel de empresa, deben tomarse en consideración por lo menos tres factores: la escala de la aplicación, los requerimientos globales para la herramienta de desarrollo en cuestión, y los requerimientos específicos de los componentes de interface de usuario, lógica y datos de la aplicación.

Escala de la Aplicación.- En el desarrollo de aplicaciones existen muchos elementos comunes, así como una variedad de tareas y requerimientos comerciales que determinan que los desarrolladores seleccionen diferentes enfoques y los implementen utilizando diferentes herramientas.

Algunas compañías tienen sólo proyectos pequeños, que duran sólo un corto periodo de tiempo. Por ejemplo, una compañía que ofrezca un producto especial para venta junto con una firma asociada sólo necesitaría una aplicación que pudiera procesar una pequeña cantidad de pedidos o peticiones de información. Una vez concl

Viñeta publicada el 20 de febrero de 1870 en La Flaca n.º 35 Tendencias

ny2 ACTUALIDAD

ny2 Sociedad de la información

Día de la Movilidad y el BYOD Coffee Break