miércoles, 24 de junio de 2015

Unidad 1 Plataforma WEB 1.1



1.1 EVOLUCIÓN DE LAS APLICACIONES WEB

La programación web es un término adecuado para describir el proceso general que engloba el diseño y la creación de un sitio web.Hace algunos años, los sitios web no eran mucho más que folletos digitales. Actualmente los sitios son más grandes y complejos. Con la introducción de comercio electrónico y las páginas dinámicas, los sitios ya han dejado atrás los folletos y han pasado a ser auténticas aplicaciones de software.

La WEB 1.0
La Web 1.0 (1991-2003) es la forma más básica que existe, con navegadores de sólo texto bastante rápidos ya que es de sólo lectura. El usuario no puede interactuar con el contenido de la página (nada de comentarios, respuestas, citas, etc), estando totalmente limitado a lo que el Webmaster sube a ésta.
Algunos elementos de diseño típicos de un sitio Web 1.0 incluyen:

  • Páginas estáticas en vez de dinámicas por el usuario que la visita 
  • El uso de framesets o Marcos. 
  • Extensiones propias del HTML como <bilnk> y <marquee>, etiquetas introducidas durante la guerra de navegadores web. 
  • Libros de visitas online o guestbooks 
  • botones GIF, casi siempre a una resolución típica de 88x31 pixels en tamaño promocionando navegadores web u otros productos.3
  • formularios HTML enviados vía email. Un usuario llenaba un formulario y después de hacer clic se enviaba a través de un cliente de correo electrónico, con el problema que en el código se podía observar los detalles del envío del correo electrónico. 
  • No se podían adherir comentarios ni nada parecido 
  • Todas sus páginas se creaban de forma fija y muy pocas veces se actualizaban. 
  • No se trata de una nueva versión, sino de una nueva forma de ver las cosas.

La web 2.0

El término Web 2.0 comprende aquellos sitios web que facilitan el compartir información, la inter operatibilidad, el diseño centrado en el usuario 1 y la colaboración en la World Wide Web. Un sitio Web 2.0 permite a los usuarios interactuar y colaborar entre sí como creadores de contenido generado por usuarios en una comunidad virtual, a diferencia de sitios web estáticos donde los usuarios se limitan a la observación pasiva de los contenidos que se han creado para ellos. Ejemplos de la Web 2.0 son las comunidades web, los servicios web, las aplicaciones Web, los servicios de red social, los servicios de alojamiento de vídeos, las wikis, blogs.

Servicios asociados:

  • Blogs: Un blog es un espacio web personal en el que su autor puede escribir cronológicamente artículos, noticias...(con imágenes y enlaces). 
  • Wikis: Una wiki es un espacio web corporativo, organizado mediante una estructura hipertextual de páginas donde varias personas elaboran contenidos de manera asíncrona. 
  • Redes sociales: Sitios web donde cada usuario tiene una página donde publica contenidos y se comunica con otros usuarios. Ejemplos: Facebook, Twitter, Tuenti, Hi5, Myspace, etc. 
  • Entornos para compartir recursos: Entornos que nos permiten almacenar recursos o contenidos en Internet, compartirlos y visualizarlos cuando nos convenga. Existen de diversos tipos, según el contenido que albergan o el uso que se les da: 
  • Documentos: Google Drive y Office Web Apps (SkyDrive), en los cuales podemos subir nuestros documentos, compartirlos y modificarlos. 
  • Videos: Youtube, Vimeo, Dailymotion, Dalealplay... Contienen miles de vídeos subidos y compartidos por los usuarios. 
  • Fotos: Picassa, Flickr... Permiten disfrutar y compartir las fotos también tenemos la oportunidad de organizar las fotos con etiquetas, separándolas por grupos como si fueran álbumes, podemos seleccionar y guardar aparte las fotos que no queremos publicar. 
  • Agregadores de noticias: Digg, Meneame... Noticias de cualquier medio son agregadas y votadas por los usuarios. 
  • Almacenamiento online: Dropbox, Google Drive, SkyDrive 
  • Presentaciones: Prezzi, Slideshare. 
  • Plataformas educativas 
  • Aulas virtuales (síncronas) 
  • Encuestas en línea.

La web 3.0
La web 3.0 es una expresión que se utiliza para describir la evolución del uso y la interacción de las personas en internet a través de diferentes formas entre los que se incluyen la transformación de la red en una base de datos, un movimiento social hacia crear contenidos accesibles por múltiples aplicaciones non-browser, el empuje de las tecnologías de inteligencia artificial, la web semántica, la Web Geoespacial o la Web 3D.

Se basa en la idea de añadir metadatos semánticos y ontológicos a la World Wide Web. Esas informaciones adicionales que describen el contenido, el significado y la relación de los datos se deben proporcionar de manera formal, para que así sea posible evaluarlas automáticamente por máquinas de procesamiento. El objetivo es mejorar Internet ampliando la interoperabilidad entre los sistemas informáticos usando "agentes inteligentes". Agentes inteligentes son programas en las computadoras que buscan información sin operadores humanos. Con la web 3.0 se busca que los usuarios puedan conectarse desde cualquier lugar, cualquier dispositivo y a cualquier momento.


Entre sus innovaciones destacan:
  • Bases de datos 
  • Inteligencia artificial 
  • Web semántica y SOA 
  • Evolución al 3D

1.2 Arquitectura de la tecnología Cliente-Servidor

Elementos de la arquitectura Cliente-Servidor

En esta aproximación, y con el objetivo de definir y delimitar el modelo de referencia de una arquitectura Cliente/Servidor, debemos identificar los componentes que permitan articular dicha arquitectura, considerando que toda aplicación de un sistema de información está caracterizada por tres componentes básicos:

  • Presentación/Captación de Información
  • Procesos
  • Almacenamiento de la Información

Los cuales se suelen distribuir tal como se presenta en la figura:
Aplicaciones Cliente/Servidor

Para ver el gráfico seleccione la opción "Descargar" del menú superior
Y se integran en una arquitectura Cliente/Servidor en base a los elementos que caracterizan dicha arquitectura, es decir:
  • Puestos de Trabajo
  • Comunicaciones
  • Servidores

El Puesto de Trabajo o Cliente
Una Estación de trabajo o microcomputador (PC: Computador Personal) conectado a una red, que le permite acceder y gestionar una serie de recursos» el cual se perfila como un puesto de trabajo universal. Nos referimos a un micro computador conectado al sistema de información y en el que se realiza una parte mayoritaria de los procesos. Se trata de un fenómeno en el sector informático. Aquellos responsables informáticos que se oponen a la utilización de los terminales no programables, acaban siendo marginados por la presión de los usuarios.

Debemos destacar que el puesto de trabajo basado en un microcomputador conectado a una red, favorece la flexibilidad y el dinamismo en las organizaciones. Entre otras razones, porque permite modificar la ubicación de los puestos de trabajo, dadas las ventajas de la red.

Los Servidores o Back-end
Una máquina que suministra una serie de servicios como Bases de Datos, ArchivosComunicaciones,...).
Los Servidores, según la especialización y los requerimientos de los servicios que debe suministrar pueden ser:
  • Mainframes
  • Miniordenadores
  • Especializados (Dispositivos de Red, Imagen, etc.)
  • Infraestructura de redes
  • Infraestructura de comunicaciones

La arquitectura Cliente/Servidor es el resultado de la integración de dos culturas. Por un lado, la del Mainframe que aporta capacidad de almacenamiento, integridad y acceso a la información y, por el otro, la del computador que aporta facilidad de uso (cultura de PC), bajo costo, presentación atractiva (aspecto lúdico) y una amplia oferta en productos y aplicaciones.

Su representación típica es un centro de trabajo (PC), en donde el usuario dispone de sus propias aplicaciones de oficina y sus propias bases de datos, sin dependencia directa del sistema central de información de la organización, al tiempo que puede acceder a los recursos de este host central y otros sistemas de la organización ponen a su servicio.

"cliente flaco"
  • Servidor rápidamente saturado.
  • Gran circulación de datos de interfase en la red

"cliente gordo"
  • Gran circulación de datos inútiles en la red.

Una característica a considerar es que los diferentes servicios, según el caso, pueden ser suministrados por un único Servidor o por varios Servidores especializados.
Las Comunicaciones

En sus dos vertientes:
Infraestructura de redes
Componentes Hardware y Software que garantizan la conexión física y la transferencia de datos entre los distintos equipos de la red.

Infraestructura de comunicaciones
Componentes Hardware y Software que permiten la comunicación y su gestión, entre los clientes y los servidores.

CARACTERÍSTICAS DEL MODELO CLIENTE/SERVIDOR:

En el modelo CLIENTE/SERVIDOR podemos encontrar las siguientes características:

1. El Cliente y el Servidor pueden actuar como una sola entidad y también pueden actuar como entidades separadas, realizando actividades o tareas independientes.

2. Las funciones de Cliente y Servidor pueden estar en plataformas separadas, o en la misma plataforma. Para ver el gráfico seleccione la opción "Descargar" del menú superior.

3. Un servidor da servicio a múltiples clientes en forma concurrente.

4. Cada plataforma puede ser escalable independientemente. Los cambios realizados en las plataformas de los Clientes o de los Servidores, ya sean por actualización o por reemplazo tecnológico, se realizan de una manera transparente para el usuario final.

5. La interrelación entre el hardware y el software están basados en una infraestructura poderosa, de tal forma que el acceso a los recursos de la red no muestra la complejidad de los diferentes tipos de formatos de datos y de los protocolos.

6. Un sistema de servidores realiza múltiples funciones al mismo tiempo que presenta una imagen de un solo sistema a las estaciones Clientes. Esto se logra combinando los recursos de cómputo que se encuentran físicamente separados en un solo sistema lógico, proporcionando de esta manera el servicio más efectivo para el usuario final.
También es importante hacer notar que las funciones Cliente/Servidor pueden ser dinámicas. Ejemplo, un servidor puede convertirse en cliente cuando realiza la solicitud de servicios a otras plataformas dentro de la red.
Su capacidad para permitir integrar los equipos ya existentes en una organización, dentro de una arquitectura informática descentralizada y heterogénea.

7. Además se constituye como el nexo de unión mas adecuado para reconciliar los sistemas de información basados en mainframes o minicomputadores, con aquellos otros sustentados en entornos informáticos pequeños y estaciones de trabajo.

8. Designa un modelo de construcción de sistemas informáticos de carácter distribuido.
En conclusión, Cliente/Servidor puede incluir múltiples plataformas, bases de datos, redes y sistemas operativos. Estos pueden ser de distintos proveedores, en arquitecturas propietarias y no propietarias y funcionando todos al mismo tiempo. Por lo tanto, su implantación involucra diferentes tipos de estándares: APPC, TCP/IP, OSI, NFS, DRDA corriendo sobre DOS, OS/2, Windows o PC UNIX, en TokenRing, Ethernet, FDDI o medio coaxial, sólo por mencionar algunas de las posibilidades.

Tipos de Clientes

"cliente flaco":
  • Servidor rápidamente saturado.
  • Gran circulación de datos de interfase en la red.


"cliente gordo":
  • Casi todo el trabajo en el cliente.
  • No hay centralización de la gestión de la BD.
  • Gran circulación de datos inútiles en la red.


Tipos de Servidor:

Servidores de archivos
Servidor donde se almacena archivos y aplicaciones de productividad como por ejemplo procesadores de texto, hojas de cálculo, etc.

Servidores de bases de datos
Servidor donde se almacenan las bases de datos, tablas, índices. Es uno de los servidores que más carga tiene.

Servidores de transacciones
Servidor que cumple o procesa todas las transacciones. Valida primero y recién genera un pedido al servidor de bases de datos.

Servidores de Groupware
Servidor utilizado para el seguimiento de operaciones dentro de la red.

Servidores de objetos

Contienen objetos que deben estar fuera del servidor de base de datos. Estos objetos pueden ser vídeos, imágenes, objetos multimedia en general.

Servidores Web

Se usan como una forma inteligente para comunicación entre empresas a través de Internet. Este servidor permite transacciones con el acondicionamiento de un browser específico.


1.2.1 APLICACIONES DE 2, 3 Y N CAPAS

Aplicaciones de una capa.

Las capas dentro de una arquitectura son nada más que un conjunto de servicios especializados que pueden ser accesibles por múltiples clientes y fácilmente reutilizables. Este tipo de arquitectura se caracteriza por tener en una sola asociación lógica y en ella a la presentación, la lógica de negocios y los datos; que si los ponemos como servicios se convierten en capas, lo veremos más adelante

Ejemplos de esta arquitectura son desarrollos realizados en Excel, Access, Fox, entre otros.
Aplicaciones de dos capas.

Se caracterizan por tener 2 asociaciones lógicas, que prestan servicios y que a la final son capas.


En la primera capa se incluye a la presentación (Interface grafica) y a la lógica de negocios, toda la lógica la escribimos en las formas (en el onClick del botón por ejemplo), y accedemos a un servicio de datos para la gestión de los mismos, por lo general a un servidor de Base de Datos.



Aplicaciones de 3 Capas.

Una aplicación de tres capas es una aplicación cuya funcionalidad puede ser segmentada en tres niveles lógicos (capas):• Los servicios de presentación.

• Los servicios de negocios (Lógica de Negocios) .

• Los servicios de datos.

La capa de servicios de presentación es responsable de:

  • Obtener información del usuario.
  • Enviar la información del usuario a los servicios de negocios para su procesamiento.
  • Recibir los resultados del procesamiento de los servicios de negocios.
  • Presentar estos resultados al usuario.

El nivel de servicios de negocios es responsable de:

  • Recibir la entrada del nivel de presentación.
  • Interactuar con los servicios de datos para ejecutar las operaciones de negocios para los que la aplicación fue diseñada a automatizar (por ejemplo, la preparación de impuestos por ingresos, el procesamiento de ordenes y así sucesivamente).
  • Enviar el resultado procesado al nivel de presentación
El nivel de servicios de datos es responsable de:

  • Almacenar los datos.
  • Recuperar los datos.
  • Mantener los datos.
  • La integridad de los datos.


Al ser la primera capa un servicio, se puede inferir que las aplicaciones no solo podrían ser de escritorio, si quisiéramos que nuestra aplicación tenga una interface web, pues solamente bastaría con cambiar la capa de presentación y de allí en adelante nada tiene porque cambiar.



Entonces nuestras páginas web estarían alojadas en un Servidor Web las mismas que se conectan a la lógica de negocios y de allí a los servicios de datos.

Arquitectura de 3 capas con interfaces Web.

Aplicaciones de n Capas. 
Podríamos ir separando nuestra aplicación en mas niveles lógicos, por ejemplo, vamos a querer que nuestra aplicación tenga múltiples interfaces, es decir interface gráfica (standalone o desktop) y también interface Web. 

Lo aconsejado en esta circunstancia es separar al Servidor Web encargado de alojar las páginas Web en una capa más. En este caso se tendrían 4 capas.

Mientras más servicios coloquemos a nuestra aplicación y mientras más escalable lo imaginemos, mas capas lógicas van a irse añadiendo a nuestra arquitectura; allí está el inicio del estudio de las siguientes secciones del curso, LOS PATRONES DE DISEÑO. 

• La arquitectura en 3 capas es la más usada 

• La arquitectura en 4 capas puede ser más escable


1.3 LENGUAJES DE PROGRAMACIÓN WEB Y DBMS

Tradicionalmente un software departamental o incluso un ambicioso proyecto corporativo de gran envergadura es desarrollado en formastandalone, es decir, usando lenguajes ya sea compilados(C, C++, Delphi), semicompilados(.NET, Mono, Java), o interpretados (Python) para crear tanto la funcionalidad como toda la interfaz de los usuarios, pero cabe perfectamente un desarrollo orientado a web para dichos propósitos, siendo más homogéneo y multiplataforma, y dependiendo de las tecnologías utilizadas, más rápido y robusto tanto para diseñar, implementar y probar, como para su uso una vez terminado.

Funcionalmente, el desarrollador web, que es quien realiza esta labor, normalmente sólo se preocupa por el funcionamiento del software, es tarea del diseñador web preocuparse del aspecto final(layout) de la página y del webmaster el integrar ambas partes. En ocasiones el webmaster también se encarga de actualizar los contenidos de la página.

DBMS
Los sistemas de gestión de bases de datos (en inglés database management system, abreviado DBMS) son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan.



El propósito general de los sistemas de gestión de bases de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos que posteriormente se convertirán en información relevante para una organización.


Existen distintos objetivos que deben cumplir los SGBD:

  • Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario. Así, se definen varios niveles de abstracción.
  • Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella.
  • Consistencia. En aquellos casos en los que no se ha logrado eliminar la redundancia, será necesario vigilar que aquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea. Por otra parte, la base de datos representa una realidad determinada que tiene determinadas condiciones, por ejemplo que los menores de edad no pueden tener licencia de conducir. El sistema no debería aceptar datos de un conductor menor de edad. En los SGBD existen herramientas que facilitan la programación de este tipo de condiciones.
  • Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentra segura de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos.
  • Manejo de transacciones. Una transacción es un programa que se ejecuta como una sola operación. Esto quiere decir que luego de una ejecución en la que se produce una falla es el mismo que se obtendría si el programa no se hubiera ejecutado. Los SGBD proveen mecanismos para programar las modificaciones de los datos de una forma mucho más simple que si no se dispusiera de ellos.
  • Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el SGBD demora en proporcionar la información solicitada y en almacenar los cambios realizados.

1.4 Instalación y Configuración de la Plataforma Web en Multiplataforma.
Lo primero, la utilidad, una aplicación en PHP o Java o cualquier otro lenguaje, como por ejemplo un juego o un TPV, una tienda, un portal…, cualquier tipo de aplicación puede compartir datos como hemos visto en los cursos y talleres de servicios web, pero podemos avanzar un poco más: si comprendemos el uso de una plantilla XSLT que transforme un fichero XML, siendo este la salida de nuestra aplicación, en un fichero XHTML que el navegador interpreta, sea en un móvil, un ordenador de escritorio o cualquier otro formato que necesitemos…entonces, las posibilidades son ilimitadas.



1.4.1 SISTEMA OPERATIVO.

Un sistema operativo debe ser:

  • Determinista: el mismo programa ejecutado con los mismos datos debe dar los mismos resultados en cualquier momento y en cualquier ejecución.
  • Indeterminista: el S. O. debe responder a circunstancias que pueden ocurrir en un orden impredecible.

1.4.2. SERVIDOR WEB
El objetivo de toda organización radica en la obtención de más ganancias, mantenerse en el gusto de sus clientes y por supuesto que el número de ellos incremente; es así como pequeñas, medianas y grandes empresas buscan soluciones de marketing que le den ventajas competitivas sobre los competidores locales, una de las estrategias que busca la obtención de nuevos clientes es la exploración de nuevos mercados, actualmente estos no son solo buscados localmente, sino que la tecnología provee otro camino como buscar en línea (internet), de ahí radica la importancia del conocimiento de las plataformas tecnológicas que son utilizadas para dar el soporte a los negocios electrónicos.


Iniciaremos por definir lo que es un servidor, como su nombre lo indica, son los dispositivos de red que brindan un servicio a otros dispositivos, a los cuales se les conoce como clientes. En general quien realiza esta tarea es un software especializado, pero comúnmente se conoce como servidor al equipo físico donde se ejecuta, el cual es el centro de la infraestructura de la red.



Los servidores web son aquellos cuya tarea es alojar sitios y/o aplicaciones, las cuales son accedidas por los clientes utilizando un navegador que se comunica con el servidor utilizando el protocolo HTTP (hypertext markup language).



Básicamente un servidor WEB consta de un interprete HTTP el cual se mantiene a la espera de peticiones de clientes y le responde con el contenido según sea solicitado. El cliente, una vez recibido el código, lo interpreta y lo exhibe en pantalla.



Además los servidores pueden disponer de un intérprete de otros lenguajes de programación que ejecutan código embebido dentro del código HTML de las páginas que contiene el sitio antes de enviar el resultado al cliente. Esto se conoce como programación de lado del servidor y utiliza lenguajes como ASP, PHP, Perl y Ajax. Las ventajas de utilizar estos lenguajes radica en la potencia de los mismos ejecutando tareas mas complejas como, por ejemplo acceder a bases de datos abstrayendo al cliente de toda la operación.

1.4.3 LENGUAJE DE PROGRAMACIÓN
Compilador: 


Es un programa que traduce los programas escritos en lenguajes de alto nivel a lenguaje máquina. Los programas escritos en lenguajes de alto nivel se llaman programas fuente y El programa traducido se llama programa objeto. El compilador traduce sentencia a sentencia el programa fuente. 



Algunos lenguajes compiladores típicos son: 


C++ 

Pascal 

FORTRAN 

COBOL 

Un intérprete es un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta. 

Los programas interpretes clásicos son: 

BASIC 



QBASIC 


QUICKBASIC 

VISUALBASIC 

SMALLTALK 

JAVA


1.4.5 DBMS

(Data Base Management System). Son las siglas en inglés para los Sistemas de Gestión de Bases de Datos (SGBD). Bajo este nombre se conoce a productos de fabricantes como Oracle, Sybase, Informix, Ingres, Borland, Microsoft, IBM, etc.



Sistema de administración de bases de datos. Software que controla la organización, almacenamiento, recuperación, seguridad e integridad de los datos en una base de datos. Acepta solicitudes de la aplicación y ordena al sistema operativo transferir los datos apropiados.



Los DBMS pueden trabajar con lenguajes de programación tradicionales (COBOL, C, etc.) o pueden incluir su propio lenguaje de programación. Por ejemplo, dBASE y Paradox son programas de base de datos con un DBMS, un lenguaje completo de programación y un lenguaje de cuarta generación, haciendo de ellos sistemas completos de desarrollo de aplicaciones. Los comandos de los lenguajes de cuarta generación permiten a los usuarios crear en forma interactiva archivos de bases de datos, editarlos, formular preguntas e imprimir informes sin necesidad de programación. Miles de aplicaciones han sido desarrolladas en ambientes como éstos.


1.5 SEGURIDAD
Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario. Así, se definen varios niveles de abstracción.




Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella.



Consistencia. En aquellos casos en los que no se ha logrado eliminar la redundancia, será necesario vigilar que aquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea. Por otra parte, la base de datos representa una realidad determinada que tiene determinadas condiciones, por ejemplo que los menores de edad no pueden tener licencia de conducir. El sistema no debería aceptar datos de un conductor menor de edad. En los SGBD existen herramientas que facilitan la programación de este tipo de condiciones.


Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentra segura de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos.

Manejo de transacciones. Una transacción es un programa que se ejecuta como una sola operación. Esto quiere decir que luego de una ejecución en la que se produce una falla es el mismo que se obtendría si el programa no se hubiera ejecutado. Los SGBD proveen mecanismos para programar las modificaciones de los datos de una forma mucho más simple que si no se dispusiera de ellos.

Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el SGBD demora en proporcionar la información solicitada y en almacenar los cambios realizados.

No hay comentarios:

Publicar un comentario