Desarrollo en Aplicaciones de Internet

CENTRO AMERICANO DE ESTUDIOS SUPERIORES

EVOLUCIÓN DE LAS APLICACIONES WEB

Web 1.0, Web 2.0, Web 3.0 y Web 4.0

Arquitectura de aplicaciones cliente servidor

Sistema, Cliente Servidor, Ventajas y Desventajas, Capas 2, 3, y N.

Lenguaje de Programación Web DBMS

HTML, JAVASCRIPT, CSS.

Protocolos de Comunicación

TCP/IP, SMTP, FTP, HTTP.

PLATAFORMA WEB

Una plataforma web es más que una página web. Una plataforma incluye elementos adicionales a la página web tales como aplicaciones, carritos de compras, formularios, convertidores, instancias de aprobación y alguna otra solución específica para la necesidad del cliente y el mercado. Estos elementos pueden ser públicos o privados, tales como sistemas de comunicación interna o inventarios.

Nuestra firma desarrolla proyectos o plataformas a partir de los requerimientos de clientes y en todo tipo de lenguajes, usando ASP.net, HTML, HTML5, Joomla, WordPress, Drupal, Zencart, Magento, etc.


jueves, 26 de mayo de 2016

1.1.1. DESDE LA WEB 1.0 HASTA LA WEB 2.0.

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 Web master 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 pixel 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 podian 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 interoperabilidad, el diseño centrado en el usuario 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 videos, las wikisblogsmashups y folcsonomías.

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

1.1.2. LA WEB 3.0 y 4.0.

La web 3.0.

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


La web 4.0.


Las aplicaciones ya no estarán en nuestras PC’s, estarán en la internet y por ende en todos lados. Pasaremos de una red “tonta” a una red “inteligente” donde el objetivo primordial será el de unir las inteligencias donde tanto las personas como las cosas se comuniquen entre sí para generar la toma de decisiones. Para el 2020 o quizás antes se espera que haya “agentes” en la Web que conozcan, aprendan y razonen como lo hacemos las personas. La Web Ubicua es un concepto que está aún en desarrollo, pero me llama curiosamente la atención como se van complementando algunas tecnologías que nos permiten imaginar o soñar lo que podemos esperar en un futuro no muy lejano. Imagínese recibir información en su celular en la calle por la que camina y que su propio equipo le haga una reservación en el restaurant de la esquina con solo saber sus gustos.

1.2. ARQUITECTURA DE APLICACIONES CLIENTE SERVIDOR.

Con la introducción de Internet y del Web en concreto, se han abierto infinidad de posibilidades en cuanto al acceso a la información desde casi cualquier sitio. Esto representa un desafío a los desarrolladores de aplicaciones, ya que los avances en tecnología demandan cada vez aplicaciones más rápidas, ligeras y robustas que permitan utilizar el Web. Afortunadamente, tenemos herramientas potentes para realizar esto, ya que han surgido nuevas tecnologías que permiten que el acceso a una base de datos desde el Web, por ejemplo, sea un mero trámite. El único problema es decidir entre el conjunto de posibilidades la correcta para cada situación.

Una aplicación web.

 Es  proporcionada  por  un  servidor  Web  y  utilizada  por  usuarios  que  se conectan desde cualquier punto vía clientes Web (browsers o navegadores). La arquitectura de un Sitio Web tiene tres componentes principales: 
  • Un servidor Web
  • Una conexión de red
  • Uno o más clientes
Arquitectura web básica

Para abrir una página Web en un navegador, normalmente se teclea el correspondiente URL o se pica en el hiperenlace oportuno. Una vez que se solicita esta petición mediante el protocolo HTTP y la recibe el servidor Web, éste localiza la página Web en su sistema de ficheros y la envía de vuelta al navegador que la solicitó como se muestra en la imagen.

Aplicaciones Multinivel

Al hablar de desarrollo de aplicaciones Web resulta adecuado presentarlas dentro de las aplicaciones multinivel. Los sistemas típicos cliente/servidor pertenecen a la categoría de las aplicaciones de dos niveles. La aplicación reside en el cliente mientras que la base de datos se encuentra en el servidor. En este tipo de aplicaciones el peso del cálculo recae en el cliente, mientras que el servidor hace la parte menos pesada, y eso que los clientes suelen ser máquinas menos potentes que los servidores. Además, está el problema de la actualización y el mantenimiento de las aplicaciones, ya que las modificaciones a la misma han de ser trasladada a todos los clientes. 

1.2.1. PARTES QUE COMPONEN EL SISTEMA.

1.  Lógica de negocio.
  • Parte más importante de la aplicación.
  • Define los procesos que involucran a la aplicación.
  • Conjunto de operaciones requeridas para proveer el servicio.
2.  Administración de los datos.
  • Manipulación de BD y archivos.
3.  Interfaz
  • Los usuarios acceden a través de navegadores, móviles, PDAs, etc.
  • Funcionalidad accesible a través del navegador.
  • Limitada y dirigida por la aplicación.
  • Las aplicaciones web se modelan mediante lo que se conoce como modelo de capas,  Una capa representa un elemento que procesa o trata información. Los tipos son:
  • Modelo  de  dos  capas: La  información  atraviesa  dos  capas  entre  la interfaz  y  la administración de los datos.
  • Modelo de n-capas: La información atraviesa varias capas, el más habitual es el modelo de tres capas.

1.1.1. CARACTERÍSTICAS DE LA COMPUTADORA CLIENTE SERVIDOR.

  • Cuando accedemos a Internet lo hacemos mediante una serie de programas clientes que se encargan de contactar al servidor localizado en alguna computadora remota y extraer de él la información necesaria.
  • Servidor es un programa residente en una computadora, el cual ejecuta las demandas de otras máquinas clientes.
  • Servidor es una computadora ejecutando programas especiales que "esperan" demandas de otras computadoras (clientes), conectadas a una red.
  • Generalmente, este tipo de programas requieren de ordenadores potentes y conexiones permanentes a Internet. Pero cualquiera que cumpla estos requisitos puede hacerlo.
  • La computadora cliente ejecuta un programa especial que le permite comunicarse con un servidor.
  • Conexión entre cliente y servidor, el servidor usualmente "sirve" al cliente los datos solicitados (por ejemplo, el mail, una página web etc.). Otras posibilidades: tal como la actualización de datos en el servidor por el cliente, recibir mail del cliente etc.
  • El cliente y el servidor “hablan el uno al otro” (el mismo lenguaje)
  • Una computadora (el del usuario) con un programa apto para utilizar la información del servidor.

1.2.3. VENTAJAS Y DESVENTAJAS DEL ESQUEMA CLIENTE SERVIDOR.



Ventajas:

* Centralización del control de los recursos, datos y accesos.

* Facilidad de mantenimiento y actualización del lado del servidor: Esto es porque el lado del servidor se puede mantener o actualizar fácilmente. Por ejemplo, una actualización se aplica a un único servidor, pero los beneficios los obtienen múltiples clientes generalmente sin necesidad de que éstos actualicen nada.

* Toda la información es almacenada en el lado del servidor, que suele tener mayor seguridad que los clientes.

* Hay muchas herramientas cliente-servidor probadas, seguras y amigables para usar.

Desventajas:

* Si el número de clientes simultáneos es elevado, el servidor puede saturarse. Esto sucede con menor frecuencia en las redes P2P.

* Frente a fallas del lado del servidor, el servicio queda paralizado para los clientes. Algo que no sucede en una red P2P. 

1.2.4. APLICACIONES DE 2, 3 y N CAPAS.

Modelo de dos Capas.

Gran parte de la aplicación corre en el lado del cliente (fat client).

Las capas son:
  • Cliente (fat client): La lógica de negocio está inmersa dentro de la aplicación que realiza el interfaz de usuario, en el lado del cliente.
  • Servidor: Administra los datos.
  • Las limitaciones de este modelo son.
  • Es difícilmente escalable
  • Número de conexiones reducida
  • Alta carga de la red.
  • La flexibilidad es restringida
  • La funcionalidad es limitada.
Modelo de tres Capas.
Está diseñada para superar las limitaciones de las arquitecturas ajustadas al modelo de dos capas, introduce una capa intermedia (la capa de proceso). Entre  presentación y los datos, los procesos  pueden ser manejados de forma separada a la interfaz de usuario y a los datos, esta capa intermedia centraliza la lógica de negocio, haciendo la administración más sencilla, los datos se pueden integrar de  múltiples fuentes, las  aplicaciones web actuales se ajustan a este modelo.

Las capas de este modelo son:

1.  Capa de presentación (parte en el cliente y parte en el servidor)
  •   Recoge la información del usuario y la envía al servidor (cliente)
  •   Manda información a la capa de proceso para su procesado
  •   Recibe los resultados de la capa de proceso
  •   Generan la presentación
  Visualizan la presentación al usuario (cliente)

2.  Capa de proceso (servidor web)
  •   Recibe la entrada de datos de la capa de presentación
  •   Interactúa con la capa de datos para realizar operaciones
  •   Manda los resultados procesados a la capa de presentación
3.  Capa de datos (servidor de datos)

  •   Almacena los datos
  •   Recupera datos
  •   Mantiene los datos
  •   Segura la integridad de los datos.
Aplicaciones de N capas

Podríamos ir separando nuestra aplicación en más 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 escalable


El surgimiento de la tecnología de componentes distribuidos es la clave de las arquitecturas de n-capas. Estos sistemas de computación utilizan un número variable de componentes individuales que se comunican entre ellos utilizando estándares predefinidos y frameworks de comunicación.

1.3. LENGUAJE DE PROGRAMACIÓN WEB DBMS.

En la estructura básica de un Sistema Manejador de Base de Datos se enuncian dos lenguajes que permiten trabajar sobre la base de datos.  Estos lenguajes estándar son:

DDL (Data Definition language): Lenguaje de Definición de Datos.  Por medio de este el DBMS identifica las descripciones de los elementos de los esquemas y almacena la descripción del esquema en el catálogo del DBMS.
Por medio de este el DBMS especifica el esquema conceptual e interno (Base de datos Almacenada).

SDL (Store Definition language): Lenguaje de definición de almacenamiento.  Es utilizado por el DBMS para especificar el esquema interno que corresponde a la Base de Datos Almacenada.

VDL (View Definition language): Lenguaje de Definición de Vistas.  Es utilizado por el DBMS para especificar las vistas del usuario y sus correspondencias con el esquema conceptual.
En las Bases de Datos Relacionales, el SQL, representa una combinación de los anteriores.

DML (Data Manipulation language): Lenguaje de Manipulación de Datos.  Permite la manipulación de las operaciones de Inserción, Eliminación y Modificación.
Tipos de DML's:
De alto Nivel o No por procedimientos: SQL.

De bajo Nivel o por procedimientos.

1.4. PROTOCOLOS DE COMUNICACIÓN.

TCP/IP.
TCP/IP se basa en software utilizado en redes. Aunque el nombre TCP/IP implica que el ámbito total del producto es la combinación de dos protocolos: Protocolo de Control de Transmisión y Protocolo Internet. El término TCP/IP no es una entidad única que combina dos protocolos, sino un conjunto de programas de software más grande que proporciona servicios de red, como registro de entrada remota, transferencia de archivo remoto y correo electrónico, etc., siendo TCP/IP un método para transferir información de una máquina a otra. Además TCP/IP maneja los errores en la transmisión, administra el enrutamiento y entrega de los datos, así como controlar la transmisión real mediante el uso de señales de estado predeterminado.

SMTP.
El significado de las siglas de SMTP, es Protocolo Simple de Transmisión de Correo ("Simple Mail Transfer Protocol"). Este protocolo es el estándar de Internet para el intercambio de correo electrónico. SMTP necesita que el sistema de transmisión ponga a su disposición un canal de comunicación fiable y con entrega ordenada de paquetes, con lo cual, el uso del protocolo TCP en la capa de transporte, es lo adecuado. Para que dos sistemas intercambien correo mediante el protocolo SMTP, no es necesario que exista una conexión interactiva, ya que este protocolo usa métodos de almacenamiento y reenvío de mensajes..

FTP.
El protocolo FTP está incluido dentro del modelo cliente-servidor, es decir, un equipo envía órdenes (el cliente) y el otro espera solicitudes para llevar a cabo acciones (el servidor).
Durante una conexión FTP, se encuentran abiertos dos canales de transmisión:
·         Un canal de comandos (canal de control)
·         Un canal de datos

El protocolo FTP define la manera en que los datos deben ser transferidos a través de una red TCP/IP.
·         El objetivo del protocolo FTP es:
·         Permitir que equipos remotos puedan compartir archivos
·         Permitir la independencia entre los sistemas de archivo del equipo del cliente y del equipo del servidor

·         Permitir una transferencia de datos eficaz

HTTP.
Hypertext Transfer Protocol o Protocolo de Transferencia de hipertexto, fue propuesto por Tim Berners-Lee, es un protocolo Cliente-Servidor que articula los intercambios de información entre los clientes Web y los servidores HTTP, atendiendo a las necesidades de un sistema global de distribución de información como el Word Wide Web (WWW)
.

El propósito es permitir la transferencia de archivos principalmente en formato HTML entre un navegador (usuario) y un servidor web localizado mediante una cadena de caracteres denominada dirección URL

1.5. INSTALACIÓN Y CONFIGURACIÓN DE LA PLATAFORMA WEB EN MULTIPLATAFORMA.

Un sistema operativo es un programa o conjunto de programas que en un sistema informático gestiona los recursos de hardware y provee servicios a los programas de aplicación. Todo tipo de herramientas que tienen interacción con el sistema operativo, también llamado núcleo o kernel.
¿Qué es una plataforma web?
 Una plataforma web es el entorno de desarrollo de software empleado para diseñar y ejecutar un sitio web y más específicamente un sitio web dinámico, motorizado por una o más bases de datos y/o provisto de interacción a través del uso de lenguajes interpretados.
En términos generales, una plataforma web consta de cuatro componentes básicos:
El sistema operativo bajo el cual opera el equipo donde se hospedan las páginas web y que representa la base misma del funcionamiento de la computadora. En ocasiones limita la escogencia de otros componentes, que pueden o no estar disponibles para correr junto con él.
Servidor web
Es el software que maneja las peticiones desde equipos remotos a través del internet. En el caso de páginas estáticas, el servidor web simplemente provee el archivo solicitado, el cual se muestra en el navegador. En el caso de sitios dinámicos, el servidor web se encarga de pasar las solicitudes a otros programas que puedan manejarlas adecuadamente.




1.5.1. SISTEMA OPERATIVO LINUX.

Linux es un sistema operativo: un conjunto de programas que le permiten interactuar con su ordenador y ejecutar otros programas.
Un sistema operativo consiste en varios programas fundamentales que necesita el ordenador para poder comunicar y recibir instrucciones de los usuarios; tales como leer y escribir datos en el disco duro, cintas, e impresoras; controlar el uso de la memoria; y ejecutar otros programas. La parte más importante de un sistema operativo es el núcleo. En un sistema GNU/Linux, Linux es el núcleo. El resto del sistema consiste en otros programas, muchos de los cuales fueron escritos por o para el proyecto GNU. Dado que el núcleo de Linux en sí mismo no forma un sistema operativo funcional, preferimos utilizar el término “GNU/Linux” para referirnos a los sistemas que la mayor parte de las personas llaman de manera informal “Linux”.

Linux está modelado como un sistema operativo tipo Unix. Desde sus comienzos, Linux se diseñó para que fuera un sistema multitarea y multiusuario. Estos hechos son suficientes para diferenciar a Linux de otros sistemas operativos más conocidos. Sin embargo, Linux es más diferente de lo que pueda imaginar. Nadie es dueño de Linux, a diferencia de otros sistemas operativos. 

1.5.2. SERVIDOR WEB.

Servidor Web
Es un programa informático que procesa una aplicación del lado del servidor, realizando conexiones bidireccionales y/o unidireccionales y sincronías o asincrónicas con el cliente.
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 intérprete 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 más complejas como, por ejemplo acceder a bases de datos abstrayendo al cliente de toda la operación.

1.5.3. LENGUAJE DE PROGRAMACIÓN.

Un lenguaje de programación" es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo.
Los lenguajes de programación generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos:

Lenguajes imperativos;
Lenguajes funcionales.

Lenguaje de programación imperativo

Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y compuestos de órdenes condicionales que permiten al programa retornar a un bloque de comandos si se cumple la condición. Estos fueron los primeros lenguajes de programación en uso y aún hoy muchos lenguajes modernos usan este principio.

Lenguaje de programación funcional

Un lenguaje de programación funcional(a menudo llamado lenguaje procedimental) es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado de resultado y recibe como entrada el resultado de otras funciones. Cuando una función se invoca a sí misma, hablamos de recursividad.

Lenguaje HTML

Desde el surgimiento de internet se han publicado sitios web gracias al lenguaje HTML. Es un lenguaje estático para el desarrollo de sitios web (acrónimo en inglés de HyperText Markup Language, en español Lenguaje de Marcas Hipertextuales). Desarrollado por el World Wide Web Consortium (W3C). Los archivos pueden tener las extensiones (htm, html).

Lenguaje Javascript
Este es un lenguaje interpretado, no requiere compilación. Fue creado por Brendan Eich en la empresa Netscape Communications. Utilizado principalmente en páginas web. Es similar a Java, aunque no es un lenguaje orientado a objetos, el mismo no dispone de herencias. La mayoría de los navegadores en sus últimas versiones interpretan código Javascript.

Lenguaje PHP
Es un lenguaje de programación utilizado para la creación de sitio web. PHP es un acrónimo recursivo que significa “PHP Hypertext Pre-processor”, (inicialmente se llamó Personal Home Page). Surgió en 1995, desarrollado por PHP Group.
PHP es un lenguaje de script interpretado en el lado del servidor utilizado para la generación de páginas web dinámicas, embebidas en páginas HTML y ejecutadas en el servidor. 

Lenguaje ASP
Es una tecnología del lado de servidor desarrollada por Microsoft para el desarrollo de sitio web dinámicos. ASP significa en inglés (Active Server Pages), fue liberado por Microsoft en 1996. Las páginas web desarrolladas bajo este lenguaje es necesario tener instalado Internet Information Server (IIS).
ASP no necesita ser compilado para ejecutarse. Existen varios lenguajes que se pueden utilizar para crear páginas ASP. El más utilizado es VBScript, nativo de Microsoft. ASP se puede hacer también en Perl and Jscript (no JavaScript).

Lenguaje ASP.NET

Este es un 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.
El ASP.NET fue desarrollado para resolver las limitantes que brindaba tu antecesor ASP. Creado para desarrollar web sencillas o grandes aplicaciones. Para el desarrollo de ASP.NET se puede utilizar C#, VB.NET o J#. 

Lenguaje 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. Creado para ejecutarse del lado del servidor.
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.

Lenguaje Python
Es un lenguaje de programación creado en el año 1990 por Guido van Rossum, es el sucesor del lenguaje de programación ABC. Python es comparado habitualmente con Perl. Los usuarios lo consideran como un lenguaje más limpio para programar. Permite la creación de todo tipo de programas incluyendo los sitios web.
Su código no necesita ser compilado, por lo que se llama que el código es interpretado. 

Lenguaje Ruby
Es un lenguaje interpretado de muy alto nivel y orientado a objetos. Desarrollado en el 1993 por el programador japonés Yukihiro “Matz” Matsumoto. Su sintaxis está inspirada en Phyton, Perl. Es distribuido bajo licencia de software libre (Opensource).
Ruby es un lenguaje dinámico para una programación orientada a objetos rápida y sencilla. Para los que deseen iniciarse en este lenguaje pueden encontrar un tutorial interactivo de ruby. 



1.5.4. WEB.

Web
Es importante establecer que este término además forma parte de lo que se conoce como World Wide Web que es la red informática que se emplea en todo el mundo. A finales de la década de los años 80 fue cuando nació aquella que permite que hoy cualquier ciudadano, a través de una conexión a Internet junto a un navegador y un ordenador, pueda acceder desde cualquier rincón del mundo a la web que desea. Lo puede hacer para informarse, para entretenerse o simplemente por simple curiosidad.
Una página web es un documento que incluye un archivo HTML con texto, imágenes, videos, animaciones Flash, etc. Al conjunto de páginas web que suelen formar parte del mismo dominio o subdominio de Internet se lo conoce como sitio web. Dentro del sitio web, todas las páginas guardan alguna relación entre sí y están vinculadas mediante vínculos (también conocidos como enlaces, hipervínculos, hiperenlaces o links).
Es un conjunto descentralizado de redes de comunicación interconectadas, garantizando que las redes físicas heterogéneas que las componen funcionen como una red lógica única de manera mundial. 

1.5.5. DBMS

SISTEMA MANEJADOR DE BASE DE DATOS


Definición 

El sistema de gestión de bases de datos es esencial para el adecuado funcionamiento y manipulación de los datos contenidos en la base. Se puede definir como: "El Conjunto de programas, procedimientos, lenguajes, etc. que suministra, tanto a los usuarios no informáticos como a los analistas, programadores o al administrador, los medios necesarios para describir, recuperar y manipular los datos almacenados en la base, manteniendo su integridad, confidencialidad y seguridad".

Funciones 

Las funciones esenciales de un SGDB son la descripción, manipulación y utilización de los datos.

    Descripción: 


Incluye la descripción de: Los elementos de datos, su estructura, sus interrelaciones, sus validaciones. Tanto a nivel externo como lógico global e interno esta descripción es realizada mediante un LDD o Lenguaje de Descripción de Datos.
Manipulación: Permite: Buscar, Añadir, Suprimir y Modificar los datos contenidos en la Base de Datos.

La manipulación misma supone: Definir un criterio de selección, Definir la estructura lógica a recuperar, Acceder a la estructura física. Esta manipulación es realizada mediante un LMD o Lenguaje de Manipulación de Datos.
Utilización: La utilización permite acceder a la base de datos, no a nivel de datos sino a la base como tal, para lo cual: Reúne las interfaces de los usuarios y suministra procedimientos para el administrador.
  
Tareas 


El manejador es responsable de las siguientes tareas:



1. Interacción con el manejador de archivos: Los datos en la base se guardan en disco mediante el sistema de archivos, proporcionado comúnmente por el sistema operativo. El manejador de la base, traduce las diferentes proposiciones del manejo de datos en comandos del sistema de archivos de bajo nivel. De esta forma el manejador se puede encargar del almacenamiento, recuperación y actualización de los datos en la base.

2. Implantación de la integridad: Los valores de los datos que se almacenan en la base, deben satisfacer ciertas limitantes de consistencia, estas limitantes deben ser determinadas por el administrador, pero es el manejador el encargado de verificar que las actualizaciones que se hagan a la base cumplan con dichas normas.

3. Puesta en práctica de la seguridad: El manejador de la base es quien verifica que los accesos a la base sean realizados por las personas autorizadas.

4. Respaldo y recuperación: Entre las labores que debe ejecutar el manejador está la de verificar de forma constante la integridad de la base, y lograr recuperación de datos y/o mejoras en caso que se requieran.

5. Control de concurrencia: Se podría entender, esta, como la principal tarea del manejador de la base, o por lo menos la más difícil. Cuando varios usuarios están accesando la base al mismo tiempo, es posible que la consistencia de los datos no se conserve. El manejador debe encargarse de coordinar los accesos de los diferentes usuarios, de forma que los datos en la base no se dañen.












1.6. ESTÁNDARES INVOLUCRADOS.

XML: eXtensible Markup Language

La definición dada por el World Wide Web Consortium (los responsables de XML) es:«XML describe una clase de objetos de datos llamados documentos XML, y describe parcialmente el comportamiento de los programas que los procesan. Los documentos XML están formados por unidades de almacenamiento llamadas entidades, las cuales contienen datos analizados (parsed) o sin analizar (unparsed). Los datos analizados están formados por caracteres, algunos de los cuales conforman datos y otros etiquetas.»

En un documento XML es posible hacer referencia a entidades internas o externas, indicando que están definidas en el mismo documento o en otros documentos (que pueden estar en otros archivos del disco duro, en una base de datos, en Internet, etc.), lo que hace muy flexible la construcción de documentos XML.

Lógicamente el documento XML está formado por elementos, que representan la estructura de la información que se está manejando, por ejemplo, si se fuera a representar un libro puede definirse que está formado por los siguientes elementos.
Cada elemento puede constar de otros elementos, así como de frases y palabras (normalmente el contenido del documento). El elemento que contiene a los demás (en el ejemplo, libro), se denomina elemento raíz, indicando que no depende de otros elementos.

Las estructuras físicas y lógica de un documento se organizan adecuadamente, para lo cual se han establecido unas normas que definen cuándo un documento XML está bien formado y cuándo es válido, o no.


WSDL: Web Services Definition Language.

WSDL es el lenguaje común utilizado para la descripción de los servicios Web. Es un lenguaje basado en XML que describe totalmente la forma en la cual los clientes externos pueden interactuar con los servicios Web existentes en una máquina dada, los métodos que soportan y la sintaxis de los protocolos de comunicación (HTTP, SOAP).

Según el consorcio W3C (World Wide Web Consortium), encargado de la definición del estándar, WSDL es «un formato XML para la descripción de servicios de red, como un conjunto de puntos finales operando sobre mensajes que contienen información orientada a documentos u orientada a procesos». Las operaciones y mensajes se describen en forma abstracta y luego se asocian a un protocolo de red o a un formato de mensaje específico, para definir un punto final. WSDL se extiende para permitir la descripción de los puntos finales y sus mensajes, sin importar qué formatos de mensaje o protocolos de red se estén utilizando para la comunicación.



SOAP: Simple Object Access Protocol.

El protocolo SOAP (Simple Object Access Protocol) utiliza mensajes XML para invocar métodos remotos. Un Servicio Web podría interactuar con servicios remotos a través de los métodos get y post de HTTP, pero SOAP es mucho más robusto y flexible.
SOAP es un protocolo liviano, basado en XML, para el intercambio de información estructurada en un ambiente descentralizado y distribuido. Sin embargo, SOAP no define la aplicación, ni la semántica de implementación. En vez de esto, proporciona un modelo de empaquetamiento modular y los mecanismos para la codificación de los datos dentro de los módulos. Esto permite que el protocolo simple se utilice en una amplia variedad de sistemas modulares y que cumpla su propósito primario de facilitar la interoperabilidad entre componentes de software heterogéneos.
SOAP es una especificación para la invocación de métodos en servidores, servicios, componentes y objetos, y codifica la práctica existente de utilizar XML y HTTP como un mecanismo de invocación de métodos.

UDDI: Universal Discovery, Description and Integration.

Para los servicios Web, XML es el mecanismo por medio del cual los objetos de negocio acuerdan lo que van a hablar unos a otros, SOAP indica cómo van a efectuar la comunicación y UDDI les permite conocer con quién se van a comunicar y dónde encontrar otros objetos de negocio.

Un registro basado en UDDI es donde se pueden descubrir los servicios Web. El método utilizado por UDDI para el descubrimiento de servicios es tener un registro de aquellos servicios que se encuentran distribuidos a través del Web. En el registro distribuido, los negocios y los servicios se describen utilizando un formato XML común. Los datos estructurados en esos documentos XML son de fácil búsqueda, análisis y manipulación.

 

Debe anotarse que UDDI/SOAP no son los únicos modelos para el descubrimiento y manejo de mensajes en los servicios Web. EbXML ha sido desarrollado para un fin similar, así como para proporcionar una interfaz de negocio, seguridad robusta y otras funciones que permiten el manejo de transacciones reales de e-business. ebXML y UDDI/SOAP son tecnologías complementarias.