Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/Conceptos Generales»

De WikiEducator
Saltar a: navegación, buscar
Línea 1: Línea 1:
 
[[Usuario:ManuelRomero/NewPHP|Volver]]
 
[[Usuario:ManuelRomero/NewPHP|Volver]]
{{Actividad|title=Que veremos aquí|
+
{{Actividad|Title=Que veremos aquí|
 
asasdfasdf}}
 
asasdfasdf}}
 
{{:Usuario:ManuelRomero/php/nav}}
 
{{:Usuario:ManuelRomero/php/nav}}

Revisión de 13:06 15 sep 2016

Volver


Icon activity.jpg

Que veremos aquí

asasdfasdf





Arquitectura Web

Qué es Arquitectura Web

  • 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, y necesitamos herramientas:
  1. Planificar y analizar, diseñar y construir el producto final.
  2. Usaremos un determinado material o herramientas para construirlo.
  3. Usaremos roles profesionales (desarrolladores, diseñadores, administradores de sistemas).
Arquitectura Web


Icon define.gif

Definición

La arquitectura web define la estructura y la forma en que se organizan los diferentes componentes de una aplicación que funciona en un entorno web.

Como en la construcción de un edificio, necesitamos planos (diseño), materiales (tecnologías) y roles profesionales (desarrolladores, diseñadores, administradores de sistemas).



(Comment.gif: 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



Componentes principales de una aplicación web

  1. Servidor web → recibe las peticiones del cliente y devuelve una respuesta HTTP (ej: Apache, Nginx).
  2. Servidor de bases de datos → gestiona la información (ej: MySQL, PostgreSQL, MongoDB).
  3. Módulo de ejecución de código en el servidor → interpreta scripts dinámicos (ej: PHP, Node.js, Python).
  4. Cliente web → interpreta HTML, CSS y JavaScript (ej: navegadores).
  5. Lenguajes de programación → usados para construir tanto la parte visible (frontend) como la lógica (backend).

Diferencia entre el cliente (frontend) y el servidor (backend)

El Frontend (lado del cliente)
  • Es la parte visible de la aplicación, con la que el usuario interactúa desde su navegador.
  • Incluye la estructura (HTML), los estilos (CSS) y la interactividad (JavaScript).
  • Ejemplo: el formulario de registro o el botón de “Enviar”.
Backend (lado del servidor)
  • Es la parte que no se ve. Se ejecuta en el servidor y se encarga de procesar las peticiones del cliente, acceder a la base de datos y devolver los resultados.

Ejemplo: el código que guarda los datos del formulario en la base de datos. }}



Icon key points.gif

Puntos clave

El frontend muestra y recoge información del usuario, mientras que el backend la procesa, almacena y devuelve resultados.



Aspecto Frontend (cliente) Backend (servidor)
Dónde se ejecuta En el navegador del usuario En el servidor web
Lenguajes habituales HTML, CSS, JavaScript, Vue, React PHP, Python, Node.js, Java
Función principal Mostrar la interfaz y captar datos del usuario Procesar datos y comunicarse con la base de datos
Ejemplo práctico Formulario de contacto en pantalla Código que guarda el mensaje en una base de datos
Resultado visible Sí, el usuario lo ve directamente No, solo devuelve una respuesta



Icon casestudy.gif
Ejemplo
Imagina que una aplicación web funciona como un restaurante
  • El **cliente (frontend)** es la mesa del comensal, con todo lo que el usuario ve e interactúa:
 la carta, los cubiertos, el plato servido, el salero o las vinagreras.  
 Es el lugar donde el usuario decide qué quiere hacer y cómo quiere ajustar su experiencia (por ejemplo, echar más sal o vinagre).
  • El **servidor (backend)** es la cocina del restaurante.
 Allí los cocineros preparan los platos según los pedidos recibidos, mezclan los ingredientes (los datos), y devuelven el resultado terminado al cliente.

El proceso completo: El comensal (usuario) hace un pedido → el camarero (navegador) lo lleva a la cocina (servidor) → los cocineros (código backend) preparan el plato → lo devuelven a la mesa → y el cliente puede añadir más sal o vinagre (interacciones frontend).




Icon casestudy.gif
Ejemplo
  • Frontend → la experiencia visible e interactiva (presentación).
“El plato, la mesa, los utensilios, el salero y lo que el usuario toca.”
  • Backend → el trabajo oculto que genera el contenido (lógica y datos).
“La cocina donde se preparan los platos según el pedido.”
  • Base de datos → la despensa donde se guardan los ingredientes.
“Lugar donde se almacenan los productos (datos) para cocinar los platos.”
  • HTTP / navegador → el camarero que lleva y trae la información entre ambos mundos.
“Transporta los pedidos (peticiones) y devuelve las respuestas.”



Arquitectura de la aplicación



Icon define.gif

Definición

Las aplicaciones web modernas suelen dividirse en tres capas:
  • Capa de presentación → interfaz de usuario (HTML, CSS, JS)
  • Capa lógica o de negocio → funcionalidad de la aplicación (PHP, Python, Node.js)
  • Capa de datos → almacenamiento y acceso a la base de datos (MySQL, MongoDB, etc.)




(Comment.gif: Separar el código por capas facilita el mantenimiento, la escalabilidad y el trabajo en equipo. )



Roles en el desarrollo

  • Desarrollador backend
  • Desarrollador frontend
  • Diseñador web
  • Administrador de sistemas
  • DevOps / Full Stack Developer



Icon qmark.gif

Pregunta

{{{1}}}




Icon define.gif
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


Icon define.gif
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


Icon define.gif
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
  1. 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.
  2. capa intermedia : donde deberás programar la funcionalidad de tu aplicación.
  3. 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.



Icon inter.gif
Recursos de la Web


Tecnologías y arquitectura web



Icon activity.jpg

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
  1. Lenguaje php
  2. MySql
  3. MongoDb
  4. NodeJS
Tecnologías

Tecnolgias servidor.png

¿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.



Icon activity.jpg
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


Icon inter.gif
Recursos de la Web
https://www.youtube.com/watch?v=_yi3UVcuw_8





Tecnologías para programación web del lado del servidor

Plantilla:TecnologiaDesarrloWeb/TecnologíasServidor

  • 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.


Instalar java

  • Primero debemos ver si tenemos instalado java
 java -version
  • Nos dirá la versión que actualmente tenemos instalada o que no lo tenemos.
  • En caso de no tenerla lo instalamos, podemos seguir esta guia
  • jdk, jre, jvm
  • Primero instamalos el jre
sudo apt-get install icedtea-7-plugin openjdk-7-jre
  • Luego el jdk
sudo apt-get install openjdk-7-jdk
  • Ahora verificamos la instalación
# java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (IcedTea 2.5.2) (7u65-2.5.2-3~14.04)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)

Instalar netbeans

http://niconsystem.wordpress.com/2014/04/17/instalar-netbeans-8-0-en-ubuntu-14-04/

http://ubuntuhandbook.org/index.php/2014/03/install-netbeans-ide-8-0-in-ubuntu-14-0413-1012-04/

  • Primero verificamos que nuestro equipo sea de 64 bits o de 32
# uname -a
  • Accedemos al fichero descargado
  • Le damos permiso de ejecución y ejecutamos dicho fichero
chmod +x jdk-8u20-nb-8_0_1-linux-x64.sh 
./jdk-8u20-nb-8_0_1-linux-x64.sh
  • Una vez instalado se puede ejecutar y no hace falta modificar ningún parámetro

Ubuntu restricted extras[editar código]

Una instalación limpia de Ubuntu no permite ver Flash, QuickTime, WMV, aplicaciones Java, etc. Ubuntu Restricted Extras es un paquete que incluye todo el software que por razones de patentes y conflictos con la legislación de ciertos países, Canonical, la empresa madre de Ubuntu, no puede incluir por defecto en la distribución.

sudo apt-get install ubuntu-restricted-extras

Montando nuestra arquitectura Instalar Apache php y MySql

  • Seguimos la instalación de lamp
http://www.howtoforge.com/installing-apache2-with-php5-and-mysql-support-on-ubuntu-12.04-lts-lamp
  1. instalamos mysql
  • Durante la instalación nos pedirá la contraseña de root
  • Probamos a entrar y que funciona bien
 mysql -u root -p
 '''insertamos la password'''
 show databases:
 
 use my_baseDatos;  
 
 SELECT database();
  • Podemos probar a crear una tabla
  1. Instalamos apache
 apt-get install apache2


Icon activity.jpg

Actividad

  1. Probamos a ver si responde nuestro servidor web
  2. Vemos el fichero de configuración
  3. localizamos el fichero log y el de errores






  • para parar y arrancar el servicio
sudo /etc/init.d/apache2 stop|start

Ahora debemos instalar php6 y el módulo correspondiente para apahce

  • Para instalar la versión 6, primero tenemos que añadir el fuente en el fichero sources.list
sudo add-apt-repository ppa:ondrej/php5-5.6
apt-get install php5 libapache2-mod-php5
  • Debemos restaurar el servicio para que los cambios tengan efecto en el servidor web
/etc/init.d/apache2 restart


Icon activity.jpg

Actividad

  • Localiza el fichero de configuracion de php: php.ini
  • Analiza el valor y significado de las siguientes directivas
  1. short_open_tags
  2. max_execution_time
  3. error_reporting
  4. file_upload
  5. upload_max_filesize




Instalar xdebug

  • Podemos consultar la pagina de netbeans para la informacion
https://netbeans.org/kb/docs/php/configure-php-environment-ubuntu.html#xdebug-package
sudo apt-get install php5-dev php-pear
 sudo pecl install xdebug
  • A continuacion debemos modificar el fichero ini de php
  • Abrimos con nuestro editor el fichero
 sudo vim /etc/php5/apache2/php.ini .
  • Añadimos el módulo de xdebug a la variable zend_extenxion de php
zend_extension=/usr/lib/php5/<DATE+lfs>/xdebug.so
xdebug.remote_enable=on
  • Recordad que <DATE+ĺfs> es un nombre de directorio que se habrá creado al instalar esta extensión.
  • En el momento de la instalación en mi caso fue 20121212
  • Si no funciona correctamente visita esta página http://xdebug.org/wizard.php
  • Copia en el cuadro de texto la salida de phpinfo() o bien en línea de comandos php -i
  • Después sigue las instrucciones que te van indicando.

Menú de navegación