Академический Документы
Профессиональный Документы
Культура Документы
Mientras que los servicios web proveen soporte para muchos de los conceptos de SOA, no
los implementan todos. Ellos no soportan actualmente la noción de contrato de
arrendamiento. También, ninguna especificación oficial proporciona niveles de QoS para un
servicio. Una organización no puede implementar una arquitectura orientada a servicios
completa dadas estas limitaciones con los Web Services. Además, los consumidores de
servicios pueden ejecutar servicios web directamente si conocen la dirección del servicio y
su contrato (interface). Ellos no tienen que acudir al registro (registry) para obtener esta
información. Hoy, de hecho, la mayoría de las organizaciones implementan servicios web
sin un registro. En consecuencia, la medida en que una organización implementa SOA con
servicios web varía mucho.
Detalles de SOA
Antes de analizar los detalles de SOA, es importante primero explorar el concepto de
arquitectura de software, que consiste en las estructuras de grano grueso del software. La
arquitectura de software describe los componentes del sistema y la forma en que
interactúan en un alto nivel Estos componentes no son necesariamente beans de entidad o
objetos distribuidos. Son módulos abstractos de software desplegados como una unidad en
un servidor con otros componentes. Las interacciones entre componentes se denominan
conectores. los configuración de componentes y conectores describe la forma en que un
sistema está estructurado y se comporta, como se muestra en la figura 2
Características SOA
La arquitectura del software de cada sistema refleja los diferentes principios y conjuntos de
compromisos utilizados por los diseñadores. La arquitectura de software orientada a
Servicios tiene estas características [21]:
Interoperabilidad
La arquitectura orientada a servicios extrema la interoperabilidad, la capacidad de los
sistemas que utilizan diferentes plataformas. y lenguajes para comunicarse entre sí. Cada
servicio proporciona una interfaz que puede ser invocada a través de algún tipo de conector.
Un conector interoperable consiste en un protocolo y un formato de datos que cada uno de
los potenciales clientes del servicio. entiende La interoperabilidad se logra apoyando los
protocolos y formatos de datos de los clientes actuales y potenciales.Las técnicas para
soportar protocolos y datos estándar consisten en mapear cada característica y lenguaje a
una especificación intermedia. La especificación intermedia mapea entre los formatos de
datos interoperable a los formatos de datos específicos de la plataforma. Algunas veces
esto requiere la asignación de conjuntos de caracteres como de ASCII a EBCDIC así como
mapeo de tipos de datos. Por ejemplo, un servicio web es una especificación mediadora
para la comunicación entre sistemas. JAX-RPC y JAXM asignan tipos de datos de Java a
SOAP. Otro plataformas que soportan servicios web median entre sus las especificaciones
de servicios web y sus propias especificaciones internas para conjuntos de caracteres y
tipos de datos.
Bajo Acoplamiento
El acoplamiento se refiere al número de dependencias entre módulos. Hay dos tipos de
acoplamiento: bajo/ébil y alto/fuerte. Los módulos débilmente acoplados tienen algunos
dependencias bien conocidas. Los módulos fuertemente acoplados tienen muchas
dependencias desconocidas. Cada arquitectura de software se esfuerza en lograr un
acoplamiento débil entre módulos. SOA promueve el bajo acoplamiento entre los
consumidores de servicios y los proveedores de servicios y la idea de unas pocas
dependencias conocidos entre consumidores y proveedores.
Transparencia de la ubicación
La transparencia de la ubicación es una característica clave de la arquitectura orientada a
servicios. Los consumidores de un servicio no conocen la ubicación de un servicio hasta
que lo localizan. en el registro. La búsqueda y el enlace dinámico a un servicio en tiempo de
ejecución permite que la implementación del servicio se mueva. de lugar en lugar sin el
conocimiento del cliente. La capacidad de mover servicios mejora la disponibilidad del
servicio y su desempeño. Empleando un equilibrador de carga que reenvía solicitudes de
servicio a múltiples instancias de servicio sin el servicio conocimiento del cliente podemos
lograr una mayor disponibilidad y performance.
Composibilidad / Capacidad de composición
La composibilidad de un servicio está relacionada con su estructura modular. La estructura
modular le permite a los servicios ser ensamblados en aplicaciones de las que el
desarrollador no tenía noción a la hora de diseñar el servicio. Usando servicios
preexistentes y probados se mejora en gran medida la calidad de un sistema y mejora su
retorno.de inversión debido a la facilidad de la reutilización. Un servicio puede componerse
de tres formas: composición de la aplicación, federación de servicios, y orquestación de
servicios.
- Una aplicación: es típicamente un conjunto de servicios, componentes, y la lógica
de la aplicación que une estas funciones para un propósito específico.
- Federación de servicios: son colecciones de servicios gestionados juntos en un
dominio de servicio más grande. Por ejemplo, una servicio de comprobación de cuenta,
servicio de cuenta de ahorros y servicio al cliente. puede ser compuestos dentro de un
servicio más grande de gestión de cuentas bancarias.
- Orquestación de servicios: es la ejecución de una sola transacción. que impacta
uno o más servicios en una organización. Es a veces llamado proceso de negocio. Se
compone de múltiples pasos, cada uno de los cuales es una invocación de servicio. Si
alguna de los las invocaciones de servicio falla, la transacción completa debe ser revertida
al estado que existía antes de la ejecución de la transacción.
Autocuración:
Con el tamaño y la complejidad de las modernas aplicaciones distribuidas, la capacidad de
un sistema para recuperarse de el error es cada vez más importante. Un sistema de
autocuración es uno que tiene la capacidad de recuperarse de errores sin intervención
humano durante la ejecución.
Confiabilidad
La confiabilidad mide realmente el desempeño de un sistema bajo al presencia de
disturbios. En arquitectura orientada al servicio, los servicios estarán funcionando o caídos
de vez en cuando. Esto es especialmente cierto para aplicaciones ensambladas a partir de
servicios de múltiples organizaciones a través de Internet. La medida en la que un sistema
se autocure depende de varios factores. La confiabilidad depende de la capacidad del
hardware para recuperarse de un fallo. La red también debe permitir la conexión dinámica a
diferentes sistemas en tiempo de ejecución. Los protocolos de internetworking actuales
proporcionan inherentemente esta capacidad.
Implementaciones conocidas
Si bien la naturaleza de los servicios en sí puede variar, una norma común para declarar un
servicio es deseable cuando se está construyendo una infraestructura. Dos de tales
estándares existen hoy: Los lenguaje de descripción de servicios web (WSDL) del W3C y el
protocolo de colaboración ebXML. La versión 2.0 de WSDL es impresionante en su
integridad y facilidad de implementación; sin embargo, solo cubre lo aspectos básicos de la
descripción de un servicio. ebXML es una iniciativa conjunta de SOA entre UN/CEFACT 5
[23] y OASIS [16]. Además de proporcionar componentes técnicos, el Protocolo de
Colaboración. fue desarrollado para satisfacer las necesidades específicas de los negocios
electrónicos que involucran interacciones orientadas al servicio entre Empresas.
Conclusión
La arquitectura del software está emergiendo como disciplina los últimos diez años [7]. La
arquitectura de software describe sus estructuras y propiedades a un alto nivel. Mientras la
tecnología cuide estas estructuras y propiedades, la tecnología puede ser utilizada para la
implementación de la arquitectura. Por ejemplo, Jini es una tecnología que es compatible
con la arquitectura orientada a servicios, porque las propiedades de SOA. Es importante
para la aplicación de los conceptos. de arquitectura de software de una nueva tecnología
para tomar plena ventaja de ello. SOA es implementada por servicios web y otras
tecnologías, pero los términos y los conceptos han ganado popularidad recientemente como
resultado de los Servicios Web. Por ejemplo, en la industria informática ha sido el término
utilizado durante dos décadas para describir varias plataformas. Algunos características de
SOA son soportadas mejor por una que otra tecnología.
Referencias
1] O. J. Dahl, E. W. Dijkstra, and C. A. Hoare, Structured Programming.
Academic Press, 1972.
[2] F. P. Brooks, The Mythical Man-Month: Essays On Software Engineering, Anniversary
Edition. Addison-Wesley, 1995.
[3] P. J. Denning and P. A. Dargan, “A discipline of software architecture,”
interactions, vol. 1, no. 1, pp. 55–65, 1994.
[4] M. Shaw and D. Garlan, Software Architecture: Perspectives on an
Emerging Discipline. Prentice- Hall, 1996.
[5] P. Brown, Implementing soa: total architecture in practice. AddisonWesley Professional,
2008.
[6] D. E. Perry and A. L. Wolf, “Foundations for the study of software
architecture,” ACM SIGSOFT SOFTWARE ENGINEERING NOTES,
vol. 17, no. 4, October 1992.
[7] D. Garlan, “Software architecture: a roadmap,” in ICSE ’00: Proceedings
of the Conference on The Future of Software Engineering. New York,
NY, USA: ACM, 2000, pp. 91–101.
[8] R. Allen and D. Garlan, “Formalizing architectural connection,” in ICSE
’94: Proceedings of the 16th International Conference on Software
Engineering, Sorrento, Italy, May 1994, pp. 71–80.
[9] D. C. Luckham, L. M. Augustin, J. J. Kenny, J. Veera, D. Bryan,
and W. Mann, “Specification and analysis of system architecture using
rapide,” IEEE Transactions on Software Engineering, vol. 21, no. 4, pp.
336–355, April 1995.
[10] G. Abowd, R. Allen, and D. Garlan, “Using style to understand descriptions of software
architecture,” in SIGSOFT ’93: Proceedings of the
1st ACM SIGSOFT symposium on Foundations of software engineering.
New York, NY, USA: ACM, 1993, pp. 9–20.
[11] P. Clements, L. Bass, R. Kazman, and G. Abowd, “Predicting software
quality by architecture-level evaluation,” in Proceedings of the Fifth
International Conference on Software Quality, Austin, Texas, October
1995
[12] J. A. Stafford, D. J. Richardson, and A. L. Wolf, “Aladdin: A tool
for architecture-level dependence analysis of software,” University of
Colorado at Boulder, Technical Report CU-CS-858-98, April 1998.
[13] L. Coglianese and R. Szymanski, “Dssa-adage: An environment for
architecture-based avionics development,” in AGARD’93, 1993.
[14] B. Boehm, P. Bose, E. Horowitz, and M. J. Lee, “Software requirements
negotiation and renegotiation aids: A theory-w based spiral approach,” in
ICSE ’95: Proceedings of the 17th international conference on Software
engineering. New York, NY, USA: ACM, 1995, pp. 243–253.
[15] L. Northrop, “Software architecture and product quality,” Presentation
for the Boston SPIN, Software Engineering Institute, Carnegie Mellon
University, May 2003.
[16] Organization for the advancement of structured information standards.
[Online]. Available: http://www.oasis-open.org
[17] Distributed component object model. [Online]. Available:
www.microsoft.com/com
[18] Corba basics frequently asked questions. [Online]. Available:
www.omg.org/gettingstarted/corbafaq.htm
[19] Java EE at a glance. [Online]. Available: http://java.sun.com/j2ee
[20] P. Herzum, “Web services and service-oriented architectures,” Cutter
Distributed Enterprise Architecture Advisory Service, Executive Report,
2002.
[21] G. Bieber and J. Carpenter, “Introduction to service-oriented programming,” Online
whitepaper: www.openwings.org/download/specs, 2001.
[22] B. Meyer, Object Oriented Software Construction, 2nd ed., ser. International Series in
Computer Science. Prentice-Hall, 1997.
[23] United nations centre for trade facilitation and electronic business.
[Online]. Available: http://www.unece.org/cefact