You are on page 1of 38

Arquitecturas para Desarrollo en Web

Javier Gonzlez Snchez, MCs. javiergs@acm.org

agenda
1.
2.

arquitecturas Web: pre - historia


arquitecturas Web: situacin actual.

3.

factores del cambio: el mundo se complica

4.

arquitecturas Web: los nuevos modelos.

javiergs@acm.org

5.

arquitecturas Web: el Futuro

6.

conclusiones

1990
Sistemas:
q Sistemas cerrados y la integracin con sistemas ajenos es difcil o imposible q Separacin total entre el concepto de documento y el de aplicacin. q La instalacin y/o portabilidad no es sencilla.

portable

distribuido

integrado

Tecnologas:
q q q q q Moda de lenguajes orientados a objetos (POO). Inicio de las arquitecturas de componentes: OLE, Corba, SOM, OpenDoc Esquemas de computacin distribuida (RPC) con muchas restricciones. Generalmente utilizan base de datos relacionales (RDBMS) Diversos protocolos de red: distintos servicios implican distintos clientes

abierto

modular

javiergs@acm.org

web cero
http://www.w3.org/People/Berners-Lee sistema de hipertexto, orientado a la publicacin de documentos. Se construye sobre cinco elementos bsicos:

Tim Berners Lee CERN 1991

q lenguaje de marcas (HTML) para construccin de documentos. q sistema de nombres (URLs) que permite acceder al servicio q cliente universal (Navegador) que muestra y permite la navegacin. q servidor (servidor Web) que gestiona el acceso a los archivos. q protocolo de comunicacin (HTTP) para la transmisin de archivos.
javiergs@acm.org

q Es la primera implementacin til del hipertexto propuesto por Theodor Holm Nelson en 1965. [ http://ted.hyperland.net ]

arquitectura cero
Web Client http
[request]
GET /index.html HTTP/1.1 Host: www.miweb.com

HTML URL HTTP Web client Web server esttico simple

Web Server http


[response]

DNS Server
1. DNS Lookup

HTTP/1.1 200 OK Date: Tue, 09 Jan 2001 10:49:14 GMT Server: Apache/1.3.14 (Unix) Last-Modified: Tue, 09 Jan 2001 01:11:02 GMT ETag: "131e-a074-3a5a6526" Accept-Ranges: bytes Content-Length: 41076 Content-Type: text/html <html> </html>

javiergs@acm.org

evolucin
1990 - 1995 1995 200x 200x
CGI Script - Cliente Script server RDBMS

XML Objetos

javiergs@acm.org

esttico

Spaghetti code

Servicios Web

web CGI
Para aadir dinamismo requerimos de: q un mecanismo que permita la introduccin de datos : formularios HTML. q Transmitir esos datos: extensiones a la URL y al protocolo HTTP q Un mecanismo que permita al Servidor Web generar dinmicamente pginas HTML: CGI, Common Gateway Interface.

Limitaciones importantes: q Mantenimiento de Estado ( sesiones ) q Rendimiento.


javiergs@acm.org

dinmico simple

q Desarrollar aplicaciones completas es complicado.

arquitectura CGI
Web Client http
[request]
#include <iostream>

GET /index.html HTTP/1.1 Host: www.miweb.com

DNS Server
1. DNS Lookup

main() {
cout << "Content - type: text/html\n\n";

cout << "<html>" ; cout << "<body>" ; cout << "<h1> Hola Mundo <h1>"; for (i=0; i < 10; i+= 2) { } ... cout << "</html>" ; }

programa que genera HTML

javiergs@acm.org

Web Server http


[response]

web script en el cliente


El Navegador es un buen cliente universal, pero tiene ciertas limitaciones :
q El HTML original es esttico. q La funcionalidad dada es inferior a la de un cliente nativo: validaciones q Existen muchos tipos de datos que no estn en HTML: PDF, Ofimtica, Grficos, Multimedia.

javaScript VBScript

Opciones de mejora:
q Lenguajes de scripting: Javascript, VBScript. q Se integran al navegador pequeas aplicaciones como visualizadores, Plug-Ins, Applets, ActiveX, etc.

Flash etc

Esto hace un cliente ms potente, pero plantea algunos problemas:


javiergs@acm.org q Incompatibilidades entre los navegadores q dependencia de Plug Ins q entre otros.

web script en el servidor


q simplificacin del modelo CGI. q Se mezcla HTML con lenguajes sencillos para generar pginas Web

PHP
Ventajas importantes: q Sencillez conceptual. q Alta Velocidad de Desarrollo.

Perl ASP JSP Tcl

Problemas significativos: q Mezcla de presentacin y negocio.


javiergs@acm.org

q Cdigo espaguetti q Y por ende bajo rendimiento, re-uso pobre

arquitectura script
Web Client http
[request]
1. DNS Lookup

GET /index.html HTTP/1.1 Host: www.miweb.com


DNS Server

PHP
</TABLE> <?

Perl
$result = mysql_query($query) or die ("DB SELECT ERROR"); while( $row = mysql_fetch_array($result)) { $lname = $row ['lname']; $fname = $row ['fname']; $email = $row ['email']; // Spaghetti code starts....

<script language="JavaScript"> alert ( Hello World ); </script>

ASP JSP Tcl

?> <TR bgColor=white> <TD><?=$fname?></TD> <TD><?=$lname?></TD> <TD><?=$email?><TD> </TR> </TABLE>

javiergs@acm.org

Web Server http


[response]

alto es necesario poner orden


Capas diseo javascript dba software HTML
divisin de responsabilidades reglas de negocio datos presentacin gestin del proceso

CSS hardware

javiergs@acm.org

cliente

agenda
1. arquitecturas Web: pre - historia

2.

arquitecturas Web: situacin actual.

3.

factores del cambio: el mundo se complica

4.

arquitecturas Web: los nuevos modelos.

javiergs@acm.org

5.

arquitecturas Web: el Futuro

6.

conclusiones

servidor Web: mayo 2004


http://news.netcraft.com/archives/web_server_survey.html

javiergs@acm.org

ingeniera de software: donde comenzar?


(1) Requerimientos: (EL CLIENTE) : Comunicacin / Entrevistas Visualizar el Contexto Punto de Validacin Herramientas: IEEE SRS, Contexto, UML y otras...

(2) Anlisis y Diseo (LA CALIDAD) : metodologas? Y herramientas? Lo indispensable, lo necesario y el extra (si el tiempo lo permite)... (3) Implementacin (LOS LENGUAJES) : programar con OBJETOS ? Microsoft .net Java 2 Enterprise Edition. LAMP (Linux-Apache-MySQL-Perl-PHP-Python)

javiergs@acm.org

(4) Pruebas :

ingeniera de software: bueno, bonito y barato


q Y todo debe ser hecho con CALIDAD Que es CALIDAD? q Sin descuidar: seguridad, flexibilidad, robustez, portabilidad, reusabilidad, escalabilidad, confiabilidad, interfaz amigable, ergonoma y documentacin ...

q Adems de (en algunos casos): concurrente, distribuido y ligado a una o ms bases de datos.

q Algunos servicios transversales Portales, Personalizacin, Gestin de contenidos, Bsquedas,


javiergs@acm.org

Estadsticas (Business Intelligence)., Entornos colaborativos, Publicidad, q y Lo bonito tambien importa

ingeniera de software: La vida real


objetos | relaciones

Capa 3

Deploy Web / GUI

ser
Entity Data link

Capa 2

usar

Capa 1

javiergs@acm.org

Base de datos

tener

ingeniera de software: reporte de daos


q Soporte muy complejo de dispositivos que no sean el ordenador. q Modelo centrado en el interfaz de usuario (capa de presentacin), no en el intercambio de datos o la invocacin de funcionalidad. q Cdigo espaguetti es habitual en aplicaciones en lenguajes de scripting. q Varias capas a nivel de desarrollo: scripting de cliente, scripting de servidor, componentes, acceso a datos. q Ciclos de desarrollo muy cortos, generan poca estructuracin.
javiergs@acm.org

q No es realmente una arquitectura de computacin distribuida.

q No satisface plenamente las necesidades

agenda
1. 2. arquitecturas Web: pre - historia arquitecturas Web: situacin actual.

3.

factores del cambio: el mundo se complica

4.

arquitecturas Web: los nuevos modelos.

javiergs@acm.org

5.

arquitecturas Web: el Futuro

6.

conclusiones

factores de cambio
q Los sistemas a nivel global requieren integrarse unos con otros de una manera natural y transparente. q El acceso desde mltiples dispositivos (celular, iTV, PDA) no se adapta al modelo basado en HTML. q interfaces ms complejos. q El modelo web tradicional se adapta bastante bien para ciertos modelos de negocio: B2C, pero para otros modelos, como los orientados al B2B, resulta limitado, por estar orientado a la capa de presentacin (HTML).
javiergs@acm.org
Integracin

Dispositivos Mltiples

Complejidad de Interfases

Acceso abstracto

Es necesario un acceso abstracto a los datos y servicios entre los participantes, manteniendo la transparencia y sencillez del modelo web.

integracin
q El valor de los sistemas de negocio se incrementan si son capaces de comunicarse entre si fcilmente. q Y sobre todo, con sistemas ajenos que suelen ser soporte fundamental del negocio q Las tecnologas de componentes prometan esto, pero tenan dependencias ocultas: plataforma, lenguaje, entorno... q Se busca el modelo desacoplado y transparente del web, pero en las capas de negocio y de datos. q Las tecnologas web (HTTP, lenguajes de marcas) han adquirido una universalidad que los convierten en un mecanismo posible de integracin.
Acceso abstracto Integracin

Dispositivos Mltiples

Complejidad de Interfases

javiergs@acm.org

dispositivos e interfases: abstraccin


q El navegador web basado en HTML es una promesa (parcialmente cumplida) de cliente universal ya que esta ligado de manera inevitable al ordenador. q Cada vez toman mayor importancia el acceso al Web desde otros dispositivos: Telfonos mviles. PDAs, Televisin Interactiva, Aplicaciones Multimedia (Flash, Streaming), etc. q Se requiere el acceso a estos dispositivos aprovechando al mximo la infraestructura web existente. q Adems, se requieren interfaces ms complejas, que no pueden satisfacer plenamente con un navegador.
javiergs@acm.org
Integracin

Dispositivos Mltiples

Complejidad de Interfases

Acceso abstracto

agenda
1. 2. arquitecturas Web: pre - historia arquitecturas Web: situacin actual.

3.

factores del cambio: el mundo se complica

4.

arquitecturas Web: los nuevos modelos.

javiergs@acm.org

5.

arquitecturas Web: el Futuro

6.

conclusiones

objetivo
q pasar del modelo de presentacin de documentos dinmicos del Web que conocemos ahora, a un autntico entorno de computacin distribuida basada en Protocolos Web. q Permite la invocacin de servicios de distintos sistemas, de manera similar a la invocacin de una funcin en un lenguaje tradicional. q Emplea como base la misma infraestructura que el web actual (red IP, HTTP, Servidores Web...). q La capa de presentacin HTML se mantiene, pero ya no tiene un acoplamiento tan estrecho. q El objetivo es una interoperabilidad generalizada.
javiergs@acm.org

XML

Web services

q Toman un peso fundamental dos nuevas bases: XML y Servicios Web (Web Services)

XML
q XML es un lenguaje de marcas para documentos que contienen informacin estructurada. q Representa tanto la informacin como el rol que juega dicha informacin (meta datos). q Es un meta-lenguaje, con el que se definen otros lenguajes de marcas especficos (extensibilidad). Pretende ser la lengua franca sobre la que se sustenten las transacciones Internet. q Sus lneas directoras bsicas son: q Adaptado a la tecnologa Internet. q Adaptable a distintos esquemas de aplicacin.
javiergs@acm.org

xml
Adressen Adresse Name Mustermann PLZ 22087 Adresse id 1234

q Legible por seres humanos. q Formalizado y validable. q Desarrollo simple.

XML: como se ve?


<?xml version="1.0"?> <cliente> <nombre>Pedro</nombre> <apellidos>Domingo de Dios</apellidos> <alias ambito="familiar">Pedrito</alias> <alias ambito="trabajo">Pesado</alias> <direccion tipo=Facturas"> <calle>Los Castros 143</calle> <ciudad>Santander</ciudad> <codigopostal>39012</codigopostal> <privado/> </direccion> <direccion tipo="Entregas"> <calle>General Mola 13</calle> <ciudad>Santander</ciudad> <telefono>942 318500</telefono> </direccion> </cliente>

xml
Adressen Adresse Name Mustermann PLZ 22087 Adresse id 1234

javiergs@acm.org

XML y sus amigos


Compaeros de Trabajo
Aparte de la definicin formal del lenguaje, XML incluye una serie de tecnologas de base: q Definicin de esquemas: DTDs, XML Schemas. q Enlaces entre documentos: Xlink, XPointer. q Parsers: DOM, SAX q Consultas: Xpath, XQuery q Transformaciones: XSLT, XSL-FO, CSS Algunos de ellos estn construidos sobre XML
javiergs@acm.org

Familiares

Estas tecnologas estn controladas por el W3C.

XML para que?


Lenguaje general y neutro, XML puede tener aplicacin a todos los niveles de una arquitectura web: En la capa de presentacin, q Mediante esquemas de transformacin XSLT. q Usando lenguajes de marcas derivados de XML: XHTML, WML. q Browser, dispositivo movil, skins de aplicaciones En la capa de negocio: q Representacin de componentes y servicios: formato nico de intercambio q Representacin de reglas de negocio. q Configuracin de aplicaciones En la capa de datos: q Persistencia de objetos y almacenamiento de documentos estructurados. q Representacin de Meta datos. q Integrado a BDMS En la integracin de aplicaciones (EAI): q Como formato neutro de intercambio usando esquemas de transformacin basados en XSLT XML para todo: WML skins configuracin

Tamino

ebXML Biztalk.org

javiergs@acm.org

servicios web
q funcionalidad distribuida a gran escala. q aplicacin modular, autocontenida y autodescriptiva, que puede ser publicada, localizada e invocada de manera funcional usando el Web. q Puede ser usada por aplicaciones (no necesariamente Web) o por otros Servicios Web (Orquestacin).
javiergs@acm.org

q invocacin de funcionalidad con esquemas neutros basados en XML, sobre HTTP.

servicios Web arquitectura


Base tecnolgica q HTTP: transporte. q XML: representacin de datos. q MIME: codificacin. Servicios bsicos de plataforma q SOAP: invocacin remota. q UDDI: directorio. (DNS) q WDSL: descripcin de caractersticas. Servicios avanzados (por definir)
javiergs@acm.org

q XLANG/XAML: soporte transaccional. q seguridad

alto ERA necesario poner orden


A A A A

javiergs@acm.org

cliente

agenda
1. 2. Arquitecturas Web: pre - historia arquitecturas Web: situacin actual.

3.

factores del cambio: el mundo se complica

4.

arquitecturas Web: los nuevos modelos.

5.
javiergs@acm.org

arquitecturas Web: el Futuro


conclusiones

6.

X-internet: una federacin de web services


http://www.crt.net.au/etopics/xinternet.htm
o o o o modelo de servicios extendidos: Federacin de Servicios Web. directorios de servicios ( UDDI )
Ariba, IBM, Microsoft, and 33 other companies in September 2000.

X- intenet

capacidades auto descriptivas de servicios ( WSDL ) capacidades varias de articulacin, no necesariamente una relacin centralizada como en el Web actual. servicios automatizados mediante agentes (bots), interaccin ms all de la lgica booleana

Web Semntico

B2B
Business to Business

En resumen: Un modelo de Internet ejecutable, o XInternet.


javiergs@acm.org

Palabras Clave: XML (1), servicios Web (2), centrado en las acciones (3)

El web semntico: el web inteligente


http://www.w3.org/2001/sw/
o Marco comn para compartir y reutilizar datos entre aplicaciones, empresas, comunidades: base de datos globalmente relacionada El Web Semntico pretende dotar al Web actual de estructura y contenidos con significado (semntica), categorizados mediante meta datos especficos (ontologas):
RDF resource description framework

X- intenet

Web Semntico

o o

XML es la base de la representacin del significado. Mediante la asociacin de significado a los contenidos se puede dotar al Web de funcionalidad siguiendo esquemas de agentes.

B2B
o javiergs@acm.org Los servicios web facilitan la invocacin de funcionalidad por parte de los agentes autnomos. (entre comillas inteligencia artificial )
Business to Business

Palabras clave: XML (1), servicios Web (2), centrado en los datos (3)

B2B: el verdadero e-business


http://www.b2business.net/ X- intenet

q El web tradicional ofrecer una ventana hacia los contenidos ofrecido por una empresa a sus socios externos e internos. (B2C) q Las arquitecturas orientadas a servicios ofrecen puertas que permiten un control ms estrecho de los intercambios, y de una manera transparente, segura y generalizada. q arquitectura slida y uniforme para el establecimiento de soluciones e-Business para distintos modelos de negocio, principalmente los invisibles q Acciones facilitadotas del comercio: interaccin entre empresas y entre las reas internas a una empresa: marketing, finanzas, manufactura, ventas y negociacin javiergs@acm.org

Web Semntico

B2B
Business to Business

Palabras clave: XML (1), servicios Web (2), centrado en negocio (3)

agenda
1. 2. Arquitecturas Web: pre - historia arquitecturas Web: situacin actual.

3.

factores del cambio: el mundo se complica

4. 5.
javiergs@acm.org

arquitecturas Web: los nuevos modelos. arquitecturas Web: el Futuro

6.

conclusiones

javiergs@acm.org

conclusiones

You might also like