200405 - Aplicaciones Web

1,428 views

Published on

Contexto actual (2004) del desarrollo de aplicaciones Web. Conferencia en el Centro Universitario Valles de la Universidad de Guadalajara (Mexico).

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,428
On SlideShare
0
From Embeds
0
Number of Embeds
18
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

200405 - Aplicaciones Web

  1. 1. El contexto actual del desarrollo d aplicaciones Web d ll de l b M. Cs. Javier Gonzalez Sanchez javiergs@acm.org lunes 17 de mayo de 2004
  2. 2. Agenda 1. Ámbito actual de desarrollo 2. Servidores Web 3. Tecnologías cliente vs servidor 4. Los paradigmas de desarrollo 5. Las metodologías de análisis y diseño 6. Conclusiones
  3. 3. Ámbito actual de desarrollo Aplicaciones tradicionales (standalone) .NET / Java / Visual Basic / C++ / Delphi, etc. NET Delphi etc Ambiente de desarrollo cerrado Bibliotecas propias ya desarrolladas y difíciles de migrar Capacitaciones explícitas para la empresa necesarias Tendencia actual: Aplicaciones Web Java J2EE http://cisco.netacad.net .NET http://msdn.microsoft.com PHP http://euronews.net 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
  4. 4. Evolución 1990 - 1995 1995 – 200x 200x – ……. Web Orientado a Objetos estático Spaghetti code Java y C# Base en componentes
  5. 5. Ingeniería de Software Etapas de desarrollo (1) Requerimientos: (EL CLIENTE) : Comunicación / Entrevistas Visualizar el Contexto Punto de Validación Herramientas: IEEE SRS, Contexto, UML y otras... (2) Análisis y Diseño (LA CALIDAD) : ¿metodologías? Y ¿herramientas? Lo indispensable, lo necesario y el extra (si el tiempo lo permite)... (3) Implementación (LOS LENGUAJES) : programar ¿ con OBJETOS ? RAD or not RAD.... (4) Pruebas :
  6. 6. Ingeniería de Software bueno, bonito y barato Y todo debe ser hecho con CALIDAD ¿Que es CALIDAD? Sin descuidar: flexibilidad, robustez, portabilidad, reusabilidad, confiabilidad, interfaz amigable, ergonomía y documentación ... Además de (en algunos casos): concurrente, distribuido y ligado a una o más bases de datos. y Lo “bonito” tambien importa … bonito
  7. 7. Ingeniería de Software La vida real Capa 3 objetos | relaciones Deploy Web / GUI ser Cap 2 Entity usar pa Data link Capa 1 Base de datos tener
  8. 8. para el usuario final... ocultar complejidad información independiente de la presentación solución extensible roles de trabajo internet
  9. 9. Agenda 1. Ámbito actual de desarrollo 2. Servidores Web 3. Tecnologías cliente vs servidor 4. Los paradigmas de desarrollo 5. Las metodologías de análisis y diseño g 6. Conclusiones
  10. 10. estructura conceptual p El www se basa en el paradigma cliente / servidor. transacción www 1. 1 DNS Lookup DNS Server URL 2. 2 TCP connection 3. HTTP request 4. HTTP response Web Server browser tracert Web Client
  11. 11. HTTP (request / response) Simple client request GET /index.html HTTP/1.1 Host: www gda ites mx www.gda.ites.mx HTTP/1.1 200 OK Server reply 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: Accept-Ranges: bytes Content-Length: 41076 Content-Type: text/html <html> … </html>
  12. 12. estructura conceptual Web Server Internet Base de datos Web Client programación HTML Java, PHP, Perl, Oracle, MySQL, Python, MS.net, MS-SQL, Informix, etc Postgres, etc
  13. 13. mayo 2004 http://news.netcraft.com/archives/web_server_survey.html http://news netcraft com/archives/web server survey html
  14. 14. Agenda 1. Ámbito actual de desarrollo 2. Servidores Web 3. Tecnologías cliente vs servidor 4. Los 4 L paradigmas de desarrollo di d d ll 5. Las metodologías de análisis y diseño 6. Conclusiones
  15. 15. estructura conceptual Web Server Internet Web C Client
  16. 16. Tecnologías tipo cliente Applets JavaScript Sobrecarga de memoria (JVM) Lenguaje con ciertas limitaciones a causa g j Lentitud de ejecución de la interpretación de navegadores Instalación sutil para el cliente Difícil de depurar VBScript Flash Fl h Lenguaje peligroso? Opción versátil y fácil de instalar
  17. 17. Tecnologías tipo servidor Objetivo principal Dar al cliente servicios personalizados enviando tan solo código HTML con algunos scripts bien formados (JavaScript, etc.) CGI (Common Gateway Interface) Una de las primeras tecnologías Uso complicado (TCL, C++, etc.) Paginas de servidor Fácil uso Funcionalidades ilimitadas Posible congestionamiento en servidor ( PHP ) Tecnología: Sun Java servlet Microsoft .net
  18. 18. Agenda 1. Ámbito actual de desarrollo 2. Servidores Web 3. Tecnologías cliente vs servidor 3 T l í li id 4. Los paradigmas de desarrollo (objetos) p g ( j ) 5. Las metodologías de análisis y diseño 6. Conclusiones
  19. 19. necesidades
  20. 20. programación (Java) simple, orientado objeto, distribuido, interpretado, robusto, seguro, portable, portable multiprocesos y dinámico dinámico. Pensado sobre todo para ser portable: J2ME + J2SE + J2EE Apogeo luego de una pequeña demostración de los applets en 1993 A partir de 1998, luego de impulsar varias tecnologías: JSP/Servlets, 3D, dispositivos móviles … Desventaja frente al gigante Microsoft …
  21. 21. programación (.net) programación y ejecución en .NET C# Compiler VB.NET MSIL + Loader/ Metadata JIT Verifier C++ C Garbage Collection, Managed Perl Security, Execution Multithreading, Code ... Compiler Java CLASS- Classloader/ Files Verifier JIT Garbage Collection, Interpreter Security Manager Call-in+Call-out, Multithreading, Native ... Hotspot Code programación y ejecución en Java
  22. 22. C# vs Java no existen diferencias fundamentales C# todo es objeto, no hay tipos primitivos objeto diferencias de sintaxis mínimas existen nuevos elementos: Atributos: Atributos p Propiedades Métodos: Métodos Eventos Controladores Java ya es un lenguaje maduro que continúa creciendo C# es un lenguaje más nuevo… pero con 10 años d ñ después, i é integra l experiencias d muchos programadores las i i de h d
  23. 23. ¿por qué Java? Interés académico Más del 70% de los proyectos de investigación de universidades tienen como lenguaje de implementación a Java Próximos desarrollos Nuevo paradigma de programación: Programación Orientada Aspectos. Agentes móviles Desarrollo de aplicaciones Web: Mayor parte de software tiene configuración XML Mayor versatilidad en las configuraciones Tecnología generalmente más barata que .NET Necesario el aprendizaje de un lenguaje, JSP/Servlets, Tomcat, Web Services en Java. Oracle
  24. 24. Agenda 1. Ámbito actual de desarrollo 2. Servidores Web 3. Tecnologías cliente vs servidor 4. Los paradigmas de desarrollo p g 5. Las metodologías de análisis y diseño 6. Conclusiones
  25. 25. necesidades
  26. 26. análisis y diseño Inception Elaboration Construction Transition Effort ~5 % 20 % 65 % 10% Schedule 10 % 30 % 50 % 10%
  27. 27. eXtreme Programming Metodología de desarrollo ágil Busca un justo medio entre ningún proceso y demasiado proceso Diferencias: menos orientado al documento, exigiendo una cantidad más pequeña de documentación para una tarea dada. la parte importante de la documentación es el código fuente. Orientado a la gente y no al proceso El cambio es bi bi bienvenido id
  28. 28. Las 12 prácticas eXtreme Programming Programación por pares : dos cabezas piensan mejor que una 40 horas semanales: razonamiento en frió Integración continua: juntar el trabajo individual y probar cada día Estándares de codificación: reglas de comunicación Propiedad colectiva: el equipo es el responsable del proyecto Pruebas automatizadas: Pequeñas liberaciones: El juego de la Planificación: prioridades del cliente y otras Metáfora: Diseño simple: simple no es fácil Refactorizar: cambiar código Cliente en el lugar:
  29. 29. Agenda 1. Ámbito actual de desarrollo 2. Servidores Web g 3. Tecnologías cliente vs servidor 4. Los lenguajes de programación 5. Los paradigmas de desarrollo 6. Las metodologías de análisis y diseño 7. 7 Conclusiones
  30. 30. referencias Apache http://www.apache.org .Net http://www.microsoft.com/net Java http://java.sun.com PHP http://www.php.net h // h Extreme Programming http://www.extremeprogramming.org http://www extremeprogramming org Unified Modeling Language™ http://www.omg.org/gettingstarted/what_is_uml.htm
  31. 31. ¡gracias! javiergs@acm.org

×