lunes, 26 de noviembre de 2018

TECNOLOGIAS WEB

Las tecnologías Web sirven para acceder a los recursos de conocimiento disponibles en Internet o en las intranets utilizando un navegador. Están muy extendidas por muchas razones: facilitan el desarrollo de sistemas de Gestión del Conocimiento (en lo adelante GC), su flexibilidad en términos de escalabilidad, es decir, a la hora de expandir el sistema; su sencillez de uso y que imitan la forma de relacionarse de las personas, al poner a disposición de todos el conocimiento de los demás, por encima de jerarquías, barreras formales u otras cuestiones. Estas tecnologías pueden llegar a proporcionar recursos estratégicos, pero, evidentemente, no por la tecnología en sí misma, que está disponible ampliamente, sino por lo fácil que es personalizarla y construir con ella sistemas de GC propietarios de la empresa.
 
Internet, Intranet o extranet permiten a los usuarios el acceso a una gran cantidad de información: leer publicaciones periódicas, buscar referencias en bibliotecas, realizar paseos virtuales por museos, compras electrónicas y otras muchas funciones. Gracias a la forma en que está organizada la World Wide Web (WWW), los usuarios pueden saltar de un recurso a otro con facilidad.
Dentro de este grupo de tecnologías Web, podemos incluir los agentes inteligentes.

¿Qué es un agente inteligente?
Podemos definir al agente inteligente como una entidad software que, basándose en su propio conocimiento, realiza un conjunto de operaciones destinadas a satisfacer las necesidades de un usuario o de otro programa, bien por iniciativa propia o porque alguno de éstos se lo requiere.

Todos los agentes inteligentes son programas, pero no todos los programas que realizan búsquedas son agentes inteligentes. Los agentes en sí mismos pueden ser considerados como entidades individuales (partes de programa que tienen control sobre sus propias vidas y movimientos). Continuamente están realizando procesos que les indican qué hacer y cómo. Se comunican con otros agentes para resolver de forma adecuada su trabajo.

Últimamente la industria del software, con fines puramente comerciales, nos está mostrando aplicaciones catalogadas como agentes inteligentes que realmente no lo son. Éste es el caso del Ayudante de Microsoft Office (Clippo, Dr. Genio, Ridondo, etc.). Si aplicamos cada una de las propiedades de los agentes inteligentes a este Ayudante veremos que, como mucho, cumple la característica de la sociabilidad. Por tanto realmente no es lo que se enuncia, sino un simple programa que en determinados casos emula el comportamiento de los agentes inteligentes. Esta comparación es una buena forma de distinguir entre un agente inteligente y un programa convencional.

   IMPORTANCIA DEL DESARROLLO DE WEB
La naturaleza abierta de la web ofrece increíbles oportunidades para los desarrolladores que desean crear sitios web o aplicaciones online. para sacar el máximo provecho de las capacidades de la web, necesita saber como usarlo.

El desarrollo web en las últimas décadas ha ido transformando e impulsado la evolución de Internet, cada día son más grandes los avances que en este tema se trata, involucrando directamente el ingenio propio del desarrollador en el tema.

En la actualidad el desarrollo y la creación de sitios web se impone en el mundo como herramienta tecnológica par unir las regiones, crear negocios, soportar empresas, mostrarse en el mercado e infinidad de aplicaciones de acuerdo a las perspectivas de las personas y sus alcances, encontrando en la internet fuente vital de generación de empleos, negocios eficaces e inteligentes y gra ayuda en la consecución de objetivos y planteamientos.
LENGUAJES UTILIZADOS PARA SU DESARROLLO
entre los lenguajes para el desarrollo de paginas web encontramos los siguientes:
HTML
CSS
HTTP
HTML 
Es el lenguaje utilizado para crear páginas web. Una página web no es más que un documento de texto al que se le han añadido una serie de marcas (también llamadas etiquetas), conceptualmente similares a los estilos que se pueden aplicar al texto desde un programa como Microsoft Word. Algunos ejemplos de marcas son: <p> </p><img /><form> </form>.

Sin embargo, a diferencia de los estilos en un texto, las marcas sirven para dar estructura a la página web, asignando un significado muy concreto al texto comprendido entre ellas. Por ejemplo la marca <p> sirve para delimitar un párrafo de texto, y hay otras marcas para incrustar imágenes y otros elementos en la página web. Este mecanismo de estructuración de documentos mediante marcas permite procesar (de manera simple) las páginas web utilizando aplicaciones software, como por ejemplo un navegador web.
Un navegador no es más que una aplicación software que entiende una serie de protocolos y estándares, entre ellos el HTML, de modo que cuando recibe una página web va interpretando las distintas marcas HTML que contiene. El resultado de este procesamiento será desde modificar la barra de título del navegador para mostrar el título de la página a resaltar el texto con una fuente de letra más grande, o mostrarlo en negrita, etc.
El lenguaje XHTML es una reformulación del lenguaje HTML utilizando el metalenguaje llamado XML. Este metalenguaje está pensado para definir otros lenguajes, especificando el conjunto de marcas que se van a utilizar para dar estructura a un documento cualquiera. Como desarrolladores, al usar XML elegimos que marcas definen nuestro lenguaje de marcado, en vez de utilizar un conjunto preestablecido de ellas, como el que tiene HTML.
Dado que existen numerosas librerías para el procesamiento de documentos XML, el desarrollo de aplicaciones software (como los navegadores web) se ha visto simplificado. Asimismo, las reglas que definen la estructura de un documento son más simples de modo que los procesadores de documentos necesitan menos muchos menos recursos (ventaja aprovechada por los navegadores web de los dispositivos móviles, por ejemplo).
Una de las mejoras establecidas con XHTML es la división estricta entre contenido y presentación, cosa que no ocurría en HTML. El dialecto de XHTML llamado XHTML Strict obliga a que la asignación del formato de presentación se haga de manera separada mediante hojas de estilo CSS. Esta separación tiene las siguientes ventajas:
  • La gestión del estilo de todo el sitio web está localizada en un punto concreto: las hojas de estilo. De este modo, es posible modificar todo el estilo del sitio (y mantenerlo coherente siempre) sin tener que editar una a una todas sus páginas.
  • Se pueden tener varios estilos definidos para el mismo sitio web. Podemos ofrecer a los usuarios de nuestro sitio web la posibilidad de seleccionar el conjunto de colores y estilos (tema) del sitio web. Esto también permite dar soporte a la navegación desde múltiples dispositivos, de manera que según donde se tenga que mostrar la página (tamaño de pantalla, tipo de dispositivo...) las páginas se rendericen de una manera u otra (no es lo mismo, por ejemplo, mostrar la web en un navegador que sacarla por impresora).

 COMANDOS BÁSICOS DE HTML

  • < HTML > ... < /HTML > : Indica el comienzo y fin de un archivo HTML
  • < HEAD > ... < /HEAD > : Indica el comienzo y fin de un encabezado (aquí se coloca generalmente el título).
  • < TITLE > ... < /TITLE > : Indica el título.
  • < BODY > ... < /BODY > : Indica el comienzo y fin del cuerpo de la página.
  • < P > ... < /P > : Indica comienzo y fin de un párrafo.
  • < BR > : Permite saltarse una línea (se llama quiebre de línea).
  • < Hn > ... < Hn > : Para n entre 1 y 6, hacen que el texto encerrado aparezca como encabezado (un subtítulo). Se recomienda usar sólo 1,2 y 3.
  • Tipos de letras:
    • < B > ... < /B > : Negrita.
    • < L > ... < /L > : Cursiva.
    • < BLINK > ... < /BLINK > : Parpadeante.
    • < STRONG > ... < /STRONG > : Enfatizada.
  • < UL > ... < /UL > : Indica comienzo y fin de una lista no ordenada (puntos). Dentro de ellos, cada item empieza por < LI > y termina al terminar la línea.
  • < OL > ... < /OL > : Indica comienzo y fin de una lista ordenada (números). Dentro de ellos, cada item empieza por < LI > y termina al terminar la línea. 



HISTORIA DE CSS

CSS fue propuesto por primera vez por Håkon Wium Lie el 10 de octubre de 1994.9​ Al mismo tiempo, Lie trabajaba con Tim Berners-Lee en el CERN.10​ Muchos otros lenguajes de hojas de estilos fueron propuestos al mismo tiempo, y las discusiones en las listas de correo públicas dentro del W3C dieron lugar a la primera Recomendación CSS por el W3C (CSS1)11​ en 1996. En particular, la propuesta de Bert Bos fue influyente; él fue el coautor de CSS1 y es reconocido como el cocreador de CSS.12

Las hojas de estilo han existido de una forma u otra desde los comienzos del Standard Generalized Markup Language (SGML) en la década de los 80s, y CSS fue desarrollado para proveer hojas de estilos para la web.13​ Un requerimiento para un lenguaje de hoja de estilos web era que las hojas de estilo vinieran en diferentes estilos en la web. Por lo tanto, los lenguajes de hojas de estilos existentes como DSSSL y FOSI no fueron adecuados. CSS, por otro lado, permite al documento ser influido por múltiples hojas de estilo por medio de los estilos en «cascada.

DEFINICION

CSS son las siglas de Cascading Style Sheets - Hojas de Estilo en Cascada - que es un lenguaje que describe la presentación de los documentos estructurados en hojas de estilo para diferentes métodos de interpretación, es decir, describe como se va a mostrar un documento en pantalla, por impresora, por voz (cuando la información es pronunciada a través de un dispositivo de lectura) o en dispositivos táctiles basados en Braille.

El lenguaje CSS permite presentar, de manera estructurada, un documento que fue escrito en un lenguaje de marcado. Se usa especialmente en el diseño visual de un sitio web  cuando las páginas se hallan escritas en XML o HTML.

El CSS se desarrolló en distintos niveles. El CCS1 ya no se emplea, mientras que el CSS2 funciona como recomendación. El CSS3, que se divide en varios módulos, es el lenguaje que se está tomando como estándar.

Lo que hace el CSS es encargarse de la descripción de las formas y de la sintaxis del lenguaje de marcado. De esta manera describe cómo se tienen que renderizar (generar las imágenes) los elementos que aparecen en pantalla.

El diseño del CSS posibilita establecer una separación entre el contenido y la forma de presentación del documento (dada por las fuentes, los colores y las capas empleadas). Así se puede lograr que muchos documentos HTML compartan la apariencia, utilizando una única hoja de estilo para todos (que se especifica en un archivo .css). Gracias a esta particularidad, se evita tener que repetir el código en la estructura.

VENTAJAS DE CSS

  • Con una Hoja de Estilo podemos modificar la presentación de cada elemento sin modificar el código HTML, ahorrando esfuerzo y tiempo de edición. Así, el mantenimiento del sitio web se hace más sencillo.
  • El lenguaje CSS ofrece una amplia gama de herramientas de composición más potentes que HTML.
  • Con CSS se evita tener que recurrir a “trucos” para conseguir algunos efectos.
  • Las Hojas de Estilo pueden usarse con otros lenguajes de programación (por ejemplo JavaScript) para conseguir efectos dinámicos en las páginas.
  • Se pueden especificar Hojas de Estilo para distintos navegadores.
  • Los usuarios con alguna discapacidad pueden definir su propia Hoja de Estilo y la regla !important obligará al navegador a suplantar la Hoja de Estilo del autor de la página.

DESVENTAJAS DE CSS

En cuanto a las desventajas del uso de Hojas de Estilo, la única importante es el soporte irregular que tienen las CSS por parte de los navegadores. Pueden existir incompatibilidades con determinadas propiedades según el navegador que se utilice, según si es para Windows o Mac o, incluso, entre distintas versiones de un mismo navegador.
  • Si hay problemas o limitaciones de compatibilidades, el navegador aplicará el formato predeterminado y nuestro trabajo de composición habrá sido inútil.
  • Algunas propiedades de las CSS pueden provocar que una parte del contenido de nuestra página resulte inaccesible desde algunos navegadores.
CARACTERISTICAS
El modo de funcionamiento de las CSS consiste en definir, mediante una sintaxis especial, la forma de presentación que aplicamos a:
  • Una página web entera, de modo que se puede definir la forma de todo el web de una sola vez.
  • Un documento HTML o página, se puede definir la forma, en un pequeño trozo de código en la cabecera, a toda la página.
  • Una porción del documento, aplicando estilos visibles en un trozo de la página.
  • Una etiqueta en concreto, llegando incluso a poder definir varios estilos diferentes para una sola etiqueta. Esto es muy importante ya que ofrece potencia en nuestra programación. Podemos definir, por ejemplo, varios tipos de párrafos: en rojo, en azul, con márgenes, sin ellos, etc
La potencia de la tecnología salta a la vista. Pero no solo se queda aquí, ya que además esta sintaxis CSS permite aplicar al documento formato de modo mucho más exacto. Si antes el HTML se nos quedaba corto para maquetar las páginas y teníamos que utilizar trucos para conseguir nuestros efectos, ahora tenemos muchas más herramientas que nos permiten definir esta forma:
  • Podemos definir la distancia entre líneas del documento.
  • Se puede aplicar identado a las primeras líneas del párrafo.
  • Podemos colocar elementos en la página con mayor precisión, y sin lugar a errores.
  • Y mucho más, como definir la visibilidad de los elementos, margenes, subrayados,tachados, etc.
VERSIONES DE CSS
Existen varias versiones: CSS1 y CSS2, la CSS3 está todavía en desarrollo por el CSS WG (Cascading Style Sheets Working Group).
Los navegadores actuales implementan bastante bien CSS1 desde 1999 (tres años después de su lanzamiento) aunque dependiendo de la marca y versión del navegador hay algunas pequeñas diferencias de implementación. El primer navegador en dar soporte completo al CSS1 ha sido Internet Explorer 5.0 for the Macintosh en 2000, anteriormente el que mejor soportaba CSS1 haba sido Opera, después otros navegadores también lo han ido implementando.
Sin embargo, CSS2 (lanzado en 1998) sólo está parcialmente implementado en los navegadores más recientes, variando en estos los niveles de implementación.

HTTP DEFINICION

HTTP es un protocolo para transferir archivos o documentos hipertexto a través de la red, este permite transferir archivos de texto, gráficos, de video, de audio y otros recursos multimedia.

HTTP es el mecanismo de intercambio de información que constituye la base funcional de la World Wide Web. Su arquitectura es tipo cliente/servidor.

Existen tres tipos principales de mensajes HTTP, estos son GET, POST y HEAD. Todos los datos enviados a través de HTTPS son encriptados antes de ser enviados, esto impide que alguien pueda entender la información enviada.

CARACTERÍSTICAS Y FUNCIONAMIENTO

Desde el punto de vista de las comunicaciones, HTTP se establece sobre la capa de conexión TCP/IP, y funciona de la misma forma que el resto de los servicios comunes de entornos

UNIX: un proceso servidor escucha en un puerto de comunicaciones TCP (por defecto, el 80), y espera las solicitudes de conexión de los clientes web. Una vez que se establece la conexión, el protocolo TCP se encarga de mantener la comunicación y garantizar un intercambio de datos libre de errores.

HTTP se basa en sencillas operaciones de solicitud/respuesta. Un cliente establece una conexión con un servidor y envía un mensaje con los datos de la solicitud. El servidor responde con un mensaje similar, que contiene el estado de la operación y

Su posible resultado. Todas las operaciones pueden adjuntar un objeto o recurso sobre el que actúan; cada objeto web es identificado por su URL.


Las principales características del protocolo HTTP son:

·         Transmisión de Imágenes de Vídeo mediante Servicios Web XML sobre Toda la comunicación entre los clientes y servidores se realiza a partir de caracteres US-ASCII de 7 bits.

·         Permite la transferencia de objetos multimedia, codificando los archivos binarios en cadenas de caracteres. El contenido de cada objeto intercambiado está identificado por su clasificación MIME.

·         Existen ocho verbos que permiten que un cliente pueda dialogar con el servidor.

Los tres más utilizados son: GET, para recoger un objeto, POST, para enviar información al servidor y HEAD, para solicitar las características de un objeto (por ejemplo, la fecha de modificación de un documento HTML).


·         Cada operación HTTP implica una conexión con el servidor, que es liberada al

término de la misma. Es decir, en una operación se puede recoger un único objeto. Con la versión HTTP 1.1 se ha mejorado este procedimiento, permitiendo que una misma conexión se mantenga activa durante un cierto periodo de tiempo, de forma que sea utilizada en sucesivas transacciones. Este mecanismo, denominado HTTP Keep Alive, es empleado por la mayoría de los clientes y servidores modernos.


·         No mantiene estado. Cada petición de un cliente a un servidor no es influida por

las transacciones anteriores. El servidor trata cada petición como una operación

totalmente independiente del resto.


·         Cada objeto al que se aplican los verbos del protocolo está identificado a través

de un localizador uniforme de recurso (URL) único.

ARQUITECTURA DE LOS SISTEMAS BASADOS EN  HTTP 

HTTP es un protocolo basado en el principio de cliente-servidor: las peticiones son enviadas por una entidad: el agente del usuario (o un proxy a petición de uno). La mayoría de las veces el agente del usuario (cliente) es un navegador Web, pero podría ser cualquier otro programa, como por ejemplo un programa-robot, que explore la Web, para adquirir datos de su estructura y contenido para uso de un buscador de Internet.

Cliente: el agente del usuario


El agente del usuario, es cualquier herramienta que actué en representación del usuario. Esta función es realizada en la mayor parte de los casos por un navegador Web. Hay excepciones, como el caso de programas específicamente usados por desarrolladores para desarrollar y depurar sus aplicaciones. 

El navegador es siempre el que inicia una comunicación (petición), y el servidor nunca la comienza (hay algunos mecanismos que permiten esto, pero no son muy habituales).  

Para poder mostrar una página Web, el navegador envía una petición de documento HTML al servidor. Entonces procesa este documento, y envía más peticiones para solicitar scripts, hojas de estilo (CSS), y otros datos que necesite (normalmente vídeos y/o imágenes). En navegador, une todos estos documentos y datos, y compone el resultado final: la página Web. Los scripts, los ejecuta también el navegador, y también pueden generar más peticiones de datos en el tiempo, y el navegador, gestionará y actualizará la página Web en consecuencia. 

Una página Web, es un documento de hipertexto (HTTP), luego habrá partes del texto en la página que puedan ser enlaces (links) que pueden ser activados (normalmente al hacer click sobre ellos) para hacer una petición de una nueva página Web, permitiendo así dirigir su agente de usuario y navegar por la Web. El navegador, traduce esas direcciones en peticiones de HTTP, e interpretará y procesará las respuestas HTTP, para presentar al usuario la página Web que desea.

El servidor Web  

Al otro lado del canal de comunicación, está el servidor, el cual "sirve" los datos que ha pedido el cliente. Un servidor conceptualmente es una unica entidad, aunque puede estar formado por varios elementos, que se reparten la carga de peticiones, (load balancing), u otros programas, que gestionan otros computadores (como cache, bases de datos, servidores de correo electrónico, ...), y que generan parte o todo el documento que ha sido pedido. 

Un servidor no tiene que ser necesariamente un único equipo físico, aunque si que varios servidores pueden estar funcionando en un único computador. En el estándar HTTP/1.1 y Host , pueden incluso compartir la misma dirección de IP.

Entre el cliente y el servidor, además existen distintos dispositivos que gestionan los mensajes HTTP. Dada la arquitectura en capas de la Web, la mayoria de estos dispositivos solamente gestionan estos mensajes en los niveles de protocolo inferiores: capa de transporte, capa de red o capa física, siendo así transparentes para la capa de comunicaciones de aplicación del HTTP, además esto aumenta el rendimiento de la comunicación. Aquellos dispositivos, que sí operan procesando la capa de aplicación son conocidos como proxies. Estos pueden ser transparentes, o no (modificando las peticiones que pasan por ellos), y realizan varias funciones: 

  • caching (la caché puede ser pública o privada, como la caché de un navegador) 
  • filtrado (como un anti-virus, control parental, ...)
  • balanceo de carga de peticiones (para permitir a varios servidores responder a la carga total de peticiones que reciben)
  • autentificación (para el control al acceso de recursos y datos)
  • registro de eventos (para tener un histórico de los eventos que se producen)