You are on page 1of 31

El contexto actual del desarrollo de aplicaciones Web

M. Cs. Javier Gonzalez Sanchez javiergs@acm.org


lunes 17 de mayo de 2004

Agenda
1. mbito actual de desarrollo
2. Servidores Web 3. Tecnologas cliente vs servidor 4. Los paradigmas de desarrollo 5. Las metodologas de anlisis y diseo 6. Conclusiones

mbito actual de desarrollo


q Aplicaciones tradicionales (standalone)
.NET / Java / Visual Basic / C++ / Delphi, etc. Ambiente de desarrollo cerrado Bibliotecas propias ya desarrolladas y difciles de migrar Capacitaciones explcitas para la empresa necesarias

q Tendencia actual: Aplicaciones Web


Java J2EE http://cisco.netacad.net .NET http://msdn.microsoft.com PHP http://euronews.net

q Porqu?
Servicio personalizado a clientes y usuario Aplicaciones y bibliotecas distribuidas Independencia de plataforma (portabilidad) Aplicaciones tradicionales pueden utilizar componentes Web Posibilidad de uso de otras aplicaciones Web externas

Evolucin
1990 - 1995 1995 200x 200x .

esttico

Spaghetti code

Web Orientado a Objetos Java y C# Base en componentes

Ingeniera de Software
Etapas de desarrollo

(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 ? RAD or not RAD.... (4) Pruebas :

Ingeniera de Software
bueno, bonito y barato

q Y todo debe ser hecho con CALIDAD Que es CALIDAD?

q Sin descuidar: flexibilidad, robustez, portabilidad, reusabilidad, confiabilidad, interfaz amigable, ergonoma y documentacin ...

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

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

Base de datos

tener

para el usuario final...


ocultar complejidad informacin independiente de la presentacin solucin extensible roles de trabajo

Agenda
1. mbito actual de desarrollo

2. Servidores Web
3. Tecnologas cliente vs servidor 4. Los paradigmas de desarrollo 5. Las metodologas de anlisis y diseo 6. Conclusiones

estructura conceptual
El www se basa en el paradigma cliente / servidor.
transaccin www

URL

1. DNS Lookup

DNS Server
2. 3. 4.

TCP connection HTTP request HTTP response Web Server

browser tracert

Web Client

HTTP (request / response)


GET /index.html HTTP/1.1 Host: www.gda.ites.mx
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

Simple client request

Server reply

<html> </html>

estructura conceptual
Web Server
Internet
Web Client

Base de datos

programacin

HTML
Oracle, MySQL, MS-SQL, Informix, Postgres, etc Java, PHP, Perl, Python, MS.net, etc

mayo 2004

http://news.netcraft.com/archives/web server survey.html

Agenda
1. mbito actual de desarrollo 2. Servidores Web

3. Tecnologas cliente vs servidor


4. Los paradigmas de desarrollo 5. Las metodologas de anlisis y diseo 6. Conclusiones

estructura conceptual
Web Server
Internet

Web Client

Tecnologas tipo cliente


Applets
q Sobrecarga de memoria (JVM) q Lentitud de ejecucin q Instalacin sutil para el cliente

JavaScript
q Lenguaje con ciertas limitaciones a causa de la interpretacin de navegadores
q Difcil de depurar

VBScript
q Lenguaje peligroso?

Flash
q Opcin verstil y fcil de instalar

Tecnologas tipo servidor


Objetivo principal Dar al cliente servicios personalizados enviando tan solo cdigo HTML con algunos scripts bien formados (JavaScript, etc.)
q CGI (Common Gateway Interface)

Una de las primeras tecnologas Uso complicado (TCL, C++, etc.)

q Paginas de servidor

Fcil uso Funcionalidades ilimitadas Posible congestionamiento en servidor ( PHP )


q Tecnologa:

Sun Java servlet Microsoft .net

Agenda
1. mbito actual de desarrollo 2. Servidores Web 3. Tecnologas cliente vs servidor

4. Los paradigmas de desarrollo


5. Las metodologas de anlisis y diseo 6. Conclusiones

(objetos)

necesidades

programacin (Java)
simple, orientado objeto, distribuido, interpretado, robusto, seguro, portable, multiprocesos y dinmico. Pensado sobre todo para ser portable: J2ME + J2SE + J2EE Apogeo luego de una pequea demostracin de los applets en 1993 A partir de 1998, luego de impulsar varias tecnologas: JSP/Servlets, 3D, dispositivos mviles Desventaja frente al gigante Microsoft

programacin (.net)
programacin y ejecucin en .NET
C#
VB.NET

Compiler

C++
Perl

MSIL + Metadata
Garbage Collection, Security, Multithreading, ...

Loader/ Verifier

JIT

Execution

Managed Code

Compiler

Java

CLASSFiles
Garbage Collection, Security Manager Call-in+Call-out, Multithreading, ...

Classloader/ Verifier

JIT

Interpreter Hotspot
Native Code

programacin y ejecucin en Java

C# vs Java
q no existen diferencias fundamentales q C# todo es objeto, no hay tipos primitivos q diferencias de sintaxis mnimas q existen nuevos elementos:
Atributos: Atributos Propiedades Mtodos: Mtodos Eventos Controladores

q Java ya es un lenguaje maduro que contina creciendo


q C# es un lenguaje ms nuevo

pero con 10 aos despus, integra las experiencias de muchos programadores

por qu Java?
Inters acadmico
Ms del 70% de los proyectos de investigacin de universidades tienen como lenguaje de implementacin a Java

Prximos desarrollos
Nuevo paradigma de programacin: Programacin Orientada Aspectos. Agentes mviles

Desarrollo de aplicaciones Web:


Mayor parte de software tiene configuracin XML Mayor versatilidad en las configuraciones Tecnologa generalmente ms barata que .NET Necesario el aprendizaje de un lenguaje, JSP/Servlets, Tomcat, Web Services en Java.

Oracle

Agenda
1. mbito actual de desarrollo 2. Servidores Web 3. Tecnologas cliente vs servidor 4. Los paradigmas de desarrollo

5. Las metodologas de anlisis y diseo


6. Conclusiones

necesidades

anlisis y diseo

Inception Effort Schedule ~5 % 10 %

Elaboration 20 % 30 %

Construction 65 % 50 %

Transition 10% 10%

You might also like