Hay que empezar diciendo que en este campo nuestro objetivo es construir una aplicación que funcione en un entorno web
Como toda construcción vamos a tener una forma de hacerlo,
planificar y analizar, diseñar y construir el producto final.
Usaremos un determinado material o herramientas para construirlo.
Arquitectura Web
Qué es la arquitectura
La estructura de nuestro producto final
que se va a ir perfilando es todo su desarrollo,
Los principales momentos, esos primeros
En ellos se construye los planos de lo que se va a construir,
hay que decidir al principio qué herramientas (tecnologías) vamos a utilizar
(comparación con una construcción clásica por ejemplo de edificios)
Arquitectura
Constuyendo los planos
Como en toda construcción vamos a necesitar una serie de elementos (herramientas, tecnologías).
Pregunta
¿Tecnologías en las aplicaciones web?
Como en toda construcción va a haber diferentes roles que pueden ser cubiertos por una o varias personas
Pregunta
¿Roles en el desarrollo?
Los componentes de una aplicación web
1.-Un servidor web para recibir las peticiones de los clientes web
Servidor web
Un servidor web es un software (programa) encargado de recibir una solicitud por la red; En una red de tipo tcp/ip que es la que usamos en internet, la solicitud se recibe usando el protocolo http y responder a dicha solicitud.
Responder a dicha solicitud implica verificar permisos, ejecutar script, puede que tenga que hacer solicitudes de información a otros servidores
Servidor web
y generar un mensaje de respuesta usando igualmente el protocolo http. Es muy frecuente que la respuesta es una página html.
2.-El Servidor de Bases de datos
Servidor Bases de datos
Un servidor web es un software (programa) encargado de gestionar una bases de datos
Dada la importancia de esta sección confidencialidad y posible cuello de botella en una aplicación, el servidor de bases de datos suele estar en un servidor dedicado específicamente a ese cometido
3.- El módulo de ejecución de código en el servidor
Ejecutando código en el servidor
Ante una solicitud del cliente el servidor no solo entrega una página web, antes de ello es muy frecuente que ejecute código del cual el cliente nunca será consciente. Para ello tenemos que tener un módulo instalado en el servidor para ejectuar ese código.Nosotros usaremos PHP y posteriormente JavaScript en el servidor con NodeJS. Es el aspecto fundamental para este módulo o asignatura
Módulo de ejecución de script en el servidor
genera la página web resultante.
Este módulo debe integrarse de alguna forma con el servidor web
Dependerá del lenguaje y tecnología que utilicemos para programar la aplicación web.
2.- El cliente
Ya lo hemos visto, corresponde al inicio del proceso, generalmente un navegador
En el cliente se recibe la página del servidor
Se interpreta las etiquetas de html con sus atributos
Se aplica el estilo detallado en las páginas css
Se ejecuta el código javascript y se atiende a los eventos javascript que haya configurados en código en la página que el servidor nos entrega
Suelen ser los navegadores. Reciben la página que solicitan
Para ello tendrá módulos encargados de la ejecución del código y cómo se debe comunicar con él.
4.-El lenguaje de programación
Tanto para los script del cliente como del servidor o bien CGI, que utilizarás para desarrollar las aplicaciones.
Aquí es donde se pueden usar diferentes opciones incluso con el mismo servidor web
La arquitectura de la aplicación
Además de los componentes a utilizar, también es importante decidir cómo vas a organizar el código de la aplicación.
Esto se conoce como la arquitectura de la aplicación web.
Muchas de las arquitecturas que se usan en la programación de aplicaciones web te ayudan a estructurar el código de las aplicaciones en capas o niveles.
El motivo de dividir en capas el diseño de una aplicación es que se puedan separar las funciones lógicas de la misma, de tal forma que sea posible ejecutar cada una en un servidor distinto (en caso de que sea necesario).
La arquitectura de una aplicación
Un servidor de aplicaciones web en realidad puede estar formado por varios servidores físicos;
cada servidor se puede encargar de ejecutar una parte de la aplicación.
Internamente se puede dividir la funcionalidad de una aplicación web en tres capas
Arquitectura de 3 capas
capa de acceso a datos: que se tendrá que encargar de almacenar la información de la aplicación en una base de datos y recuperarla cuando sea necesario.
capa intermedia : donde deberás programar la funcionalidad de tu aplicación.
capa cliente: que es donde programarás todo lo relacionado con el interface de usuario, esto es, la parte visible de la aplicación con la que interactuará el usuario.
Tecnologías para programación web del lado del servidor
Investiga en la red
Busca información de diferentes arquitecturas en un despliegue web
;Arquitectura LAMP/WAMP
;Arquitectura MEAN
;Arquitectura Java EE
Interesa que hables de que tipos de tecnologías lenguajes se usan, así de como del servidor web que atiende las solicitudes
Qué son las tecnologías
Al hablar de tecnologías, hablamos de herramientas concretas que usamos para una arquitectura establecida. En este aspecto, estamos hablando de lenguajes concretos de programación, de gestores de bases de datos y otros elementos concretos que usamos para crear nuestro sistema
Es muy grande el abanico de posibilidades y combinaciones que se abren en este ámbito.
Las tecnologías son muy dinámica, van cambiando, aparecen nuevas tecnologías, aparecen nuevas formas de utilizar una tecnología existente.
No debe de asustarnos tanto dinamismo. Conocer bien una tecnología concreta te posibilita aprender o adaptarte fácilmente a otra situación (otra tecnología u otra forma de usar una tecnología, como usar un framework concreto).
Ejemplos de tecnologías
Ejemplos de tecnologías tendríamos
Lenguaje php
MySql
MongoDb
NodeJS
Tecnologías
¿Un framework es una tecnologías?
Si hablamos de un framework como Laravel,no hablamos de una tecnología nueva. La tecnología que usamos en laravel es PHP. El framework en cuestión establece una forma concreta, establecida, con un modelo VC donde se establece una estructura de carpetas, un modo de realizar la programación y una utilidades disponibles para el desarrollador.
Mira este video
Este vídeo da una visión general del desarrollo web
Nosotros vamos a usar PHP como lenguaje o tecnología principal
Claramente vamos a cubrir varios aspectos de los que aquí comentan a lo largo del curso