Filosofía de programa tus programas, no tus aplicaciones
Habla de dónde hay que dedicar esfuerzos
Una herramienta compuesta por una serie de librerías que nos da un enfoque y una forma de cómo solucionar un problema
Organiza la forma de desarrollo
Framework
Establece unos criterios que unifica la manera de desarrollar
Estructura de carpetas
Gestion de la base de datos
Automatización de muchas tareas (Autentificación, Cookies, Gestion de la base de datos, Seguridad
Permiten un mantenimiento
Gestores de contenidos
Son herramientas que permiten desarrollar contenidos
Por ejemplo Drupal, Joomla, Wrodpress y otras muchas.
En ellas siempre vemos dos partes bien diferenciadas:
Una parte externa o front-end, que es el conjunto de páginas que ven los usuarios.
Una parte interna o back-end, que es otro conjunto de páginas dinámicas
Normalmente son las que usan las personas que producen el contenido
Administrar la aplicación web permitiendo a usuarios con permisos acceder a contenidos.
Back-end y front-end de una aplicación web
Una aplicación web normalmente se divide en dos partes
un front-end, que es la parte pública que ven los usuarios externos; (La página html)
un back-end, que es la parte privada que usan los administradores de la aplicación. (Los programa en servidor, bd,...)
Programación en el servidor y en cliente
Ya hemos dejado hablado un poco de estas dos tecnologías
Puntos clave
El cliente se ejecuta en el navegador
El código a ejecutar viene embebido en forma de script en la página que el servidor nos entrega.
Este script en principio no puede directamente acceder a los datos que tengamos en el servidor
Programación en el servidor y en cliente
Pregunta
Si quiero verificar que la contraseña introducida en una página web tenga una longitud mínima, ¿dónde sería preferible que se ejecutara el código de comprobación?
El servidor ejecuta código y genera páginas html que entrega al cliente
El cliente nunca ve este código
El servidor accede (si es necesario) a la información que tenemos en la base de datos
El servidor responde a una solicitud del cliente y le entrega una página html
No se puede pensar que el cliente necesita un dato y se lo pide al servidor y este se lo entrega.
Lo que entrega es una págian html. Esto debe quedar muy claro
Puntos clave
El servidor ante una solicitud del cliente entrega una página html
AJAX Al rescate
Pregunta
¿Qué pasa cuando el cliente solo quiere un dato del servidor para actualziar la página que actual?
¿y si en un momento dado, sólo pretendemos almacenar algo y qudarnos como estamos?
Desde hace unos años existe una técnica de desarrollo web conocida como AJAX.
Esta tecnología nos posibilita realizar programas en los que el código JavaScript accede al servidor
se puede comunicar y obtener información con la que, por ejemplo, modificar la página web actual.
AJAX al rescate
Es importante tener en cuenta que esta comunicación es asíncrona (no sabemos exactamente cuando se va a producir la comunicación)
Puntos clave
Ajax permite sin salir de una página modificar su contenido en base a la información que se almacena en un servidor de Internet
Tecnologías y Arquitectura web
Tiene que ver con las herramientas o programas a utilizar tanto para desarrollar y como para dar servicios
Nosotros de momento usaremos la arquitectura de tipo LAMP (Linux Apache Mysql Php)
Existen otras arquitecturas para desarrollar. Consiste en hacer convinacinoes de SO. Serivdor Web, Gestor de Bases de Datos, Lenguaje de programacion para el desarrollo).
Actividad
Localiza al menos 2 Arquitecturas diferentes
Tecnologías para programación web del lado del servidor
Cuando programas una aplicación, utilizas un lenguaje de programación.
Por ejemplo, utilizas el lenguaje Java para crear aplicaciones que se ejecuten en distintos sistemas operativos.
Al programar cada aplicación utilizas ciertas herramientas como un entorno de desarrollo o librerías de código. *Además, una vez acabado su desarrollo, esa aplicación necesitará ciertos componentes para su ejecución.
Por ejemplo en el caso de javauna máquina virtual de Java.
Son consideraciones a tener en cuenta antes de empezar a desarrollar.
Componentes de una aplicación web en el servidor
1.-Un servidor web para recibir las peticiones de los clientes web
Suelen ser los navegadores. Reciben la página que solicitan
El servidor web debe conocer el procedimiento a seguir para generar la página web:
Para ello tendrá módulos encargados de la ejecución del código y cómo se debe comunicar con él.
Componentes de una aplicación web en el servidor
2.-El módulo encargado de ejecutar el código o programa.
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.
3.- Un gestor de base de datos, será un servidor.
Este módulo no es estrictamente necesario pero se usa casi siempre.
4.-El lenguaje de programación que utilizarás para desarrollar las aplicaciones.
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).
Arquitectura de la aplicacion
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 en3 capas (Cliente, Sevidor, BD).
Arquitectura de tres 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.
Dentro de la arquitectura de la aplicacion podemos ver tambíen arquitectura MVC (nivel de tres capas), o arquitectura de modelo Vista - Aplicacion o modelo de dos capas.
Hay que diferenciar en la instalación de mysql servidor y mysql cliente
Instalamos los dos programas
sudoapt-get install mysql-server mysql-client
Directorio donde se ubica todo
/etc/mysql
fichero de configuración
/etc/mysql/my.cnf
Durante la instalación nos pedirá la contraseña de root
de forma totalmente antisegura introducimos root/root
En caso de perder la password probamos a entrar sin password y modificarla
Si nos queremos conectar a MYSQL sin necesidad de usuario y password:
mysql --defaults-file=/etc/mysql/debian.cnf
Reiniciar pass del "root" de MySQL (si lo hemos perdido):
mysql --defaults-file=/etc/mysql/debian.cnf mysql
mysql> update user setPassword=password('password_nuevo') where User='root';
mysql> flush privileges;
Probamos a entrar y que funciona bien
mysql -u root -p'''insertamos la password'''
show databases:
use my_baseDatos;
SELECT database();
Hay que recordar comandos básicos de mysql
uno muy útil es la ayuda
mysql -u root -proot
......
mysql>help//salen todos los comandos