Correcion
migueli12318 de Diciembre de 2012
3.608 Palabras (15 Páginas)459 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 información como criterio. Cada módulo deviene entonces una
caja negra para los demás módulos del sistema, los cuales podrán acceder a aquél
a través de interfaces bien definidas, en gran medida invariables.
En 1975, Brooks, diseñador del sistema operativo OS/360 y Premio Turing 2000,
utilizaba el concepto de arquitectura del sistema para designar ?la
especificación completa y detallada de la interfaz de usuario? y consideraba que
el arquitecto es un agente del usuario (Jr. 1975). También distinguía entre
arquitectura e implementación; mientras aquella decía qué hacer, la
implementación se ocupa de cómo.
Como escriben Clements y Northrop en esta época (Northrop Febrero de 1996) en
todo el desenvolvimiento ulterior de la disciplina permanecería en primer plano
esta misma idea: la estructura es primordial (structure matters), y la elección
de la estructura correcta ha de ser crítica para el éxito del desarrollo de una
solución. ?La elección de la estructura correcta sintetiza, como ninguna otra
expresión, el programa y la razón de ser de la AS?.En la década de 1980, fue
surgiendo nuevo paradigma, el de la programación orientada a objetos.
Paralelamente, hacia fines de la década de 1980 y comienzos de la siguiente, la
expresión arquitectura de software comienza a aparecer nuevamente en la
literatura para hacer referencia a la configuración morfológica de una
aplicación.
El primer estudio en que aparece la expresión ?arquitectura de software? en el
sentido en que hoy lo conocemos es sin duda el de Perry y Wolf; ocurrió en 1992,
aunque el trabajo se fue gestando desde 1989. En él, los autores proponen
concebir la AS por analogía con la arquitectura de edificios, una analogía de la
que luego algunos abusaron (WWISA 1999), otros encontraron útil y para unos
pocos ha devenido inaceptable (Reed 2001).
?La década de 1990, fue la década de la ?arquitectura de software?, dando
cumplimiento a las profecías de Perry y Wolf, fue sin duda la década de
consolidación y diseminación de la AS en una escala sin precedentes. Las
contribuciones más importantes surgieron en torno del instituto de ingeniería de
la información de la Universidad Carnegie Mellon (CMU SEI). En la misma década,
demasiado pródiga en acontecimientos, surge también la programación basada en
componentes, que en su momento de mayor impacto impulsó a algunos arquitectos
mayores, como Paul Clements (Clements Enero de 1996.), a afirmar que la AS
promovía un modelo que debía ser más de integración de componentes pre-programados
que de programación.
FIS 1. Evolución de la
...