miércoles, 20 de mayo de 2009

martes, 19 de mayo de 2009

ARQUITECTURA DE SOFTWARE

En los inicios de la informática, la programación se consideraba un arte y se desarrollaba como tal, debido a la dificultad que entrañaba para la mayoría de las personas, pero con el tiempo se han ido descubriendo y desarrollando formas y guías generales, en base a las cuales se puedan resolver los problemas. A estas, se les ha denominado Arquitectura de Software, por que, semejanza de los planos de un edificio o construcción, estas indican la estructura, funcionamiento e interacción entre las partes del software. En el libro "An introduction to SoftwareArchitecture", David Garlan y Mary Shaw definen que la Arquitectura es un nivel de diseño que hace foco en aspectos "más allá de los algoritmos y estructuras de datos de la computación; el diseño y especificación de la estructura global del sistema es un nuevo tipo de problema".

* La Arquitectura del Software es el diseño de más alto nivel de la estructura de un sistema.

* Una Arquitectura de Software, también denominada Arquitectura lógica, consiste en un conjunto de patrones y abstracciones coherentes que proporcionan el marco de referencia necesario para guiar la construcción del software para un sistema de información.

* La Arquitectura de Software establece los fundamentos para que analistas, diseñadores, programadores, etc. trabajen en una línea común que permita alcanzar los objetivos del sistema de información, cubriendo todas las necesidades.

* Una arquitectura de software se selecciona y diseña con base en objetivos y restricciones. Los objetivos son aquellos prefijados para el sistema de información, pero no solamente los de tipo funcional, también otros objetivos como la mantenibilidad, auditabilidad, flexibilidad e interacción con otros sistemas de información. Las restricciones son aquellas limitaciones derivadas de las tecnologías disponibles para implementar sistemas de información.Unas arquitecturas son más recomendables de implementar con ciertas tecnologías mientras que otras tecnologías no son aptas para determinadas arquitecturas. Por ejemplo, no es viable emplear una arquitectura de software de tres capas para implementar sistemas en tiempo real.

* La arquitectura de software define, de manera abstracta, los componentes que llevan a cabo alguna tarea de computación, sus interfaces y la comunicación entre ellos. Toda arquitectura debe ser implementable en una arquitectura física, que consiste simplemente en determinar qué computadora tendrá asignada cada tarea.


En los años 1960 ya se acariciaba el concepto de arquitectura de software en los círculos de investigación (por ejemplo, por Edsger Dijkstra). No obstante,toma popularidad en los años 1990 tras reconocerse la denominada crisis del software y como tema de interés de la incipiente disciplina de la ingeniería del software.
En una comunidad tan amplia como la universitaria, la necesidad de que la información fluya y sea accesible por todos sus miembros es tan importante como que dicha información mantenga su validez e integridad. Esto último se consigue manteniendo a Campus Virtual y a otras aplicaciones corporativas como UXXI, HOMINIS, etc como única fuente de datos institucionales.

Hasta ahora, la solución era el proporcionar al resto de la comunidad enlaces a páginas web del Servicio de Informática sin posibilidad de modificar su aspecto. Esto era en el mejor de los casos. En el peor se podía encontrar información contradictoria en los distintos servidores web de la UA causando confusión al destinatario de la información.

Con la propuesta de utilizar la tecnología de los Web Services, se pretende seguir manteniendo centralizados los datos corporativos, pero ofreciendo mucha mayor flexibilidad a la hora de utilizar dichos datos por parte de quien los necesite.

Un Web Service es un sistema de comunicación entre diferentes servidores, a través de la red, basado en mensajes que cumplen un estandar (SOAP) basado en XML (http://www.w3.org/2002/ws/).

Los Web Sevices permitirán a los responsables de las webs departamentales y/o de los centros, e incluso a los profesores con páginas personales, el acceder
a datos corporativos para mostrarlos en sus paginas web con su estilo propio y lo que es más importante, sin tener que duplicar información.

WEB SERVICES

Es una interfície capaz de recibir una petición, activar unos procesos y devolver los resultados. Todo esto, en Internet y a través de protocolos de red (HTTP,FTP,SMTP).
La comunicación entre los diferentes entornos del Web Services se realiza mediante XML.


Para establecer un diálogo coherente entre el WSC (Web Services Cliente), que envía la petición y recibe la respuesta y el WSS (Web Services Servidor), el que ejecuta el proceso y envía la respuesta, se utiliza SOAP (Simple Objecte Access Protocol), que es una codificación basada en XML.


Un Web Services, en vez de obtener peticiones desde un navegador y devolver páginas web como respuesta, recibe peticiones, mediante un mensaje formateado con SOAP, desde otras aplicaciones realiza la labor que le han pedido y devuelve un mensaje de respuesta
también con formato SOAP.

VENTAJAS DE LOS SERVICIOS WEB

* Aportan interoperabilidad entre aplicaciones de software independientemente de sus propiedades o de las plataformas sobre las que se instalen.
* Los servicios Web fomentan los estándares y protocolos basados en texto, que hacen más fácil acceder a su contenido y entender su funcionamiento.
* Al apoyarse en HTTP, los servicios Web pueden aprovecharse de los sistemas de seguridad firewall sin necesidad de cambiar las reglas de filtrado.
* Permiten que servicios y software de diferentes compañías ubicadas en diferentes lugares geográficos puedan ser combinados fácilmente para proveer servicios integrados.
* Permiten la interoperabilidad entre plataformas de distintos fabricantes por medio de protocolos estándar y abiertos. Las especificaciones son gestionadas por una organización abierta, la W3C, por tanto no hay secretismos por intereses particulares de fabricantes concretos y se garantiza la plena interoperabilidad entre aplicaciones.

ESTANDARES EMPLEADOS

* Web Services Protocol Stack: Así se denomina al conjunto de servicios y protocolos de los servicios
* XML (Extensible Markup Language): Es el formato estándar para los datos que se vayan a intercambiar.
* SOAP (Simple Object Access Protocol) o XML-RPC (XML Remote Procedure Call):Protocolos sobre los que se establece el intercambio.
* Otros protocolos: los datos en XML también pueden enviarse de una aplicación a otra mediante protocolos normales como HTTP (Hypertext Transfer Protocol), FTP (File Transfer Protocol), o SMTP (Simple Mail Transfer Protocol).
* WSDL (Web Services Description Language): Es el lenguaje de la interfaz pública para los servicios Web.
Es una descripción basada en XML de los requisitos funcionales necesarios para establecer una comunicación con los servicios Web.
* UDDI (Universal Description, Discovery and Integration): Protocolo para publicar la información de los servicios Web. Permite comprobar qué servicios web están disponibles.
* WS-Security (Web Service Security): Protocolo de seguridad aceptado como estándar por OASIS (Organization for the Advancement of Structured Information Standards). Garantiza la autenticación de los actores y la confidencialidad de los mensajes enviados.

WEB SERVICES

Un servicio web (en inglés Web service) es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet. La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y reglamentación de los servicios Web. Para mejorar la interoperabilidad entre distintas implementaciones de servicios Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles para definir de manera más exhaustiva estos estándares.