Correcion
Enviado por migueli123 • 18 de Diciembre de 2012 • 3.608 Palabras (15 Páginas) • 417 Visitas
cvbcvbcvArquitectura de software. Arquitectura orientada a…
25 febrero, 2012 23:32 / Leave a Comment / admin
Arquitectura de software. Arquitectura orientada a…
RESUMEN
Dentro del proceso de desarrollo de software de un sistema uno de los temas
importantes a tratar es la arquitectura de software, es la parte de la
ingeniería de software que se dedica al estudio, análisis y descripción para
formalizar el esquema global de un sistema, poniendo énfasis en el estudio de
las interacciones entre sus elementos básicos, denominados componentes.
La capacidad para responder rápidamente ante los cambios y optimizar los
procesos de negocio es un factor clave para la competitividad y el crecimiento
de las organizaciones. La Arquitectura Orientada a Servicios (SOA, Service
Oriented Architecture) es una filosofía de diseño que permite un mejor
alineamiento de las Tecnologías de Información (IT) con las necesidades de
negocio, permitiendo a los usuarios de forma más rápida adaptarse adecuadamente
a las presiones del mercado.
El presente trabajo realiza un pequeño estudio general de la arquitectura de
software haciendo énfasis en la arquitectura orientada a servicio.
Abstract
Within the process of software development of a system one of the important
issues to be addressed is the software architecture, is part of software
engineering that is dedicated to the study, analysis and description to
formalize the outline of an overall system, putting emphasis on the study of
interactions among its basic elements, called components.
The ability to respond rapidly to change and optimize business processes is a
key factor for competitiveness and growth of organizations. The Service Oriented
Architecture (SOA, Service Oriented Architecture) is a design philosophy that
allows a better alignment of information technology (IT) with business needs,
allowing users to more quickly adapt adequately to the pressures market.
This work makes a small study of the overall software architecture with an
emphasis on the service oriented architecture.
INTRODUCCIÓN
Breve Historia de la Arquitectura de Software
Cada vez que se narra la historia de la arquitectura de software o de la
ingeniería de software, se reconoce que en un principio, hacia 1968, Edsger
Dijkstra, propuso que se estableciera una estructuración correcta de los
sistemas de software antes de lanzarse a programar, escribiendo código de
cualquier manera (Dijkstra Enero de 1983). Dijkstra, quien sostenía que las
ciencias de la computación eran una rama aplicada de las matemáticas y sugería
seguir pasos formales para descomponer problemas mayores, fue uno de los
introductores de la noción de sistemas operativos organizados en capas que se
comunican sólo con las capas adyacentes y que se superponen ?como capas de
cebolla?. Inventó o ayudó a precisar además docenas de conceptos: el algoritmo
de camino más corto, los stacks, los vectores, los semáforos, los abrazos
mortales. De sus ensayos arranca la tradición de hacer referencia a ?niveles de
abstracción? que ha sido tan común en la arquitectura subsiguiente.
Aunque Dijkstra no utiliza el término arquitectura para describir el diseño
conceptual del software, sus conceptos sientan las bases para lo que luego
expresarían Niklaus Wirth (Wirth Abril de 1971) como stepwise refinement y
DeRemer y Kron (Kron 1976) como programming-in-the large o programación en
grande, ideas que poco a poco irían decantando entre los ingenieros primero y
los arquitectos después.
En la conferencia de la NATO de 1969, un año después de la sesión en que se
fundara la ingeniería de software, P. I. Sharp formuló estas sorprendentes
apreciaciones comentando las ideas de Dijkstra:
?Pienso que tenemos algo, aparte de la ingeniería de software, algo de lo que
hemos hablado muy poco pero que deberíamos poner sobre el tapete y concentrar la
atención en ello, es la cuestión de la arquitectura de software. La arquitectura
es diferente de la ingeniería, ejemplo de lo que quiero decir, echemos una
mirada a OS/360. Partes de OS, si vamos al detalle, han utilizado técnicas que
hemos acordado constituyen buena práctica de programación. La razón de que OS
sea un amontonamiento amorfo de programas es que no tuvo arquitecto. Su diseño
fue delegado a series de grupos de ingenieros, cada uno de los cuales inventó su
propia arquitectura. Y cuando esos pedazos se clavaron todos juntos no
produjeron una tersa y bella pieza de software (Sharp 27 al 31 de Octubre de
1969).?
Una novedad importante en la década de 1970 fue el advenimiento del diseño
estructurado y de los primeros modelos explícitos de desarrollo de software.
Estos modelos comenzaron a basarse en una estrategia más orgánica, evolutiva,
cíclica, dejando atrás las metáforas del desarrollo en cascada que se inspiraban
más bien en la línea de montaje de la ingeniería del hardware y la manufactura.
Poco a poco el diseño se fue independizando de la implementación, y se forjaron
herramientas, técnicas y lenguajes de modelado específicos.
En la misma época, otro precursor importante, David Parnas, demostró que los
criterios seleccionados en la descomposición de un sistema impactan en la
estructura de los programas y propuso diversos principios de diseño que debían
seguirse a fin de obtener una estructura adecuada. Parnas desarrolló temas tales
como módulos con ocultamiento de información, estructuras de software y familias
de programas (Parnas Diciembre de 1972), enfatizando siempre la búsqueda de
calidad del software.
En 1972, Parnas publicó un ensayo en el que discutía la forma en que la
modularidad en el diseño de sistemas podía mejorar la flexibilidad y el control
conceptual del sistema, acortando los tiempos de desarrollo. Introdujo entonces
el concepto de ocultamiento de información (information hiding), uno de los
principios de diseño fundamentales en diseño de software aún en la actualidad.
En la segunda de las descomposiciones que propone Parnas comienza a utilizarse
el ocultamiento de
...