Historia de la Arquitectura II, 1era actividad..pdf
15-Unidad 4: Introducción a las Arquitecturas Web 4.1 DAO 4.2 MVC
1. Unidad 4: INTRODUCCION A LAS
ARQUITECTURASWEB
4.1 Dao
4.2 Mvc
Plataformas de Desarrollo 1
Modalidad de estudios: Presencial
Mg. Luis Fernando Aguas Bucheli
+593 984015184
@Aguaszoft
Laguas@uisrael.edu.ec
Lfabsoft2019@gmail.com
2. Objetivos del encuentro:
1. Adquirir los conceptos básicos relacionados con NET.
2. Reconocer las características de .NET.
3. Conocer la historia de .NET
Semana Nro. 15
4. APLICACIONES WEB
Aplicaciones que los usuarios pueden utilizar accediendo a un
servidor web a través de Internet o de una intranet mediante un
navegador.
Es una aplicación software que se codifica en un lenguaje soportado
por los navegadores web en la que se confía la ejecución al navegador
5. Orientada a la presentación
• Genera paginas web interactivas que contienen varios tipos de
lenguaje de marca (HTML, XML, etc.) y contenido dinámico en
respuesta a peticiones.
6. Orientada al servicio
• Estas paginas implementan el punto final del servicio web.
• Las aplicaciones orientadas a la presentación frecuentemente son
clientes de las aplicaciones web orientadas al servicio.
7. La iteración entre un cliente Web y una aplicación
Web.
1. cliente envía una petición HTTP al servidor web
2. Las tecnologías Java server convierten la
petición un objeto HTTPServetRequest
3. Esta petición es deliberada a un componente Web,
el cual puede interactuar con JavaBeans y otros
para generar un contenido dinámico
4. El componente web puede generar un objeto
HTTPServletResponse
5. El servidor web convierte este objeto en una
respuesta HTTP y es enviada a su cliente.
8.
9. ARQUITECTURA DE DOS CAPAS
La WWW está basado en el modelo Cliente / Servidor.
• El Cliente principal en el WWW son los browsers o
navegadores que solicitan información al Servidor.
• El Servidor son los Servidores Web que proporcionan
documentos y contenidos multimedia a los clientes a
través de la red
10.
11. • Esta arquitectura consiste básicamente en un cliente que realiza
peticiones a otro programa (el servidor) que le da respuesta.
12. Arquitectura en 3 capas
• Capa de datos
• Capa de negocios
• Capa de presentación
13. La WEB
• Al conectarnos a internet estamos navegando en 3 capas.
• Al abrir un formulario web de inscripción (capa de presentación)
• Después de enviar la información esta es verificada (capa de negocios).
• Finalmente la información es grabada en una base de datos (capa de datos).
15. • Un entorno de desarrollo integrado (IDE- Integrated Development
Environment -) es una aplicación de software que ofrece servicios
integrales a los programadores de computadoras para el desarrollo de
software
16. Un IDE normalmente se compone de:
• Un editor de texto
• Un compilador.
• Un intérprete.
• Herramientas de automatización.
• Un depurador.
• Posibilidad de ofrecer un sistema de control de versiones.
• Factibilidad para ayudar en la construcción de interfaces
gráficas de usuario.
17. Para PHP se tienen las siguientes herramientas
• Zend Studio
• Open Komodo Project
• Eclipse + phpEclipse
• etc
18. Dreamwever es una herramienta que permite
trabajar con
• ASP JavaScript
• ASP VBScript
• ASP.NET C#
• ASP.NET VB
• COLDFUSION
• JSP
• PHP MySQL
19. Joomla es un Sistema de Gestión de Contenidos (CMS) que le ayuda
a construir sitios web y otras aplicaciones online potentes.
20. Entre los diferentes usos que la gente da a Joomla!
están:
• Webs corporativas o portales
• Comercio electrónico
• Pequeños sitios de negocios
• Webs de organizaciones o ONGs
• Aplicaciones gubernamentales
• Intranets y extranets corporativas
• Webs de escuelas o agrupaciones
• Páginas personales o familiares
• Portales de comunidades
• Revistas y periódicos
21. • WordPress es un sistema de gestión de contenido
enfocado a la creación de blogs (sitios web
periódicamente actualizados). Desarrollado en PHP y
MySQL.
22. Las aplicaciones Web exigen funcionalidad, confiabilidad, usabilidad y
eficiencia entre otras características de calidad.
La utilidad y crecimiento de las aplicaciones Web genera grandes
desafíos como son los de controlar y mejorar su calidad.
23. Aunque las aplicaciones Web están creciendo
rápidamente tanto en uso como en aceptación, son
las mismas metodologías de desarrollo las que no
tratan de manera adecuada y profunda los atributos
de calidad. Estas situaciones traen como
consecuencia que los atributos de calidad de los
sistemas basados en la Web tales como la
funcionalidad, confiabilidad, mantenibilidad,
usabilidad y portabilidad no se les da la debida
consideración que se merecen durante el proceso de
desarrollo.
24. • En la ingeniería software se denomina aplicación web a aquellas
aplicaciones que los usuarios pueden utilizar accediendo a un
servidor web a través de Internet o de una intranet mediante un
navegador.
• Ingeniería Web es el proceso utilizado para crear, implantar y
mantener aplicaciones y sistemas Web de alta calidad
25. Control y garantía de la calidad
• Usabilidad
• Funcionabilidad
• Fiabilidad
• Seguridad
• Eficiencia
• Mantenibilidad
26.
27. Las actividades que forman parte del proceso son:
• Formulación identifica objetivos y establece el
alcance.
• Planificación genera la estimación del costo general
del proyecto, la evaluación de riesgos y el calendario
del desarrollo y fechas de entrega.
• Análisis especifica los requerimientos e identifica el
contenido.
28. • Modelado se compone de dos secuencias paralelas de
tareas. Una consiste en el diseño y producción del
contenido que forma parte de la aplicación. La otra, en el
diseño de la arquitectura, navegación e interfaz de
usuario.
• Generación de páginas se integra contenido, arquitectura,
navegación e interfaz para crear estética o dinámicamente
el aspecto más visible de las aplicación, las páginas.
• Prueba busca errores a todos lo niveles: contenido,
funcional, navegacion, rendimiento, etc.
• Finalmente, el resultado es sometido a la evaluación del
cliente.
29. Hay cuatro aspectos importantes a tener en cuenta en el
desarrollo de tácticas de control de configuración para la
Web.
• Contenido: Considerando la dinamicidad con la que el
contenido se genera, es tarea compleja organizar
racionalmente los objetos que forman la configuración y
establecer mecanismos de control.
• Personal: Cualquiera realiza cambios. Hay mucho personal
no especializado que no reconoce la importancia que
tiene el control del cambio.
30. • Escalabilidad: Es común encontrar aplicaciones que de un día para
otro crecen considerablemente. Sin embargo, las técnicas de control
no escalan de forma adecuada.
• Política: ¿Quién posee la información? ¿Quién asume la
responsabilidad y coste de mantenerla?
31. La Gestión del Proceso
En un proceso tan rápido como es el proceso de
Ingeniería Web, donde los tiempos de desarrollo y los
ciclos de vida de los productos son tan cortos por la
gestión es impresindible. Entre los aspectos que
añaden dificultad a la gestión destacamos:
• Alto porcentaje de contratación a terceros
• El desarrollo incluye una gran variedad de personal
técnico y no técnico trabajando en paralelo
32. • El equipo de desarrollo debe dominar aspectos tan varidos como,
software basado en componentes, redes, diseño de arquitectura y
navegación, diseño gráfico y de interfaces, lenguajes y estándares en
Internet, test de aplicaciones Web, etc, lo que hace que el proceso de
búsqueda y contratación de personal sea arduo.
33. • ¿Qué marca la diferencia?
A modo de breve resumen enumeramos las siguientes
diferencias:
• Confluencia de disciplinas: Sistemas de información,
ingeniería software y diseño gráfico que requiere
equipos multidisciplinares y polivalentes. Ciclos de
vida y tiempo de desarrollo muy cortos
• Cambio continuo:
34. • Necesidad de soluciones que permitan flexibilidad y adaptación
conforme el proyecto cambia.
• Requisitos fuertes de seguridad, rendimiento y usabilidad.
35. Las aplicaciones Web están más expuestas a ataques.
Se pueden tener ataques en tres niveles:
• A la computadora del usuario.
• Al servidor.
• A la información en tránsito.
36. La seguridad en Web tiene 3 etapas primarias:
– Seguridad de la computadora del usuario.
– Seguridad del servidor Web y de los datos almacenados ahí.
– Seguridad de la información que viaja entre el servidor Web y el
usuario
37. Seguridad de la computadora del usuario
• Los usuarios deben contar con navegadores y plataformas seguras,
libres de virus y vulnerabilidades. También debe garantizarse la
privacidad de los datos del usuario.
38. Seguridad del servidor Web y de los datos almacenados ahí
• Se debe garantizar la operación continua del servidor, que los datos
no sean modificados sin autorización (integridad) y que la
información sólo sea distribuida a las personas autorizadas (control
de acceso).
39. • Seguridad de la información que viaja entre el servidor Web y el
usuario.
Garantizar que la información en tránsito no sea leída
(confidencialidad), modificada o destruida por terceros. También es
importante asegurar que el enlace entre cliente y servidor no pueda
interrumpirse fácilmente (disponibilidad).
40. Recomendaciones: Asegurar el servidor
Se deben considerar los siguientes puntos:
• Asegurar el servidor en una forma fundamental: el sistema operativo,
ya sea por medio de actualizaciones (parches) y habilitando los
mecanismos propios de la plataforma.
• Garantizar la seguridad del servidor Web propiamente (IIS, Apache,
etc.)
• Auditar las aplicaciones que interactúan en las dos capas anteriores
(módulos, bibliotecas).
41. Recomendaciones: Asegurar la información en
tránsito
Esto se puede lograr por diversos medios:
• Asegurando la red físicamente (switches en lugar de hubs).
• Esconder la información (esteganografía).
• Cifrar la información (criptografía) por medio de algoritmos diversos
(SSL, VPNs).
42. Recomendaciones: Asegurar el equipo del
usuario
Vulnerar el equipo del usuario quizás no tenga el impacto de vulnerar el
servidor, sin embargo es un problema más difícil de erradicar (1
servidor, 5000 clientes):
• Aplicar actualizaciones (parches) al sistema
operativo.
• Uso de antivirus, firewalls personales.
• Educación de los usuarios.
43. Fallas de seguridad mas comunes
• Cross Site Scripting (XSS). Las vulnerabilidades de XSS originalmente abarcaban cualquier
ataque que permitiera ejecutar código de "scripting” en el contexto de otro sitio web
• Injection Flaws
• Insecure Remote File Include
• Insecure Direct Object Reference
• Cross Site Request Forgery (CSRF)
• Information Leakage and Improper Error Handling
• Broken Authentication and Session Management
• Insecure Cryptographic Storage
• Insecure Communications
• Failure to Restrict URL access
44. Direccionamiento actividades de aprendizaje
Actividades:
• Revisar el aula virtual
• Realizar las actividades y tareas planteadas.
Se recomienda describir por ejemplo:
• Tomar apuntes esenciales, revisar el material de clases