Bases de datos y tecnologías web

79
Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”. I. BASES DE DATOS Una base de datos es una colección organizada de datos . Los datos son típicamente organizado para modelar aspectos de la realidad de una manera que apoye los procesos que requieren información. Por ejemplo, el modelado de la disponibilidad de habitaciones en los hoteles de una manera que apoye la búsqueda de un hotel con ofertas de empleo. Sistemas de gestión de bases de datos (DBMS) son programas informáticos aplicaciones que interactúan con el usuario, otras aplicaciones y la base de datos en sí para capturar y analizar los datos. Una de propósito general DBMS está diseñado para permitir la definición, creación, consulta, actualización y administración de bases de datos. DBMS bien conocidos incluyen MySQL , PostgreSQL , M icrosoft SQL Server , Oracle , Sybase y DB2 de IBM . Una base de datos no es generalmente portable a través de diferentes DBMS, pero diferentes DBMS puede interoperar utilizando estándares como SQL y ODBC o JDBC para permitir una aplicación única para trabajar con más de un DBMS. Formalmente, una "base de datos" se refiere a un conjunto de datos relacionados y la forma en que se organiza. El acceso a estos datos se suele realizar por un "sistema de gestión de base de datos" (DBMS) que consiste en un conjunto integrado de software informático que permite a los usuarios interactuar con una o más bases de datos y proporciona acceso a todos los datos contenidos en la base de datos (aunque restricciones puede existir Trabajo Investigativo, Programación aplicada Trabajo Investigativo BASES DE DATOS Y DESARROLLO WEB Ruíz Brayan – Santos Julián - Cuervo Santiago Universidad Distrital Francisco José de Caldas. Facultad de Ingeniería, Ingeniería Electrónica 1

description

Compendio de información sobre bases de datos y tecnologías web

Transcript of Bases de datos y tecnologías web

Page 1: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

I. BASES DE DATOS

Una base de datos es una colección organizada de datos . Los datos son típicamente organizado para modelar aspectos de la realidad de una manera que apoye los procesos que requieren información. Por ejemplo, el modelado de la disponibilidad de habitaciones en los hoteles de una manera que apoye la búsqueda de un hotel con ofertas de empleo.

Sistemas de gestión de bases de datos (DBMS) son programas informáticos aplicaciones que interactúan con el usuario, otras aplicaciones y la base de datos en sí para capturar y analizar los datos. Una de propósito general DBMS está diseñado para permitir la definición, creación, consulta, actualización y administración de bases de datos. DBMS bien conocidos incluyen MySQL , PostgreSQL , Microsoft SQL Server , Oracle , Sybase y DB2 de IBM . Una base de datos no es generalmente portable a través de diferentes DBMS, pero diferentes DBMS puede interoperar

utilizando estándares como SQL y ODBC o JDBC para permitir una aplicación única para trabajar con más de un DBMS. 

Formalmente, una "base de datos" se refiere a un conjunto de datos relacionados y la forma en que se organiza.  El acceso a estos datos se suele realizar por un "sistema de gestión de base de datos" (DBMS) que consiste en un conjunto integrado de software informático que permite a los usuarios interactuar con una o más bases de datos y proporciona acceso a todos los datos contenidos en la base de datos (aunque restricciones puede existir que limitan el acceso a los datos en particular). El DBMS ofrece varias funciones que permiten la entrada, almacenamiento y recuperación de grandes cantidades de información, así como proporcionar formas de gestionar cómo se organiza la información.

Trabajo Investigativo, Programación aplicada

Trabajo Investigativo BASES DE DATOS Y DESARROLLO WEB

Ruíz Brayan – Santos Julián - Cuervo SantiagoUniversidad Distrital Francisco José de Caldas. Facultad de Ingeniería, Ingeniería Electrónica

1

Page 2: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

DBMS existentes proporcionan varias funciones que permiten la gestión de una base de datos y los datos que se pueden clasificar en cuatro grupos funcionales principales:

Definición de datos - creación, modificación y eliminación de las definiciones que definen la organización de los datos.

Actualización -. Inserción, modificación y supresión de los datos reales 

Recuperación - Proporcionar información en una forma directamente utilizable o para su posterior procesamiento por otras aplicaciones. Los datos recuperados pueden estar disponibles en una forma básicamente el mismo que se almacena en la base de datos o en una nueva forma obtenida mediante la alteración o la combinación de los datos existentes de la base de datos. 

Administración -. Registro y seguimiento de los usuarios, la aplicación de seguridad de datos, la supervisión del rendimiento, manteniendo la integridad de los datos, se trata de control de concurrencia, y la recuperación de información que ha sido corrompido por algún acontecimiento, como un fallo inesperado del sistemaTanto una base de datos y sus DBMS se ajustan a los principios de una determinada base de datos modelo .  "sistema de base de datos" se refiere colectivamente a la modelo de base de datos, sistema de gestión de base de datos y base de datos.

Físicamente, la base de datos de servidores son ordenadores dedicados que mantienen las bases de datos reales y se ejecutan sólo el DBMS y el software relacionado.Servidores de bases de datos suelen ser multiprocesador computadoras, con memoria y generosos RAID arrays de discos utilizados para el almacenamiento estable. RAID se utiliza para la recuperación de los datos si alguno de los discos falla. Aceleradores de la base de datos de hardware, conectados a uno o más servidores a través de un canal de alta velocidad, también se utilizan en entornos de procesamiento de transacciones de gran volumen. DBMS se encuentran en el corazón de la mayoría de las aplicaciones de base de datos . DBMS se pueden construir alrededor de un encargo multitarea   del núcleo  con una función de la creación de redes de apoyo, pero DBMS modernos normalmente se basan en un estándar del sistema operativo para proporcionar estas funciones. Desde DBMS comprenden una significativa económico   de mercado , vendedores de ordenadores y almacenamiento a menudo toman en cuenta los requisitos de DBMS en sus propios planes de desarrollo.

Trabajo Investigativo, Programación aplicada

2

Page 3: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

Las áreas de aplicación de DBMS

1. Banca: Para información de los clientes, cuentas y préstamos y transacciones bancarias.2. Airlines: Para reservaciones e información de planificación. Aerolíneas fueron de los primeros en utilizar las

bases de datos de una manera distribuida geográficamente - terminales situadas en todo el mundo acceder al sistema de base de datos central a través de líneas telefónicas y otras redes de datos.

3. Universidades: Para información de los estudiantes, las matriculaciones de cursos y grados.Las transacciones con tarjeta de crédito 4.: Para compras en tarjetas de crédito y generación de estados de cuenta mensuales.

Modelo Relacional

El modelo relacional de la base de datos de gestión es un modelo de base de datos basado en la lógica de predicados de primer orden , primero formulado y propuesto en 1969 por Edgar F. Codd .  En el modelo relacional de una base de datos, todos los datos se representa en términos de tuplas , agrupados en las relaciones . Una base de datos organizada en términos del modelo relacional es una base de datos relacional .El propósito del modelo relacional es proporcionar un declarativa método para especificar los datos y consultas: los usuarios declaran directamente la información que contiene la base de datos y la información que quieren de él, y dejar que el software de sistema de gestión de base de datos de cuidar de describir las estructuras de datos para almacenar la procedimientos y recuperación de datos para responder a las preguntas.

Base de datos Un ejemplo muy simple idealizada, de una descripción de algunas variables y sus atributos:

Cliente ( Customer ID , identificación fiscal, nombre, dirección, ciudad, estado, código postal, teléfono, correo electrónico, sexo)

Orden ( de orden , ID de cliente , Factura No , Fecha Colocado, fecha prometida, Términos, Estado) Solicitar Línea ( No de orden , orden Line No , Código de Producto , Cantidad) Factura ( factura No , ID de cliente , de orden , fecha, estado) Factura Línea ( Factura No , Factura Línea n , Código de Producto , Cantidad Enviado) Producto ( Código de producto , descripción del producto)

Trabajo Investigativo, Programación aplicada

3

Page 4: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

EJEMPLO

En este diseño tenemos seis variables: Cliente, Orden, de línea de pedido, factura, línea de factura y el producto. Las negritas, subrayados atributos son claves candidatas . La no negrita, subrayado atributos son claves externas .Se suele clave candidata es elegido arbitrariamente a ser llamado el clave principal y se utiliza de preferencia sobre las otras claves candidatas, que luego se llaman claves alternativas .Una clave candidata es un único identificador de la aplicación que ninguna tupla se duplicará; esto haría que la relación en algo más, a saber, una bolsa , al violar la definición básica de un conjunto . Ambas llaves y superclaves extranjeros (que incluye claves candidatas) pueden ser compuesto, es decir, puede estar compuesto de varios atributos. A continuación se muestra una representación tabular de una relación de nuestra relvar ejemplo al Cliente; una relación puede ser pensado como un valor que se puede atribuir a un relvar.

Normalización de Bases de Datos y Técnicas de diseño

Uno de los factores más importantes en la creación de páginas web dinámicas es el diseño de las Bases de Datos (BD). Si tus tablas no están correctamente diseñadas, te pueden causar un montón de dolores de cabeza cuando tengas de realizar complicadísimas llamadas SQL en el código PHP para extraer los datos que necesitas. Si conoces como establecer las relaciones entre los datos y la normalización de estos, estarás preparado para comenzar a desarrollar tu aplicación en PHP. Si trabajas con MySQL o con Oracle, debes conocer los métodos de normalización del diseño de las tablas en tu sistema de BD relacional. Estos métodos pueden ayudarte a hacer tu código PHP más fácil de comprender, ampliar, y en determinados casos, incluso hacer tu aplicación más rápida.

SQL  Query Language  es un lenguaje de programación de propósito especial diseñado para la gestión de datos llevó a cabo en un sistema de gestión de bases de datos relacionales(RDBMS), o para procesamiento de flujo en un sistema de gestión de flujo de datos relacional (RDSM)Originalmente basado en el álgebra relacional y el cálculo relacional de tuplas , SQL consiste en un lenguaje de definición de datosy un lenguaje de manipulación de datos . El alcance de SQL incluye inserción de datos, consulta,

Trabajo Investigativo, Programación aplicada

4

Page 5: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

actualización y eliminación,esquema de creación y modificación, y el control de acceso a datos. Aunque SQL se describe a menudo como, y en gran medida es un lenguaje declarativo ( 4GL ), también incluye procesales elementos.

Elementos del lenguaje 

Un gráfico que muestra varios de los elementos del lenguaje SQL que componen una única sentenciaEl lenguaje SQL se subdivide en varios elementos del lenguaje, incluyendo:

Cláusulas , que son componentes constitutivos de declaraciones y consultas. (En algunos casos, estos son opcionales.) 

Expresiones , que pueden producir ya sea escalares valores o tablas que consisten en columnas y filasde datos

Los predicados , que especifican las condiciones que pueden ser evaluados a SQL lógica trivalente (3VL)(verdadero / falso / desconocido) o booleana   valores de verdad  y se utilizan para limitar los efectos de las declaraciones y preguntas, o para cambiar el flujo del programa.

Las consultas , que recuperan los datos en función de criterios específicos. Este es un elemento importante de SQL .

Las declaraciones , que pueden tener un efecto persistente en los esquemas y datos, o puede controlar las operaciones , el flujo del programa, conexiones, sesiones, o diagnósticos.

Sentencias SQL incluyen también el punto y coma (";") terminador de sentencia. Aunque no es necesario en todas las plataformas, que se define como una parte estándar de la gramática SQL.

Espacios en blanco insignificantes generalmente se ignora en sentencias SQL y consultas, por lo que es más fácil para formatear código SQL para facilitar la lectura.

Operadores 

Operador Descripción Ejemplo

= Igual a Autor = 'Alcott'

<> No es igual a (muchos DBMS aceptan ! = , además de <> ) Dpto <> 'Ventas'

> Mas grande que HIRE_DATE> '2012-01-31'

< Menos que Bono <50.000,00

> = Mayor o igual Dependientes> = 2

<= Menor o igual Tasa <= 0,05

ENTRE Entre un rango inclusivo Costo ENTRE 100,00 Y 500.00

COMO Coincidir con un patrón de caracteres First_Name LIKE 'Will%'

EN Igual a uno de los múltiples valores posibles DeptCode IN (101, 103, 209)

ES o NO ES Compare con nula (datos no disponibles) Dirección NO ES NULL

No se distingue de

Es igual al valor o ambos son nulos (datos no disponibles) Deuda no es distinto - Créditos

AS Se utiliza para cambiar un nombre de campo al ver los Empleado SELECT AS

Trabajo Investigativo, Programación aplicada

5

Page 6: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

resultados 'department1'

II. TECNOLOGÍAS WEB

1. W3C

El World Wide Web Consortium (abreviación W3C) es una comunidad internacional que se dedica a predecir las tendencias de la web a largo plazo, y a desarrollar estándares que faciliten su crecimiento y la satisfacción de las crecientes necesidades del mundo en torno a la web. Su objetivo general es llevar la Web a su potencial máximo, esto bajo la idea de una Web única, y globalmente accesible. Fue fundada en 1994 por Tim Berners-Lee, el creador de las tecnologías URL, HTTP y HTML, que constituyen los pilares sobre los que se basa la Web.

Sus principios enuncian: “Web para todo el mundo, Web desde cualquier dispositivo”. Esto, en pro de utilizar la web como la herramienta social que es, al ser un poderoso medio de comunicación, un facilitador del comercio y una biblioteca masiva de conocimiento. El W3C, trabaja en miras de obtener una Web accesible para todo el mundo, independientemente del hardware, software, infraestructura de red, idioma, cultura, localización geográfica, o habilidad física o mental. En el aspecto de “Web desde cualquier dispositivo” el W3C busca extender las herramientas de la web a la creciente gama de dispositivos capaces de conectarse a internet, y aprovechar las herramientas de hardware de estos dispositivos para la potenciación de la Web, así, entre sus estándares se encuentran herramientas de visión artificial, interfaces de voz, y otra gama de tecnologías no concebibles desde la Web exclusiva para ordenadores.

El W3C busca satisfacer las necesidades tanto de los creadores de contenido en la Web, como de los consumidores, esto mediante una robusta arquitectura basada en protocolos diversos, así como garantizar la seguridad e integridad de la Web y sus contenidos, generando así una herramienta de confianza. A continuación se describen algunos de los

estándares más conocidos y usados establecidos por la W3C

ESTÁNDARES:

Como ya se ha mencionado, el W3C ejerce sus funciones mediante la creación de estándares para la Web. Un estándar es un conjunto de reglas que describen los requisitos que deben ser cumplidos por un producto o servicio con el objetivo de definir criterios de compatibilidad para el hardware y

software que hagan uso de ese producto o servicio. El W3C genera estos estándares con el trabajo conjunto de las más de 400 organizaciones que lo componen, expertos de diversos campos, y de las necesidades que manifiestan los miles de millones de usuarios alrededor del mundo. Actualmente cuentan con más de 100 tecnologías definidas. Los estándares permiten que cientos de dispositivos y usuarios diferentes puedan interactuar con la Web de la misma manera. Entre las especificaciones desarrolladas por el W3C destacan:

Trabajo Investigativo, Programación aplicada

6

Page 7: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

o HTML: siglas de HyperText Markup Language (lenguaje de marcas de hipertexto), hace referencia

al lenguaje de marcado (forma de codificar un documento que, junto con el texto, incorpora etiquetas o marcas que contienen información adicional acerca de la estructura del texto o su presentación) para la elaboración de páginas web. Es un estándar que sirve de referencia para la elaboración de páginas web en sus diferentes versiones, define una estructura básica y un código (denominado código HTML) para la definición de contenido de una página web, como texto, imágenes, videos, entre otros. En 1994, el W3C comenzó el proceso de estandarización del HTML para representar el contenido en la Web. La expansión y el número de documentos en la Web ha crecido

exponencialmente en la última década, hasta convertirse en una herramienta de uso cotidiano como hoy la conocemos. Esto se ha debido a la facilidad de

creación de documentos y a que todos comparten el mismo lenguaje para la representación de la información. Al usar el mismo formato para el desarrollo se consigue que cualquier agente de usuario que interprete dicho lenguaje represente el documento de la Web de la misma forma. Al ser independiente de cualquier plataforma (y de cualquier fabricante) permite que cualquiera lo pueda usar, independientemente del sistema operativo, navegador, etc.

o XML: siglas en inglés de eXtensible Markup Language (lenguaje de marcas extensible), es un

lenguaje de marcas utilizado para almacenar datos en forma legible. Permite definir la gramática de lenguajes específicos (de la misma manera que HTML) para estructurar documentos grandes. A diferencia de otros lenguajes, XML da soporte a bases de datos, siendo útil cuando varias aplicaciones deben comunicarse entre sí o integrar información.XML no ha nacido sólo para su aplicación para Internet, sino que se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas. Se puede

usar en bases de datos, editores de texto, hojas de cálculo, etc. El XML fue estandarizado por el W3C, que autorizó su uso libremente, convirtiéndolo en una pieza clave en la interoperabilidad de la mayoría de los sistemas de información.

Trabajo Investigativo, Programación aplicada

Figura 2. Ejemplo de código XML

Figura 1. Ejemplo de código HTML en el código fuente del sitio web del W3C

7

Page 8: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

o DOM: Document Object Model o DOM (Modelo de Objetos del Documento' o 'Modelo en Objetos

para la Representación de Documentos) es una interfaz de programación de aplicaciones que proporciona un conjunto estándar de objetos para representar documentos HTML y XML, un modelo estándar sobre cómo pueden combinarse dichos objetos, y una interfaz estándar para acceder a ellos y manipularlos. A través del DOM, los programas pueden acceder y modificar el contenido, estructura y estilo de los documentos HTML y XML, que es para lo que se diseñó principalmente. o CSS: Hojas de Estilo en Cascada (Cascading Style

Sheets), es un mecanismo simple que describe cómo se va a mostrar un documento en la pantalla, o cómo se va a imprimir, o incluso cómo va a ser pronunciada la información presente en ese documento a través de un dispositivo de lectura. CSS se utiliza para dar estilo a documentos HTML y XML, separando el contenido de la presentación. Los Estilos definen la forma de mostrar los elementos HTML y XML. CSS permite

a los desarrolladores Web controlar el estilo y el formato de múltiples páginas Web al mismo tiempo. Cualquier cambio en el estilo marcado para un elemento en la CSS afectará a todas las páginas vinculadas a esa CSS en las que aparezca ese elemento.

o XHTML: Siglas del inglés eXtensible HyperText Markup Language. XHTML es básicamente

HTML expresado como XML válido.

Estos son algunos de los estándares más conocidos y usados, sin embargo como ya se mencionó son más de 100 los definidos por el W3C, muchos de ellos enfocados a la Web Semántica, al desarrollo móvil, al Internet de las Cosas, y a cuanto nuevo paradigma web surge con el desarrollo de nuevos productos de consumo.

2. HTML5 y CSS3

HTML5: es la quinta y actual revisión de la norma que define HTML. El término representa dos conceptos diferentes: Uno se trata de una nueva versión del lenguaje HTML, con nuevos elementos, atributos y

comportamientos; dos, un conjunto más amplio de tecnologías que permite a los sitios Web y a las aplicaciones ser más diversas y de gran alcance. A este conjunto se le llama HTML5. Algunas de sus novedades respecto a revisiones anteriores son:

o Incorpora etiquetas (canvas 2D y 3D, audio, vídeo) con codecs

para mostrar los contenidos multimedia sin necesidad de plugins externos.

o Etiquetas para manejar grandes conjuntos de datos: Datagrid, Details, Menu y Command. Permiten

generar tablas dinámicas que pueden filtrar, ordenar y ocultar contenido en la máquina cliente.o Mejoras en los formularios. Nuevos tipos de datos (eMail, number, url, datetime) y facilidades para

validar el contenido sin Javascript.o Visores: MathML (fórmulas matemáticas) y SVG (gráficos vectoriales)

o Drag & Drop. Nueva funcionalidad para arrastrar objetos como imágenes.

o Añade etiquetas para manejar la Web Semántica (Web 3.0, se explicará en detalle más adelante):

header, footer, article, nav, time (fecha del contenido), link rel=‘’ (tipo de contenido que se enlaza).

Trabajo Investigativo, Programación aplicada

Figura 3. Ejemplo de jerarquía DOM

8

Page 9: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

Estas etiquetas permiten describir cuál es el significado del contenido. Por ejemplo su importancia, su finalidad y las relaciones que existen. No tienen especial impacto en la visualización, se orientan a buscadores.

Los buscadores podrán indexar e interpretar esta meta información para no buscar simplemente apariciones de palabras en el texto de la página. Permite incorporar a las páginas ficheros RDF / OWL (con meta información) para describir relaciones entre los términos utilizados.

o API (Application Programming Interface, Interfaz de Programación de aplicaciones) para hacer Drag

& Drop, mediante eventos.o API para trabajar Off-Line. Permite descargar todos los contenidos necesarios y trabajar en local.

o API de Geolocalización para dispositivos que lo soporten.

o API Storage. Facilidad de almacenamiento persistente en local, con bases de datos o con

almacenamiento de objetos por aplicación o por dominio Web. Se dispone de una Base de datos con la posibilidad de hacer consultas SQL.

o WebSockets. API de comunicación bidireccional entre páginas. Similar a los Sockets de C.

o WebWorkers. Hilos de ejecución en paralelo.

Trabajo Investigativo, Programación aplicada

Figura 4. Lista de etiquetas nuevas y deprecadas en HTML5

9

Page 10: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

CSS3: es la cuarta y actual revisión del lenguaje de presentación CSS (Siglas de Hojas de Estilo en Cascada, en inglés Cascading Style Sheets). CSS es una de las muchas tecnologías desarrolladas por el W3C, cuyo objetivo es separar la estructura de los sitios web de la presentación. Las hojas de estilo contienen las reglas y

estilos de presentación de un sitio web para su representación en variedad de dispositivos, ya sean pantallas de un computador de escritorio, móviles, o cualquier dispositivo capaz de visualizar contenido web.

CSS aplica para páginas web escritas en HTML o para documentos XML. La revisión actual, la CSS3 se empezó a definir en el año 2005, y llega junto con HTML5 y XML2 como un potenciador de la teorizada Web 2.0, es decir la Web semántica (más adelante se trata en detalle). Las principales innovaciones y ventajas de la CSS3 se detallan a continuación:

o Borders y Backgrounds: se pueden agregar múltiples

background (fondos) a un objeto, los borders pueden ser redondos con posibilidad de indicar el radio de curvatura.

o Advanced Layout: Esta nueva característica permite

organizar los elementos en pantalla de una mejor manera y combinarlos de diferentes maneras sin etiquetas adicionales.

o Grid Positioning: da la posibilidad de agregar reglas

con cuadrículas invisibles para maquetar páginas con un aspecto como libro o revista y jugar con el tamaño y las propiedades de los objetos para hacer que los

elementos “floten” entre las posiciones.

Trabajo Investigativo, Programación aplicada

Figura 5. Ejemplo de código CSS

10

Page 11: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

o Nuevas propiedades: Bordes: border-color, border-image, border-radius, box-shadow; Backgrounds:

background-origin, background-clip, background-size, layering multiple background images; Color: HSL colors, HSLA colors, RGBA colors opacity; Texto: text-shadow, text-overflow; Interface: box-sizing, resize; Selectores: attribute selectors; Formatos: media queries, multiple column layout, speech.

3. Adobe Flash – Microsoft Silverlight Adobe Flash: Flash es una tecnología para crear animaciones gráficas vectoriales y visualizar

contenido multimedia variado y que necesitan poco ancho de banda para mostrarse en un sitio web. La animación en Flash se visualiza en la misma forma en cualquier navegador que lo soporte, y su uso solo requiere la instalación de un plug-in. Flash empezó como una compañía independiente con el nombre de “FutureSplash” en 1997, posteriormente fue adquirida por Macromedia y pasó a conocerse como Macromedia Flash, en 2005, Macromedia fue adquirida por la casa Adobe.

Adobe Flash Professional es la herramienta más conocida para desarrollo de contenido Flash, el cual puede producirse mediante el software Adobe como asistente, o puramente mediante código en un lenguaje exclusivo para Flash llamado ActionScript. Sea cual sea el método de desarrollo, el contenido Flash genera un archivo .swf que puede ser embebido en un sitio web.

Flash está compuesto por objetos, con su respectiva ruta dentro del swf. Cada uno de éstos en ActionScript pertenece a una clase (MovieClip, botones, Vectores (Arrays), etc.), que contiene Atributos y Métodos. Algunas clases de ActionScript son: Accessibility (nivel superior), Array (instancias), Boolean (instancias), Button (instancias), Capabilities (nivel superior), Color (instancias), ContextMenu (instancias), ContextMenuItems(instancias), Date (instancias), Error (instancias), Key (nivel superior), LoadVars (instancias), Math (nivel superior), Mouse (nivel superior), MovieClip (instancias), MovieClipLoader (instancias), NetConnection (instancias), NetStream (instancias), Number (nivel superior), Object (instancias), PrintJob (instancias), Selection (nivel superior), Sound (instancias), Stage (nivel superior), String (instancias), StyleSheet (instancias), System (nivel superior), TextField (instancias), TextFormat (instancias), XML (instancia), XMLSocket.

Microsoft Silverlight: es un complemento para navegadores basado en la plataforma Windows que agrega nuevas funciones multimedia como la reproducción de vídeos, gráficos vectoriales, animaciones y de entorno de desarrollo; en forma similar a lo que hace Adobe Flash. Al contrario de Flash, SilverLight está basado en XML, por lo que la indexación en buscadores es más efectiva. Silverlight ofrece un modelo de programación flexible , compatible con lenguajes .NET como Visual Basic, C#, y otros como AJAX, Python, Ruby y que además se integra con las aplicaciones web existentes. Silverlight tiene compatbilidad con la mayoría de navegadores actuales. Silverlight se instala como un plugin de peso inferior a los 5MB.

Para crear contenido Silverlight, se usa el framework Blend de Microsoft para Visual Studio, el contenido Silverlight genera un archivo de extensión .xap.

4. Javascript – Ajax – JQuery – JSON Javascript: A principios de los años 90, la mayoría de usuarios que se conectaban a Internet lo

hacían con módems a una velocidad máxima de 28.8 kbps. En esa época, empezaban a desarrollarse las primeras aplicaciones web y por tanto, las páginas web comenzaban a incluir formularios complejos. Con unas aplicaciones web cada vez más complejas y una velocidad de navegación tan lenta, surgió la necesidad de un lenguaje de programación que se ejecutara en el navegador del usuario. De esta forma, si el usuario no rellenaba correctamente un formulario, no se le hacía esperar mucho tiempo hasta que el servidor volviera a mostrar el formulario indicando los errores existentes.

Trabajo Investigativo, Programación aplicada

11

Page 12: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

Brendan Eich, un programador que trabajaba en Netscape, pensó que podría solucionar este problema adaptando otras tecnologías existentes de scripts(programas que usualmente no son compilados sino interpretados, en el momento ScriptEase era la tecnología de scripts más conocida) al navegador Netscape Navigator 2.0, que iba a lanzarse en 1995. Inicialmente, Eich denominó a su lenguaje LiveScript. Posteriormente, Netscape firmó una alianza con Sun Microsystems para el desarrollo del nuevo lenguaje de programación. Además, justo antes del lanzamiento Netscape decidió cambiar el nombre por el de JavaScript. La razón del cambio de nombre fue exclusivamente por marketing, ya que Java era la palabra de moda en el mundo informático y de Internet de la época.

JavaScript es un lenguaje de programación que se utiliza principalmente para crear páginas web dinámicas. Una página web dinámica es aquella que incorpora efectos como texto que aparece y desaparece, animaciones, acciones que se activan al pulsar botones y ventanas con mensajes de aviso al usuario.

Técnicamente, JavaScript es un lenguaje de programación interpretado, por lo que no es necesario compilar los programas para ejecutarlos. En otras palabras, los programas escritos con JavaScript se pueden probar directamente en cualquier navegador sin necesidad de procesos intermedios. A pesar

de ser un lenguaje orientado al documento, Javascript funciona como un lenguaje multiparadigma, funciona como un lenguaje orientado a eventos, un lenguaje orientado a prototipos (paradigma similar a la programación orientada a objetos) y con su creciente aceptación se empieza a hacer una mejor estimación de su potencial al ver su infinidad de aplicaciones. Al igual que en cualquier lenguaje estructurado, en Javascript se definen métodos y variables, condicionales, operadores, etc. Javascript reconoce seis tipos de valores diferentes: numéricos, lógicos, objetos, cadenas, nulos e indefinidos. Aunque es un lenguaje débilmente tipado, esto es, una variable puede cambiar de tipo durante su vida, por ejemplo uno puede declarar una variable que ahora sea un entero y más adelante una cadena. Además no es necesario especificar el tipo de dato de la variable al crearla.

Trabajo Investigativo, Programación aplicada

Figura 6. Ejemplo de código Javascript. "my" es un namespace que es implementado como un prototipo

12

Page 13: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

Javascript no es un lenguaje orientado a objetos, por lo que en él no existen clases, sin embargo Javascript funciona, como ya se mencionó, como un lenguaje orientado a prototipo, el cual es un tipo de programación orientado a objetos, en el cual el prototipo es un código clonable y reutilizable, declarado generalmente mediante un namespace, es decir, una variable conteniendo un arreglo vacío. El código de la ilustración es un ejemplo de ello.

Ajax: acrónimo de Asynchronous JavaScript + XML, que se puede traducir como "JavaScript asíncrono + XML". Las tecnologías que forman AJAX son:

o XHTML y CSS, para crear una presentación basada en estándares.

o DOM, para la interacción y manipulación dinámica de la presentación.

o XML, XSLT y JSON, para el intercambio y la manipulación de información.

o XMLHttpRequest, para el intercambio asíncrono de información.

o JavaScript, para unir todas las demás tecnologías.

En las aplicaciones web tradicionales, las acciones del usuario en la página (clickear un botón, seleccionar un valor de una lista, etc.) desencadenan llamadas al servidor. Una vez procesada la petición del usuario, el servidor devuelve una nueva página HTML al navegador del usuario. Esto resulta en una interacción poco fluida, y que puede resultar incómoda, pues con coda interacción del sitio web con el usuario, el usuario tiene que esperar a que se recargue la página con los datos enviados de vuelta por el servidor, esto es una comunicación sincrónica, en la cual no se continúan procesos en el sitio hasta que la página se recargue con el estado actualizado. Ajax, se presenta como una nueva forma de hacer llamadas al servidor de forma asíncrona, es decir, en segundo plano, sin intervenir en los demás procesos, y actualizando la información en la página sin recargar la página.

Las aplicaciones construidas con AJAX eliminan la recarga constante de páginas mediante la creación de un elemento intermedio entre el usuario y el servidor. La nueva capa intermedia de AJAX mejora la respuesta de la aplicación, ya que el usuario nunca se encuentra con una ventana del navegador vacía esperando la respuesta del servidor. Las peticiones HTTP al servidor se sustituyen por peticiones JavaScript que se realizan al elemento encargado de AJAX. Las peticiones más simples no requieren intervención del servidor, por lo que la respuesta es inmediata. Si la interacción requiere una respuesta del servidor, la petición se realiza de forma asíncrona mediante AJAX. En este caso, la interacción del usuario tampoco se ve interrumpida por recargas de página o largas esperas por la respuesta del servidor. En la imagen se muestra un ejemplo de una llamada Ajax:

Trabajo Investigativo, Programación aplicada

13

Page 14: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

JavaScript es el lenguaje interpretado (scripting language) en el que normalmente se efectúan las funciones de llamada de Ajax mientras que el acceso a los datos se realiza mediante

XMLHttpRequest, objeto disponible en los navegadores actuales. En cualquier caso, no es necesario que el contenido asíncrono esté formateado en XML.

Ajax es una técnica válida para múltiples plataformas y utilizable en muchos sistemas operativos y navegadores dado que está basado en estándares abiertos como JavaScript y Document Object Model (DOM).

jQuery: es una biblioteca de métodos gratuita de Javascript, cuyo objetivo principal es simplificar las tareas de creación de páginas web responsivas, la cual funciona en todos los navegadores modernos. Por otro lado, se dice que jQuery ayuda a que nos concentremos de gran manera en el diseño del sitio, al abstraer por completo todas las características específicas de cada uno de los navegadores. Otra de las grandes ventajas de jQuery es que se enfoca en

simplificar los scripts y en acceder/modificar el contenido de una página web. Su autor original es John Resig, aunque como sucede con todas las librerías exitosas, actualmente recibe contribuciones de decenas de programadores. jQuery también ha sido programada de forma muy eficiente y su versión comprimida apenas ocupa 20 KB.

La función básica de jQuery y una de las más útiles se trata de la "función dolar": $(). En esta función, la cadena de texto que se pasa como parámetro puede hacer uso de CSS para seleccionar los elementos. Además, separando expresiones con un carácter "," se puede seleccionar un número ilimitado de elementos. La función $() soporta casi todos los selectores definidos por CSS3.

Una de las utilidades más interesantes de jQuery está relacionada con el evento onload de la página, el cual hace referencia al instante en que todo el contenido indexado en el HTML se ha cargado en el navegador. Hasta que no se carga la página, el navegador no construye el árbol DOM, lo que significa que no se pueden utilizar funciones que seleccionen elementos de la página, ni se pueden añadir o eliminar elementos. jQuery incorpora varios eventos además del onload, además de muchas funciones visuales incorporadas que permiten ahorrar código CSS o Javascript.

JSON: JSON (JavaScript Object Notation) es un formato para el intercambios de datos, básicamente JSON describe los datos con una sintaxis dedicada que se usa para identificar y gestionar los datos. JSON nació como una alternativa a XML, el fácil uso en javascript ha generado un gran número de seguidores de esta alternativa. Una de las mayores ventajas que tiene el uso de JSON es que puede ser leído por cualquier lenguaje de programación. Por lo tanto, puede ser usado para el intercambio de información entre distintas tecnologías.

Una cadena JSON se arma con pares atributo-valor, éstos deben estar encerrados entre llaves { , } que es lo que definen el inicio y el fin del objeto. Una llave puede contener varios objetos, los cuales se separan por

Trabajo Investigativo, Programación aplicada

Figura 7. Ejemplo de una llamada Ajax. Se puede notar que la utilidad Ajax se invoca mediante la función $() de jQuery

14

Page 15: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

comas, y puede contener además arreglos. Se puede aplicar parsing JSON sobre otros tipos de objetos, y convertir objetos JSON a cadenas de texto para ser impresos en consola por ejemplo.

Figura 8. Ejemplo de información presentada como JSON devuelta por el servidor de procesamiento de lenguaje natural Wit.ai. En el se ven objetos, pares atributo valor, y arreglos.

5. Arquitectura REST Arquitectura REST: (Representational State Transfer) es un estilo de arquitectura para desarrollar

servicios. Los servicios web que siguen este estilo deben cumplir con las siguientes premisas: Como servicios web son cliente servidor y definen un interface de comunicación entre

ambos separando completamente las responsabilidades entre ambas partes. Son servicios web que no mantienen estado asociado al cliente .Cada petición que se realiza

a ellos es completamente independiente de la siguiente . Todas las llamadas al mismo servicio serán idénticas.

Todos los servicios REST compartirán una forma de invocación y métodos uniforme utilizando los métodos GET, POST, PUT , DELETE.

El método GET se usa para obtener información del servidor, puede ser algún archivo HTML, una imagen, un archivo de texto, un XML, etc. Este método solo debe usarse para obtener información del servidor de acuerdo a los estándares de HTTP. El método GET no debe cambiar el estado del servidor, es decir, no debe hacer ninguna modificación a cualquier archivo que en éste se encuentre.

El método POST es el encargado de crear un nuevo recurso y, por consiguiente, modificar el estado del servidor. Es el método HTTP más empleado.El método PUT no es tan usado como lo son GET y POST. Su uso podría darse en el caso de que, por ejemplo, se requiera hacer una operación que haga una acción sobre el estado del servidor, pero que la siguiente vez que suceda, no cambie ese estado.

El método DELETE es el método indicado para borrar un recurso del servidor, sin embargo, algunos desarrolladores emplean los métodos GET o POST para esa labor.

Todos los servidores REST deben ser implementados en capas. Estas dependerán de la arquitectura más óptima acorde al sistema.

Un concepto importante en REST es la existencia de recursos (elementos de información), que pueden ser accedidos utilizando un identificador global (un Identificador Uniforme de Recurso). Para

Trabajo Investigativo, Programación aplicada

15

Page 16: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

manipular estos recursos, los componentes de la red (clientes y servidores) se comunican a través de una interfaz estándar (HTTP) e intercambian representaciones de estos recursos (los ficheros que se descargan y se envían). La petición puede ser transmitida por cualquier número de conectores (por ejemplo clientes, servidores, cachés, túneles, etc.) pero cada uno lo hace sin "ver más allá" de su propia petición (lo que se conoce stateless (sin estado), otra restricción de REST, que es un principio común con muchas otras partes de la arquitectura de redes y de la información) Así, una aplicación puede interactuar con un recurso conociendo el identificador del recurso y la acción requerida, no necesitando conocer si existen cachés, proxys, cortafuegos, túneles o cualquier otra cosa entre ella y el servidor que guarda la información. La aplicación, sin embargo, debe comprender el formato de la información devuelta (la representación), que es por lo general un documento HTML o XML, aunque también puede ser una imagen o cualquier otro contenido.

6. Redifusión Web (RSS – ATOM)

La redifusión web es el proceso por el cual un sitio web reenvía la información que publica. Y normalmente suele ir acompañada de la sindicación de contenidos que es un modelo de suscripción por el cual el receptor o cliente recibirá la información de manera rápida y fiable. La redifusión (también llamada sindicación) puede darse simplemente licenciando el contenido para que puedan usarlo otros sitios; sin embargo, en general, la redifusión web se refiere a ofrecer un contenido informativo desde una fuente web originario de una página web para proporcionar a otras personas la actualización del mismo (por ejemplo, noticias de un periódico, nuevos artículos en una bitácora, los últimos comentarios en un foro, etcétera).

Las fuentes suelen codificarse en XML, aunque el formato puede ser cualquier otro que pueda transportarse mediante HTTP, como son el HTML o el Javascript. Las dos principales familias de formatos de redifusión web son el RSS y el Atom, ambos escritos en XML. Recientemente el término RSS (Sindicación Realmente Simple) se ha usado indistintamente para referirse también a cualquiera de los otros formatos RSS o Atom.

RSS: formato de datos que es utilizado para re-difundir contenidos a suscriptores de un sitio web. El formato permite distribuir contenido sin necesidad de un navegador, utilizando un software diseñado para leer estos contenidos RSS (agregador). A pesar de eso, es posible utilizar el mismo navegador para ver los contenidos RSS. Las últimas versiones de los principales navegadores permiten leer los RSS sin necesidad de software adicional

Sirve para facilitar el acceso a la información Web que se actualiza con regularidad, logrando que el usuario recupere al momento las novedades producidas en la información de su interés.

Cualquier usuario puede suscribirse a un feed (proveedor) y obtener las últimas noticias enviadas a su agregador o lector RSS, el cual le alertará cuando haya nueva información para leer. Esto le permite obtener los datos que necesita de forma rápida y precisa, pues no tiene que comprobar los múltiples sitios que ofrecen los contenidos que le interesan sin saber si se ha producido algún cambio en ellos o no. Utilizando feeds y agregadores podemos decidir, tras la alerta del lector RSS, si queremos visitar el sitio en el que se ha originado la información para ampliarla o no.

Atom Feed: es un fichero en formato XML usado para Redifusión web. No se corresponde ni se basa en ninguna versión de RSS, pero es un formato muy similar a éste y que sobre todo tiene el mismo objetivo: permitir la distribución de contenidos y noticias de sitios web. La versión más actual es la 0.3 de febrero de 2004. Las mejoras que supone respecto a RSS (en cualquiera de sus versiones) hacen que su uso se extienda rápidamente a pesar de ser

Trabajo Investigativo, Programación aplicada

16

Page 17: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

algo más complicado. Un documento Atom puede contener más información (y más compleja) y es más consistente que un documento RSS.

7. Streaming

En la navegación por Internet es necesario descargar previamente el archivo (página HTML, imagen JPG, audio MP3, etc.) desde el servidor remoto al cliente local para luego visualizarlo en la pantalla de la máquina cliente. La tecnología de streaming se utiliza para optimizar la descarga y reproducción de archivos de audio y video que suelen ser contenidos de gran peso. El streaming funciona de la siguiente forma:

o Conexión con el servidor. El reproductor cliente conecta con el servidor remoto y éste comienza a

enviarle el archivo.o Buffer. El cliente comienza a recibir el fichero y construye un buffer o almacén donde empieza a

guardarlo.o Inicio de la reproducción. Cuando el buffer se ha llenado con una pequeña fracción inicial del

archivo original, el reproductor cliente comienza a mostrarlo mientras continúa en segundo plano con el resto de la descarga.

o Caídas de la velocidad de conexión. Si la conexión experimenta ligeros descensos de velocidad

durante la reproducción, el cliente podría seguir mostrando el contenido consumiendo la información almacenada en el buffer. Si llega a consumir todo el buffer se detendría hasta que se volviera a llenar.

El streaming puede ser de dos tipos dependiendo de la tecnología instalada en el servidor:

1. Descarga progresiva. Se produce en servidores web que disponen de Internet Information Server (IIS), Apache, Tomcat, etc. El archivo de vídeo o audio solicitado por el cliente es liberado por el servidor como cualquier otro archivo utilizando el protocolo HTTP. Sin embargo, si el archivo ha sido especialmente empaquetado para streaming, al ser leído por el reproductor cliente, se iniciará en streaming en cuanto se llene el buffer.

2. Transmisión por secuencias. Se produce en servidores multimedia que disponen de un software especial para gestionar más óptimamente el streaming de audio y vídeo: Windows Media Server, Flash Communication Server, etc. La utilización de un servidor multimedia ofrece múltiples ventajas frente al servidor web. Las más destacadas son:

o Mayor rapidez en la visualización de este tipo de contenidos.

o La comunicación entre servidor/cliente se puede realizar por protocolos alternativos al HTTP. Tiene

el inconveniente del bloqueo impuesto por Firewalls pero tiene la ventaja de una mayor rapidez.o Mejor gestión del procesador y ancho de banda de la máquina del servidor ante peticiones

simultáneas de varios clientes del mismo archivo de audio o vídeo.o Control predefinido sobre la descarga que pueden realizar los clientes: autentificada, filtrada por IP,

sin almacenarla en la caché del cliente, etc.o Mayor garantía de una reproducción ininterrumpida gracias al establecimiento de una conexión de

control inteligente entre servidor y cliente.o Posibilidad de distribución de transmisiones de audio y vídeo en directo.

Códecs y formatos contenedores: los códec son herramientas bien sea de software o hardware encargadas de codificar o decodificar un flujo de datos entrante o saliente, este flujo de datos es el mismo stream tratado previamente. Usualmente se usa el mismo códec que se utilizó para codificar las señales antes de emitir el stream para decodificar un stream entrante. Los códecs cumplen funciones tanto de compresión como de

Trabajo Investigativo, Programación aplicada

17

Page 18: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

cifrado, lo que en la práctica suele implicar perdidas en la integridad total de los datos, y por tanto en su calidad, en especial cuando se trabaja con archivos multimedia. Ya que aquí se aborda la temática del streaming, nuestro interés principal son los códec para audio y vídeo, pues dado su tamaño en memoria es el principal objeto de la tecnología del streaming; en esta clase de archivos multimedia, usualmente hay contenidos en un solo archivo datos de audio y vídeo, por lo que normalmente se usarían códec independientes, pero para que estos sean aptos para ser transmitidos mediante un stream o almacenados, todos los tipos de dato deben ser encapsulados juntos. Esta función la cumple un formato de archivo llamado contenedor o bitstream, entre los más destacados formatos contenedores y de vídeo o audio están:

o MPEG: son las siglas de Moving Picture Experts Group y se pronuncia m-peg. MPEG es un grupo de

la ISO y la familia de estándares de compresión y de formatos de archivo de video digital desarrollados por el grupo. Los algoritmos del MPEG comprimen la información en pequeños paquetes que pueden ser transmitidos fácilmente y después ser descomprimidos. El MPEG alcanza su alta tasa de compresión almacenando solamente los cambios de un frame (fotograma) al siguiente, en vez de almacenar el frame entero. La información del video se codifica entonces usando una técnica llamada Discrete Cosine Transform (DCT).

o AVI: (siglas en inglés de Audio Video Interleave) es un formato contenedor de audio y video lanzado

por Microsoft en 1992. El formato avi permite almacenar simultáneamente un flujo de datos de video y varios flujos de audio. El formato concreto de estos flujos no es objeto del formato AVI y es interpretado por un programa externo denominado códec. Es decir, el audio y el video contenidos en el AVI pueden estar en cualquier formato (AC3/DivX, o MP3/Xvid, entre otros). Por eso se le considera un formato contenedor.

o Matroska MKV: Mes un formato contenedor de estándar abierto, un archivo informático que puede

contener una cantidad ilimitada de vídeo, audio, imagen o pistas de subtítulos dentro de un solo archivo. Su finalidad es la de servir como formato universal para el almacenamiento de contenidos audiovisuales y multimedia, como películas o programas de televisión, videojuegos, imágenes y textos. No es un códec de video como H.264/MPEG-4 AVC o vorbis, sino que es un contenedor que envuelve audio, video y subtítulos dentro de un mismo paquete, y que permite reproducir el archivo tanto en ordenadores como en otros dispositivos con la suficiente potencia de procesamiento.

o Flash Video FLV: es un formato contenedor usado para transmitir video por Internet usando Adobe

Flash Player, desde la versión 6 a la 10. Los contenidos FLV pueden ser incrustados dentro de archivos SWF.

o WebM: es un formato multimedia abierto y libre desarrollado por Google y orientado a usarse con

HTML5. Es un proyecto de software libre. Está compuesto por el códec de vídeo VP8 (desarrollado originalmente por On2 Technologies) y el códec de audio Vorbis dentro de un contenedor multimedia Matroska.

o Advanced Streaming Formato ASF: es un formato contenedor digital propiedad de Microsoft,

diseñado especialmente para el streaming. El formato no especifica cómo debe ser codificado en vez de eso sólo especifica la estructura del flujo de video/audio. Los archivos ASF pueden codificarse con prácticamente cualquier codec, sin que deje de ser formato ASF. Esta función es similar a la llevada a cabo por los formatos QuickTime, AVI u Ogg. Los tipos de archivo más comunes contenidos en un archivo ASF son Windows Media Audio (WMA) y Windows Media Video (WMV).

8. VoIP – IPTV

Trabajo Investigativo, Programación aplicada

18

Page 19: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

VoIP: acrónimo de Voice Over Internet Protocol, que significa "voz sobre un protocolo de internet". Es un método por el cual tomando señales de audio analógicas se las transforma en datos digitales que pueden ser transmitidos a través de internet hacia una dirección IP determinada. Los pasos que sigue una llamada de voz mediante protocolo de internet son los siguientes:

1) Se inicia la aplicación del proveedor de VoIP y se inicia una llamada mediante interfaz, lo que envía una señal al conversor analógico-digital llamado ATA.

2) El ATA recibe la señal y envía un tono de llamado, esto deja saber que ya se tiene conexión a internet.

3) Los números del destinatario de la llamada son convertidos a digital por el ATA y guardados temporalmente.

4) Los datos del número telefónico son enviados al proveedor de VoIP. Las computadoras del proveedor VoIP revisan este número para asegurarse que está en un formato valido.

5) El proveedor determina a quien corresponde este número y lo transforma en una dirección IP.6) El proveedor conecta los dos dispositivos que intervienen en la llamada. En la otra punta, una

señal es enviada al ATA de la persona que recibe la llamada para que este haga que el dispositivo receptor alerte al destinatario de que está entrando una llamda.

7) Una vez que la otra persona levanta el teléfono, una comunicación es establecida entre la computadora del emisor y la computadora del receptor. Esto significa que cada sistema está esperando recibir paquetes del otro sistema. En el medio, la infraestructura de internet maneja los paquetes de voz la comunicación de la misma forma que haría con un email o con una página web. Cada sistema debe estar funcionando en el mismo protocolo para poder comunicarse. Los sistemas implementan dos canales, uno en cada dirección.

8) Se habla por un periodo de tiempo. Durante la conversación, el sistema emisor y el sistema receptor transmiten y reciben paquetes a modo de streams entre sí.

9) Cuando se termina la llamada, la conexión es cerrada.10) El ATA envía una señal al proveedor de Telefonía IP informando que la llamada ha sido

concluida.

Toda transmisión de paquetes de VoIP se da mediante streams en la modalidad de transmisión por secuencias.

Los códec en VoIP son usados para la decodificación digital en streams de las señales de audio, los códec realizan esta tarea de conversión tomando muestras de la señal de audio miles de veces por segundo. Por ejemplo, el codec G.711 toma 64,000 muestras por segundo. Convierte cada pequeña muestra en información digital y lo comprime para su transmisión. Cuando las 64,000 muestras son reconstruidas, los fragmentos de audio que se pierden entre medio de estas son tan pequeños que es imposible para el oído humano notar ésta perdida, esta suena como una sucesión continua de audio. Existen diferentes frecuencias de muestre de la señal en VOIP, esto depende del códec que se esté usando. Los codecs operan usando algoritmos avanzados que les permiten tomar las muestras, ordenas, comprimir y empaquetar los datos. El algoritmo CS-ACELP (conjugate-structure algebraic-code-excited linear prediction) es uno de los algoritmos más comunes en VoIP. CS-ACELP ayuda a organizar el ancho de banda disponible.

Existen varios protocolos comúnmente usados para VOIP, estos protocolos definen la manera en que por ejemplo los códec se conectan entre si y hacia otras redes usando VoIP. Estos también incluyen especificaciones para códec de audio.

El protocolo más usado es el H.323, un estándar creado por la International Telecomunication Union (ITU) (link) H323 es un protocolo muy complejo que fue originalmente pensado para videoconferencias.

Trabajo Investigativo, Programación aplicada

19

Page 20: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

Este provee especificaciones para conferencias interactivas en tiempo real, para compartir data y audio como aplicaciones VoIP. Actualmente H323 incorpora muchos protocolos individuales que fueron desarrollados para aplicaciones específicas, entre ellos el H.263 y su evolución, el H.264, ambos estándares para la codificación de vídeos con alta compresión.

La principal alternativa al protocolo H.323 es el protocolo SIP, este es un protocolo mucho más lineal, desarrollado específicamente para aplicaciones de VoIP más chicas y más eficientes que H.323. SIP toma ventaja de los protocolos existentes para manejar ciertas partes del proceso.

Uno de los desafíos que enfrenta el VoIP es que los protocolos que se utilizan a lo largo del mundo no son siempre compatibles. Llamadas VoIP entre diferentes redes pueden meterse en problemas si chocan distintos protocolos. Como VoIP es una nueva tecnología, este problema de compatibilidad va a seguir siendo un problema hasta que se genere un estándar para el protocolo VoIP.

IPTV: acrónimo de Internet Protocol Television. IPTV es un sistema que se emplea para la distribuir señales de televisión y vídeo a través de Internet con conexión de banda ancha sobre el protocolo IP, esto supone, la transmisión de información a través de una red segura.

Ya en los años 80, a finales de la década se comenzaron a realizar experimentos piloto sobre la oferta de servicios de televisión a través de las redes IP. Años más tarde, a mitad de los años 90, lo que fueron proyectos pilotos se convirtieron en una realidad tangible, pero limitada por las infraestructuras y la tecnología. El sistema IPTV fue desarrollado basándose en vídeo streaming y es a partir del 2000 cuando el proyecto empieza a cobrar vida y a ser viable. Las razones por las que ITPV deja de ser un "boceto" y pasa a convertirse en una realidad fueron:

o Aumento de capacidad de las tecnologías xDSL (conexiones de acceso a internet mediante

transmisión de datos digitales)o Infraestructura de acceso de la red, permitiendo un ancho de banda apropiado para IPTV.

o Evolución tecnológica del equipamiento que favorece la implantación de estos servicios en la red

preexistente de las operadoraso Aumento del ancho de banda

o Aparición de nuevas tecnologías

No se debe confundir el sistema IPTV con la televisión por Internet. La mayor diferencia que existe entre ambas es el entorno en el que una y otra prestan sus servicios. Mientras Internet Televisión utiliza un sistema abierto, libre y sin apenas control, el entorno de la IPTV es un sistema cerrado con una infraestructura que está totalmente dentro del entorno del proveedor, y normalmente no se puede acceder a la Internet en su totalidad.

Los formatos empleados por IPTV más usualmente son:

o H.261: Se utilizó para videoconferencia y video telefonía y sirve como base para otros.

o MPEG-1: Logra calidad similar a VHS y además es compatible con todos los ordenadores y casi

todos los DVD.o MPEG-2: Es el usado en los DVD y permite imagen a pantalla completa con buena calidad.

o H.263: Permite bajas tasas con una calidad aceptable. Usado en especial para videoconferencia y

videotelefonía.

Trabajo Investigativo, Programación aplicada

20

Page 21: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

o MPEG-4 parte 2: Calidad mejorada respecto a MPEG-2

o MPEG-4 parte 10: También llamado H264. Es el más usado actualmente por una gran variedad de

aplicaciones.o WMV: Se utiliza tanto para video de poca calidad a través de internet con conexiones lentas,

como para video de alta definición. Mientras que MPEG-4 está respaldado por JVT el formato WMV es un formato de compresión de video propietario de Microsoft.

El contenido se puede obtener a través de internet de algún proveedor de contenidos o de un distribuidor de señales de televisión. Se utilizan unos dispositivos llamados codificadores para digitalizar y comprimir el video analógico obtenido. Este dispositivo llamado códec, habilita la compresión de video digital habitualmente sin pérdidas. La elección del codec tiene mucha importancia, porque determina la calidad del video final, la tasa de bits que se enviarán, la robustez ante las pérdidas de datos y errores, el retraso por transmisión, etcétera.

9. Web Socket (RFC6455)

WebSockets es una tecnología avanzada para Javascript definida por el W3C que hace posible abrir una sesión de comunicación interactiva entre el navegador del usuario del lado del cliente y un servidor. Con esta   API, puede enviar mensajes a un servidor y  recibir  respuestas controladas por eventos sin tener que consultar al servidor para una respuesta, como se hace con las llamadas HTTP en interfaces REST, o desde Ajax.

La comunicación por WebSockets es una comunicación bidireccional persistente, por lo que ambas partes puedne empezar a enviar y recibir datos en cualquier momento. Una conexión por WebSocket se declara de la siguiente forma:

El elemento ws:. es el nuevo esquema de URL para las conexiones WebSocket. También hay wss: para conexiones WebSocket seguras, de la misma forma que se utiliza https: para las conexiones HTTP seguras. Adjuntar inmediatamente varios controladores a la conexión permite saber cuándo está abierta la conexión, cuándo ha recibido mensajes entrantes o cuándo hay un error. Para establecer una conexión entre cliente y servidor, el navegador en el cliente ha de soportar HTML5, y el servidor ha de tener la librería Socket.IO, en el momento en que se establece una comunicación por ws: , cliente y servidor cesan la comunicación por HTTP.

El segundo argumento acepta subprotocolos opcionales. Puede ser una cadena o una matriz de cadenas. Cada cadena debe representar a un nombre de subprotocolo y el servidor acepta solo uno de los subprotocolos de la matriz.

La tecnología WebSocket está diseñada para ser implementada en navegadores y servidores web, pero puede utilizarse por cualquier aplicación cliente/servidor. La API (Interfaz de programación de aplicaciones) de WebSocket está siendo normalizada por el W3C, mientras que el protocolo WebSocket ya fue normalizado por la IETF como el RFC 6455. Debido a que las conexiones TCP comunes sobre puertos diferentes al 80 son habitualmente bloqueadas por los administradores de redes, el uso de esta tecnología proporcionaría una solución a este tipo de limitaciones proveyendo una funcionalidad similar a la apertura de varias conexiones en

Trabajo Investigativo, Programación aplicada

21

Page 22: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

distintos puertos, pero multiplexando diferentes servicios WebSocket sobre un único puerto TCP (a costa de una pequeña sobrecarga del protocolo).

10. Web Workers

Javascript es usualmente un lenguaje totalmente síncrono, en el que no hay más de un proceso ejecutándose simultáneamente, esto conlleva a grandes limitantes en el desarrollo de sitios y aplicativos Web. Pero HTML5 y la mejora de los motores de JavaScript han demostrado que esto ya no es así. Gracias a la API de HTML5 de Web Worker es posible crear de una forma muy simple uno o varios subprocesos en el hilo de ejecución del sitio, evitando esa saturación que algunas veces muestra una web cuando está procesando algo grande (que en muchos casos conlleva al colapso del sitio) gracias a que se ejecutan de forma asíncrona y en procesos diferentes.

Los Web Workers se ejecutan en un subproceso aislado. Como resultado, es necesario que el código que ejecutan se encuentre en un archivo independiente. Sin embargo, antes de hacer esto, lo primero que se debe hacer es crear un nuevo objeto Worker en la página principal. El constructor toma el nombre de la secuencia de comandos del Worker. Se declara así:

El archivo “task.js” corresponde al archivo independiente con el código a ejecutar en el subproceso. Si el archivo especificado existe, el navegador generará un nuevo subproceso de Worker que lo descargará de forma asíncrona. El Worker no empezará hasta que el archivo se haya descargado completamente y se haya ejecutado. Si la ruta al Worker devuelve un error 404 (no encontrado), el Worker fallará automáticamente. Una vez creado, se inicia con el método postMessage().

11. Plataformas de desarrollo Web

ASP.NET: ASP.NET es un framework para aplicaciones web desarrollado y comercializado por Microsoft. Es usado por programadores y diseñadores para construir sitios web dinámicos, aplicaciones web y servicios web XML. Apareció en enero de 2002 con la versión 1.0 del .NET Framework, y es la tecnología sucesora de la tecnología Active Server Pages (ASP). ASP.NET está construido sobre el Common Language Runtime, permitiendo a los programadores escribir código ASP.NET usando cualquier lenguaje admitido por el .NET Framework.

ASP.NET incluye:o Marco de trabajo de página y controles: El marco de trabajo de páginas y controles ASP.NET

es un marco de trabajo de programación que se ejecuta en un servidor Web para generar y representar de forma dinámica páginas Web ASP.NET. Las páginas Web ASP.NET se pueden solicitar a cualquier explorador o dispositivo del cliente y ASP.NET representa el marcado (como HTML) al explorador que realizó la solicitud.

o Compilador de ASP.NET: Compila todo el código de ASP.NET, lo que permite el

establecimiento inflexible de tipos, las optimizaciones de rendimiento y el enlace en tiempo de compilación, entre otras ventajas. Una vez que se ha compilado el código, el Common

Trabajo Investigativo, Programación aplicada

22

Page 23: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

Language Runtime compila una vez más código de ASP.NET en código nativo, lo que permite un mayor rendimiento.

o Infraestructura de seguridad

o Funciones de administración de estado: : ASP.NET proporciona funcionalidad de

administración de estado intrínseca que permite almacenar información entre las solicitudes de página, como la información de clientes o el contenido del carro de la compra.

o Configuración de la aplicación

o Supervisión de estado y características de rendimiento

o Capacidad de depuración

o Marco de trabajo de servicios Web XML: ASP.NET es compatible con los servicios Web

XML. Un servicio Web XML es un componente que incluye funcionalidad de empresa que permite a las aplicaciones intercambiar información entre firewalls utilizando estándares como los servicios de mensajería HTTP y XML.

JSP: es un acrónimo de Java Server Pages, en español Páginas de Servidor Java. Es una tecnología orientada a crear páginas web con programación en Java. Con JSP es posible crear aplicaciones web que se ejecuten en variados servidores web, de múltiples plataformas, ya que Java es en esencia un lenguaje multiplataforma. Las páginas JSP están compuestas de código HTML/XML mezclado con etiquetas especiales para programar scripts de servidor en sintaxis Java. Por tanto, las JSP podremos escribirlas con un editor HTML/XML habitual.

El motor de las páginas JSP está basado en los servlets de Java -programas en Java destinados a ejecutarse en el servidor-, aunque el número de desarrolladores que pueden afrontar la programación de JSP es mucho mayor, dado que resulta mucho más sencillo aprender que los servlets.

En JSP creamos páginas de manera parecida a como se crean en ASP o PHP. Generamos archivos con extensión .jsp que incluyen, dentro de la estructura de etiquetas HTML, las sentencias Java a ejecutar en el servidor. Antes de que sean funcionales los archivos, el motor JSP lleva a cabo una fase de traducción de esa página en un servlet, implementado en un archivo class (Byte codes de Java). Esta fase de traducción se lleva a cabo habitualmente cuando se recibe la primera solicitud de la página .jsp, aunque existe la opción de precompilar en código para evitar ese tiempo de espera la primera vez que un cliente solicita la página

PHP: acrónimo de Hypertext Preprocessor es un lenguaje de programación dirigido a la creación de páginas web dinámicas. Es un lenguaje de programación procedural con una sintaxis similar a la del lenguaje C, aunque actualmente puede utilizarse una sintaxis de programación orientada a objetos similar a la de Java.

En lugar de usar muchos comandos para mostrar HTML (como en C o en Perl), las páginas de PHP contienen HTML con código incrustado que desempeña una determinada función.Lo que distingue a PHP de lenguajes del lado del cliente como Javascript es que el código es ejecutado en el servidor, generando HTML y enviándolo al cliente. El cliente recibirá el resultado de ejecutar el script, aunque no se sabrá el código subyacente que era. El servidor web puede ser configurado incluso para que procese todos los ficheros HTML con PHP, por lo que es una buena manera de ocultar código de los exploradores de código fuente de los sitios web.

Trabajo Investigativo, Programación aplicada

23

Page 24: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

Entre las principales características de PHP están:

o Orientado al desarrollo de aplicaciones web dinámicas con acceso a información almacenada

en una base de datos.o Es considerado un lenguaje fácil de aprender, ya que en su desarrollo se simplificaron distintas

especificaciones, como es el caso de la definición de las variables primitivas, o El código fuente escrito en PHP es invisible al navegador web y al cliente, ya que es el

servidor el que se encarga de ejecutar el código y enviar su resultado HTML al navegador. Esto hace que la programación en PHP sea segura y confiable.

o Capacidad de conexión con la mayoría de los motores de base de datos que se utilizan en la

actualidad, destaca su conectividad con MySQL y PostgreSQL.o Capacidad de expandir su potencial utilizando módulos (llamados ext's o extensiones).

o Posee una amplia documentación en su sitio web oficial, entre la cual se destaca que todas las

funciones del sistema están explicadas y ejemplificadas en un único archivo de ayuda.o Es libre, por lo que se presenta como una alternativa de fácil acceso para todos.

o Permite aplicar técnicas de programación orientada a objetos.

o No requiere definición de tipos de variables aunque sus variables se pueden evaluar también

por el tipo que estén manejando en tiempo de ejecución.o Tiene manejo de excepciones (desde PHP5).

o Si bien PHP no obliga a quien lo usa a seguir una determinada metodología a la hora de

programar, aun haciéndolo, el programador puede aplicar en su trabajo cualquier técnica de programación o de desarrollo que le permita escribir código ordenado, estructurado y manejable. Un ejemplo de esto son los desarrollos que en PHP se han hecho del patrón de diseño Modelo Vista Controlador (MVC), que permiten separar el tratamiento y acceso a los datos, la lógica de control y la interfaz de usuario en tres componentes independientes.

o Debido a su flexibilidad ha tenido una gran acogida como lenguaje base para las aplicaciones

WEB de manejo de contenido, y es su uso principal.

12. Servidores WEB:

Un servidor web o servidor HTTP es un programa informático que procesa una aplicación del lado del servidor, realizando conexiones bidireccionales y/o unidireccionales y síncronas o asíncronas con el cliente y generando o cediendo una respuesta en cualquier lenguaje o Aplicación del lado del cliente. El código recibido por el cliente suele ser compilado y ejecutado por un navegador web. Para la transmisión de todos estos datos suele utilizarse algún protocolo. Generalmente se usa el protocolo HTTP para estas comunicaciones, perteneciente a la capa de aplicación del modelo OSI. El término también se emplea para referirse al ordenador que ejecuta el programa.El Servidor web se ejecuta en un ordenador manteniéndose a la espera de peticiones por parte de un cliente (un navegador web) y que responde a estas peticiones adecuadamente, mediante una página web que se exhibirá en el navegador o mostrando el respectivo mensaje si se detectó algún error. A modo de ejemplo, al teclear www.wikipedia.org en nuestro navegador, éste realiza una petición HTTP al servidor de dicha dirección. El servidor responde al cliente enviando el código HTML de la página; el cliente, una vez recibido el código, lo interpreta y lo exhibe en pantalla. Como vemos con este ejemplo, el cliente es el encargado de interpretar el código HTML, es decir, de mostrar las fuentes, los colores y la disposición de los textos y objetos de la página; el servidor tan sólo se limita a transferir el código de la página sin llevar a cabo ninguna interpretación de la misma.

Además de la transferencia de código HTML, los Servidores web pueden entregar aplicaciones web. Éstas son porciones de código que se ejecutan cuando se realizan ciertas peticiones o respuestas HTTP. Hay que distinguir entre:

Trabajo Investigativo, Programación aplicada

24

Page 25: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

o Aplicaciones en el lado del cliente: el cliente web es el encargado de ejecutarlas en la máquina del usuario.

Son las aplicaciones tipo Java "applets" o Javascript: el servidor proporciona el código de las aplicaciones al cliente y éste, mediante el navegador, las ejecuta. Es necesario, por tanto, que el cliente disponga de un navegador con capacidad para ejecutar aplicaciones (también llamadas scripts). Comúnmente, los navegadores permiten ejecutar aplicaciones escritas en lenguaje javascript y java, aunque pueden añadirse más lenguajes mediante el uso de plugins.

o Aplicaciones en el lado del servidor: el servidor web ejecuta la aplicación; ésta, una vez ejecutada, genera

cierto código HTML; el servidor toma este código recién creado y lo envía al cliente por medio del protocolo HTTP.

Las aplicaciones de servidor muchas veces suelen ser la mejor opción para realizar aplicaciones web. La razón es que, al ejecutarse ésta en el servidor y no en la máquina del cliente, éste no necesita ninguna capacidad añadida, como sí ocurre en el caso de querer ejecutar aplicaciones javascript o java. Así pues, cualquier cliente dotado de un navegador web básico puede utilizar este tipo de aplicaciones.El hecho de que HTTP y HTML estén íntimamente ligados no debe dar lugar a confundir ambos términos. HTML es un lenguaje de marcas y HTTP es un "protocolo".

Servidor APACHE:

Es un servidor web HTTP de código abierto, para plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre se debe a que Behelendorf quería que tuviese la connotación de algo que es firme y enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que pronto se convertiría en gobierno de EEUU, y en esos momentos la preocupación de su grupo era que llegasen las empresas y "civilizasen" el paisaje que habían creado los primeros ingenieros de internet. Además Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. En inglés, a patchy server (un servidor "parcheado") suena igual que Apache Server.

El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation.Apache presenta entre otras características altamente configurables, bases de datos de autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su configuración.Apache tiene amplia aceptación en la red: desde 1996, Apache, es el servidor HTTP más usado. Alcanzó su máxima cuota de mercado en 2005 siendo el servidor empleado en el 70% de los sitios web en el mundo, sin embargo ha sufrido un descenso en su cuota de mercado en los últimos años. (Estadísticas históricas y de uso diario proporcionadas por Netcraft).La mayoría de las vulnerabilidades de la seguridad descubiertas y resueltas tan sólo pueden ser aprovechadas por usuarios locales y no remotamente. Sin embargo, algunas se pueden accionar remotamente en ciertas situaciones, o explotar por los usuarios locales malévolos en las disposiciones de recibimiento compartidas que utilizan PHP como módulo de Apache.

Ventajas o Modular

o Código abierto

o Multi-plataforma

Trabajo Investigativo, Programación aplicada

25

Page 26: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

o Extensible

o Popular (fácil conseguir ayuda/soporte)

Apache es usado principalmente para enviar páginas web estáticas y dinámicas en la World Wide Web. Muchas aplicaciones web están diseñadas asumiendo como ambiente de implantación a Apache, o que utilizarán características propias de este servidor web.

Apache es el componente de servidor web en la popular plataforma de aplicaciones LAMP, junto a MySQL y los lenguajes de programación PHP/Perl/Python (y ahora también Ruby).

Apache es usado para muchas otras tareas donde el contenido necesita ser puesto a disposición en una forma segura y confiable. Un ejemplo es al momento de compartir archivos desde una computadora personal hacia Internet. Un usuario que tiene Apache instalado en su escritorio puede colocar arbitrariamente archivos en la raíz de documentos de Apache, desde donde pueden ser compartidos.

Servidor TOMCAT:

Apache Tomcat (también llamado Jakarta Tomcat o simplemente Tomcat) funciona como un contenedor

de servletsdesarrollado bajo el proyecto Jakarta en la Apache Software Foundation. Tomcat implementa las

especificaciones de los servletsy de JavaServer Pages (JSP) de Oracle Corporation (aunque creado por Sun

Microsystems).

Tomcat es desarrollado y actualizado por miembros de la Apache Software Foundation y voluntarios

independientes. Los usuarios disponen de libre acceso a su código fuente y a su forma binaria en los términos

establecidos en la Apache Software License. Las primeras distribuciones de Tomcat fueron las versiones 3.0.x.

Las versiones más recientes son las 8.x, que implementan las especificaciones de Servlet 3.0 y de JSP 2.2. A

partir de la versión 4.0, Jakarta Tomcat utiliza el contenedor de servlets Catalina.

Tomcat es un contenedor web con soporte de servlets y JSPs. Tomcat no es un servidor de aplicaciones,

como JBoss o JOnAS. Incluye el compilador Jasper, que compila JSPs convirtiéndolas en servlets. El motor de

servlets de Tomcat a menudo se presenta en combinación con el servidor web Apache.

Tomcat puede funcionar como servidor web por sí mismo. En sus inicios existió la percepción de que el uso de

Tomcat de forma autónoma era sólo recomendable para entornos de desarrollo y entornos con requisitos

mínimos de velocidad y gestión de transacciones. Hoy en día ya no existe esa percepción y Tomcat es usado

como servidor web autónomo en entornos con alto nivel de tráfico y alta disponibilidad.

Dado que Tomcat fue escrito en Java, funciona en cualquier sistema operativo que disponga de la máquina

virtual Java.

La jerarquía de directorios de instalación de Tomcat incluye:

o bin - arranque, cierre, y otros scripts y ejecutables.

Trabajo Investigativo, Programación aplicada

26

Page 27: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

o common - clases comunes que pueden utilizar Catalina y las aplicaciones web.

o conf - ficheros XML y los correspondientes DTD para la configuración de Tomcat.

o logs - logs de Catalina y de las aplicaciones.

o server - clases utilizadas solamente por Catalina.

o shared - clases compartidas por todas las aplicaciones web.

o webapps - directorio que contiene las aplicaciones web.

o work - almacenamiento temporal de ficheros y directorios.

GLASSFISH:

Es un servidor de aplicaciones de software libre desarrollado por Sun Microsystems, compañía adquirida

por Oracle Corporation, que implementa las tecnologías definidas en la plataforma Java EE y permite ejecutar

aplicaciones que siguen esta especificación. Es gratuito, de código libre y se distribuye bajo un licenciamiento

dual a través de la licencia CDDL y la GNU GPL. La versión comercial es denominada Oracle GlassFish

Enterprise Server (antes Sun GlassFish Enterprise Server).

GlassFish está basado en el código fuente donado por Sun y Oracle Corporation; este último proporcionó el

módulo de persistencia TopLink. GlassFish tiene como base al servidor Sun Java System Application

Server de Oracle Corporation, un derivado de Apache Tomcat, y que usa un componente adicional llamado

Grizzly que usa Java NIO para escalabilidad y velocidad.

NODE.JS :

Es un entorno de programación en la capa del servidor (pero no limitándose a ello) basado en el lenguaje de

programación ECMAScript, asíncrono, con I/O de datos en una arquitectura orientada a eventos y basado en el

motor V8 de Google. Fue creado con el enfoque de ser útil en la creación de programas de red altamente

escalables, como por ejemplo,servidores web.2 Fue creado por Ryan Dahl en 2009 y su evolución está

apadrinada por la empresa Joyent, que además tiene contratado a Dahl en plantilla.

Node.js es similar en su propósito a Twisted o Tornado de Python, Perl Object

Environment de Perl, React de PHP, libevent olibev de C, EventMachine de Ruby, vibe.d de D y

de Java existe Apache MINA, Netty, Akka, Vert.x, Grizzly o Xsocket. Al contrario que la mayoría del

código JavaScript, no se ejecuta en un navegador, sino en el servidor. Node.js implementa algunas

especificaciones de CommonJS. Node.js incluye un entorno REPL para depuración interactiva.

13. Sistemas de Gestión de contenidos

Trabajo Investigativo, Programación aplicada

27

Page 28: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

En inglés: Content Management System más conocido por sus siglas CMS, es un programa informático que

permite crear una estructura de soporte (framework) para la creación y administración de contenidos,

principalmente en páginas web, por parte de los administradores, editores, participantes y demás usuarios.

Consiste en una interfaz que controla una o varias bases de datos donde se aloja el contenido del sitio web. El

sistema permite manejar de manera independiente el contenido y el diseño. Así, es posible manejar el contenido

y darle en cualquier momento un diseño distinto al sitio web sin tener que darle formato al contenido de nuevo,

además de permitir la fácil y controlada publicación en el sitio a varios editores. Un ejemplo clásico es el de

editores que cargan el contenido al sistema y otro de nivel superior (moderador o administrador) que permite que

estos contenidos sean visibles a todo el público (los aprueba).

Un sistema de administración de contenidos siempre funciona en el servidor web en el que esté alojado el portal.

El acceso al gestor se realiza generalmente a través del navegador web, y se puede requerir el uso de FTP para

subir contenido.

Cuando un usuario accede a una URL, se ejecuta en el servidor esa llamada, se selecciona el esquema gráfico y

se introducen los datos que correspondan de la base de datos. La página se genera dinámicamente para ese

usuario, el código HTML final se genera en esa llamada. Normalmente se predefinen en el gestor varios formatos

de presentación de contenido para darle la flexibilidad a la hora de crear nuevos apartados e informaciones.

Ventajas

El gestor de contenidos facilita el acceso a la publicación de contenidos a un rango mayor de usuarios. Permite

que sin conocimientos de programación ni maquetación cualquier usuario pueda añadir contenido en el portal

web.

Además permite la gestión dinámica de usuarios y permisos, la colaboración de varios usuarios en el mismo

trabajo, la interacción mediante herramientas de comunicación.

Los costes de gestión de la información son mucho menores ya que se elimina un eslabón de la cadena de

publicación, el maquetador. La maquetación es hecha al inicio del proceso de implantación del gestor de

contenidos.

La actualización, backup y reestructuración del portal son mucho más sencillas al tener todos los datos vitales del

portal, los contenidos, en una base de datos estructurada en el servidor.

o Blogger

o Drupal

o Joomla

o Magnolia CMS

Trabajo Investigativo, Programación aplicada

28

Page 29: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

o Plone

o PrestaShop

o Tumblr

o WordPress

o Mambo Server

o Limo CMS

JOOMLA

Es un Sistema de gestión de contenidos o CMS (por sus siglas en inglés, Content Management System) que

permite desarrollar sitios web dinámicos e interactivos. Permite crear, modificar o eliminar contenido de un sitio

web de manera sencilla a través de un Panel de Administración. Es un software de código abierto, desarrollado

en PHP y liberado bajo licencia GPL. Este administrador de contenidos puede utilizarse en una PC local (en

Localhost), en una Intranet o a través de Internet y requiere para su funcionamiento una base de datos creada con

un gestor de bases de datos (MySQL es lo más habitual), así como de un servidor HTTP Apache.

Su nombre es una pronunciación fonética para anglófonos de la palabra swahili jumla, que significa "todos

juntos" o "como un todo". Se escogió como una reflexión del compromiso del grupo de desarrolladores y la

comunidad del proyecto.

Característica principal generación de código HTML bien formado, gestión de blogs, vistas de impresión de

artículos, flash con noticias, foros, polls (encuestas), calendarios, búsquedas integradas al sitio y soporte multi-

idioma. Debido a las tendencias actuales existe una gran apuesta por e-commerce en Joomla.

Joomla corresponde al grupo de soluciones de código abierto, es un producto de software libre. Para el desarrollo

de sus múltiples frentes, usa diferentes formas de comunicación como son: los encuentros por medio de IRC,

foros, listas de correo, "wikis" y blogs. Este gestor de contenidos GDC sigue las pautas marcadas por el bazar,

con su objetivo principal de dar solución a las necesidades de todos aquellos que participan de una u otra forma

en el proyecto.

Esta desarrollado en una arquitectura MVC lo que permite:

• Interactuar directamente con la parte de vista de Joomla!, lo que permite sobrescribir desde el template de

Joomla! la parte de vista de un componente, módulo o plugin, lo que permite un gran nivel de personalización en

el desarrollo de los templates.

• Un desarrollo de componentes módulos y plugins basados en la arquitectura base del CMS

• Actualizaciones rápidas en caliente, actualizando los elementos requeridos para los cambios de versión con la

plataforma funcionando.

Trabajo Investigativo, Programación aplicada

29

Page 30: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

Algunos sitios importantes como Linux.com, iTWire.com e incluso eBay.com están basados o usan de algún

modo el sistema de gestión de contenidos Joomla Asimismo, el sitio oficial de Joomla cuenta con un directorio

de sitios de ejemplo.

WORDPRESS

Es un sistema de gestión de contenidos o CMS (por sus siglas en inglés, Content Management System) enfocado

a la creación de cualquier tipo de sitio, aunque ha alcanzado una gran relevancia usado para la creación de blogs

(páginas web con una estructura cronológica que se actualiza regularmente). Ha sido desarrollado en el lenguaje

PHP para entornos que ejecuten MySQL y Apache, bajo licencia GPL y es software libre. Su fundador es Matt

Mullenweg. WordPress fue creado a partir del desaparecido b2/cafelog y se ha convertido en el CMS más

popular de la blogosfera y en el más popular con respecto a cualquier otro CMS de uso general. Las causas de su

enorme crecimiento son, entre otras, su licencia, su facilidad de uso y sus características como gestor de

contenidos.

Otro motivo a considerar sobre su éxito y extensión es la enorme comunidad de desarrolladores y diseñadores,

encargados de programarlo en su núcleo o creando complementos (llamados plugins) y plantillas (llamados

temas) para la comunidad. En febrero de 2015 era usado por el 23,4% % de todos los sitios existentes en Internet.

WordPress nació del deseo de construir un sistema de publicación personal, elegante y con una buena

arquitectura («Código es poesía»). Basado en PHP, MySQL y con licencia GPL, WordPress pone especial

atención a la estética, estándares web y usabilidad.

En principio, está configurado para usar un blog por sitio o instalación, pero también es posible tener varios

blogs con varias o una única base de datos desde la versión 3.0.

Estructura

• WordPress, en principio, es un sistema de publicación web basado en entradas ordenadas por fecha; las

entradas corresponden a una o más categorías o taxonomías. Además, cuenta con un administrador de páginas

estáticas no cronológicas.

• La estructura y diseño visual del sitio depende de un sistema de plantillas independiente del contenido, que

pueden tener varias opciones de personalización dependiendo de su autor.

• Bloques con funciones específicas por medio de complementos cuya publicación se realiza por medio de

widgets.

Trabajo Investigativo, Programación aplicada

30

Page 31: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

• La filosofía de WordPress apuesta decididamente por la elegancia, la sencillez y las recomendaciones del

W3C pero depende siempre de la plantilla a usar. TwentyTen, por ejemplo, es una plantilla predeterminada y que

es válida como (X)HTML Tradicional y CSS.

• Separa el contenido y el diseño en XHTML y CSS; aunque, como se ha dicho, depende de la plantilla que se

esté usando. No obstante, el código que se intenta generar en las entradas apuesta por esta característica forzando

(si así se elige) un marcado correcto.

• La gestión y ejecución corre a cargo del sistema de administración con los complementos y widgets que usan

las plantillas.

Funcionalidades

• Fácil instalación, actualización y personalización.

• Actualización automática del sistema implementada en la versión 2.7.

• Múltiples autores o usuarios, junto con sus roles o perfiles que establecen distintos niveles de permisos

(desde la versión 2.0).

• Sitios con varios blogs (a partir de la versión 1.6).

• Capacidad de crear páginas estáticas (a partir de la versión 1.5).

• Permite ordenar artículos y páginas estáticas en categorías, subcategorías y etiquetas.

• Cuatro estados por entrada: Publicado, Borrador, Esperando revisión (nuevo en WordPress 2.3) y Privado

(solo usuarios registrados), además de uno adicional: Protegido con contraseña.

• Editor WYSIWYG (por sus siglas en inglés, «lo que ves es lo que tienes»), desde la versión 2.0.

• Publicación mediante correo electrónico.

• Importación desde Blogger, Blogware, Dotclear, Greymatter, Livejournal, Movable Type y Typepad,

Textpattern y desde cualquier fuente RSS. Se está trabajando para poder importar desde pMachine y Nucleus

además de la importación a través de scripts o directamente de base de datos.

• Guardado automático temporizado del artículo como borrador (a partir de la versión 2.2).

• Permite comentarios y herramientas de comunicación entre blogs (Trackback, Pingback, etc).

• Distribución de los artículos mediante RDF, RSS 0.92, RSS 2.0 y Atom 1.0.

• Distribución de los comentarios (mediante RSS 2.0 y ATOM 1.0).

• Gestión y distribución de enlaces.

• Subida y gestión de datos adjuntos y archivos multimedia.

Trabajo Investigativo, Programación aplicada

31

Page 32: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

• Admite complementos (versión 1.5).

• Admite plantillas y widgets.

• Búsqueda integrada en entradas y páginas estáticas, y widget predeterminado para la búsqueda integrada de

Google desde la versión 2.5.

• Integración bbPress, sistema de foros de los mismos creadores, se integra automáticamente con WordPress.

• Integración con el foro Vanilla de Lussumo factible, al menos hasta la versión 2.2 no inclusive.

Multisitio

WordPress admite un blog por instalación, pero gracias a extender el blog por medio de complementos

específicos es fácil administrar y configurar múltiples blogs desde una sola instalación. Esta característica está

implementada en el núcleo de WordPress desde la versión 3.0.5

Luego de habilitarse la opción de Multisitio, se crea una red (WordPress Network10 ), por lo que podrán

administrarse varios blogs dentro de una misma instalación de WordPress, compartiendo temas, plantillas,

plugins y dominios. Se puede acceder a cada blog dentro de un subdirectorio.

Plantillas

Las plantillas o temas de WordPress son plantillas de diseño que sirven para establecer la apariencia y estructura

de tu blog.

Hay una gran comunidad oficial, tanto profesional como de usuarios, dedicada al diseño de estas plantillas que se

suelen listar en el sitio de WordPress una vez han sido comprobadas y aprobadas oficialmente. Aunque la

filosofía de WordPress apuesta por un marcado válido según las directrices del W3C, las posibilidades de este

sistema, tanto a nivel de diseño, estructura o gestión, y la flexibilidad del sistema de plantillas y widgets en

concreto, son enormes y prácticamente permiten tener desde un simple blog hasta un CMS personalizado.

DRUPAL

Es un marco de gestión de contenidos o CMS (por sus siglas en inglés, Content Management System) libre,

modular multipropósito y muy configurable que permite publicar artículos, imágenes, archivos y otras cosas u

otros archivos y servicios añadidos como foros, encuestas, votaciones, blogs y administración de usuarios y

permisos. Drupal es un sistema dinámico: en lugar de almacenar sus contenidos en archivos estáticos en el

sistema de ficheros del servidor de forma fija, el contenido textual de las páginas y otras configuraciones son

almacenados en una base de datos y se editan utilizando un entorno Web.

Es un programa libre, con licencia GNU/GPL, escrito en PHP, combinable con mysql, desarrollado y mantenido

por una activa comunidad de usuarios. Destaca por la calidad de su código y de las páginas generadas, el respeto

de los estándares de la web, y un énfasis especial en la usabilidad y consistencia de todo el sistema.

Trabajo Investigativo, Programación aplicada

32

Page 33: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

El diseño de Drupal es especialmente idóneo para construir y gestionar comunidades en Internet. No obstante, su

flexibilidad y adaptabilidad, así como la gran cantidad de módulos adicionales disponibles, hace que sea

adecuado para realizar muchos tipos diferentes de sitio web.

Drupal es un gestor de contenidos multipropósito que puede usarse para aplicaciones como por ejemplo:

• Portales comunitarios

• Foros de discusión

• Sitios web corporativos

• Aplicaciones de Intranet

• Sitios personales o blogs

• Aplicaciones de comercio electrónico

• Directorio de recursos

• Sitios de redes sociales

• Bibliotecas y archivos

III. COMPUTACIÓN EN LA NUBE

El Instituto Nacional de Estándares y Tecnologías (NIST) de Estados Unidos da una definición formal sobre el significado de la computación en la nube. Según el NIST la computación en la nube puede definirse como:

“Un modelo para permitir un acceso de red adecuado, desde cualquier sitio y bajo demanda a un conjunto compartido de recursos informáticos configurables (por ejemplo, redes, servidores, almacenamiento, aplicaciones y servicios) que se pueden proporcionar rápidamente y lanzar con un mínimo esfuerzo de gestión o interacción con el proveedor deservicios.”

Conocido también como servicios en la nube, informática en la nube, nube de cómputo o nube de conceptos, es un paradigma que permite ofrecer servicios de computación a través de Internet.

Trabajo Investigativo, Programación aplicada

33

Page 34: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

La computación en nube es un sistema informático basado en internet, servidores y centros de datos remotos para gestionar servicios de información y aplicaciones. La computación en nube permite que los consumidores y las empresas gestionen archivos y utilicen aplicaciones sin necesidad de instalarlas en el computador, solo se necesita de acceso a internet desde cualquier dispositivo móvil o fijo ubicado en cualquier lugar. Esta tecnología ofrece un uso más eficiente de recursos, como almacenamiento, memoria, procesamiento y ancho de banda, al proveer solamente los recursos necesarios en cada momento, reduce los costos, garantiza un mejor tiempo de actividad y que los sitios web sean invulnerables a los delincuentes informáticos.

El término “nube” se utiliza como una metáfora de internet y se origina en la nube utilizada para representar el internet en los diagramas de red como una abstracción de la infraestructura que representa.

CARACTERÍSTICAS DE LA NUBE Agilidad: El usuario puede adquirir o borrar sus aplicaciones según las necesite o no en cada momento de

manera fácil y rápida. Por ejemplo, si una empresa necesita una aplicación durante un mes puede pagar exclusivamente por el mes que la ha estado utilizando.

Reducción de costes: Aunque es cierto que los usuarios deben pagar un alquiler por los servicios adquiridos, estos se ahorran el gasto inicial que supondría la compra de los servidores, la infraestructura de red, el mantenimiento de los equipos del proveedor etc.

Accesibilidad: como las aplicaciones se ejecutan en los servidores, el usuario puede acceder a las mismas desde cualquier dispositivo que disponga de conexión a internet.

Elasticidad y Escalabilidad: Las aplicaciones en la nube son capaces de adaptarse a cualquier sistema sobre el que se estén ejecutando. Además, su escalabilidad una aplicación en la nube puede pasar de atender 1000 usuarios a atender 10000 con total normalidad y rapidez.

Recuperación: Los proveedores de servicios en la nube ofrecen a los usuarios sistemas de almacenamiento secundario en los cuales los clientes pueden almacenar y recuperar información de manera inmediata.

Estabilidad: En caso de experimentarse algún problema, las empresas encargadas de gestionar las aplicaciones en la nube aseguran una inmediata recuperación del sistema.

Seguridad: Aunque el usuario trabaja en un sistema externo a su propio ordenador, los proveedores realizan rigurosos controles de seguridad para evitar que la información de un determinado cliente pueda ser filtrada al exterior.

Aplicaciones “a la carta”. El internauta puede en todo momento decidir qué aplicaciones usar y elegir entre aquellas que son gratuitas y las que no lo son. En el caso de las aplicaciones de pago, el coste irá en función de diversas variables, como el servicio contratado, el tiempo que se ha usado ese servicio, el volumen de tráfico de datos utilizado, etc.

Asignación de recursos en modo multiusuario. A diferencia de las aplicaciones de software tradicionales, en el cloud computing el proveedor tiene una única aplicación que abre a todos los usuarios que desean utilizarla, estableciendo unos recursos de acceso y prestaciones distintos para cada usuario. Al ser aplicaciones multiusuario, puede hacer miles de internautas utilizando la misma herramienta a la vez, cada uno con las mismas o distintas prestaciones.

Supervisión del servicio. Los sistemas en cloud controlan y optimizan el uso de los recursos de manera automática, por lo que el uso de estos puede seguirse, controlarse y notificarse, lo que aporta transparencia tanto para el proveedor como para el consumidor del servicio utilizado.

VENTAJAS Integración probada de servicios Red. Por su naturaleza, la tecnología de cloud computing se puede integrar

con mucha mayor facilidad y rapidez con el resto de las aplicaciones empresariales (tanto software tradicional como Cloud Computing basado en infraestructuras), ya sean desarrolladas de manera interna o externa.

Prestación de servicios a nivel mundial. Las infraestructuras de cloud computing proporcionan mayor capacidad de adaptación, recuperación completa de pérdida de datos (con copias de seguridad) y reducción al mínimo de los tiempos de inactividad.

Trabajo Investigativo, Programación aplicada

34

Page 35: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

Una infraestructura 100% de cloud computing permite también al proveedor de contenidos o servicios en la nube prescindir de instalar cualquier tipo de software, ya que éste es provisto por el proveedor de la infraestructura o la plataforma en la nube. Un gran beneficio del cloud computing es la simplicidad y el hecho de que requiera mucha menor inversión para empezar a trabajar.

Implementación más rápida y con menos riesgos, ya que se comienza a trabajar más rápido y no es necesaria una gran inversión. Las aplicaciones del cloud computing suelen estar disponibles en cuestión de días u horas en lugar de semanas o meses, incluso con un nivel considerable de personalización o integración.

Actualizaciones automáticas que no afectan negativamente a los recursos de TI. Al actualizar a la última versión de las aplicaciones, el usuario se ve obligado a dedicar tiempo y recursos para volver a personalizar e integrar la aplicación. Con el cloud computing no hay que decidir entre actualizar y conservar el trabajo, dado que esas personalizaciones e integraciones se conservan automáticamente durante la actualización.

Contribuye al uso eficiente de la energía. En este caso, a la energía requerida para el funcionamiento de la infraestructura. En los datacenters tradicionales, los servidores consumen mucha más energía de la requerida realmente. En cambio, en las nubes, la energía consumida es sólo la necesaria, reduciendo notablemente el desperdicio.

DESVENTAJAS

La centralización de las aplicaciones y el almacenamiento de los datos origina una interdependencia de los proveedores de servicios.

La disponibilidad de las aplicaciones está sujeta a la disponibilidad de acceso a Internet. Los datos "sensibles" del negocio no residen en las instalaciones de las empresas, lo que podría generar un

contexto de alta vulnerabilidad para la sustracción o robo de información. La confiabilidad de los servicios depende de la "salud" tecnológica y financiera de los proveedores de

servicios en nube. Empresas emergentes o alianzas entre empresas podrían crear un ambiente propicio para el monopolio y el crecimiento exagerado en los servicios.

La disponibilidad de servicios altamente especializados podría tardar meses o incluso años para que sean factibles de ser desplegados en la red.

La madurez funcional de las aplicaciones hace que continuamente estén modificando sus interfaces, por lo cual la curva de aprendizaje en empresas de orientación no tecnológica tenga unas pendientes significativas, así como su consumo automático por aplicaciones.

Seguridad. La información de la empresa debe recorrer diferentes nodos para llegar a su destino, cada uno de ellos (y sus canales) son un foco de inseguridad. Si se utilizan protocolos seguros, HTTPS por ejemplo, la velocidad total disminuye debido a la sobrecarga que éstos requieren.

Escalabilidad a largo plazo. A medida que más usuarios empiecen a compartir la infraestructura de la nube, la sobrecarga en los servidores de los proveedores aumentará, si la empresa no posee un esquema de crecimiento óptimo puede llevar a degradaciones en el servicio o altos niveles de jitter.

El jitter se define técnicamente como la variación en el tiempo en la llegada de los paquetes, causada por congestión de red, perdida de sincronización o por las diferentes rutas seguidas por los paquetes para llegar al destino . El jitter suele considerarse como una señal de ruido no deseada. En general se denomina jitter a un cambio indeseado y abrupto de la propiedad de una señal. Esto puede afectar tanto a la amplitud como a la frecuencia y la situación de fase. El jitter es la primera consecuencia de un retraso de la señal.

Privacidad. La información queda expuesta a terceros que pueden copiarla o acceder a ella.

TIPOS DE NUBES

Existen diversos tipos de nubes (cloud computing) atendiendo a las necesidades de las empresas, al modelo de servicio ofrecido y a como se desplieguen en las mismas.Dependiendo de donde se encuentren instaladas las aplicaciones y qué clientes pueden usarlas tendremos nubes públicas, privadas o híbridas, cada una de ellas con sus ventajas e inconvenientes Las nubes públicas, los servicios que ofrecen se encuentran en servidores externos al usuario, pudiendo tener acceso a las aplicaciones de forma gratuita o de pago.se manejan por terceras partes, y los trabajos de muchos clientes

Trabajo Investigativo, Programación aplicada

35

Page 36: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

diferentes pueden estar mezclados en los servidores, los sistemas de almacenamiento y otras infraestructuras de la nube. Los usuarios finales no conocen qué trabajos de otros clientes pueden estar corriendo en el mismo servidor, red, discos como los suyos propios. La ventaja más clara de las nubes públicas es la capacidad de procesamiento y almacenamiento sin instalar máquinas localmente, por lo que no tiene una inversión inicial o gasto de mantenimiento en este sentido, si no que se paga por el uso. La carga operacional y la seguridad de los datos (backup, accesibilidad, etc.) recae íntegramente sobre el proveedor del hardware y software, debido a ello, el riesgo por la adopción de una nueva tecnología es bastante bajo. El retorno de la inversión se hace rápido y más predecible con este tipo de nubes. A veces puede resultar difícil integrar estos servicios con otros sistemas propios.Las nubes privadas, las plataformas se encuentran dentro de las instalaciones del usuario de la misma y no suele ofrecer servicios a terceros. Son una buena opción para las compañías que necesitan alta protección de datos y ediciones a nivel de servicio. Como ventaja de este tipo de nubes, al contrario que las públicas, es la localización de los datos dentro de la propia empresa, lo que conlleva a una mayor seguridad de estos, corriendo a cargo del sistema de información que se utilice. Incluso será más fácil integrar estos servicios con otros sistemas propios. Las nubes privadas están en una infraestructura local manejada por un solo cliente que controla qué aplicaciones debe correr y dónde. Son propietarios del servidor, red, y disco y pueden decidir qué usuarios están autorizados a utilizar la infraestructura. Sin embargo, como inconveniente se encuentra la inversión inicial en infraestructura física, sistemas de virtualización, ancho de banda y seguridad, lo que llevará a su vez a pérdida de escalabilidad y desescabilidad de las plataformas, sin olvidar el gasto de mantenimiento que requiere. Esta alta inversión supondrá un retorno más lento de la inversión.Las nubes híbridas combinan los modelos de nubes públicas y privadas. Esto permite a una empresa mantener el control de sus principales aplicaciones, al tiempo de aprovechar el Cloud Computing publica solamente cuando resulte necesario. Usted es propietario de unas partes y comparte otras, aunque de una manera controlada. Las nubes híbridas ofrecen la promesa del escalado aprovisionada externamente, en-demanda, pero añaden la complejidad de determinar cómo distribuir las aplicaciones a través de estos ambientes diferentes. Una nube híbrida tiene la ventaja de una inversión inicial más moderada y a la vez contar con SaaS, PaaS o IaaS bajo demanda. En el momento necesario, utilizando las APIs de las distintas plataformas públicas existentes, se tiene la posibilidad de escalar la plataforma todo lo que se quiera sin invertir en infraestructura. Este tipo de nubes está teniendo buena aceptación en las empresas de cara a un futuro próximo, ya que se están desarrollando softwares de gestión de nubes para poder gestionar la nube privada y a su vez adquirir recursos en los grandes proveedores públicos.Nube comunitaria: El Instituto Nacional de Estándares y Tecnologías (NIST por sus siglas en inglés) define este modelo como aquel que se organiza con la finalidad de servir a una función o propósito común (seguridad, política…), y son administradas por las organizaciones constituyentes o terceras partes. Cuyas funciones y servicios sean comunes, permitiendo con ello la colaboración entre grupos de interés.

Trabajo Investigativo, Programación aplicada

36

Page 37: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

Clase fundamentales del Cloud Computing En la actualidad, hay muchísimas empresas que prestan servicios en la nube. Aunque estos servicios pueden parecer muy diferentes, pueden verse como una combinación de tres modelos de servicio básicos:

Infraestructura como servicio: (Infraestructure as a Service, IaaS). En este caso, el proveedor proporciona al cliente cierta capacidad de almacenamiento y cierta capacidad de procesamiento. Así, el proveedor proporciona a sus clientes una o más máquinas virtuales, que residen en sus servidores y con las el que el cliente puede hacer lo que quiera: desde instalar y desinstalar programas hasta cambiar el sistema operativo. Es importante notar que el cliente, y no el proveedor, es el responsable de configurar las máquinas virtuales.

Plataforma como servicio: (Platform as a Service, PaaS). Modelo en el que se ofrece todo lo necesario para soportar el ciclo de vida completo de construcción y puesta en marcha de aplicaciones y servicios web completamente disponibles en internet. Al contrario que el caso anterior, en este tipo de servicio el proveedor proporciona al cliente un sistema operativo y un conjunto de programas que satisfacen sus necesidades, es decir, servidores web, máquinas que llevan la contabilidad de una empresa,… Con este servicio, el cliente se olvida de la configuración de las máquinas virtuales, ya que de eso se encarga el proveedor del servicio.

Software como servicio: (Software as a Service, SaaS): Modelo de distribución de software donde una empresa sirve el mantenimiento, soporte y operación que usará el cliente durante el tiempo que haya contratado el servicio. El cliente usará el sistema alojado por esa empresa, la cual mantendrá la información del cliente en sus sistemas y proveerá los recursos necesarios para explotar esa información. En este caso el proveedor ofrece a sus clientes un programa, que se ejecutará en sus servidores y que generalmente se alquila por un determinado tiempo. Así, los clientes sólo pagarán por el tiempo que necesiten utilizarlo. Un ejemplo de este servicio es Google Docs, con el que puedes abrir y editar documentos de distinto tipo, como un documento de texto o una hoja de cálculo.

Cada una de las organizaciones atendidas por el vendedor se llama a un inquilino (tenant), y este tipo de arreglo se denomina arquitectura multitenant. Los servicios vendidos son prácticamente virtualizados (o divididos) de manera que cada organización trabaja con una aplicación personalizada en una instancia virtual. Para los clientes, SaaS no requiere inversión inicial en servidores o licencias de software. Para el desarrollador de aplicaciones.Por otra parte, existen otros servicios que combinan los anteriores y que se utilizan mucho hoy en día. Entre ellos, destacan: Almacenamiento como servicio: (Storage as a Service, DaaS: Datawarehouse as a Service). Permite al usuario

guardar sus archivos en la nube y acceder a ellos desde un dispositivo conectado a internet. Dos ejemplos muy conocidos son Dropbox y el recién estrenado Mega.

Escritorio como servicio: (Desktop as a Service): En este caso los usuarios acceden  a un escritorio con las aplicaciones listas para usarse.

Comunicaciones como servicio: (CaaS: Communications as a Service) Como la necesidad de una garantía de calidad de servicio (QoS) para la comunicación de la red crece para los sistemas de Cloud Computing, la comunicación se convierte en un componente vital de dicha infraestructura. En consecuencia, los sistemas de Cloud Computing están obligados a proporcionar cierta capacidad de comunicación orientada al servicio, configurable, programables, predecibles y fiables. Con este objetivo, el concepto de Comunicación como Servicio (CaaS) surge en apoyo de tales requisitos, así como seguridad de redes, aprovisionamiento dinámico de superposiciones virtuales para el aislamiento de tráfico o ancho de banda dedicado, el cifrado de comunicaciones y monitoreo de redes. Desde el punto de vista de la Web 2.0, CaaS unifica las redes sociales, Cloud Computing,

Trabajo Investigativo, Programación aplicada

37

Page 38: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

y los teléfonos inteligentes o Smartphones, proporcionándoles nubes tecnológicas que permiten a los usuarios comunicarse a través de voz, texto, y multimedia en cualquier dispositivo que prefiera utilizar. Para competir en este mercado, los fabricantes de software, las empresas, y los proveedores de servicios deben introducir los servicios de comunicaciones avanzadas que responden a una necesidad creciente para el valor, la eficiencia, la reducción de costos, y conveniencia.

Para satisfacer estas necesidades, los proveedores de nube CaaS ofrecerán servicios de telecomunicaciones que pueden ser integrados en aplicaciones de software y los servicios Web. La idea es relativamente nueva: los vendedores pueden tomar ventaja de este enfoque, añadiendo los servicios de voz a aplicaciones, utilizando un sistema basado en los estándares de la API asociada al servicio. CaaS pueden incluir capacidades de voz sobre IP (VoIP), mensajería instantánea, conferencias, colaboración, y aplicaciones de videoconferencia utilizando dispositivos fijos y móviles. El resultado final de este proceso impulsado por CaaS es más comúnmente conocido como Communications Enabled Business Processes (CEBP). Al proporcionar estas capacidades de comunicaciones para dispositivos móviles y oficinas en casa fuera de los límites empresariales tradicionales, los empleados pueden elevar el servicio al cliente a nuevos niveles personalizados. Los profesionales de servicio al cliente pueden resolver los problemas más rápidamente y las ventas de representantes pueden contactar con perspectivas de gran alcance y las formas personales.  Una plataforma de CaaS abierta también puede redefinir comunicaciones de emergencia y de crisis y la planificación de las empresas. Al crear definiciones de escenarios de crisis, la comunicación puede ser desencadenada por eventos predefinidos, tales como desastres naturales o de otro tipo de crisis. Por ejemplo, un fallo del equipo en una planta de energía podría iniciar SMS o notificaciones de voz a todos los administradores y los ingenieros de mantenimiento correspondiente. Si es necesario, puede iniciar una llamada de conferencia a un grupo predefinido de respuesta de emergencia para evaluar la situación de emergencia y aplicar un plan de crisis.

MICROSOFT AZURE 

Es el sistema operativo en la nube de Microsoft. Proporciona un entorno gestionado para la ejecución y el despliegue de aplicaciones y servicios en la nube. Windows Azure proporciona a los desarrolladores un entorno de computación bajo demanda y almacenamiento alojado en los centros de datos de Microsoft para aplicaciones en la web.Aunque Windows Azure permite reutilizar todos los conocimientos de .NET es también una plataforma abierta a otros lenguajes y plataformas mediante el uso de estándares y el soporte para lenguajes ajenos a la plataforma .Net como, por ejemplo, PHP, lenguajes no manejados como C/C++ nativo, así como soporte para el protocolo FastCGI.Entre las ventajas de Windows Azure se encuentran la reducción de costes de operación y aprovisionamiento de las aplicaciones, la respuesta rápida a cambios en las necesidades de los clientes y el negocio, la capacidad para escalar según las necesidades de la aplicación, etc…

Trabajo Investigativo, Programación aplicada

38

Page 39: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

Desde el punto de vista del desarrollo con .NET, Windows Azure permite ejecutar aplicaciones ASP.NET y código .NET en la nube, proporcionando una plataforma de ejecución basada, a día de hoy, en el framework de .NET 4.0 e IIS 7, complementado con un API de almacenamiento y de “tracing” propios de la plataforma Azure. Ofrece un portal que permite gestionar las aplicaciones Azure de una manera cómoda y natural.El entorno de ejecución de Windows Azure es ‘full trust’ lo que permite ejecutar servicios de  Windows Communication Foundation e incluso llamar a código nativo desde las aplicaciones Azure basadas en .NET.Además Windows Azure va a proporcionar servicios de almacenamiento no relacional y colas con acceso autenticado, alta redundancia (triple) y accesible mediante una interfaz REST que se puede utilizar desde cualquier lenguaje que tenga la capacidad de realizar peticiones HTTP, que es tanto como decir cualquier lenguaje moderno.

Ventajas Ejecutar procesos genéricos en la nube. Crear, modificar y distribuir aplicaciones escalables con un mínimo de recursos internos. Realizar almacenamiento de alto volumen, procesamiento de lotes y cómputos intensos o de alto volumen. Crear, evaluar, depurar y distribuir servicios web con rapidez y de forma accesible. Llevar sus ideas al mercado con mayor rapidez y paga cuando lo obtiene. Reduce costes de generación y extensión de recursos internos. Reduce el esfuerzo y los costes de administración de TI Responde con rapidez a los cambios de las necesidades

de su empresa y sus clientes. Amplía y reduce sus recursos de TI en función de sus necesidades. Consume recursos de informática SOLO cuando surgen la necesidad. Se enfoca menos en administrar restricciones y recursos operativos. Elimina la necesidad de administrar hardware. Utiliza sus actuales habilidades de desarrollo para crear aplicaciones en la nube.

Esta plataforma empresarial probada que se utiliza en Skype, Office 365, Bing y Xbox. Azure ofrece un contrato de nivel de servicio con una disponibilidad del 99,95 %, soporte técnico continuado y una supervisión puntual del estado del servicio. Por este motivo, más del 57 % de las empresas de la lista Fortune 500 confían hoy en día en Azure. Desde el streaming en vivo de eventos olímpicos hasta juegos en línea para varios jugadores, nuestros clientes están consiguiendo objetivos increíbles.

AMAZON ELASTIC COMPUTE CLOUD (AMAZON EC2)

Es una parte central de la plataforma de cómputo en la nube de la empresa Amazon.com denominada Amazon Web Services(AWS). EC2 permite a los usuarios rentar computadores virtuales en los cuales poder correr sus propias aplicaciones. Este tipo de servicio supone un cambio en el modelo informático al proporcionar capacidad informática con tamaño modificable en la nube, pagando por la capacidad utilizada. En lugar de comprar o alquilar un determinado procesador para utilizarlo varios meses o años, en amazon elastic compute cloud (amazon EC2) se alquila la capacidad por horas.Amazon EC2 se apoya en las tecnologías de virtualización, permitiendo utilizar gran variedad de sistemas operativos a través de sus interfaces de servicios web, personalizarlos, gestionar permisos de acceso a la red y ejecutar tantos sistemas como desee.EC2 permite el despliegue escalable de aplicaciones proveyendo un servicio Web a través del cual un usuario puede montar una Imagen de Máquina Amazon para crear una máquina virtual, llamada por Amazon "instancia", la cual contendrá cualquier software deseado. Un usuario puede crear, lanzar y finalizar instancias de servidor tanto como necesite, pagando por hora por servidor activo, de ahí el término "elástico". EC2 provee a los usuarios control sobre localizaciones geográficas de instancias que permiten la optimización de latencia y altos niveles de redundancia.Amazon EC2 posee una interfaz de servicios web para iniciar y configurar el servicio. Proporciona un control completo de los recursos y reduce el tiempo de arranque de sus servidores, lo que permite escalar recursos

Trabajo Investigativo, Programación aplicada

39

Page 40: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

rápidamente según las necesidades del usuario. Asimismo, provee herramientas de recuperación de datos y fuerte aislamiento frente a otros procesos realizados en sus máquinas.TeamLab AMI (Amazon Machine Image) es su propia máquina con la plataforma TeamLab preinstalada. Se ofrece gratis como una parte del servicio Amazon EC2 que permite ejecutar una instancia (máquina virtual) en los servicios seguros de la nube de Amazon.

VENTAJAS

Cambia el modelo económico de la informática, al permitir pagar solo por la capacidad que utiliza realmente. Amazon EC2 proporciona a los desarrolladores las herramientas necesarias para crear aplicaciones resistentes a errores y para aislarse de los casos de error más comunes.

Informática a escala web elásticaAmazon EC2 permite aumentar o disminuir la capacidad en minutos, no en horas ni en días. Puede enviar una, cientos o incluso miles de instancias del servidor simultáneamente. Desde luego, como todo esta operación se controla con API de servicio web, la aplicación se escalará (aumentará o disminuirá su capacidad) dependiendo de sus necesidades. 

Totalmente controladoTendrá un control total sobre sus instancias. Tiene acceso de usuario raíz a todas ellas, y puede interactuar con ellas como con cualquier otra máquina. Puede detener su instancia y mantener los datos en su partición de arranque, para reiniciar a continuación la misma instancia a través de las API del servicio web. Las instancias se pueden reiniciar de forma remota mediante las API del servicio web. Asimismo, tiene acceso a la emisión de consola de sus instancias. 

Servicios de alojamiento en la nube flexiblesTendrá la posibilidad de elegir entre varios tipos de instancia, sistemas operativos y paquetes de software. Amazon EC2 permite seleccionar una configuración de memoria, CPU y almacenamiento de instancias, así como el tamaño de la partición de arranque óptimo para su sistema operativo y su aplicación. Por ejemplo, entre sus opciones de sistemas operativos se incluyen varias distribuciones de Linux y Microsoft Windows Server.

SeguridadAmazon EC2 funciona junto con Amazon VPC para proporcionar una funcionalidad de red sólida y segura para sus recursos informáticos.

Sus instancias informáticas se ubican en una Virtual Private Cloud (VPC) con el rango de IP que especifique. Usted decide las instancias que se exponen en Internet y las que permanecen privadas.

Los grupos de seguridad y las ACL de red le permiten controlar el acceso entrante y saliente a la red a y desde sus instancias.

Puede conectar su infraestructura de TI a los recursos en su VPC mediante conexiones VPN IPsec cifradas estándar del sector.

Puede aprovisionar sus recursos de EC2 como instancias. Las instancias dedicadas son instancias de Amazon EC2 que se ejecutan en hardware dedicado a un único cliente para ofrecer más aislamiento.

AsequibilidadAmazon EC2 le permite disfrutar de las ventajas financieras de la escala de Amazon. Pagará una tarifa muy baja por la capacidad informática que realmente utiliza.

Fácil de empezarPuede comenzar a utilizar Amazon EC2 con rapidez; para ello, visite AWS Marketplace, donde podrá seleccionar el software pre configurado en las imágenes de máquina de Amazon (AMI). Puede implementar este software con rapidez en EC2 gracias al lanzamiento de 1-Click o con la consola de EC2.

ONEDRIVE

OneDrive es un servicio de almacenamiento gratuito en línea que viene con la cuenta Microsoft (es la nube de Microsoft que te permite guardar tus archivos o documentos en línea y acceder a ellos desde cualquier lugar o equipo con conexión a Internet). Es como un disco adicional que también está disponible desde todos los dispositivos que uses. Ya no necesitas enviarte archivos por correo electrónico o transportar (y posiblemente perder) una unidad de

Trabajo Investigativo, Programación aplicada

40

Page 41: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

memoria flash USB. En vez de eso, no importa si estás trabajando con tu equipo portátil en una presentación, viendo fotos de las últimas vacaciones familiares en tu nueva tableta o revisando la lista de compras en tu teléfono, puedes acceder a tus archivos en OneDrive.Es muy sencillo comenzar con OneDrive. Puedes agregar archivos que ya están en tu equipo a OneDrive al copiarlos o moverlos desde tu equipo. Cuando guardas archivos nuevos puedes elegir hacerlo en  OneDrive, para que puedas acceder a ellos desde cualquier dispositivo y puedas compartirlos con otros. Y si tu equipo tiene una cámara integrada, puedes guardar copias de tus fotos automáticamente en OneDrive, para que siempre tengas un respaldo.La principal característica que lo diferencia de los anteriores y que le da mucha ventaja, es su integración con la versión de Windows 8.1 y con Windows Phone en muchos dispositivos portables.OneDrive podemos usarlo para almacenar y guardar todo tipo de archivos en la nube de forma tal que estén disponibles para cualquier equipo o dispositivo.Para usar OneDrive solo necesitamos poseer una cuenta de Microsoft, Si ya tienes una cuenta de correo en Outlook.com con ella basta. O también tenemos la posibilidad de crearla gratis.

CARACTERISTICAS Office Online: Office Online (anteriormente: Office Web Apps) es parte de OneDrive que permite a los

usuarios cargar, crear, editar y compartir documentos de Microsoft Office directamente dentro de un navegador web. Incluye versiones de Microsoft Word, Excel, PowerPoint, y OneNote, y proporciona funcionalidades para que los usuarios puedan colaborar en los documentos almacenados en OneDrive. Los documentos generados tienen respaldos incrementales por medio de Versión Historia (sólo OneDrive for Business, incluido en Office 365 y SharePoint online)

Uso compartido de favoritos: Permite el intercambio de vínculos de la web marcados entre los usuarios. Los enlaces a sitios web se almacenan en una carpeta dentro de OneDrive.

Integración con Grupos: A cada grupo se le proporcionan 5 GB de espacio de almacenamiento en OneDrive, que se comparten entre los miembros del grupo. A los miembros del grupo se les permite acceder, crear, modificar y eliminar archivos dentro de las carpetas de OneDrive del grupo, así como otras funcionalidades que ofrece OneDrive.

RSS Feeds: Es posible suscribirse a los RSS feeds del contenido de las carpetas públicas. Los feeds contienen imágenes de vista previa de los archivos agregados — ya sea una miniatura de una imagen o un icono que representa el tipo de archivo: y páginas de descarga de vínculos al archivo.

Descargar un archivo.zip: Los directorios completos pueden descargarse en un archivo.zip sólo con esta característica. Esta característica se encuentra en el menú desplegable "Más".

Fotos: Fotos permite a los usuarios cargar fotos y dejar que otros usuarios accedan a ellos a través de un explorador web. permite la posibilidad de mover, copiar y eliminar archivos. Además permite a los usuarios agregar "personas etiquetadas" a sus fotos. Las fotos almacenadas pueden descargarse en Windows Photo Gallery o como un archivo ZIP, manteniendo los metadatos de "personas etiquetas" en las imágenes. Los usuarios también pueden ver los metadatos EXIF como información de cámara para las fotos.

App: Microsoft ha publicado las aplicaciones de OneDrive para Android, iOS, Windows 8 y Windows Phone que permiten a los usuarios buscar, ver y organizar archivos almacenados en su almacenamiento de nube de SkyDrive y una App para Nokia Belle solo para subir imágenes. Además, Microsoft también lanzó las aplicaciones de escritorio para Microsoft Windows y OS X que permiten a los usuarios sincronizar su almacenamiento OneDrive con todos sus equipos para el acceso sin conexión y sincronización de archivos y carpetas entre varios equipos. El cliente de escritorio de OneDrive para Windows de Microsoft permite a los usuarios "ver" el contenido de su PC a través del navegador web, siempre que el usuario tenga habilitado esta opción.

MICROSOFT OFFICE 365

Este servicio de suscripción ofrece las herramientas web que permiten acceso a correo, documentos, contactos y calendarios desde casi cualquier lugar y con cualquier dispositivo. Es una solución de arrendamiento del paquete Microsoft Office (Excel, Word, PowerPoint, Outlook y Access) por pagos mensuales en vez de pagar el producto completo por un precio elevado. Normalmente 365 se adquiere pagando plazos por un número de meses a usar desde la página de Microsoft, sin embargo para quienes no quieran pagarlo así, está disponible (aunque es extremadamente

Trabajo Investigativo, Programación aplicada

41

Page 42: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

difícil de encontrar) una edición física de Office 365. En este caso el máximo tiempo de uso del producto es de un año.

Las herramientas que conjunta son: correo electrónico y calendario; Office Web Apps; sitios web y colaboración; y mensajería instantánea y conferencias en línea. De este modo es posible trabajar cómo, cuándo, y dónde se requiera, lo que permite responder de manera oportuna peticiones importantes de negocios.

La edición básica tiene las apps mencionadas y temporalmente espacio OneDrive de 1  Terabyte para fomentar el trabajo en La nube. Soluciones para profesionales y empresas incluyen Exchange Online -correo electrónico empresarial con calendarios de uso compartido, correo de voz y mensajería unificada, correo electrónico móvil, buzones de 25GB, Lync On Line -conferencias de audio y video de PC a PC y para crear reuniones en línea con uso compartido del escritorio-, y SharePoint Online para crear sitios para compartir documentos e información con colegas y clientes, extranet para compartir archivos de gran tamaño y acceso sin conexión a documentos a través de espacios de trabajo.

La desventaja con respecto a Office 2013 es que nunca compras el software una vez sino que deberás continuar pagando la suscripción. Pero, de otro modo, con Office 365 siempre dispondrás del programa actualizado.Con Office 365 se es capaz de editar documentos en cualquier explorador con Web Apps, revisar correo electrónico en cualquier dispositivo, realizar reuniones en línea para ver y escuchar a socios y clientes, además de que se pueden editar documentos de manera simultánea, para así tener un negocio más eficiente y productivo y lo mejor, todo esto desde la nube y a precio bastante accesible.

GOOGLE DRIVE

Google Drive es un servicio de alojamiento de archivos fue introducido por Google el 24 de abril de 2012, permite a los usuarios almacenar de forma centralizada todos sus archivos de Google Docs y sincronizar estos archivos en todos sus dispositivos, Los archivos serán accesibles desde el navegador web, el cliente de Google Drive y la Google Drive Mobile app.

Google Drive y Google Docs son los componentes de un servicio integrado que proporciona un espacio único para almacenar, crear, modificar, compartir y acceder a documentos, archivos y carpetas de todo tipo. Es el reemplazo de Google Docs que ha cambiado su dirección URL, entre otras cualidades. Cada usuario cuenta con 15 gigabytes de espacio gratuito para almacenar sus archivos, ampliables mediante diferentes planes de pago. Es accesible a través del sitio web desde computadoras y dispone de aplicaciones para Android e iOS que permiten editar documentos y hojas de cálculo. Con el lanzamiento de Drive, Google unificó el almacenamiento disponible para un único usuario de tal manera que en esos 15 GB se guardan también los mensajes de correo-e de Gmail y las imágenes de Google+ que superen los 2048 x 2048 píxeles.

Google Docs está formado por los editores de documentos, hojas de cálculo, presentaciones, dibujos y formularios de Google. Se trata de documentos online alojados en la nube y que ofrecen funciones de colaboración en tiempo real.

Google Drive es el lugar donde se accede a todos tus archivos, incluidos los documentos de Google Docs y los archivos locales que Utiliza Google Drive para guardar todo tipo de archivos, incluidos documentos, presentaciones, música, fotos y vídeos. Puedes abrir muchos tipos de archivo directamente en tu navegador, incluidos los archivos PDF, archivos Microsoft Office, vídeos de alta definición y muchos tipos de archivos de imagen, aunque no tengas instalado el programa correspondiente en tu ordenador. Mantiene actualizados todos los elementos automáticamente, así que puedes realizar modificaciones y acceder a la última versión desde cualquier lugar.Frente al anterior sistema de visualización fuera de línea denominado Google Docs Sin Conexión, el nuevo sistema de Google Drive permite mover y eliminar documentos de Google sin estar conectado a Internet. Al conectarse, Google Drive refleja estos cambios en la nube. Incluso es posible recuperar documentos Google de la papelera de la PC.

El sistema de sincronización de archivos permite al usuario:

Trabajo Investigativo, Programación aplicada

42

Page 43: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

Editar sus archivos en el PC y tenerlos disponibles en la nube, Contar con respaldo automático. Contar con un control de versiones, pudiendo acceder a versiones anteriores de un archivo después de ser

modificado. Incluye opciones de búsqueda potentes (incluso la capacidad de buscar texto en imágenes) para que puedas

encontrar rápidamente lo que buscas en la nube.  Realizar subidas o bajadas masivas de archivos, respetando la estructura de carpetas. Google Docs permite que los usuarios de telefonía móvil puedan navegar por sus documentos de Google

Docs. Los usuarios pueden ver y pueden editar los documentos. Siempre tendrás una copia de tus datos en la Web. No importa lo que pase con tus dispositivos, tus archivos están seguros. Se mantiene la misma calidad

empresarial de protección de datos y las mismas ventajas en seguridad que ofrece Google Apps. Integración con el navegador: Podrás visualizar más de 30 formatos de archivos diferentes desde tu

navegador, sin necesidad de tener ningún software instalado.

ICLOUD

Es un sistema de almacenamiento nube o cloud computing de Apple Inc.. Fue lanzado el 12 de octubre de 2011. Desde julio de 2012, el servicio cuenta con más de 150 millones de usuarios.El servicio permite a los usuarios almacenar datos, como archivos de música, en servidores remotos para descargar en múltiples dispositivos como iPhones, iPods, iPads y las computadoras personales que funcionen con Mac OS X (Lion o más reciente) o Windows de Microsoft (Windows Vista o más reciente). También reemplaza al servicio de Apple Mobile Me, que actúa como un centro de datos de sincronización de correo electrónico, contactos, calendarios, marcadores, notas, listas de tareas y otros datos.

El sistema basado en la nube permite a los usuarios almacenar música, videos, fotos, aplicaciones, documentos, enlaces favoritos de navegador, recordatorios, notas, iBooks y contactos, además de servir como plataforma para servidores de correo electrónico de Apple y los calendarios.

Cada cuenta tiene 5 GB de almacenamiento gratuito, el contenido comprado de Apple iTunes (aplicaciones, música, películas y videos) se almacena de forma gratuita sin interferir en esos 5 GB. Todas las aplicaciones, películas y los archivos de música comprados a través de iTunes se descargan automáticamente a cualquier dispositivo registrado, por ejemplo, iPhones y computadoras. Cuando un usuario registra un nuevo dispositivo, todo el contenido de iTunes se puede descargar automáticamente. iOS reserva de dispositivo y restauración iCloud permite a los usuarios hacer copias de seguridad de dispositivos

iOS en línea, además se puede restaurar la copia de seguridad sin necesidad de conectarse a una computadora. Buscar Mi iPhone (Find my iPhone) iCloud permite a los usuarios rastrear la ubicación de su iPhone, iPod touch

o iPad. Un usuario puede ver la ubicación aproximada del dispositivo en un mapa (junto con un círculo que muestra el radio de imprecisión), mostrar un mensaje o emitir un sonido en el dispositivo (incluso si está en modo silencioso), cambiar la contraseña en el dispositivo y borrar de forma remota su contenido.

Bloqueo de Activación: es una nueva prestación que impide que otra persona use tu iPhone, iPad o iPod touch en caso de que se te pierda. Empieza a funcionar en cuanto activas Buscar mi iPhone y, a partir de ese momento, serán necesarios tu ID de Apple y tu contraseña para desactivar Buscar mi iPhone, borrar tu dispositivo o reactivarlo. Así estará siempre seguro, aunque no sepas dónde. Borrado a distancia.A veces más vale prevenir que curar. Si te preocupa que tu dispositivo haya caído en las manos equivocadas, tal vez quieras hacer un borrado a distancia y restaurar tu iPhone, iPad, iPod touch o Mac a sus ajustes de fábrica. La app Buscar mi iPhone puede seguir mostrando tu mensaje personalizado aunque hayas borrado los datos de tu dispositivo. Y si lo recuperas, siempre puedes restaurar su contenido con la copia de seguridad de iCloud. Y aquí no ha pasado nada.

Sincronización de fotos (Photo Stream) Galería de fotos es un servicio suministrado con el servicio básico de iCloud que permite al usuario almacenar las 1000 fotos más recientes en los servidores de iCloud hasta 30 días

Trabajo Investigativo, Programación aplicada

43

Page 44: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

de forma gratuita. Cuando se toma una foto en un dispositivo con Sincronización de Fotos activado, se carga automáticamente a los servidores de iCloud, a partir de ahí, se envían automáticamente al resto de los dispositivos registrados. Apple ha anunciado que el servicio se integrará con el Apple TV, lo que permite a los usuarios ver de forma inalámbrica sus fotos recientes en su televisión de alta definición.

Volver a mi Mac (Back to my Mac) Volver mi Mac, antes parte de MobileMe, se incluye ahora con iCloud. Este servicio permite a los usuarios conectarse de forma remota a otros ordenadores configurados con el mismo ID de Apple donde Volver a mi Mac haya sido activado previamente.

Los datos en iCloud se guardan sin cifrar, por lo que Apple, el gobierno de los Estados Unidos pueden tener acceso a los datos

El problema, como siempre ocurre en el caso de Apple, es que la herramienta está eminentemente pensada para los usuarios de los dispositivos de la firma. De esta manera, tendrás que saltar algún que otro obstáculo antes de instalar esta herramienta, sobre todo si dispones del sistema operativo Windows. Si eres uno de estos últimos, te recomendamos que sigas estrictamente las instrucciones que ofrece Apple para iniciar iCloud en tu PC. Por supuesto, tendrás que olvidarte de ello si trabajas sobre cualquier otra plataforma.

Tú y cinco miembros más de la familia podéis compartir vuestras compras de iTunes, iBooks y el App Store, además de las fotos, calendarios y mucho más. Por fin reinará la armonía en casa (al menos en lo digital)

Con iCloud todo lo que compras en iTunes, iBooks y el App Store está disponible al instante en todos tus dispositivos. iTunes Match te permite almacenar toda tu colección musical en iCloud, incluso las canciones importadas desde CD o compradas fuera de iTunes.

DROPBOX

Es un servicio de alojamiento de archivos multiplataforma en la nube gratis, operado por la compañía Dropbox. El servicio permite a los usuarios almacenar y sincronizar archivos en línea y entre ordenadores y compartir archivos y carpetas con otros usuarios y con tabletas y móviles. Existen versiones gratuitas y de pago, cada una de las cuales tiene opciones variadas. Está disponible para Android, Windows Phone, Blackberry e IOS (Apple).El servicio "cliente de Dropbox" permite a los usuarios dejar cualquier archivo en una carpeta asignada. Ese archivo se sincroniza en la nube y en todas las demás computadoras del cliente de Dropbox.  Los archivos en la carpeta de Dropbox pueden entonces ser compartidos con otros usuarios de Dropbox, ser accesibles desde la página Web de Dropbox o bien ser compartidos mediante un enlace web de descarga directa, al que se puede acceder tanto de la versión web como desde la ubicación original del archivo en cualquiera de los ordenadores en las que se encuentre. Asimismo, los usuarios pueden grabar archivos manualmente por medio de un navegador web. Si bien Dropbox funciona como un servicio de almacenamiento, se centra en sincronizar y compartir archivos, y con un sistema que también permite hacerlo mediante usb. Además, posee soporte para historial de revisiones, de forma que los archivos borrados de la carpeta de Dropbox pueden ser recuperados desde cualquiera de los dispositivos sincronizados. Guarda hasta las últimas 4 versiones de cada fichero, por lo que no solo permite recuperar archivos borrados, sino versiones anteriores de un archivo que hayamos modificado. También existe la funcionalidad de conocer la historia de un archivo en el que se esté trabajando, permitiendo que una persona pueda editar y cargar los archivos sin peligro de que se pierdan las versiones previas.6 El historial de los archivos está limitado a un período de ""30 días"", aunque existe una versión de pago que ofrece el historial "ilimitado". El historial utiliza la tecnología de delta encoding. Para ahorrar ancho de banda y tiempo, si un archivo en una carpeta Dropbox de un usuario se modifica, Dropbox sólo carga las partes del archivo que han sido cambiadas cuando se sincroniza. Si bien el cliente de escritorio no tiene restricciones para el tamaño de los archivos, los archivos cargados por medio de la página Web están limitados a un máximo de 300 MB cada uno. Dropbox utiliza el sistema de almacenamiento S3 de Amazon para guardar los archivos y SoftLayer Technologies para su infraestructura de apoyo.

Seguridad:

La sincronización de Dropbox usa transferencias SSL y almacena los datos mediante el protocolo de cifrado AES-256. Hay que tener en cuenta que los datos se envían a la nube, almacenándose en lugares y países indeterminados, los responsables de Dropbox no firman un contrato de prestación de servicios con quien les confía sus ficheros, pudiéndose estar incumpliendo la Ley Orgánica 15/99 de Protección de Datos de Carácter Personal que tan sólo permite almacenar los datos en territorio de la UE.

Trabajo Investigativo, Programación aplicada

44

Page 45: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

Si hay alguna forma, en la actualidad, en la que Dropbox logra usuarios, es gracias a su alianza con Samsung. En prácticamente todos los dispositivos de Samsung Dropbox viene preinstalado, con una jugosa oferta en el que se dan hasta 48 GB por un año.Es normal, cuando compras un smartphone o una tablet de Samsung, lo primero es lanzarte a la aplicación de Dropbox y añadir esta capacidad a tu cuenta.Samsung necesita a Dropbox tanto como Dropbox necesita Samsung ya que esta no dispone de su propio servicio de almacenamiento en la nube.

SUGARSYNC

SugarSync es un servicio gratuito con el que podremos respaldar nuestros archivos online, y así poder acceder a ellos desde cualquier ordenador o dispositivo móvil conectado a Internet.

El uso de servicios de almacenamiento online nos provee de varias ventajas, la primera de ellas es poder compartir nuestros archivos con otras personas sin necesidad de que ellas estén presentes, pero además nos permite resguardar nuestros archivos importantes para poder acceder a ellos en caso de necesidad desde cualquier ordenador conectado a Internet. Nos permite mantener nuestros archivos seguros y disponibles por un buen tiempo, convirtiéndolo en una excelente alternativa para los usuarios que necesitan resguardar copias de seguridad o archivos muy importantes.

Características y Funciones de SugarSync

Una de las particularidades más interesantes de este servicio es que ha implementado un sistema de premios mediante el cual podremos expandir el espacio de nuestra cuenta con tan solo invitar a varios amigos. De esta manera podrás tener tu cuenta gratuita con 5Gb de espacio básico, más el espacio extra que ganes por aumentar la cantidad de usuarios de SugarSync.

Por otra parte, el manejo de la interfaz del servicio es realmente excelente, muy intuitivo y que nos permite ir acomodando los archivos que alojamos mediante carpetas.Los archivos serán automáticamente catalogados como “Archivos”, “Fotos” o “Recientes”, para que así puedas buscar más rápido entre ellos.

Este servicio ofrece una amplia integración con todo tipo de dispositivos móviles desde los cuales puedes acceder a tus archivos de forma segura y por sobre todas las cosas, rápidamente. Este servicio posee compatibilidad con móviles iPhone, Blackberry, Windows Mobile, Symbian y Android, como así también con los dispositivos iPad/iPod Touch y ordenadores Windows o Mac OS X. Como si fuera poco, permite realizar sincronizaciones de archivos en tiempo real con solo descargar la aplicación para nuestro dispositivo. Esta función también está integrada a la sincronización automática de múltiples dispositivos. Totalmente gratuito y en español, uno de los mejores servicios de almacenamiento online de toda la red.

Permite el acceso en streaming a los archivos de música. Podemos oír nuestra música (con internet) sin tener que descargar el archivo. Mientras trabajas en tus archivos respaldados continuamente a tu sitio web personal usando criptografía SSL. Luego en los servidores los datos se almacenan encriptaos con AES de 128 bits.

IV. EVOLUCIÓN DE LA WEB

1. Estados de la World Wide Web:

Web 1.0: Es la forma más básica que existe, con navegadores de sólo texto bastante rápidos. Después surgió el HTML que hizo las páginas web más agradables a la vista, así como los primeros navegadores visuales tales como IE, Netscape, Explorer (en versiones antiguas), etc.

Trabajo Investigativo, Programación aplicada

45

Page 46: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

La Web 1.0 es de sólo lectura. El usuario no puede interactuar con el contenido de la página (no puede comentar ni responder directamente), estando totalmente limitado a lo que el Webmaster sube a ésta.

Web 1.0 se refiere a un estado de la World Wide Web, y cualquier página web diseñada con un estilo anterior del fenómeno de la Web 2.0. Es en general un término que ha sido creado para describir la Web antes del impacto de la fiebre punto com en el 2001, que es visto por muchos como el momento en que el internet dio un giro.

Web 2.0: El término Web 2.0 está asociado a aplicaciones web que facilitan la comunicación bidireccional, el compartir información, la interoperabilidad 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 donde los usuarios se limitan a observar pasivamente los contenidos que se habían creado para ellos.

Gracias a la Web 2.0 un mismo contenido puede propagarse en muchos medios, se puede publicar un contenido y éste a la vez puede ser republicado en otros sitios gracias a las redes sociales, produciendo un efecto viral del contenido. (Efecto viral es el término con el que se llama al hecho de que un contenido haya recorrido la Red de forma rápida y exitosa, consiguiendo que miles de personas lo hayan visto o compartido).

Para compartir en la Web 2.0 se utilizan una serie de herramientas, entre las que se pueden destacar:o Blogs

o Wikis: Una wiki es un espacio web corporativo, organizado mediante una estructura

hipertextual de páginas (referenciadas en un menú lateral), donde varias personas elaboran contenidos de manera asíncrona.

o Entornos para compartir recursos: comunidades web, los servicios web, las aplicaciones

Web, los servicios de red social, los servicios de alojamiento de videos,. Todos estos entornos nos permiten almacenar recursos en Internet, compartirlos y visualizarlos desde Internet. Constituyen una inmensa fuente de recursos y lugares donde publicar materiales para su difusión mundial tales como documentos, videos, presentaciones, fotos)

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. Trata de poder enriquecer la comunicación mediante metadatos semánticos que aportan un valor añadido a la información, la diferencian y la hacen más inteligente. Por lo que los contenidos ahora ya no son tratados por su sintáctica sino por su semántica. En el protocolo HTML5 se incorporan elementos de la Web Semántica al permitir añadir etiquetas semánticas al contenido, así mismo, esta etapa de la Web se caracteriza por tecnologías y protocolos como SPARQL, OWL Ontology, y RDF que permiten otorgar un sentido semántico mediante meta información al contenido web.

Web 4.0: es un paradigma meramente teórico, actualmente nos encontramos en la era de la implementación de la Web 3.0, que a pesar de enunciar el paso a una web semántica, la interacción con el usuario se sigue dando como una interacción ente-objeto, o ente-máquina, la Web 4.0 es una

Trabajo Investigativo, Programación aplicada

46

Page 47: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

idea futurista, pues plantea el punto en el cual la interacción se dé como si se tratara de interacción ente-ente, esto mediante tecnologías de inteligencia artificial que al día de hoy son únicamente conceptos especulativos. En pocas palabras, la Web 4.0 plantea llevar la Web a algo más sofisticado que un mero almacén masivo de información. Tecnologías como el Speech to Text (Reconocimiento de voz y traducción a caracteres), el análisis de sentimientos, la visión artificial, el procesamiento de lenguaje natural, y nuevos modelos de comunicación máquina a máquina son parte de las herramientas de las que se valdrá la Web 4.0. El uso de la nube será increíblemente potenciado, esta consistirá de cientos de agentes artificiales virtuales que interactúan entre sí redirigiendo los procesos al agente más óptimo para desempeñarlos. La Web 4.0 se propone como meta además desdibujar las fronteras de lo offline y lo online, actualmente, para desempeñar tareas computacionales que son pesadas en cuanto a procesamiento nos valemos de hardware en la máquina local para satisfacer los requerimientos del software, la Web 4.0 se valdría casi completamente de la nube para la ejecución del software, así, en la mayoría de casos nuestro software se estaría ejecutando en súper-servidores a kilómetros de distancia de nuestra máquina local, que no sería más que un avatar de los procesos del servidor.

2. Internet2 (IPv6 – QoS)

Internet 2 es una red de ordenadores y computo, que utiliza tecnología de vanguardia para ofrecer una transmisión de datos sumamente veloz, que es completamente independiente a la red mundial conocida como Internet.

Internet 2 es una red originada inicialmente por un grupo de universidades norteamericanas para intercambiar información sin las molestas páginas comerciales. Al estar hecha exclusivamente sobre fibra óptica, las velocidades de transferencia de datos son increíblemente altas y con una gran fiabilidad. El principal objetivo de Internet 2, es desarrollar la plataforma de la próxima generación de aplicaciones telemáticas, mediante la cooperación de diferentes instituciones universitarias de todo el mundo, para potenciar la investigación, la comunicación y la educación.

El nacimiento de Internet 2, fue la culminación de los esfuerzos por llenar un vacío, que fue dejado hace mucho tiempo por Internet, ya que originalmente fue una red creada para fines netamente académicos, pero al convertirse en una red comercial, el espacio para los sitios académicos fue disminuyendo hasta ser casi nulo.Con Internet 2, se potencia el intercambio de información académica mejorando los sistemas educativos y permitiendo desarrollos tecnológicos importantes.

Gracias a Internet 2, se han desarrollado nuevas tecnologías, entre las que destacan: IPv6 y QoS.

IPv6: (Internet Protocol Version 6) o IPng (Next Generation Internet Protocol) es la nueva versión del protocolo IP (Internet Protocol). Ha sido diseñado por el IETF (Internet Engineering Task Force) para reemplazar en forma gradual a la versión actual, el IPv4.

En esta versión se mantuvieron las funciones del IPv4 que son utilizadas, las que no son utilizadas o se usan con poca frecuencia, se quitaron o se hicieron opcionales, agregándose nuevas características. El motivo básico para crear un nuevo protocolo fue la falta de direcciones. IPv4 tiene un espacio de direcciones de 32 bits, en cambio IPv6 ofrece un

Trabajo Investigativo, Programación aplicada

47

Page 48: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

espacio de 128 bits. El reducido espacio de direcciones de IPv4, junto al hecho de falta de coordinación para su asignación durante la década de los 80, sin ningún tipo de optimización, dejando incluso espacios de direcciones discontinuos, generan en la actualidad, dificultades no previstas en aquel momento.

Debido a la multitud de nuevas aplicaciones en las que IPv4 es utilizado, ha sido necesario agregar nuevas funcionalidades al protocolo básico, aspectos que no fueron contemplados en el análisis inicial de IPv4, lo que genera complicaciones en su escalabilidad para nuevos requerimientos y en el uso simultáneo de dos o más de dichas funcionalidades. Entre las más conocidas se pueden mencionar medidas para permitir la Calidad de Servicio (QoS), Seguridad (IPsec) y movilidad. Las características principales del IPv6 son:

o Mayor espacio de direcciones. El tamaño de las direcciones IP cambia de 32 bits a

128 bits, para soportar: más niveles de jerarquías de direccionamiento y más nodos direccionables.

o Simplificación del formato del Header. Algunos campos del header IPv4 se quitan o

se hacen opcionaleso Paquetes IP eficientes y extensibles, sin que haya fragmentación en los routers,

alineados a 64 bits y con una cabecera de longitud fija, más simple, que agiliza su procesado por parte del router.

o Posibilidad de paquetes con carga útil (datos) de más de 65.355 bytes.

o Seguridad en el núcleo del protocolo (IPsec). El soporte de IPsec es un

requerimiento del protocolo IPv6.o Capacidad de etiquetas de flujo. Puede ser usada por un nodo origen para etiquetar

paquetes pertenecientes a un flujo (flow) de tráfico particular, que requieren manejo especial por los routers IPv6, tal como calidad de servicio no por defecto o servicios de tiempo real. Por ejemplo video conferencia.

o Autoconfiguración: la autoconfiguración de direcciones es más simple.

Especialmente en direcciones Aggregatable Global Unicast, los 64 bits superiores son seteados por un mensaje desde el router (Router Advertisement) y los 64 bits más bajos son seteados con la dirección MAC (en formato EUI-64). En este caso, el largo del prefijo de la subred es 64, por lo que no hay que preocuparse más por la máscara de red. Además el largo del prefijo no depende en el número de los hosts por lo tanto la asignación es más simple.

o Renumeración y "multihoming": facilitando el cambio de proveedor de servicios.

o Características de movilidad, la posibilidad de que un nodo mantenga la misma

dirección IP, a pesar de su movilidad.o Ruteo más eficiente en el backbone de la red, debido a la jerarquía de

direccionamiento basada en aggregation.o Calidad de servicio (QoS) : son las siglas de Quality of Service, un conjunto de

tecnologías que garantizan la transmisión de cierta cantidad de información en un tiempo determinado a uno o varios dispositivos. QoS se usa principalmente en redes donde el ancho de banda es limitado. Como hay una gran cantidad de paquetes de red compitiendo por una cantidad relativamente pequeña de ancho de banda disponible, la calidad de servicio permite a los administradores asignar prioridades

Trabajo Investigativo, Programación aplicada

48

Page 49: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

más altas a los paquetes que contienen datos de audio o vídeo por su gran tamaño en memoria. Al asignar una prioridad más alta a estos paquetes, las comunicaciones de audio y vídeo probablemente se completen con mayor rapidez y con menos interrupciones que las sesiones de red que incluyen transferencias de archivos, exploración web o copias de seguridad de bases de datos. Esto se debe a que se asigna una prioridad de "mejor esfuerzo" a los paquetes de red usados para las transferencias de archivos o las copias de seguridad de bases de datos.

o Clase de servicio (CoS).

o Capacidades de autenticación y privacidad

3. Web Semántica

La Web Semántica es una Web extendida, dotada de mayor conciencia del significado y del contexto, en la que cualquier usuario en Internet podrá encontrar respuestas a sus preguntas de forma más rápida y sencilla gracias a una información mejor estructurada, esta hace parte de la fase de la Web 3.0. Al dotar a la Web de más significado y, por lo tanto, de más semántica, se pueden obtener soluciones a problemas habituales en la búsqueda de información gracias a la utilización de una infraestructura común, mediante la cual, es posible compartir, procesar y transferir información de forma sencilla. Esta Web extendida y basada en el significado, se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semántica en la que, en ocasiones, el acceso a la información se convierte en una tarea difícil y frustrante.

La Web semántica busca dotar al contenido web de la noción del significado de los datos que representa, para esto se vale de dotarlos de metadatos bien definidos y estructurados en función de la semántica, sobre los cuales la máquina puede operar para obtener interpretaciones. a Web Semántica utiliza esencialmente RDF, SPARQL, y OWL, mecanismos que ayudan a convertir la Web en una infraestructura global en la que es posible compartir, y reutilizar datos y documentos entre diferentes tipos de usuarios.

RDF: El Marco de Descripción de Recursos (del inglés Resource Description Framework, RDF) es una familia de especificaciones de la World Wide Web Consortium (W3C) originalmente diseñado como un modelo de datos para metadatos. RDF proporciona información descriptiva simple sobre los recursos que se encuentran en la Web y que se utiliza, por ejemplo, en catálogos de libros, directorios, colecciones personales de música, fotos, eventos, etc.

SPARQL: es un acrónimo recursivo del inglés SPARQL Protocol and RDF Query Language. SPARQL es lenguaje de consulta sobre RDF, que permite hacer búsquedas sobre los recursos de la Web Semántica utilizando distintas fuentes datos.

OWL es el acrónimo del inglés Web Ontology Language, es un mecanismo para desarrollar temas o vocabularios específicos en los que asociar esos recursos. Lo que hace OWL es proporcionar un lenguaje para definir ontologías estructuradas que pueden ser utilizadas a través de diferentes sistemas. Las ontologías, que se encargan de definir los términos utilizados para describir y representar un área de conocimiento, son utilizadas por los usuarios, las bases de datos y las aplicaciones que necesitan compartir información específica, es decir, en un campo determinado como puede ser el de las finanzas, medicina, deporte, etc. Las ontologías incluyen definiciones de conceptos básicos en un campo determinado y la relación entre ellos.

Trabajo Investigativo, Programación aplicada

49

Page 50: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

4. Redes académicas de alta velocidad

Las redes académicas de alta velocidad y tecnología avanzadas, son redes de computadoras, creadas con el único objetivo de ofrecer servicios a las actividades de investigación y desarrollo. Estas redes académicas se conectan unas a otras por medio de proveedores de servicios (ISP o empresas prestadoras de servicios de conexión a internet), pero los enlaces por los cuales se comunican éstas redes, son conexiones totalmente independientes de la internet comercial, es decir, que por los medios de comunicación existentes entre éstas redes, no circula tráfico comercial alguno, todo el tráfico está compuesto por información relacionada con algún proyecto de investigación y/o desarrollo. Internet2, previamente tratado, es un ejemplo de una red acadpemica de alta velocidad, esta es la principal de Estados Unidos.

Sus objetivos son:

Permitir el desarrollo de proyectos colaborativos. Ofrecer canales con grandes anchos de banda independientes del flujo de la Internet comercial. Ofrecer una plataforma de pruebas para el desarrollo de nuevas tecnologías informáticas, como es el

caso de la tele-medicina, el aprendizaje virtual, laboratorios virtuales, grid de computación, acceso a dispositivos remotos, supercomputadores, tele-inmersión, videoconferencias de alta definición, oficinas virtuales, Streaming (presentación de eventos en tiempo real), entre otras.

Garantizar comunicaciones eficientes a través de la implementación de QoS. Permitir un intercambio cultural entre los países participantes. Reducir sustancialmente la duplicación de esfuerzos, evitando la realización de un sólo proyecto más

de una vez en cualquier parte del mundo. Potenciar el intercambio de conocimientos, al permitir traer virtualmente el conocimiento de

expertos ubicados en cualquier parte del mundo donde exista una red participante. Potenciar la asociación con instituciones o grupos de investigación que permitan Incrementar el nivel de conocimientos en los grupos al interior de la Universidad Tecnológica de

Pereira (inicialmente, ya que el objetivo no es que sólo los grupos de esta universidad accedan y apliquen el conocimiento)

Algunas redes destacadas a nivel de Latinoamérica son:

Red CLARA, Latinoamérica: (Cooperación Latino Americana de Redes Avanzadas) es una corporación sin fines de lucro que desarrolla aplicaciones y tecnologías de redes académicas avanzadas para apoyar el desarrollo de la investigación, la innovación y la educación en América Latina. En cuanto a infraestructura (o e-Infraestructura), es una red telemática desarrollada por y para las Redes Nacionales de Investigación y Educación (RNIE – en inglés NREN: National Research and Education Network) de la región latinoamericana y las interconecta directamente con sus pares europeas, a través del enlace trasatlántico con GÉANT (red avanzada paneuropea) y, gracias a diversas conexiones y acuerdos internacionales, con Internet2 (Estados Unidos), Canarie (Canadá), APAN (Asia), AARNET (Oceanía) y UbuntuNet Alliance (África Sub-Sahara), entre otras.

La troncal (backbone) de RedCLARA está compuesta por diez nodos ruteadores principales, conectados en una topología punto-a-punto. Cada nodo principal (IP - Protocolo Internet) representa a un PoP (Punto de Presencia) para RedCLARA, nueve de ellos están ubicados en un país de

Trabajo Investigativo, Programación aplicada

50

Page 51: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

América Latina -São Paulo (SAO - Brasil), Buenos Aires (BUE - Argentina), Santiago (SCL - Chile), Lima (LIM - Perú), Guayaquil (GYE - Ecuador), Bogotá (BOG - Colombia), Panamá (PTY - Panamá), San Salvador (El Salvador) y Tijuana (TIJ - México)- y el décimo, en Miami (MIA - Estados Unidos).

Cuando una RNIE latinoamericana hace conexión con RedCLARA, lo hace a través de uno de los diez nodos de su troncal; esta conexión le brinda a estas redes y a sus miembros (clientes), acceso a RedCLARA, otorgándoles un Punto de Intercambio.

Red RUMBO, Colombia: Es una Red formada por un grupo de Universidades de Bogotá y su área de influencia que permite tener conexión a la red de tecnología avanzada para conectar, comunicar y propiciar estrategias de colaboración entre la comunidad académica y científica de Colombia, con la comunidad académica internacional y los centros de investigación más desarrollados del mundo. Está integrada por sedes universitarias, centros de investigación, bibliotecas que se encuentran en Bogotá y ciudades cercanas como Villavicencio y Fusagasugá. Su fin es el intercambio de información académica vía documentos, imágenes y videoconferencias. Para este fin se implementó una red alterna a la ya existente conexión a INTERNET, utilizando como medio, fibra óptica monomodo y anchos de banda de 30 MBs y 100 MBs

Red RENATA, Colombia: es la red nacional de investigación y educación de Colombia que conecta, articula e integra a los actores del Sistema Nacional de Ciencia Tecnología e Innovación (SNCTI) entre sí y con el mundo, a través del suministro de servicios, herramientas e infraestructura tecnológica para contribuir al mejoramiento del nivel de productividad, efectividad y competitividad de la producción científica y académica del país. RENATA transita sobre un ancho de banda de 200 Mbps. La infraestructura de la Red Nacional Académica de Tecnología Avanzada, RENATA, está basada en una topología de estrella jerárquica donde el punto central es la sede Morato de Colombia Telecomunicaciones en Bogotá, los puntos de la estrella los conforman los nodos principales de las Redes Académicas Regionales de las ciudades de Cali, Barranquilla, Medellín, Bucaramanga, Pereira (Eje Cafetero), Popayán y Bogotá, en donde se interconectan a cada uno de los operadores locales que manejan las redes metropolitanas de las universidades.

Los tres ejemplos de redes permiten conectarse usando el protocolo IPv6.

REFERENCIAS

1. http://www.w3c.es/Consorcio/2. http://www.w3c.es/Divulgacion/GuiasBreves/3. http://albertolacalle.com/diseno-estandares.htm4. https://developer.mozilla.org/es/docs/HTML/HTML55. http://rua.ua.es/dspace/handle/10045/169956. http://php.net/manual/es/intro-whatis.php7. http://www.subgurim.net/Articulos/asp-net-general/3/por-que-asp-net.aspx8. https://josemmsimo.wordpress.com/2012/07/30/jsf-caracteristicas-principales-ventajas-y-puntos-a-destacar/9. http://www.mclibre.org/consultar/php/lecciones/php_quees.html10. http://www.aprenderaprogramar.com/index.php?option=com_content&id=492:ique-es-php-y-ipara-que-sirve-un-

potente-lenguaje-de-programacion-para-crear-paginas-web-cu00803b&Itemid=19311. https://msdn.microsoft.com/es-es/library/4w3ex9c2(v=vs.100).aspx12. https://www.renata.edu.co/index.php/quienes-somos13. http://www.rumbo.edu.co/?page_id=15

Trabajo Investigativo, Programación aplicada

51

Page 52: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

14. http://www.rumbo.edu.co/?page_id=16115. http://www.redclara.net/index.php/red-y-conectividad/descripcion-tecnica16. http://es.wikipedia.org/wiki/OWL17. http://es.wikipedia.org/wiki/SPARQL18. http://es.wikipedia.org/wiki/Resource_Description_Framework19. http://www.w3c.es/Divulgacion/GuiasBreves/WebSemantica20. http://tecnura.udistrital.edu.co/ojs/index.php/revista/article/view/36421. http://www.muycomputer.com/2012/10/04/qos-que-es-para-que-sirve-y-como-habilitarlo-en-un-router-d-link22. http://www.rau.edu.uy/ipv6/queesipv6.htm23. http://www.tecnm.mx/telecomunicaciones/que-es-internet-224. http://www.paradigmatecnologico.com/portfolio/web-4-0/25. http://www.emprendedores.es/gestion/la-red-del-futuro/la-web-4.026. http://www.mclibre.org/consultar/htmlcss/otros/otros_historia_navegadores.html27. http://www.consultora-devian.net/inicio/noticias/52-de-la-web-10-a-la-web-4028. https://sergioperezromojaro.wordpress.com/2012/04/11/web20/29. http://www.html5rocks.com/en/tutorials/workers/basics/30. http://fernetjs.com/2012/11/websockets-y-socketio/31. http://www.telefoniavozip.com/voip/codecs-voip.htm32. http://servidato.com/files/Streaming.pdf33. http://www.microsiervos.com/archivo/internet/que-es-rss-y-xml-rdf-atom.html34. https://geekytheory.com/json-i-que-es-y-para-que-sirve-json/35. http://www.arquitecturajava.com/servicios-rest/36. Codd, Edgar F (junio de 1970). "Un modelo relacional de datos para grandes bancos de datos compartidos"37. "Derivability, Redundancy, and Consistency of Relations Stored in Large Data Banks", E.F. Codd, IBM Research

Report, 196938. Codd, E.F. (1970). "A Relational Model of Data for Large Shared Data Banks"39. E. F. Codd, The Relational Model for Database Management, Addison-Wesley Publishing Company, 199040. Tsitchizris, D. C. and F. H. Lochovsky (1982). Data Models. Englewood-Cliffs, Prentice–Hall.41. Jeffrey Ullman 1997: First course in database systems, Prentice–Hall Inc., Simon & Schuster, Page 142. Codd, E.F. (1970)."A Relational Model of Data for Large Shared Data Banks". In:Communications of the ACM43. "Structured Query Language (SQL)" . International Business Machines. 27 de octubre 200644. Arie Jones, Ryan K. Stephens, Ronald R. Plew, Alex Kriegel, Robert F. Garrett (2005),SQL Funciones Referencia del

programador . 45. Base de datos Lenguaje SQL-Parte 2: Fundación (SQL / Fundación). 1999.46. http://www.computacionennube.org47. http://doscontrol.com/cloud-computing/tipos-de-nubes48. http://es.wikipedia.org/wiki/Computaci%C3%B3n_en_la_nube49. https://cygnusclouducm.wordpress.com/2012/12/27/cloud-computing-parte-1-definicion/50. http://www.technoreeze.com/es/2011/07/25/cloud-computing-vi-almacenamiento-como-servicio-daas-y-

comunicaciones-como-servicio-caas/51. http://es.wikipedia.org/wiki/Microsoft_Office_36552. http://blogs.technet.com/b/microsoftlatam/archive/2011/05/05/191-qu-233-es-office-365.aspx53. http://windows.microsoft.com/es-xl/windows-8/getting-started-onedrive-tutorial54. http://es.wikipedia.org/wiki/Google_Drive55. http://gapps.upaep.mx/inicio/googledocs/google-drive/que-es-google-drive56. http://es.wikipedia.org/wiki/ICloud57. https://www.apple.com/es/icloud/58. https://www.fayerwayer.com/2014/06/por-que-es-el-momento-de-olvidar-dropbox/59. http://es.wikipedia.org/wiki/Dropbox60. https://sites.google.com/site/informaticseib/introduccion/herramientasenlanube/sugarsync61. http://es.slideshare.net/velasquekatya/sugarsync-1435786662. http://www.estoyenlanube.com/recursos/windows-azure/que-es-windows-azure/63. http://es.wikipedia.org/wiki/Amazon_EC264. http://aws.amazon.com/es/ec2/65. http://es.wikipedia.org/wiki/Internet_Information_Services66. https://technet.microsoft.com/es-es/library/hh831725.aspx67. http://es.wikipedia.org/wiki/GlassFish68. http://es.wikipedia.org/wiki/Tomcat

Trabajo Investigativo, Programación aplicada

52

Page 53: Bases de datos y tecnologías web

Universidad Distrital Francisco José de Caldas. Ruíz B. , Cuervo S. , Santos J. Trabajo investigativo “Bases de datos y Desarrollo Web”.

69. http://es.wikipedia.org/wiki/Node.js70. http://es.wikipedia.org/wiki/Sistema_de_gesti%C3%B3n_de_contenidos71. http://es.kioskea.net/contents/825-cms-sistema-de-gestion-de-contenido72. http://www.webempresa.com/joomla.html73. http://es.wikipedia.org/wiki/Joomla74. http://www.webempresa.com/que-es-wordpress.html75. http://es.wikipedia.org/wiki/WordPress

Trabajo Investigativo, Programación aplicada

53