Selección de arquitecturas y herramientas de programación

AVISO: Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.

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 …

Post relacionados

Sistema de Correos. Envío masivo de emails desde Excel

KidneysM3U: Un reproductor para listas M3U y YouTube

Una máquina tragaperritos canina con Python