Fundamentos Cliente/Servidor
¿Por qué Cliente/Servidor?
El término Cliente/Servidor se
utiliza frecuentemente como sinónimo de Proceso Cooperativo o Proceso
Distribuido, es decir, distribución de aplicaciones y/o datos en
una red de ordenadores. En este sentido, no es nada nuevo. Los bancos,
por ejemplo, comenzaron a distribuir aplicaciones a principios de los años
70; la necesidad de una constante disponibilidad de información
a nivel de sucursales para atender a los clientes independientemente de
la disponibilidad de la red y del ordenador central, llevó a la
incorporación de aplicaciones en las que las funciones y los datos
se distribuian entre el sistema central y los procesadores inteligentes
instalados en las sucursales.
¿Cómo era antes? Las
aplicaciones se desarrollaban de tal manera que la distribución
de las funciones y datos quedaba implícita en el diseño y
código del programa, y en las comunicaciones entre las aplicaciones.
Esto dio como resultado unas aplicaciones distribuidas de forma cooperativa
con una estructura muy rígida. Ni las funciones ni los datos podían
redistribuirse sin modificaciones o rediseño sustanciales, y las
aplicaciones estaban estrechamente vinculadas al sistema para el que habían
sido desarrolladas. La mayoría de estas aplicaciones se desarrollaron
verticalmente, es decir, programas y datos estaban asociados biunívocamente
y los datos no se veían de una manera global desde aplicaciones
diferentes, sino como parte integral de la aplicación. En muchas
ocasiones, el solapamiento, la duplicación, y la reduncancia de
información se convirtieron en defectos comunes.
¿Qué es nuevo? Los
ordenadores personales y los paquetes de software de aplicaciones proliferan
comercialmente. Estos ordenadores, también conocidos como estaciones
de trabajo programables, están conectados a las Redes de Area Local
(LAN), mediante las cuales, los grupos de usuarios y profesionales comparten
aplicaciones y datos. Las nuevas tecnologías de distribución
de funciones y datos en una red permiten desarrollar aplicaciones distribuidas
de una manera transparente, de forma que múltiples procesadores
puedan ejecutar partes distintas de una aplicación. Si las funciones
de la aplicación están diseñadas adecuadamente, se
pueden mover de un procesador a otro sin modificaciones, y sin necesidad
de retocar los programas que las invocan. Si se elige una adecuada infraestructura
de sistemas distribuidos y de herramientas de desarrollo, las aplicaciones
resultantes podrán trasladarse entre plataformas de distintos proveedores.
Aunque inicialmente fueron los propios
usuarios quienes impulsaron esta nueva tecnología, la situación
ha cambiado drásticamente. Hoy en día, el modelo Cliente/Servidor
se considera clave para abordar las necesidaes de las empresas. El proceso
distribuido se reconoce actualmente como el nuevo paradigma de sistemas
de información, en contraste con los sistemas independientes. Este
cambio fundamental ha surgido como consecuencia de importantes factores
(negocio, tecnología, proveedores), y se apoya en la existencia
de una gran variedad de aplicaciones estándar y herramientas de
desarrollo fáciles de usar que soportan un entorno informático
distribuido.
Muchas compañías se
enfrentan hoy al reto de hacer negocios en un entorno más cambiante
y competitivo que nunca. Las empresas que se adapten mejor al mercado y
respondan con mayor rapidez que sus competidores, se convertirán
en líderes de los segmentos en que operan. El clima de competitividad
fuerza a las empresas a renovar constantemente sus productos y servicios,
siendo el elemento tiempo uno de los factores críticos del éxito.
En este sentido, el tiempo de puesta en mercado es primordial, y muchas
empresas están reestructurando sus negocios para reaccionar mejor
a las necesidades de sus clientes. Las nuevas estructuras organizativas,
con mayor autonomía en sus líneas de negocio y departamentos,
son frecuentemente responsables de las soluciones informáticas en
las que se apoyan. La globalización requiere que productos y servicios
puedan adaptarse fácil y rápidamente a las peculiaridades
de los distintos mercados en los que la empresa opera o piensa operar.
Un buen ejemplo es la Comunidad Europea, donde las empresas amplían
su radio de acción por todos los paises comunitarios.
Si la organización de los
Sistemas de Información (SI) no es capaz de reaccionar ante esta
nueva demanda, es probable que los departamentos y las líneas de
negocio incorporen soluciones independientes fuera del control de la organización
de informática. Es obvio que la proliferación de soluciones
departamentales independientes desembocará en un caos. Por lo tanto,
se necesita de una amplia infraestructura informática a nivel de
empresa que sirva de base a los departamentos para construir sus propias
soluciones.
Esta infraestructura no se debe implantar
simplemente por razones de tecnología o de moda. Deberá utilizarse
para desarrollar o rediseñar aplicaciones que soporten los objetivos
de negocio de la empresa o los potencien. Pero la migración de aplicaciones
ya existentes sin modificar su funcionalidad, puede acarrear costes sustanciales
y no producir los beneficios deseados.
Las condiciones que pueden aconsejar
la implantación del modelo Cliente/Servidor en una empresa son:
-
Cambios estructurales y organizativos
-
Cambios en los organigramas, con mayor
delegación en personas y departamentos.
-
Respuesta a la dinámica del mercado.
-
Cambios en los procesos de negocio.
La situación está cambiando:
de una época anterior de masiva producción industrial, estamos
pasando a otra de ajustada adaptación a la demanda. La capacidad
de aproximación de los productos y servicios a la medida de las
necesidades del cliente exige diseñarlos, producirlos y suministrarlos
con rapidez y mínimos costes.
Las razones que impulsan el crecimiento
de las aplicaciones Cliente/Servidor son:
-
La demanda de sistemas más fáciles
de usar, que contribuyan a una mayor productividad y calidad.
-
El precio/rendimiento de las estaciones
de trabajo y de los servidores.
-
La creciente necesidad de acceso a la
información para tomar decisiones y de soportar los procesos mediante
unas aplicaciones más ajustadas a la estructura organizativa de
la empresa, que permitan realizar las operaciones de forma más natural.
-
La utilización de nuevas tecnologías
y herramientas de alta productividad más aptas para la dinámica
del mercado.
Rediseño de los procesos de negocio
El modelo Cliente/Servidor proporciona
los medios para que las soluciones informáticas se adapten prontamente
a las organizaciones y procesos de negocio, llevando los recursos informáticos
a las personas y a los lugares donde se realiza el trabajo y no al contrario.
Sin embargo, para lograr esta flexibilidad en la adaptación es necesario
que los mecanismos de distribución de funciones y datos no queden
unidos permanentemente en los programas a la lógica funcional, ya
que en ese caso estaríamos volviendo a desarrollar aplicaciones
al viejo estilo.
Enfocado correctamente, el modelo
Cliente/Servidor permite ejecutar las aplicaciones en la plataforma informática
más adecuada para maximizar el beneficio operativo. También
significa la posibilidad de que funciones y datos se puedan reubicar, cambiando
los procesos de negocio sin alterar la lógica de la aplicación.
La selección de unas herramientas adecuadas conduce a un desarrollo
acelerado de las aplicaciones y mediante la reutilización de servidores
puede reducirse notablemente la tarea del mantenimiento.
Es obvio que el empleo del modelo
Cliente/Servidor para aplicaciones de nuevo cuño, que soportan procesos
de negocio rediseñados, proporciona el máximo beneficio.
Sin embargo, respecto a las ya existentes, también se pueden obtener
ventajas de una migración, mediante las siguientes opciones:
-
Manteniendo la aplicación, pero
mejorándola con una nueva interfaz, que se ejecuta en una estación
de trabajo programable. Esto puede llevarse a cabo añadiendo una
Interfaz Gráfica de Ususario y/o nuevas funciones locales y datos,
preservando las interfaces ya existentes con el host y dejando los datos
en el lugar donde estaban.
-
Migrando la aplicación a una
nueva plataforma y realizando cambios mínimos para explitar las
capacidades del nuevo entorno del sistema, por ejemplo, un ordenador de
sobremesa.
Estos enfoques permiten migrar paulatinamente
a un nuevo entorno Cliente/Servidor, sin tener que volver a escribir las
aplicaciones existentes partiendo de cero. La elección de una migración
ordenada o de un rediseño de procesos siempre estará fundamentada
en razones empresariales, más que en consideraciones técnicas.
Entorno actual - Nuevas tecnologías
En los años setenta y principios
de los ochenta era frecuente construir el organigrama de la empresa y los
procesos en función de la capacidad de los ordenadores.
Los grandes ordenadores eran caros,
y el proceso transaccional estaba soportado básicamente por terminales
no programables. Con la llegada de las estaciones de trabajo programables
y la gran disponibilidad de software de productividad personal, las funciones
que antes se situaban en el ordenador central pueden ahora realizarse donde
tienen lugar los procesos de negocio que las utilizan.
Los ciclos de vida de las tecnologías
se acortan y cada día aparecen otras nuevas. Los ejemplos son innumerables.
Las Interfaces Gráficas de Usuario (GUI, Graphical User Interface),
que aportaron cambios revolucionarios a las aplicaciones basadas en estaciones
de trabajo, están cediendo su hegemonía a Interfaces de Usuario
totalmente Orientadas a Objetos (OOUI, Object Oriented User Interface).
Ahora, seleccionando y arrastrando objetos que representan el entorno de
trabajo real, el usuario se convierte, de hecho, en parte de la aplicación.
Multimedia es otra tecnología clave que pronto se convertirá
en el estándar para interaccionar con un ordenador mediante voz
e imágenes.
Adicionalmente, nace una acusada
tendencia a utilizar soluciones de Sistemas Abiertos. La mayoría
de los proveedores anuncia que sus productos son abiertos, que permiten
acceder a aplicaciones y datos independientemente del Sistema Operativo
y del protocolo de red, y que soportan sistemas heterogéneos de
diversos proveedores.
En un entorno como el descrito anteriormente,
Cliente/Servidor proporciona un marco integrador para las tecnologías
emergentes, apoyándose en la experiencia y conocimientos de usuarios
y profesionales informáticos y haciendo uso de nuevas aplicaciones
estándar o de desarrollo propio.
En cuanto al software de aplicaciones
y herramientas disponibles, existe una tendencia creciente a comprar, en
vez de desarrollar aplicaciones. El software disponible y las sofisticadas
herramientas de usuario final fomentan las soluciones departamentales sencillas
y fáciles de instalar.
El papel de la organización de
Sistemas de Información
La creciente autonomía de los
departamentos de las empresas es un hecho determinante que incide en la
forma de actuar de los departamentos de informática. Está
disminuyendo la dependencia de los programadores, ante la evidencia de
que muchas soluciones se implantan sin su intervención. El "outsorcing"
erosiona todavía más la posición de privilegio tradicional
de las organizaciones de proceso de datos.
La nueva generación de profesionales
informáticos está abierta al uso de nuevas herramientas de
desarrollo y lenguajes que se presten a la implantación de aplicaciones
Cliente/Servidor, con frecuencia olvidando las metodologías de desarrollo
más formales y estructuradas del pasado. Están disponibles
sofisticadas herramientas que soportan el desarrollo de interfaces gráficas
de usuario (GUI) y lenguajes orientados a objetos, y se ofrecen entornos
de desarrollo para la implantación de las aplicaciones comerciales.
El desarrollo de prototipos que se realizan en colaboración con
los usuarios, se ha convertido ya en parte integral del desarrollo de aplicaciones
Cliente/Servidor.
Por otra parte, los departamentos
y grupos de usuarios eligen aplicaciones estándar disponibles comercialmente.
Frecuentemente, las aplicaciones también imponen una plataforma
de ejecución. Como los usuarios normalmente se centran en las aplicaciones,
los aspectos de plataformas de sistema y aplicaciones, integración
de aplicaciones y gestión de sistemas se descuidan muy frecuentemente.
Como resultado, la organización
de Sistemas de Información tiene que hacer frente a tareas que anteriormente
caían dentro del ámbito de los proveedores. Ahora sus responsabilidades
incluyen:
-
Soporte de la gestión empresarial.
-
Selección de estándares
y tecnologías de información.
-
Creación de una infraestructura
Cliente/Servidor.
-
Desarrollo de aplicaciones corporativas.
-
Integración de aplicaciones.
Es importante que las infraestructuras
resultantes, estándares, arquitecturas y principios de diseño
estén soportados, no sólo por la dirección, sino también
por los departamentos y los usuarios.
Con frecuencia, los profesionales
de Sistemas de Información suelen ser reacios a pasar a Cliente/Servidor,
porque piensan que es un área arriesgada y todavía inmadura.
El peligro es que fácilmente pueden quedarse atrás respecto
a empresas competidoras que están rediseñando sus procesos
de negocio y adoptando el modelo Cliente/Servidor y Sistemas Abiertos.
Los departamentos de Sistemas de Información que no entren en esta
dinámica perderán el control. La proliferación de
soluciones departamentales para salir del paso, fuera del ámbito
de la estructura corporativa, puede resultar muy costosa y conducir a una
situación caótica.
Costes y beneficios de Cliente/Servidor
Los costes de la implantación
de soluciones Cliente/Servidor no deben contemplarse sólo en términos
absolutos, sino que deben medirse en función del beneficio que reporten
los nuevos desarrollos. Como el precio de los ordenadores personales ha
bajado tanto en los últimos años, con frecuencia se comete
el error de pensar que las soluciones Cliente/Servidor son más económicas
que las basadas en ordenadores tradicionales. Estudios independientes indican
que el coste del hardware y software, en un periodo de 5 años, representa
solamente el 20% de los costes totales. En el caso de sistemas distribuidos,
el 80% restante son costes de infraestructura y gastos de explotación.
Los beneficios percibidos de la implantación
de un modelo Cliente/Servidor se encuadran, generalmente, en alguna de
estas categorías:
-
La productividad que se obtiene en las
estaciones de trabajo programables con interfaz gráfica de usuario,
que permite acceder e integrar aplicaciones muy intuitivamente.
-
La abundancia de software disponible
comercialmente, como por ejemplo procesadores de textos, hojas de cálculo,
sistemas basados en el conocimiento, correo, etc.
-
La cercanía del usuario a aplicaciones
y datos que son necesarios para su actividad, compartiendo servicios (y
costes).
-
La disponibilidad de potencia de cálculo
a nivel personal, sin la responsabilidad del mantenimiento del sistema
y del software de aplicaciones.
-
La disponibilidad de herramientas de
desarrollo fáciles de usar, reduciendo la dependencia del departamento
informático.
Los beneficios obtenidos por la alta
dirección seguramente estarán entre los siguientes:
-
Un mejor ajuste del Sistema de Información
a la organización y a los procesos de negocio. Cada tarea se puede
ubicar en la plataforma que sea más eficaz, y los recursos informáticos
se pueden amplicar progresivamente. Las funciones y los datos se pueden
localizar donde sean necesarios para la operativa diaria sin cambiar las
aplicaciones.
-
Mayor protección de activos informáticos
e integración de los sistemas y aplicaciones ya existentes.
-
Acceso a la información cuándo
y dónde la necesitan los usuarios. Este es, probablemente, el mayor
activo corporativo.
-
Disponibilidad de aplicaciones estándar
(comprar en vez de desarrollar).
-
Libertad para migrar a plataformas de
sistemas alternativos y usar servidores especializados.
-
Una respuesta más rápida
a las necesidades del negocio gracias a la disponibilidad de software de
productividad personal y de herramientas de desarrollo fáciles de
usar.
-
Un entorno de utilización más
sencillo, que proporciona una mayor productividad. A largo plazo, las interfaces
gráficas de usuario reducen los costes asociados a educación
y formación de los usuarios.
Los beneficios que se derivan de una
aplicación Cliente/Servidor dependen, en gran medida, de las necesidades
del negocio. Por ejemplo, renovar una aplicación existente añadiéndole
una interfaz gráfica de usuario podría ser una solución
rentable en un determinado momento, pero puede no serlo en otro.
Sin embargo, una nueva aplicación
basada en un proceso de negocio rediseñado seguramente reportará
mayor beneficio que migrar a una aplicación ya existente.
Como la mayoría de las empresas
han realizado una importante inversión en soluciones informáticas,
muy raramente se pueden construir nuevos sistemas abandonando los ya existentes.
Las inversiones se contemplan generalmente en términos de hardware
instalado, pero es probable que sean más importantes las inversiones
realizadas en:
-
Software de sistemas.
-
Datos disponibles en la empresa.
-
Aplicaciones.
-
Conocimientos en el departamento de
SI.
-
Conocimientos de los usuarios.
Todos estos son activos fundamentales
que, frecuentemente, se olvidan o se desprecian. Cliente/Servidor posibilita
una migración paso a paso, es decir, la generación de nuevas
aplicaciones que coexistan con las ya existentes, protegiendo, de esta
forma, todas las inversiones realizadas por la empresa.
Implicaciones del modelo Cliente/Servidor
El nuevo departamento de Sistemas de
Información
Para llevar a cabo con éxito
la implantación de un modelo Cliente/Servidor, el departamento de
Sistemas de Información debe participar activamente en los proyectos.
Si se quiere evitar la proliferación de distintos sistemas y plataformas
de aplicación y la incompatibilidad entre los distintos desarrollos,
el departamento informático debe asumir la responsabilidad corporativa
en la selección de:
-
Plataformas del sistema (por ejemplo,
procesadores para los servidores y estaciones de trabajo para los usuarios,
así como sistemas operativos soportados).
-
Estándares, formatos y protocolos
aplicables al hardware y software de sistemas y aplicaciones.
-
Software para los componentes de middleware
de las plataformas operativas y herramientas de desarrollo de aplicaciones.
-
Software de aplicación estándar
disponible en el mercado.
La tendencia imparable de un mayor control
de la aplicación por parte del usuario, modifica las exigencias
de infraestructura relativas a:
-
Seguridad, que incluye aspectos de identificación
de usuarios, control de accesos, confidencialidad de datos en las estaciones
de trabajo, servidores y red.
-
Medidas organizativas respecto a responsabilidad
y propiedad de los datos en las estaciones de usuario y en los servidores.
-
La necesaria normativa que propicie
la integración de las aplicaciones de desarrollo propio con las
estándar. Eso implica
la definición de arquitecturas
de aplicación y estándares que deberían incluir normas
sobre esa integración.
-
Infraestructura de soporte necesaria
para la gestión operativa.
-
La necesidad de gestión y mantenimiento
de aplicaciones en un sistema distribuido.
El desarrollo de aplicaciones Cliente/Servidor
que ofrezcan una total flexibilidad en términos de función
y de ubicación de datos requiere nuevos planteamientos y tiene implicaciones
en el departamento de Sistemas de Información. Respecto a la transición
de aplicaciones monolíticas a Cliente/Servidor, hay que tener en
cuenta los siguientes puntos:
-
La modelización de los procesos
de negocio es clave para identificar las funciones de la aplicación
que pueden implantarse y agruparse como servidores de aplicación
(funciones de lógica de negocio encapsuladas).
-
Las arquitecturas de aplicaciones y
los principios de diseño deben establecerse antes de desarrollar
la primera aplicación. La flexibilidad y apertura de la aplicación
Cliente/Servidor resultante dependen de ello en gran medida.
-
La ubicación de funciones y datos,
así como la disponibilidad y el rendimiento tendrán una dimensión
diferente. Incluso en un entorno Cliente/Servidor flexible, en algún
momento habrá que tomar decisiones relativas a la ubicación
de funciones y datos. Las considereaciones sobre disponibilidad y rendimiento
deben estar presentes en todas las etapas del proceso de desarrollo.
-
Pueden ser necesarios nuevos profesionales
expertos en el desarrollo de interfaces gráficas de usuario, en
el diseño y desarrollo de servidores de lógica de negocio
y en la plataforma operativa. Esto puede exigir el uso de diferentes herramientas
para desarrollar los distintos componentes de las aplicaciones.
-
La validación de las aplicaciones
y su distribución a través de la red requiere nuevos procedimientos,
ya que estamos frente a un conjunto compuesto por numerosos procesos cliente
y servidor que han sido probados individualmente.
Una de las responsabilidades de la organización
de Sistemas de Información es la definición de una infraestructura
Cliente/Servidor. No existen soluciones estándar Cliente/Servidor,
aunque pueden existir bloques que se puedan reutilizar. Ni siquiera se
puede asegurar, de forma general, que un modelo de distribución,
una herramienta o una plataforma sean los mejores. La solución correcta
depende, en gran medida de:
-
Los objetivos de negocio de la empresa.
-
Los recursos disponibles actualmente
de hardware, software y conocimientos.
El levantamiento de una infraestructura
técnica que se aparte de las necesidades del negocio está
condenada al fracaso. Los factores que determinan la solución Cliente/Servidor
son:
-
Las necesidades del negocio y cómo
las tecnologías informáticas pueden soportarlas para conseguir
los objetivos comerciales.
-
El marco de tiempo disponible para la
nueva puesta a punto.
-
El estudio económico.
-
El impacto sobre la organización
y los conocimientos requeridos.
-
Las arquitecturas y estándares
adoptados por la compañía.
Pocas empresas pueden permitirse sustituir
los sistemas y aplicaciones existentes en un solo paso. Normalmente es
necesario un proceso gradual de implantación de las nuevas aplicaciones,
lo cual exige:
-
Una infraestructura Cliente/Servidor
capaz de acomodar las aplicaciones existentes junto con las nuevas aplicaciones
Cliente/Servidor.
-
Estándares corporativos de tecnlogía
informática.
-
Una arquitectura de aplicaciones que
permita desarrollar y poner en servicio nuevas aplicaciones, mientras siguen
funcionando las existentes, preferiblemente sin tener que modificarlas.
Una infraestructura Cliente/Servidor
consta de tres componentes esenciales, todos ellos de igual importancia
y estrechamente ligados:
-
Plataforma Operativa - La plataforma
deberá soportar todos los modelos de distribución Cliente/Servidor,
todos los servicios de comunicación, y deberá utilizar preferentemente
componentes estándar de la industria para los servicios de distribución.
Los desarrollos propios deben coexistir con las aplicaciones estándar
y su integración deberá ser imperceptible para el usuario.
Igualmente, podrán acomodarse programas escritos utilizando diferentes
tecnologías y herramientas.
-
Entorno de Desarrollo de Aplicaciones
- Debe elegirse después de la plataforma operativa. Aunque es conveniente
evitar la proliferación de herramientas de desarrollo, se garantizará
que el enlace entre éstas y el middleware no sea excesivamente rígido.
Será posible utilizar diferentes herramientas para desarrollar partes
de una aplicación. Un entorno de aplicación incremental debe
posibilitar la coexistencia de procesos cliente y servidor desarrollados
con distintos lenguajes de programación y/o herramientas, así
como utilizar distintas tecnologías (por ejemplo, lenguaje procedural,
lenguaje orientado a objetos, multimedia), y que han sido puestas en explotación
en distintos momentos del tiempo.
-
Gestión de Sistemas -
Estas funciones aumentan considerablemente el coste de una solución,
pero no se pueden evitar. Siempre deben adaptarse a las necesidades de
la organización, y al decidir la plataforma operativa y el entorno
de desarrollo, es decir, en las primeras fases de la definición
de la solución, merece la pena considerar los aspectos siguientes:
-
¿Qué necesitamos gestionar?
-
¿Dónde estarán
situados los procesadores y estaciones de trabajo?
-
¿Cuántos tipos distintos
se soportarán?
-
¿Qué tipo de soporte es
necesario y quién lo proporciona?
Cómo definir una infraestructura
Cliente/Servidor - Si no se acomete el trabajo de definir una infraestructura
Cliente/Servidor, se corre el riesgo de que surjan en la empresa una serie
de soluciones Cliente/Servidor aisladas.
No es en absoluto recomendable el
intento de una infraestructura completa desde el principio, ya que las
tecnologías pueden no responder a tiempo a las necesidades prioritarias
de negocio. El enfoque más adecuado está en un sistema y
una plataforma de aplicación conceptuales, y una arquitectura construida
incrementalmente y ampliada a medida que se desarrollan nuevas aplicaciones.
La Plataforma Operativa, el Middleware
y el Entorno de Desarrollo de Aplicaciones están relacionados entre
sí. Las necesidades de apertura pueden condicionar la elección
de la plataforma o del middleware, de igual manera que lo condiciona una
determinada herramienta de desarrollo. El software de aplicación
puede influir en la plataforma del sistema, y el tiempo disponible para
la primera aplicación puede implicar algún tipo de compromiso.
Por lo tanto, es necesario fijar los objetivos, y el modo de conseguirlos
en cada caso concreto: una Metodología de Infraestructura para Sistemas
Distribuidos que permita definir una infraestructura para el sistema Cliente/Servidor
y evalúe la puesta en marcha del proyecto sobre una base racional.
El enfoque estructurado de dicha
Metodología comprende los pasos siguientes:
-
Captación de las necesidades.
Definir, analizar y evaluar, aunando los requerimientos del negocio con
las aportaciones tecnológicas.
-
Diseño conceptual en el que se
sitúan los principales bloques funcionales y de datos del sistema,
mostrando la relación y comunicación entre ambos.
-
Detalle de los principales componentes
funcionales, selección de procesos, determinando los principios
que deben aplicarse a la selección de software o diseño de
los módulos.
-
Al final de los tres pasos anteriores,
se definen los conceptos del sistema y la infraestructura tecnológica,
sin concretar, todavía, en productos o plataformas específicos.
-
Por último, se llega a la selección
de plataformas y principales productos y componentes para la implantación.
El resultado es la descripción de una solución que incluye
infraestructura tecnológica, plataformas y productos.
Metodología de IBM
Cliente/Servidor no es simplemente una
cuestión de tecnología. Las organizaciones deberán
adoptar el modelo Cliente/Servidor en base a justificaciones basadas en
necesidades empresariales, como por ejemplo descentralizar la toma de decisiones
a nivel departamental o regional, de manera que se logre un mayor acercamiento
al mercado. El modelo Cliente/Servidor deberá utilizarse para desarrollar
o rediseñar aplicaciones que soportan los objetivos de negocio de
la empresa, y su implantación tiene que ir precedida de un meticuloso
análisis de datos procesos de negocio.
Un desarrollo cliente servidor consta
de tres niveles genéricos y capaces de representar la mayoría,
sino todas, de las soluciones Cliente/Servidor de los distintos fabricantes.
Estos tres niveles son:
-
Lógica de Aplicación,
que comprende lógica de presentación, lógica de negocio,
lógica de datos y servicios de aplicación.
-
Middleware, que aisla a la aplicación
de los aspectos relativos a la distribución de los recursos y el
acceso a los mismos, bien sean locales o remotos.
-
Software de Sistema, que representa
a los gestores de recursos y el sistema operativo.
Un aspecto muy importante a tener en
cuenta en el modelo C/S es que, normalmente, los procesos se distribuyen
en entornos heterogéneos de varios suministradores. Para hacer frente
a la complejidad las empresas deben obtener herramientas para un entorno
de sistemas distribuidos heterogéneos que proporciona la base sobre
la cual desarrollar, ejecutar y gestionar aplicaciones distribuidas abiertas.
Consideraciones sobre la implantación
- Existen tres formas de abordar la implantación de soluciones Cliente/Servidor:
-
Construir la infraestructura y descuidar
los aspectos del negocio a corto plazo (Opción 1).
-
Centrarse en soluciones de negocio a
corto plazo e ignorar la infraestructura (Opción 2).
-
Diseñar la infraestructura e
implantarla incrementalmente a medida que se desarrollan las soluciones
de negocio (Opción 3).
La primera opción puede acarrear
dos problemas: la contratación de servicios a proveedores externos
a la empresa, y la implantación incontrolada de soluciones por parte
de los usuarios. Aunque puede ser una solución razonable a corto
plazo, provocará, a medio y largo plazo, caos e incompatibilidades
entre sistemas y soluciones distintas, debido a la falta de una infraestructura
corporativa Cliente/Servidor.
El peligro inherente en la opción
2 es que las plataformas, el middleware y las herramientas pueden cubrir
las necesidades de la primera aplicación abordada, pero pueden no
ser adecuadas para las siguientes y, por tanto, resultar una mala inversión.
La opción 3 exige cierto trabajo
inicial de diseño y arquitectura, pero garantizará una sólida
infraestructura, a corto y medio plazo, ya que tiene en cuenta las necesidades
generales, aunque sólo se desarrollan los componentes a medida que
se necesitan. Esta opción es, obviamente, la más adecuada,
ya que combina las ventajas de las opciones 1 y 2.