Arquitectura+2+y+3+capas

ARQUITECTURA CLIENTE SERVIDOR DE DOS CAPAS Y TRES CAPAS  Un servicio Web (en inglés Web service) es una colección de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. • Accesible desde cualquier aplicación • Por cualquier lenguaje de programación • Desde cualquier plataforma • Usando estándares abiertos ** Protocolos conocidos ** • [|XML] : Es el formato estándar para los datos que se vayan a intercambiar. • [|SOAP] o [|XML-RPC] : Protocolos sobre los que se establece el intercambio. • [|HTTP], [|FTP] , o [|SMTP] : los datos en XML también pueden enviarse de una aplicación a otra mediante protocolos normales ya bien conocidos. <span style="margin-left: 36.0pt; mso-list: l2 level1 lfo2; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• [|WSDL] : Es el lenguaje de la interfaz pública para los servicios Web. <span style="margin-left: 36.0pt; mso-list: l2 level1 lfo2; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• [|UDDI] : Protocolo para publicar la información de los servicios Web. <span style="margin-left: 36.0pt; mso-list: l2 level1 lfo2; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• [|WS-Security] : Protocolo de seguridad aceptado como estándar por OASIS. **Ventajas de los servicios Web** <span style="margin-left: 36.0pt; mso-list: l0 level1 lfo3; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• Aportan **interoperabilidad** entre aplicaciones de software <span style="margin-left: 36.0pt; mso-list: l0 level1 lfo3; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• Los servicios Web **fomentan los estándares** y protocolos **basados en texto** (más humanos y accesibles) <span style="margin-left: 36.0pt; mso-list: l0 level1 lfo3; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• Al apoyarse en **HTTP**, permiten acceder a cualquier sistema conectado a la red (http usa el puerto 80) <span style="margin-left: 36.0pt; mso-list: l0 level1 lfo3; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• Permiten el uso de **servicios integrados** cambiando el de varias compañías y varios software <span style="font-family: 'Times New Roman',serif;">• Permiten la **interoperabilidad** entre plataformas de distintos fabricantes por medio de protocolos estándar. **Inconvenientes de los servicios Web** <span style="margin-left: 36.0pt; mso-list: l1 level1 lfo4; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• Para realizar **transacciones** no pueden compararse en su grado de desarrollo con los estándares abiertos de **computación distribuida** como CORBA. <span style="margin-left: 36.0pt; mso-list: l1 level1 lfo4; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• Su **rendimiento es bajo** si se compara con otros modelos de computación distribuida, tales como RMI o CORBA (XML no está diseñado para el rendimiento) <span style="margin-left: 36.0pt; mso-list: l1 level1 lfo4; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• Al apoyarse en **HTTP**, pueden **esquivar medidas de seguridad** basadas en // [|firewalls] // cuyas reglas tratan de bloquear o auditar la comunicación entre programas a ambos lados de la barrera. <span style="margin-left: 36.0pt; mso-list: l1 level1 lfo4; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• Existe **poca información** de servicios web para algunos lenguajes de programación **Razones para el uso de servicios Web** <span style="margin-left: 36.0pt; mso-list: l5 level1 lfo5; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• La principal razón para usar servicios Web es que se basan en **HTTP sobre TCP en el puerto 80** <span style="margin-left: 36.0pt; mso-list: l5 level1 lfo5; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• **Buena interfaz** para acceder a servicios y funcionalidades de otros ordenadores en la red <span style="margin-left: 36.0pt; mso-list: l5 level1 lfo5; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• Gran **independencia y flexibilidad** entre aplicación y servicio **Plataformas de Servicios y contenedores de Aplicaciones** <span style="margin-left: 36.0pt; mso-list: l3 level1 lfo6; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• ** [|Axis] y el servidor [|Jakarta] [|Tomcat] (de Apache)** <span style="margin-left: 36.0pt; mso-list: l3 level1 lfo6; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• ** [|ColdFusion] MX de [|Macromedia] ** <span style="margin-left: 36.0pt; mso-list: l3 level1 lfo6; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• ** [|Java Web] [|Services] [|Development] [| Pack] (JWSDP) de [|Sun] [| Microsystems] (basado en [|Jakarta] [|Tomcat] )** <span style="margin-left: 36.0pt; mso-list: l3 level1 lfo6; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• ** [|JOnAS] (parte de //ObjectWeb// una iniciativa de código abierto)** <span style="margin-left: 36.0pt; mso-list: l3 level1 lfo6; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• ** [|Microsoft .NET] ** <span style="margin-left: 36.0pt; mso-list: l3 level1 lfo6; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• ** [|Novell] [|exteNd] (basado en la plataforma [|J2EE] )** <span style="margin-left: 36.0pt; mso-list: l3 level1 lfo6; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• ** [|WebLogic] ** <span style="margin-left: 36.0pt; mso-list: l3 level1 lfo6; tab-stops: list 36.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• ** [|WebSphere] ** **Tipos de Arquitecturas en tecnologías cliente-servidor** **Aplicaciones mono-capa:** Tanto los datos de aplicación como la interfaz como la lógica de modelo residen en una misma identidad



Se separan 2 de las tres capas. El cliente aún puede integrar parte de la funcionalidad del sistema.



** Aplicaciones de 3 capas. ** Creamos un cliente “tonto” que carece de toda lógica de negocio y apenas ofrece alguna funcionalidad más que la de visión y petición de datos. <span style="font-family: 'Times New Roman',serif;">• ** Las diferentes capas suelen ser: ** <span style="margin-left: 72.0pt; mso-list: l6 level2 lfo7; tab-stops: list 72.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">– Capa 1 : Cliente de aplicación <span style="margin-left: 108.0pt; mso-list: l6 level3 lfo7; tab-stops: list 108.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• Ejemplos: Set-top box, navegador Web <span style="margin-left: 72.0pt; mso-list: l6 level2 lfo7; tab-stops: list 72.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">– Capa 2 : Servidor de Aplicaciones <span style="margin-left: 108.0pt; mso-list: l6 level3 lfo7; tab-stops: list 108.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• Ejemplo: Servidor Tomcat con servlet’s <span style="margin-left: 72.0pt; mso-list: l6 level2 lfo7; tab-stops: list 72.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">– Capa 3 : Servidor de Datos <span style="margin-left: 108.0pt; mso-list: l6 level3 lfo7; tab-stops: list 108.0pt; text-align: justify; text-indent: -18.0pt;"><span style="font-family: 'Times New Roman',serif;">• Ejemplo: Base de datos, servidor SMTP…