Modelos de programación cliente-servidor:
* World Wide Web:
Es un conjunto de recursos interconectados que conforman el conocimiento humano actual.
- Hubs, repetidores, puentes, pasarelas o encaminadores.
- Protocolos de comunicaciones: TCP, IP, HTTP, FTP, SMTP.
- Sistema de nombres de dominio (DNS).
*Configuración arquitectónica más habitual: cliente/servidor.
– El Cliente es un componente consumidor de los servicios.
– El Servidor es un proceso proveedor de servicios.
* Funcionalidades en los entornos Cliente/Servidor (capas):
– Capa de presentación: Es la que ve el usuario.
– Capa de negocio: Es la capa que conoce y gestiona las funcionalidades que esperamos del sistema o aplicación web.
– Capa de persistencia o de datos: Es la capa donde residen los datos y la encargada de acceder a los mismos.
* Clasificación de los modelos de programación Web:
– Según el tamaño de los componentes:
- Fat client (thin Server), el mayor peso de la aplicación se ejecuta en el cliente.
- Fat server (thin Client), funcionalidad asociada al cliente limitada a la presentación de la información enviada por el servidor.
– Según la naturaleza del servicio ofrecido en función de las capacidades ofrecidas por el servidor:
- Servidores de ficheros, servidores de bases de datos, servidores de transacciones, servidores de objetos, servidores web …
– Reparto de funciones entre cliente y servidor: gestionar y distribuir las responsabilidades de cada una de las prestaciones funcionales entre el cliente y el servidor:
- Modelo en dos capas.
- Modelo en tres capas.
* Clasificación de las aplicaciones Web:
- Aplicaciones Web Estáticas: El usuario recibe una página web en la que la interacción no conlleva ningún tipo de acción.
- Aplicaciones Web Dinámicas: La interacción del cliente con el recurso recibido por parte del servidor (página web) produce algún tipo de cambio en la visualización del mismo.
- Aplicaciones Web Interactivas: La integración del usuario hace que se genere un diálogo entre el cliente y el servidor.
* Lenguaje de programación correspondiente a un entorno servidor:
– Es aquel cuyo código, bien sea como objeto precompilado (C++) o bien como código interpretado, es ejecutado por un software específico en el componente que actúa como servidor.
* Tipos:
- Lenguaje de Scripting.
- Aplicaciones CGI y derivados.
- Aplicaciones híbridas de código repartido.
* Lenguajes de Scripting:
- PHP (PHP Hypertext Processor)
- ASP (Active Server Pages)
- Perl
- Python
- JSP
* Aplicaciones CGI y derivados:
- Delegan la creación de páginas dinámicas a un programa externo, que recibe ciertos parámetros de entrada y devuelve como resultado el contenido que debe visualizar el cliente.
- El estandar CGI (Common Getaway Interface), especificado en la RFC3875, define este comportamiento.
- El programa externo no depende del código a generar.
- Desventajas: Escaso rendimiento a la hora de responder a múltiples peticiones CGI simultáneamente.
* Aplicaciones Híbridas de código repartido:
– Tecnología intermedia alternativa a los lenguajes de scripting (interpretados) y a las aplicaciones CGI y derivadas.
– Solución más representativa: Plataforma Microsoft .Net Framework a través de ASP.Net.
- Los formularios web están contenidos en archivos con una extensión ASPX que son los que el cliente solicita a través de una URL al servidor.
- Estos ficheros ASPX contienen código HTML o estático y también etiquetas propias de la plataforma .Net.
- Estas etiquetas definen Controles Web que se procesan del lado del servidor y Controles de Usuario donde los desarrolladores colocan todo el código estático y dinámico requerido por una página web.
* Herramientas de programación:
El equipo de desarrollo no tiene por qué realizarse en el mismo equipo en el que finalmente se despliegue y ejecute la aplicación web que se está desarrollando.
Instrumentos involucrados en el desarrollo web:
- Navegadores.
- Editores de documentos.
- Entornos de programación.
- Herramientas de tratamiento de imágenes.
- Herramientas para la creación y administración de bases de datos.
Entornos de programación como IDE’S de desarrollo destinadas a la programación Web.
* Entornos de programación:
– Marcadores de texto:
Nos ayudan a identificar mejor la sintaxis del lenguaje, cambiando de color las etiquetas, realizando tabulaciones en el texto, etc … Archnophilia, Notepad++, UltraEdit, Context, etc …
– Herramientas genéricas:
Ofrecen capacidades tales como la sugerencia de estructuras o funciones predeterminadas o la posibilidad de validad la corrección del código escrito. Front Page, Eclipse, DreamWeaver, etc …
– Herramientas específicas:
Herramientas par auna tecnología concreta, que exigen que el desarrollador tenga instalada una plataforma de desarrollo concreta. Visual Studio, NetBeans IDE, etc …