Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estos servicios se accederán a través de RMI desde la aplicación empresarial al servicio ISS y
utilizando SOAP a través de JMS desde el ISS al servicio central.
Identificación de servicios
A continuación se resaltan los pasos seguidos por el equipo de arquitectos que consta de
miembros de la propia organización de TI de los minoristas y de consultores externos que están
en calidad de expertos en el desarrollo de soluciones orientadas a servicios. Observe que los
pasos siguientes no pretenden representar una serie de actividades de RUP recomendadas,
simplemente catalogan las actividades de un proyecto real.
Es importante destacar que este proyecto es para mejorar la implementación técnica de las
funciones actualmente existentes y, por lo tanto, no incluye todo el tiempo invertido en el
modelado o análisis empresarial, dado que podemos reutilizar los modelos creados para la
aplicación empresarial original. El conjunto actual de modelos (a la izquierda del diagrama que
se muestra a continuación) sigue la estructura que se indica debajo, que muestra un modelo de
casos de uso de RUP, un modelo de análisis para los componentes comunes de la aplicación
empresarial, seguido del modelo de diseño detallado y finalmente un conjunto de modelos de
implementación para los equipos de desarrollo de Java.
Los enlaces del diagrama junto a los paquetes de vista permiten una rápida navegación del
modelo y se completarán en los apartados siguientes.
Se desprende claramente de la descripción del problema anterior que existe una serie de
formas para poder examinar el particionamiento del sistema, por ejemplo podemos introducir
particiones que representan la gestión de inventarios, la gestión del servicio/garantía,
operaciones de punto de venta (búsqueda de precios, clientes, etc.) No obstante, hay
preocupaciones básicas para el arquitecto y, por consiguiente, las particiones añadidas al
modelo representan localidades lógicas para los servicios suministrados en el almacén o en el
ámbito empresarial.
Cuando indicamos que se trata de particiones lógicas, estamos identificando que la partición
Servicios de almacén contiene un conjunto de servicios de los que se crean instancias en el
nivel de almacén y no decimos nada sobre el despliegue físico de estos servicios (servidor
único, clúster, etc.). Estas particiones lógicas se proporcionan para que el arquitecto represente
los aspectos significativos de la solución.
Como se puede ver, estas entradas representan la implementación existente, que se sustituirá
por una nueva implementación, pero se mantendrán el propósito y la función.
A continuación, analizaremos los posibles patrones de uso para los servicios; por ejemplo
podríamos en realidad tener dos servicios, uno en el almacén y uno en la empresa, donde la
lógica para el acceso a la base de datos y el acceso a la empresa estén ambos encapsulados
en el servicio en el almacén. O bien, se puede elegir tener un servicio de fachada en el
almacén que encapsule la lógica y llame a dos servicios idénticos, uno que encapsule el
acceso a la base de datos local y el segundo en el nivel de la empresa. La segunda opción
añade flexibilidad en el cambio de la lógica para acceder a los dos almacenes, pero añade
costes de sobrecarga y de comunicación para una función relativamente simple. De este modo,
para la búsqueda de clientes y la búsqueda de inventario, se ha elegido la primera opción.
Como todavía no se han decidido los detalles de la distribución de servicios y los proveedores
de servicios, la identificación de servicio es mucho más eficaz si se centra solamente en
especificaciones de servicios.
Diseño de servicios
Tomando el modelo de la actividad Identificación de servicios, pasamos la identificación de un
conjunto de servicios candidatos al diseño detallado de los servicios que pretendemos crear. El
primer paso consiste en correlacionar las especificaciones de servicios que realizan las
especificaciones anteriores; como se puede imaginar, hay que adoptar decisiones sobre cómo
los servicios llevan a cabo las especificaciones de servicios del modelo anterior. En este
ejemplo, tenemos una estructura relativamente simple, pero que probablemente será común a
muchos proyectos. En este caso, tenemos un único Proveedor de servicios que presenta un
único servicio que es la realización de una única especificación. Es ciertamente posible tener
más de un servicio por proveedor. También observamos ciertas relaciones de uso entre los
servicios en este modelo; estas dependencias son importantes para comprender cómo pueden
evolucionar los servicios con el tiempo.
Esta estructura nos permite ahora movernos más en el espacio de distribución, mientras el
modelo sigue siendo una vista lógica de los servicios, ya que los proveedores de servicios
representan las unidades de despliegue para el modelo de servicio. Los proveedores de
servicios también son necesarios para la definición de servicios compuestos dado que un
servicio propio (un puerto de UML 2.0) no puede tener la estructura necesaria para describir la
composición.
Diseño de mensajes
No hemos señalado nada anteriormente, en la actividad de identificación del servicio, sobre los
mensajes reales intercambiados entre las operaciones descritas sobre las especificaciones de
servicios. Este enfoque puede ser bastante común para capturar las responsabilidades de los
servicios en cuanto a operaciones que retrasan el diseño detallado de los mensajes para más
adelante; en algunos casos este enfoque es el inverso, las estructuras de mensajes se conocen
con antelación y a continuación se agregan a un conjunto de operaciones.
En este caso, podemos aprovechar un modelo de dominio desarrollado como parte del modelo
de análisis de componentes (activo desarrollado anteriormente) y, de esta forma, nuestro
modelo de mensaje no se crea a partir de nada sino que identifica un subconjunto del modelo
de dominio que se va a reutilizar. El ejemplo siguiente muestra esta relación, las clases de
dominios ignoran por completo la tecnología y la plataforma; por otra parte, se supone que
nuestros mensajes son objetos de transferencia de datos, estructuras transferidas entre
servicios. Por consiguiente, en lugar de cambiar el modelo de dominio, creamos los mensajes
"fuera" de la estructura de clase, compuesta de elementos en el interior.
Para obtener más información, consulte el concepto Diseño de mensajes.
Realización de servicios
En este caso, nos centraremos en la realización del servicio de búsqueda de clientes en el
almacén; este servicio es habitual en la transformación del modelo de servicio al modelo de
diseño. La propia transformación está documentada en una directriz y el resultado es la
estructura de modelo siguiente.
Mientras esto sigue siendo un modelo de diseño podemos, mediante herramientas, transformar
este modelo todavía más en la implementación EJB que se indica a continuación. Básicamente,
esta implementación se transforma de la clase CustomerByPhone anterior y los mensajes que
detallan el cliente se transforman en el bean de entidades que se utiliza para consultar la base
de datos.
Para obtener más información, consulte la directriz Cómo pasar de servicios a componentes
de servicios.