martes, 20 de mayo de 2014

ARQUITECTURA WEB

Una arquitectura simplificada del web, es una típica arquitectura cliente/servidor, en el cual de un lado se encuentra el cliente que esta compuesto de browsers web, capaces de mostrar y solicitar documentos sobre una red. Opcionalmente, el cliente puede estar acompañado por aplicaciones externas usando una presentación del documento, o parte de este. El otro lado de la arquitectura web hace de servidor, compuesto por el servidor web, cuya función es atender los pedidos del cliente web por documentos almacenados en el sistema de archivos de la plataforma donde se encuentra instalado.
Una importante característica del web es que el fue proyectado para funcionar en topología de Internet , esta compuesta por una gran variedad de computadoras que interactúan entre si. Internet tiene un espacio global y se comunica por canales públicos de comunicación sin restricción cundo es continuo. De esta forma el web incorpora naturalmente la característica de ser un ambiente distribuido y multiplataforma.
Otras características importantes del web es que esta basado en tres patrones abiertos que son:
Transferir información: para desarrollar el transporte de información entre el servidor y el cliente web fue propuesto un protocolo de información denominado http, cuya principal característica es ser un protocolo abierto y especializado en la trasmisión de documentos web sobre Internet. Este protocolo proporciona la eficiencia y velocidad que necesita el sistema de información distribuido en el web.
Descripción de la información: para la prestación de documentos en el web se utiliza el lenguaje HTML (HiperText Markup Language) que permite estructurar los documentos web, usando vínculos hacia otros documentos y recursos de Internet. Los documentos pueden ser interpretados por browsers y estructurados según las características de cada plataforma en que son exhibidas. El lenguaje html esta compuesto por un conjunto de elementos denominados tags que permiten al usuario especificar la estructura de un documento web. Este lenguaje se basa en el lenguaje SGML (Standard Generalizad Markup Language) el cual es independiente de la plataforma en la que es mostrado, lo cual posibilita la creación de formularios que contengan iconos y campos para envió de datos por los usuarios, esto proporciona un mayor dinamismo, pues permite que las paginas web funcionen para aplicaciones que necesiten interacción con el usuario.
Localización de información: para la identificación y localización de documentos web distribuidos por Internet s utiliza el formato URL (Uniform Resource Locator) cuya sintaxis es la siguiente: (<Protocolo>://<Host>/<Path>/<Doc>Localizacion>). Donde el protocolo indica el tipo de recurso de Internet que debe ser usado para la conexión con el servidor, que puede ser entre otros HTTP, FTP, NEWS, WAIS y FILE. El host: es el nombre de la maquina a la cual desea conectarse; el path: es la lista de directorios separados por barras, Doc: es el nombre del documento o programa a ser ejecutado; Localización: es una marca textual opcional de posición del documento.
Desarrollo y portabilidad:
En lo que se refiere al ambiente de desarrollo y portabilidad de aplicaciones web- bases de datos los siguientes puntos merecen ser tenidos en cuenta:
1. Las aplicaciones web bases de datos deben ser fácilmente extendidas a las nuevas versiones HTML. Adicionalmente estas deben ser flexibles por si suceden cambios, por ejemplo en las versiones del protocolo http ode las interfaces CGI.
2. Es aconsejable la existencia de mecanismos eficientes para transferir variable de entrad del cliente web para las consultas en el servidor de bases de datos. Este es un punto particularmente importante en virtud del hecho de que la transferencia de datos de un formulario HTML, para el Common Gateway via Interface CGI (es una interfaz en la que se tiene la posibilidad de ejecutar de aplicaciones externas al servidor web, es una manera mas natural de desarrollar aplicaciones en el web, ya que son aplicaciones externas al ambiente cliente servidor), por ejemplo no debe ser trivial.
3. La estructura para el desarrollo de aplicaciones web bases de datos debe ser flexibles, poco dependiente del esquema de bases de datos, con un diseño generado para el ambiente web, sin grandes conocimientos de interfaces, como por ejemplo CGI APIs de servidores web o programación de bases de datos
4. La falta de metodología para el desarrollo de aplicaciones es una característica del ambiente web actualmente, por ser una tecnología muy reciente. La metodología aquí es entendida como un procedimiento formal para convertir las necesidades del usuario en código de aplicación, lo que incluye en general, modelo, proyecto, texto y documentación. Particularmente el modelo de una aplicación web bases de datos debe ser mejor estudiada. Los atributos en las bases de datos pueden incorporar características genéricas de formación de entradas y salidas en el formato HTML de forma que pueda facilitar el desarrollo.

LENGUAJES DE PROGRAMACIÓN DEL LADO DEL SERVIDOR.

Existe una multitud de lenguajes concebidos o no para Internet. Cada uno de ellos explota más a fondo ciertas características que lo hacen más o menos útiles para desarrollar distintas aplicaciones.
Un lenguaje del lado del servidor es aquel que se ejecuta en el servidor web, justo antes de que se envíe la página a través de Internet al cliente. Las páginas que se ejecutan en el servidor pueden realizar accesos a bases de datos, conexiones en red, y otras tareas para crear la página final que verá el cliente.
Los lenguajes de lado servidor más ampliamente utilizados para el desarrollo de páginas dinámicas son el ASP, JSP, PERL y PHP.

ASP.NET (Active Server Pages).

Lenguaje comercializado por Microsoft, y usado por programadores para desarrollar entre otras funciones, sitios web. ASP.NET es el sucesor de la tecnología ASP, fue lanzada al mercado mediante una estrategia de mercado denominada .NET.
Se desarrollado para resolver las limitantes que brindaba tu antecesor ASP. Para el desarrollo de ASP.NET se puede utilizar C#, VB.NET o J#. Los archivos cuentan con la extensión (aspx). Para su funcionamiento de las páginas se necesita tener instalado IIS con el Framework .Net. Microsft Windows 2003 incluye este framework, solo se necesitará instalarlo en versiones anteriores.
El lenguaje ASP consiste en una serie de clases .NET utilizadas para crear aplicaciones Web, tanto del lado cliente (Web Form) como del lado servidor (Web Service). La integración de nativa .NET Framework con el sistema operativo Windows Server 2003 hace que su ejecución sea más estable y rápida que otros lenguajes de programación.

Las páginas creadas con la tecnología ASP.NET funcionan en todo tipo de navegadores – incluyendo Netscape, Safari y Internet Explorer.
Actualizaciones Dinámicas Soporte de servicios web XML Conexiones del tipo DSN, o sin utilización de DSN, para acceder a fuentes de datos ODBC.

Ventajas:

  • Completamente orientado a objetos.
  • Controles de usuario y personalizados.
  • División entre la capa de aplicación o diseño y el código.
  • Facilita el mantenimiento de grandes aplicaciones.
  • Incremento de velocidad de respuesta del servidor.
  • Mayor velocidad.
  • Mayor seguridad.

Desventajas:

  • Mayor consumo de recursos.
  • Tecnología propietaria.
  • Hospedaje de sitios web costosos.

JSP

Es un lenguaje para la creación de sitios web dinámicos, acrónimo de Java Server Pages. Está orientado a desarrollar páginas web en Java. JSP es un lenguaje multiplataforma.
JSP fue desarrollado por Sun Microsystems. Comparte ventajas similares a las de ASP.NET, desarrollado para la creación de aplicaciones web potentes. Posee un motor de páginas basado en los servlets de Java. Para su funcionamiento se necesita tener instalado un servidor Tomcat.

Características:

  • Código separado de la lógica del programa.
  • Las páginas son compiladas en la primera petición.
  • Permite separar la parte dinámica de la estática en las páginas web.
  • Los archivos se encuentran con la extensión (jsp).
  • El código JSP puede ser incrustado en código HTML.
Los elementos que pueden ser insertados en las páginas JSP son los siguientes:
  • Código: se puede incrustar código “Java”.
  • Directivas: permite controlar parámetros del servlet.
  • Acciones: permite alterar el flujo normal de ejecución de una página.

Ventajas:

  • Ejecución rápida del servlets.
  • Crear páginas del lado del servidor.
  • Multiplataforma.
  • Código bien estructurado.
  • Integridad con los módulos de Java.
  • La parte dinámica está escrita en Java.

Desventajas:

  • Complejidad de aprendizaje.

PERL

Perl (Practical Extraction and Report Language) es un lenguaje de programación desarrollado por Larry Wall (lwall at netlabs.com) inspirado en otras herramientas de UNIX como son: sed, grep, awk, c-shell, para la administración de tareas propias de sistemas UNIX. No establece ninguna filosofía de programación concreta. No se puede decir que sea orientado a objetos, modular o estructurado aunque soporta directamente todos estos paradigmas; su punto fuerte son las labores de procesamiento de textos y archivos. Lenguaje de programación basado en scripts portable a casi cualquier plataforma. Es muy utilizado para escribir CGIs. Uno de sus elementos más potentes son las expresiones regulares, que a partir de su versión en Perl han sido adoptadas por otros lenguajes y plataformas como .NET o Javascript.

Ventajas

  • Es un buen lenguaje “pegamento”. Se pueden juntar varios programas de una forma sencilla para alcanzar una meta determinada. Los usuarios de Windows agradecerán esta propiedad ya que normalmente adolecen de un buen lenguaje tipo “script”.
  • Es relativamente rápido para un lenguaje tipo “script”.
  • Está disponible en múltiples plataformas y sistemas operativos (UNIX, Linux y Windows). Un programa que se escriba teniendo en cuenta la compatibilidad puede ser escrito en una plataforma y ejecutado en otra.
  • El desarrollo de aplicaciones es muy rápido.
  • Hay una colección enorme de módulos que pueden ser incorporados a cualquier “script” de Perl. Están disponibles en el CPAN (“Comprehensive Perl Archive Network”). En particular existe una extensión para cálculo numérico denominada PDL.
  • Perl es gratuito. Mucho más que eso, es “Software Libre”. Esto quiere decir que el código fuente está disponible para que cualquiera lo pueda ver o modificar, y lo que es más importante, siempre lo estará. Aunque nunca pretendas cambiar el código, es importante disponer de la posibilidad de hacerlo, ya que siempre se podrá contratar a una tercera persona para que lo modifique en el caso de que haya un error, y debería ser posible solucionarlo.
  • Le otorga al programador mucha libertad para que haga el programa como quiera. Tal como dice el eslogan de Perl “Hay más de una forma de hacerlo”

Desventajas

  • Es lento para algunas aplicaciones, como programación a bajo nivel, escribiendo un “driver” para una aplicación o corriendo modelos numéricos de cálculo intensivo. Si bien se pueden insertar subrutinas FORTRAN o C en Perl, teniendo lo mejor de los dos mundos, pero con algo más de complejidad.
  • La libertad que se le otorga al programador puede significar que el resultado sea un programa ilegible. Si no se escribe con cuidado puede llegar a ser difícil de leer. De hecho hay un concurso de Perl ofuscado.
  • Perl es un lenguaje interpretado. Este tema no es tan crítico como suena, los programas Perl no correrán mucho más rápidos cuando se compilen, la única ventaja está en la desaparición de la fase inicial de compilación al correr la aplicación.
  • Utiliza muchos recursos de computó. Esto significa que no es tan ligero como un programa en C, pero en la práctica es ligero comparado con la potencia de procesamiento de las computadoras actuales.

PHP

PHP es el acrónimo de Hipertext Preprocesor. Es un lenguaje de programación del lado del servidor gratuito e independiente de plataforma, rápido, con una gran librería de funciones y mucha documentación. Fue creado originalmente en 1994 por Rasmus Lerdorf, pero como PHP está desarrollado en política de código abierto, a lo largo de su historia ha tenido muchas contribuciones de otros desarrolladores.
El cliente solamente recibe una página con el código HTML resultante de la ejecución de la PHP. Como la página resultante contiene únicamente código HTML, es compatible con todos los navegadores.

Ventajas:

  • Muy fácil de aprender.
  • Se caracteriza por ser un lenguaje muy rápido.
  • Soporta en cierta medida la orientación a objeto. Clases y herencia.
  • Es un lenguaje multiplataforma: Linux, Windows, entre otros.
  • Capacidad de conexión con la mayoría de los manejadores de base de datos: MysSQL, PostgreSQL, Oracle, MS SQL Server, entre otras.
  • Capacidad de expandir su potencial utilizando módulos.
  • Posee documentación en su página oficial la cual incluye descripción y ejemplos de cada una de sus funciones.
  • Es libre, por lo que se presenta como una alternativa de fácil acceso para todos.
  • Incluye gran cantidad de funciones.
  • No requiere definición de tipos de variables ni manejo detallado del bajo nivel.

Desventajas:

  • Todo el trabajo lo realiza el servidor y no delega al cliente. Por tanto puede ser más ineficiente a medida que las solicitudes aumenten de número.
  • La legibilidad del código puede verse afectada al mezclar sentencias HTML y PHP.
  • La programación orientada a objetos es aún muy deficiente para aplicaciones grandes.
  • Dificulta la modularización.
  • Dificulta la organización por capas de la aplicación.

Seguridad:

PHP es un poderoso lenguaje e intérprete, ya sea incluido como parte de un servidor web en forma de módulo o ejecutado como un binario CGI separado, es capaz de acceder a archivos, ejecutar comandos y abrir conexiones de red en el servidor. Estas propiedades hacen que cualquier cosa que sea ejecutada en un servidor web sea insegura por naturaleza.
PHP está diseñado específicamente para ser un lenguaje más seguro para escribir programas CGI que Perl o C, y con la selección correcta de opciones de configuración en tiempos de compilación y ejecución, y siguiendo algunas prácticas correctas de programación.

LENGUAJES DE PROGRAMACIÓN DEL LADO DEL CLIENTE.

Un lenguaje del lado cliente es totalmente independiente del servidor, lo cual permite que la página pueda ser albergada en cualquier sitio. Pero nuestra página no se verá bien si la computadora cliente no tiene instalados los plug-in adecuados. El código, tanto del hipertexto como de los scripts, es accesible a cualquiera y ello puede afectar a la seguridad.

Javascript.

Javascript es un lenguaje de programación que realiza acciones dentro del ámbito de una página web.
Su compatibilidad con la mayoría de los navegadores modernos, lo posiciona como el lenguaje de programación del lado del cliente más utilizado.
Con Javascript podemos crear efectos especiales en las páginas y definir interacción con el usuario. El navegador (browser) del cliente es el encargado de interpretar las instrucciones Javascript y ejecutarlas para realizar estos efectos e interactividades, de modo que el mayor recurso, y tal vez el único, con que cuenta este lenguaje es el propio navegador.
Entre las acciones típicas que se pueden realizar en Javascript tenemos dos vertientes. Por un lado los efectos especiales sobre páginas web, para crear contenidos dinámicos y elementos de la página que tengan movimiento, cambien de color o cualquier otro dinamismo.
Por el otro, javascript nos permite ejecutar instrucciones como respuesta a las acciones del usuario (eventos), con lo que podemos crear páginas interactivas con programas como calculadoras, agendas, o tablas de cálculo.
Javascript es un lenguaje con muchas posibilidades, es orientado a objetos, con funciones, estructuras de datos complejas, etc.
Además, Javascript pone a disposición del programador todos los elementos que forman la página web, para que éste pueda acceder a ellos y modificarlos dinámicamente.

JavaScript no permite dos de las características clásicas de los lenguajes orientados a objetos (herencia y polimorfismo), pero permite la creación y manipulación de objetos sencillos, y la definición de métodos y propiedades para dichos objetos.
JavaScript soporta el Modelo de Objetos de Documento (DOM, Document Object Model). El DOM es el conjunto de objetos predefinidos que nos permite acceder a todos los elementos de una página y a ciertas características específicas del navegador.
<head>
<meta charset='utf-8'>
<meta charset='utf-8'" 
<title>Ejemplo JavaScript</title>
</head>
<body>
<script> 
var respuesta = confirm("Aceptame o rechazame") 
alert("Has pulsado: " + respuesta) 
</script>
</body>
</html>

Visual Basic Script

Es un lenguaje de programación de scripts del lado del cliente, sólo compatible con Internet Explorer. Es por ello se usa poco.
Está basado en Visual Basic de Microsoft. Tanto su sintaxis y modo de operación es una versión reducida del primero.
El modo de funcionamiento de Visual Basic Script para construir efectos especiales en páginas web es muy similar al utilizado en Javascript y los recursos a los que se puede acceder también son los mismos: el navegador.

Applets de Java

Son programas hechos en Java, que se transfieren con las páginas web y que el navegador ejecuta en el espacio de la página. Los applets son más difíciles de programar que los scripts en Javascript y requerirán conocimientos medios del lenguaje Java.
La principal ventaja de utilizar applets consiste en que son independientes del navegador, del sistema operativo y multiplataformas.
Cada sistema operativo dispone de una máquina Virtual de Java que puede interpretar los Byte Codes y transformarlos a sentencias ejecutables en el sistema en cuestión.

Arquitectura de appletviewer

El appletviewer representa la interfaz mínima de navegación. En la figura se muestran los pasos que seguiría appletviewer para presentarnos el resultado de la ejecución del código de nuestra clase.

Esta es una visión simplificada del appletviewer. La función principal de esta aplicación es proporcionar al usuario un objeto de tipo Graphics sobre el que dibujar, y varias funciones para facilitar el uso del objeto Graphics.

Ciclo de vida de un Applet

Cuando un applet se carga en el appletviewer, comienza su ciclo de vida, que pasaría por las siguientes fases:
  • Se crea una instancia de la clase que controla el applet. En el ejemplo de la figura anterior, sería la clase HolaMundo.
  • El applet se incializa.
  • El applet comienza a ejecutarse.
  • El applet empieza a recibir llamadas. Primero recibe una llamada init (inicializar), seguida de un mensaje start (empezar) y paint (pintar). Estas llamadas pueden ser recibidas asíncronamente.

Flash

Es un programa multimedia de Adobe que se utiliza para crear presentaciones animadas. Se trata de una aplicación “del lado del cliente” que es leída por los principales navegadores. Las animaciones se realizan a partir de vectores y de imágenes en base a píxeles (llamadas “raster graphics”) y pueden incluir audio y video. Este programa es uno de los más utilizados para animar sitios Web y permitir la interactividad.