domingo, 21 de noviembre de 2010

PageRank

PageRank es una marca registrada y patentada por Google el 9 de enero de 1999 que ampara una familia de algoritmos utilizados para asignar de forma numérica la relevancia de los documentos (o páginas web) indexados por un motor de búsqueda. Sus propiedades son muy discutidas por los expertos en optimización de motores de búsqueda. El sistema PageRank es utilizado por el popular motor de búsqueda Google para ayudarle a determinar la importancia o relevancia de una página. Fue desarrollado por los fundadores de Google, Larry Page y Sergey Brin, en la Universidad de Stanford.

PageRank (PR) es un valor numérico que representa la importancia que una página web tiene en Internet. Google se hace la idea de que cuando una página coloca un enlace (link) a otra, es de hecho un voto para esta última. 

PageRank confía en la naturaleza democrática de la web utilizando su vasta estructura de enlaces como un indicador del valor de una página en concreto. Google interpreta un enlace de una página A a una página B como un voto, de la página A, para la página B. Pero Google mira más allá del volumen de votos, o enlaces que una página recibe; también analiza la página que emite el voto. Los votos emitidos por las páginas consideradas "importantes", es decir con un PageRank elevado, valen más, y ayudan a hacer a otras páginas "importantes". Por lo tanto, el PageRank de una página refleja la importancia de la misma en Internet.

Algoritmo

El algoritmo de "PageRank" patentado en Estados Unidos el día 8 de enero de 1998, por Larry Page. El título original es 'Method for node ranking in a linked database', y le fue asignado el número de patente 6,285,999.

El algoritmo inicial del PageRank lo podemos encontrar en el documento original donde sus creadores presentaron el prototipo de Google: “The Anatomy of a Large-Scale Hypertextual Web Search Engine":
PR(A) = (1-d) + d  * \sum_{i=1}^n {PR(i) \over C(i)}
Donde:
  • PR(A) es el PageRank de la página A.
  • d es un factor de amortiguación que tiene un valor entre 0 y 1.
  • PR(i) son los valores de PageRank que tienen cada una de las páginas i que enlazan a A.
  • C(i) es el número total de enlaces salientes de la página i (sean o no hacia A).

Algunos expertos aseguran que el valor de la variable d suele ser 0,85. Representa la probabilidad de que un navegante continúe pulsando links al navegar por Internet en vez de escribir una url directamente en la barra de direcciones o pulsar uno de sus marcadores y es un valor establecido por Google. Por lo tanto, la probabilidad de que el usuario deje de pulsar links y navegue directamente a otra web aleatoria es 1-d. La introducción del factor de amortiguación en la fórmula resta algo de peso a todas las páginas de Internet y consigue que las páginas que no tienen enlaces a ninguna otra página no salgan especialmente beneficiadas. Si un usuario aterriza en una página sin enlaces, lo que hará será navegar a cualquier otra página aleatoriamente, lo que equivale a suponer que una página sin enlaces salientes tiene enlaces a todas las páginas de Internet.

El peso o importancia de una página es el resultado de una "votación" entre todas las demás páginas de la World Wide Web acerca del nivel de importancia que tiene esa página. Un hiperenlace a una página cuenta como un voto de apoyo. El PageRank de una página se define recursivamente y depende del número y PageRank de todas las páginas que la enlazan. Una página que está enlazada por muchas páginas con un PageRank alto consigue también un PageRank alto. Si no hay enlaces a una página web, no hay apoyo a esa página específica. El PageRank de la barra de Google va de 0 a 10. Diez es el máximo PageRank posible y son muy pocos los sitios que gozan de esta calificación, 1 es la calificación mínima que recibe un sitio normal, y cero significa que el sitio ha sido penalizado o aún no ha recibido una calificación de PageRank. Parece ser una escala logarítmica. Los detalles exactos de esta escala son desconocidos.
Una alternativa al algoritmo PageRank propuesto por Jon Kleinberg, es el algoritmo HITS.



Cuantos más votos tenga una página, será considerada más importante por Google. Además, la importancia de la página que emite su voto también determina el peso de este voto. De esta manera, Google calcula la importancia de una página gracias a todos los votos que reciba, teniendo en cuenta también la importancia de cada página que emite el voto. 


PageRank (desarrollado por los fundadores Larry Page y Sergey Brin) es la manera que tiene Google de decidir la importancia de una página. Es un dato valioso, porque es uno de los factores que determinan la posición que va a tener una página dentro de los resultados de la búsqueda. No es el único factor que Google utiliza para clasificar las páginas, pero sí es uno de los más importantes. 

Hay que tener en cuenta que no todos los links son tenidos en cuenta por Google. Por ejemplo, Google filtra y descarta los enlaces de páginas dedicadas exclusivamente a colocar links (llamadas 'link farms'). 

Además, Google admite que una página no puede controlar los links que apuntan hacia ella, pero sí que puede controlar los enlaces que esta página coloca hacia otras páginas. Por ello, links hacia una página no pueden perjudicarla, pero sí que enlaces que una página coloque hacia sitios penalizados, pueden ser perjudiciales para su PageRank .
Si un sitio web tiene PR0, generalmente es una web penalizada, y podría ser poco inteligente colocar un link hacia ella.

Antecedentes

PageRank ha tomado su modelo del Science Citation Index (SCI) elaborado por Eugene Garfield para el Instituto para la Información Científica (ISI) en los Estados Unidos durante la década del 50. El SCI pretende resolver la asignación objetiva de méritos científicos suponiendo que los investigadores cuyo factor de impacto (número de publicaciones y/o referencias bibliográficas en otros trabajos científicos) es más alto, colaboran en mayor medida con el desarrollo de su área de investigación. El índice de citación es un elemento determinante para seleccionar qué investigadores reciben becas y recursos de investigación.

---------------------------------------------------------------------------------------------------------------
Bibliografías:

http://es.wikipedia.org/wiki/PageRank
http://www.mipagerank.com/que-es-el-pagerank.htm





Búsqueda en la Web

Etapas en la Búsqueda

A nivel general, la búsqueda de información en la Web tiene varias etapas:
  1. Necesidad de información
  2. Transformación de la necesidad
  3. Búsqueda
  4. Revisión de los resultados

Necesidad de información

Una persona requiere de información. Este requerimiento puede ser estable, o ir variando, y normalmente se puede clasificar como verificación (validación de algo que la persona cree cierto), consciente (más información sobre un tema conocido) o indefinido (conceptos en un dominio desconocido).
Otra clasificación posible es mediante un eje temporal: inicialmente el usuario busca información genérica o de transfondo respecto a un tema, luego información dentro de las aristas del tema, para finalmente escoger una aproximación en particular y profundizar en un área específica. Estas etapas son más bien secuenciales.

Transformación de la necesidad

Una vez que el usuario tiene la necesidad de información, si utiliza el Web puede: ingresar directamente la URL de un sitio que piense que puede satisfacer su necesidad, dirigirse a un directorio en que se pueda explorar un listado de sitios web por tema (como por ejemplo el Open Directory Project) o dirigirse a un buscador web donde se ingresen palabras clave (como Google).
Si bien unas pocas veces el usuario conoce un sitio específico donde puede encontrar respuesta a su inquietud, o al menos comenzar una búsqueda, es más común que recurra a un buscador web.
Ir a un buscador tiene sus complicaciones, puesto que lo que antes podía tener distintos grados de vaguedad, ahora enfrentado a la caja de búsqueda debe ser tan específico como unas pocas palabras, o en el mejor de los casos, una pregunta normal, como las que recibe Ask Jeeves.
La mayoría de los buscadores recibe un poco más que sólo palabras, por ejemplo, se puede rodear una frase entre comillas para decir que se necesitan calces de esa frase tal como está escrita allí, o se antepone un signo + a ciertas palabras para forzar su inclusión, etc. Estos operadores son usados por los usuarios más avanzados; y su uso significa mejores resultados para quienes los saben ocupar.

Búsqueda

El proceso de búsqueda es lo más oscuro para los usuarios, durante él se realizan varias operaciones que casi siempre implican consultar un índice de páginas, que es una representación compacta del contenido de éstas. El buscador obtiene una lista de documentos, luego los ordena de mayor a menor importancia (esto se llama ranking), los consolida (ej.: eliminar duplicados, agrupar los de un mismo sitio, etc.) y los presenta al usuario.

Revisión de los Resultados

En esta etapa el usuario se enfrenta a algunas decenas de direcciones (URLS), elige una que le parece interesante, la revisa, escoge otra, navega un rato, vuelve atrás, hace una nueva consulta, etc. Tiene múltiples alternativas. Es muy raro que a la primera consulta el buscador le muestre páginas de su interés; lo normal son más de 2 consultas por sesión antes de darse por vencido, encontrar lo que se buscaba o cambiar de buscador o de método.
Lamentablemente, es muy común que la persona no encuentre lo que buscaba, sea porque se distrajo navegando por páginas de otras temáticas, o porque simplemente no desea dedicarle más tiempo a la búsqueda. Encontrar información en Internet, es un proceso que puede ser bastante frustrante, como seguramente más de alguno de los lectores sabe por experiencia propia.

Cómo funciona un Buscador

 

Un buscador Web tiene tres subsistemas:
  • Un Recolector que visita una serie de páginas Web, incorporandolas a una Colección
  •  Un Indexador que convierte la colección en una estructura más manejable y pequeña, llamada Índice
  • Un Buscador propiamente tal que recupera ciertas páginas del índice basado en un requerimiento del usuario

Recolector

El recolector tiene la tarea de crear la colección de páginas, para ello, visita una serie de páginas iniciales o puntos de partida, las incorpora a la colección, extrae los enlaces de estas páginas, verifica si están o no presentas ya, y si no están, visita estas páginas referenciadas. 

El proceso es recursivo, y se realiza en un ciclo:
1.Revisar la lista de URLs por visitar y escoger una.
2.Visitar esa dirección .
3.Transformarla para incorporarla a la colección (normalmente, eliminar etiquetas e imágenes de la página, convertir documentos Word o PDF a texto simple, recortarla si es demasiado grande.
4.Extraer los links de la página, y si alguno no está en la lista, agregarlo.
5.Volver al primer paso.

Indexador


Lo usual es utilizar un índice invertido. En él, la colección es convertida a una lista de palabras, cada una de las cuales apunta a una lista de documentos.

Buscador

Ahora buscar es muy fácil, por ejemplo, si alguien necesita los documentos donde aparezca "casa", el sistema busca en la lista (índice) la palabra "casa", y obtiene de inmediato cuales son los documentos que contienen la palabra. Si se pregunta por dos o más términos, el sistema deberá comparar las listas de cada uno de los términos, realizando una unión o intersección según corresponda. 

Cómo vemos, encontrar los documentos no es difícil. El real desafío es encontrar los mejores documentos. La Web es enorme, y hay montones de páginas en ella, pero una persona no puede hacer nada útil si el buscador le entrega 10000 páginas para que las revise - ¡no terminaría nunca!, así que el proceso de ranking (ordenamiento) es crucial para tener, digamos, 10 o 20 direcciones, cantidad que es mucho más razonable. 

Una aproximación es comparar las palabras de la consulta con las palabras que hay en los documentos encontrados. Esto es un poco más complejo que simplemente contar cuantas veces aparece cada palabra de la consulta en cada documento, puesto que hay una variable extra a considerar. 

Si la página encontrada contiene una palabra por la que se preguntó al buscador, que no aparece en casi ningún otro documento, entonces eso es una buena evidencia de que la página que estamos mirando es importante. Esto ha sido usado durante años con bastante éxito. 

Una opción alternativa es la propuesta en. En síntesis se utilizan los links entre las páginas como evidencia. Una forma simple de comenzar a entenderlo es la siguiente hipótesis: una página con buen contenido, seguramente es referenciada desde muchos buenos índices. 


Por ejemplo, en la figura tenemos numeradas algunas potenciales índice, y con letras las potenciales páginas de contenido. Vemos que 'b' y 'g' claramente atraen la mayoría de los enlaces desde otras páginas, por lo cual las marcamos como la "mejores páginas de contenido". 

Así mismo, la página '4' se destaca como "mejor página índice", precisamente porque apunta a las dos "mejores páginas de contenido". No es la página con más enlaces necesariamente, de hecho '5' tiene más enlaces, pero no son los más apropiados. Al mismo tiempo, el puntaje como página de contenido de 'c' aumenta, porque aparece en una buena fuente de información. Este procedimiento se repite varias veces, sumando puntos como índice y como contenido. 

------------------------------------------------------------------------------------------------------------

Bibliografías:

http://www.tejedoresdelweb.com/


Motor de Búsqueda

Historia

El primer buscador fue "Wandex", un índice (ahora desaparecido) realizado por la World Wide Web Wanderer, un robot desarrollado por Mattew Gray en el MIT, en 1993. Otro de los primeros buscadores, Aliweb, también apareció en 1993 y todavía está en funcionamiento. El primer motor de búsqueda de texto completo fue WebCrawler, que apareció en 1994. A diferencia de sus predecesores, éste permitía a sus usuarios una búsqueda por palabras en cualquier página web, lo que llegó a ser un estándar para la gran mayoría de los buscadores. WebCrawler fue también el primero en darse a conocer ampliamente entre el público. También apareció en 1994 Lycos (que comenzó en la Carnegie Mellon University).

Muy pronto aparecieron muchos más buscadores, como Excite, Infoseek, Inktomi, Northern Light y Altavista. De algún modo, competían con directorios (o índices temáticos) populares tales como Yahoo!. Más tarde, los directorios se integraron o se añadieron a la tecnología de los buscadores para aumentar su funcionalidad.
Antes del advenimiento de la Web, había motores de búsqueda para otros protocolos o usos, como el buscador Archie, para sitios FTP anónimos y el motor de búsqueda Verónica, para el protocolo Gopher.
En la actualidad se aprecia una tendencia por parte de los principales buscadores de Internet a dar el salto hacia entornos móviles creando una nueva generación de buscadores: los buscadores móviles.

------------------------------------------------------------------------------------------------------------



Un motor de búsqueda es un sistema informático que busca archivos almacenados en servidores web gracias a su «spider» (o Web crawler). Un ejemplo son los buscadores de Internet (algunos buscan sólo en la Web pero otros buscan además en noticias, servicios como Gopher, FTP, etc.) cuando se pide información sobre algún tema. Las búsquedas se hacen con palabras clave o con árboles jerárquicos por temas; el resultado de la búsqueda es un listado de direcciones Web en los que se mencionan temas relacionados con las palabras clave buscadas.
Como operan en forma automática, los motores de búsqueda contienen generalmente más información que los directorios. Sin embargo, estos últimos también han de construirse a partir de búsquedas (no automatizadas) o bien a partir de avisos dados por los creadores de páginas (lo cual puede ser muy limitante). Los buenos directorios combinan ambos sistemas. Hoy en día Internet se ha convertido en una herramienta, para la búsqueda de información, rápida, para ello han surgido los buscadores que son un motor de búsqueda que nos facilita encontrar información rápida de cualquier tema de interés, en cualquier área de las ciencias, y de cualquier parte del mundo.
  
Clasificación
Se pueden clasificar en dos tipos:
  • Índices temáticos: Son sistemas de búsqueda por temas o categorías jerarquizados (aunque también suelen incluir sistemas de búsqueda por palabras clave). Se trata de bases de datos de direcciones Web elaboradas "manualmente", es decir, hay personas que se encargan de asignar cada página web a una categoría o tema determinado.
  • Motores de búsqueda: Son sistemas de búsqueda por palabras clave. Son bases de datos que incorporan automáticamente páginas web mediante "robots" de búsqueda en la red.

Clases de buscadores

Buscadores jerárquicos (Arañas o Spiders)

  • Recorren las páginas recopilando información sobre los contenidos de las páginas. Cuando se busca una información en los motores, ellos consultan su base de datos y presentan resultados clasificados por su relevancia. De las webs, los buscadores pueden almacenar desde la página de entrada, a todas las páginas que residan en el servidor.
  • Si se busca una palabra, por ejemplo, “ordenadores”. En los resultados que ofrecerá el motor de búsqueda, aparecerán páginas que contengan esta palabra en alguna parte de su texto.
  • Si consideran que un sitio web es importante para el usuario, tienden a registrarlas todas. Si no la consideran importante, sólo almacenan una o más páginas.
  • Cada cierto tiempo, los motores revisan los sitios, para actualizar los contenidos de su base de datos, por lo que no es infrecuente que los resultados de la búsqueda estén desactualizados.
  • Los buscadores jerárquicos tienen una colección de programas simples y potentes con diferentes cometidos. Se suelen dividir en tres partes. Los programas que exploran la red -arañas (spiders)-, los que construyen la base de datos y los que utiliza el usuario, el programa que explota la base de datos.
  • Si se paga, se puede aparecer en las primeras páginas de resultados, aunque los principales buscadores delimitan estos resultados e indican al usuario que se trata de resultados esponsorizados o patrocinados. Hasta el momento, aparentemente, esta forma de publicidad, es indicada explícitamente. Los buscadores jerárquicos se han visto obligados a este tipo de publicidad para poder seguir ofreciendo a los usuarios el servicio de forma gratuita.

Directorios

Una tecnología barata, ampliamente utilizada por gran cantidad de scripts en el mercado. No se requieren muchos recursos de informática. En cambio, se requiere más soporte humano y mantenimiento.
  • Los algoritmos son mucho más sencillos, presentando la información sobre los sitios registrados como una colección de directorios. No recorren los sitios web ni almacenan sus contenidos. Solo registran algunos de los datos de nuestra página, como el título y la descripción que se introduzcan al momento de registrar el sitio en el directorio.
  • Los resultados de la búsqueda, estarán determinados por la información que se haya suministrado al directorio cuando se registra el sitio. En cambio, a diferencia de los motores, son revisadas por operadores humanos, y clasificadas según categorías, de forma que es más fácil encontrar páginas del tema de nuestro interés.
  • Más que buscar información sobre contenidos de la página, los resultados serán presentados haciendo referencia a los contenidos y temática del sitio.
  • Su tecnología es muy barata y sencilla.
Ejemplos de directorios: Antiguos directorios, Open Directory Project, Yahoo!, Terra (antiguo Olé). Ahora, ambos utilizan tecnología de búsqueda jerárquica, y Yahoo! conserva su directorio. Buscar Portal, es un directorio, y la mayoría de motores hispanos son directorios.

Metabuscador

Permite lanzar varias búsquedas en motores seleccionados respetando el formato original de los buscadores. Lo que hacen, es realizar búsquedas en auténticos buscadores, analizan los resultados de la página, y presentan sus propios resultados, según un orden definido por el sistema estructural del metabuscador.

FFA - Enlaces gratuitos para todos

FFA (acrónimo del inglés "Free For All"), Cualquiera puede inscribir su página durante un tiempo limitado en estos pequeños directorios. Los enlaces no son permanentes.

Buscadores verticales

Buscadores especializados en un sector concreto, lo que les permite analizar la información con mayor profundidad, disponer de resultados más actualizados y ofrecer al usuario herramientas de búsqueda avanzadas.Es importante resaltar que utilizan indices especializados de esta manera acceder a la información de una manera más específica y fácil. (Nélida Colina). Ejemplos de este tipo de buscadores son: Trovit, Nestoria.

-------------------------------------------------------------------------------------------------------------
 Bibliografias:

http://www.dsp.umh.es/docent/ienol/motores.htm
http://es.wikipedia.org/wiki/Motor_de_b%C3%BAsqueda



JSP: Java Server Pages

JSP es un acrónimo de Java Server Pages, que en castellano vendría a decir algo como Páginas de Servidor Java. Es, pues, una tecnología orientada a crear páginas web con programación en Java. 



JavaServer Pages (JSP) es una tecnología Java que permite generar contenido dinámico para web, en forma de documentos HTML, XML o de otro tipo.
Esta tecnología es un desarrollo de la compañía Sun Microsystems. La Especificación JSP 1.2 fue la primera que se liberó y en la actualidad está disponible la Especificación JSP 2.1.
Las JSP's permiten la utilización de código Java mediante scripts. Además, es posible utilizar algunas acciones JSP predefinidas mediante etiquetas. Estas etiquetas pueden ser enriquecidas mediante la utilización de Bibliotecas de Etiquetas (TagLibs o Tag Libraries) externas e incluso personalizadas.

Arquitectura

JSP puede considerarse como una manera alternativa, y simplificada, de construir servlets. Es por ello que una página JSP puede hacer todo lo que un servlet puede hacer, y viceversa. Cada versión de la especificación de JSP está fuertemente vinculada a una versión en particular de la especificación de servlets.
El funcionamiento general de la tecnología JSP es que el Servidor de Aplicaciones interpreta el código contenido en la página JSP para construir el código Java del servlet a generar. Este servlet será el que genere el documento (típicamente HTML) que se presentará en la pantalla del Navegador del usuario.

Es posible enriquecer el lenguaje de etiquetas utilizado por JSP. Para ello debemos extender la capa de alto nivel JSP mediante la implementación de Bibliotecas de Etiquetas (Tags Libraries). Un ejemplo de estas bibliotecas son las propocionadas por Sun bajo la denominación de JSTL o las distribuidas por Apache junto con el Framework de Struts.

El rendimiento de una página JSP es el mismo que tendría el servidor equivalente, ya que el código es compilado como cualquier otra clase Java. A su vez, la máquina virtual compilará dinámicamente a código de máquina las partes de la aplicación que lo requieran. Esto hace que JSP tenga un buen desempeño y sea más eficiente que otras tecnologías web que ejecutan el código de una manera puramente interpretada.

La principal ventaja de JSP frente a otros lenguajes es que el lenguaje Java es un lenguaje de propósito general que excede el mundo web y que es apto para crear clases que manejen lógica de negocio y acceso a datos de una manera prolija. Esto permite separar en niveles las aplicaciones web, dejando la parte encargada de generar el documento HTML en el archivo JSP.
Otra ventaja es que JSP hereda la portabilidad de Java, y es posible ejecutar las aplicaciones en múltiples plataformas sin cambios. Es común incluso que los desarrolladores trabajen en una plataforma y que la aplicación termine siendo ejecutada en otra.

Los servlets y Java Server Pages (JSPs) son dos métodos de creación de páginas web dinámicas en servidor usando el lenguaje Java. En ese sentido son similares a otros métodos o lenguajes tales como el PHP, ASP o los CGIs, programas que generan páginas web en el servidor. Sin embargo, se diferencian de ellos en otras cosas.
Para empezar, los JSPs y servlets se ejecutan en una máquina virtual Java, lo cual permite que, en principio, se puedan usar en cualquier tipo de ordenador, siempre que exista una máquina virtual Java para él. Cada servlet (o JSP, a partir de ahora lo usaremos de forma indistinta) se ejecuta en su propia hebra, es decir, en su propio contexto; pero no se comienza a ejecutar cada vez que recibe una petición, sino que persiste de una petición a la siguiente, de forma que no se pierde tiempo en invocarlo (cargar programa + intérprete). Su persistencia le permite también hacer una serie de cosas de forma más eficiente: conexión a bases de datos y manejo de sesiones.

Los JSPs son en realidad servlets: un JSP se compila a un programa en Java la primera vez que se invoca, y del programa en Java se crea una clase que se empieza a ejecutar en el servidor como un servlet. La principal diferencia entre los servlets y los JSPs es el enfoque de la programación: un JSP es una página Web con etiquetas especiales y código Java incrustado, mientras que un servlet es un programa Java puro que recibe peticiones y genera a partir de ellas una página web.

Motor JSP

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 -otras dos tecnologías de servidor-. 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. 

 Ejemplo de página JSP

En la imagen siguiente se puede ver un ejemplo extremadamente simple de una página JSP y el esquema de conversión de esa página en un servlet.

Diagrama de una página JSP

Sintaxis

Variables Implícitas

Las páginas JSP incluyen ciertas variables privilegiadas sin necesidad de declararlas ni configurarlas:


Variable Clase
pageContext   javax.servlet.jsp.PageContext
request   javax.servlet.http.HttpServletRequest
response   javax.servlet.http.HttpServletResponse
session       javax.servlet.http.HttpSession
config  javax.servlet.ServletConfig
application  javax.servlet.ServletContext
out  javax.servlet.jsp.JspWriter
page  java.lang.Object
exception  java.lang.Exception

Directivas

Son etiquetas a partir de las cuales se genera información que puede ser utilizada por el motor de JSP. No producen una salida visible al usuario sino que configura cómo se ejecutará la página JSP.

Las directivas disponibles son:
  • include: Incluye el contenido de un fichero en la página mediante el atributo file.
<%@ include file="cabecera.html" %>
  • taglib: Importa bibliotecas de etiquetas (Tag Libraries)
<%@ taglib uri="/tags/struts-html" prefix="html" %>
  • page: Especifica atributos relacionados con la página a procesar. Los atributos son:
 

Scriptlets

Nos permite declarar variables, funciones y datos estáticos.
Las scriptles son partes de código Java incrustadas entre los elementos estáticos de la página.Las expresiones se evalúan dentro de la servlet. No deben acabar en ";".

Etiquetas

Etiquetas JSP para simplificar el código y dar mayor funcionalidad.
Desarrollar sitios web utilizando etiquetas presenta ciertas ventajas como:
  • facilitar el aprendizaje.
  • facilitar el mantenimiento.
  • fomentar la modularidad y la reutilización.
  • simplificar el código y reducir el número de líneas necesarias.

Etiquetas JSP

Son las etiquetas pertenecientes a la especificación JSP. Proporcionan una funcionalidad básica.
Un primer grupo de etiquetas proporciona funcionalidad a nivel de la página de una manera muy simple:
  • , redirige la request a otra URL
  • , incluye el texto de un fichero dentro de la página
  • , descarga un plugin de Java (una applet o un Bean).
Un segundo grupo permite manipular componentes JavaBean sin conocimientos de Java.
  • , permite manipular un Bean (si no existe, se creará el Bean), especificando su ámbito (scope), la clase y el tipo.
  • , obtiene la propiedad especificada de un bean previamente declarado y la escribe en el objeto response.
  • , establece el valor de una propiedad de un bean previamente declarado.

Etiquetas JSTL

Son proporcionadas por Sun dentro de la distribución de JSTL.
  • core, iteraciones, condicionales, manipulación de URL y otras funciones generales.
  • xml, para la manipulación de XML y para XML-Transformation.
  • sql, para gestionar conexiones a bases de datos.
  • i18n, para la internacionalización y formateo de las cadenas de caracteres como cifras.

Etiquetas Struts TagLib

Distribuidas por Apache para funcionar junto con el Framework de Struts.
  • Bean
  • HTML
  • Logic
  • Nested
  • vjgp


Bibliografías:

http://www.desarrolloweb.com/articulos/831.php
http://es.wikipedia.org/wiki/JSP
http://www.jsptut.com







Java Servlet

Los servlets, son objetos que corren dentro del contexto de un contenedor de servlets (ej: Tomcat) y extienden su funcionalidad. La palabra servlet deriva de otra anterior, applet, que se refería a pequeños programas que se ejecutan en el contexto de un navegador web. Por contraposición, un servlet es un programa que se ejecuta en un servidor.
El uso más común de los servlets es generar páginas web de forma dinámica a partir de los parámetros de la petición que envíe el navegador web.

Historia

La especificación original de Servlets fue creada por Sun Microsystems (la versión 1.0 fue terminada en junio de 1997). Comenzando con la versión 2.3, la especificación de Servlet fue desarrollada siguiendo el Proceso de la Comunidad Java (Java Community Process).

Aspectos técnicos

Un servlet es un objeto que se ejecuta en un servidor o contenedor JEE, especialmente diseñado para ofrecer contenido dinámico desde un servidor web, generalmente HTML. Otras opciones que permiten generar contenido dinámico son los lenguajes ASP, PHP, JSP (un caso especial de servlet), Ruby y Python. Forman parte de JEE (Java Enterprise Edition), que es una ampliación de JSE (Java Standard Edition).

Un servlet implementa la interfaz javax.servlet.Servlet o hereda alguna de las clases más convenientes para un protocolo específico (ej: javax.servlet.HttpServlet). Al implementar esta interfaz el servlet es capaz de interpretar los objetos de tipo HttpServletRequest y HttpServletResponse quienes contienen la información de la página que invocó al servlet.

Entre el servidor de aplicaciones (o web content) y el servlet existe un contrato que determina cómo han de interactuar. La especificación de éste se encuentra en los JSR (Java Specification Requests) del JCP (Java Community Process).

Ciclo de vida

El ciclo de vida de un Servlet se divide en los siguientes puntos:
  1. El cliente solicita una petición a un servidor vía URL.
  2. El servidor recibe la petición.
    1. Si es la primera, se utiliza el motor de Servlets para cargarlo y se llama al método init().
    2. Si ya está iniciado, cualquier petición se convierte en un nuevo hilo. Un Servlet puede manejar múltiples peticiones de clientes.
  3. Se llama al método service() para procesar la petición devolviendo el resultado al cliente.
  4. Cuando se apaga el motor de un Servlet se llama al método destroy(), que lo destruye y libera los recursos abiertos.

-------------------------------------------------------------------------------------------------------------------------------------

Podemos crear un Servlet haciendo uso del paquete javax.servlet.

Interface HttpServletRequest

 http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/http/HttpServletRequest.html

Interface HttpServletResponse

 http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/http/HttpServletResponse.html

 

Facebook Apps


Facebook es un sitio web gratuito de redes sociales creado por Mark Zuckerberg y fundado por Eduardo Saverin, Chris Hughes, Dustin Moskovitz y Mark Zuckerberg. Originalmente era un sitio para estudiantes de la Universidad Harvard, pero actualmente está abierto a cualquier persona que tenga una cuenta de correo electrónico. Los usuarios pueden participar en una o más redes sociales, en relación con su situación académica, su lugar de trabajo o región geográfica.
Ha recibido mucha atención en la blogosfera y en los medios de comunicación al convertirse en una plataforma sobre la que terceros pueden desarrollar aplicaciones y hacer negocio a partir de la red social. A pesar de ello, existe la preocupación acerca de su posible modelo de negocio, dado que los resultados en publicidad se han revelado como muy pobres.
A mediados de 2007 lanzó las versiones en francés, alemán y español para impulsar su expansión fuera de Estados Unidos, ya que sus usuarios se concentran en Estados Unidos, Canadá y Gran Bretaña. En julio de 2010, Facebook cuenta con 500 millones de miembros, y traducciones a 70 idiomas.

Facebook compite por abrirse espacio entre empresas de éxito como Google y MySpace, por lo que se enfrenta a grandes desafíos para lograr crecer y desarrollarse. Una de las estrategias de Zuckerberg ha sido abrir la plataforma Facebook a otros desarrolladores.


Como funciona una aplicación de Facebook?

Facebook soporta dos formatos de aplicaciones externas, aplicaciones creadas usando FBML y las que usan  iframe.
La mayoría de aplicaciones encontradas en Facebook se relacionan con juegos de rol, juegos parecidos al Trivial Pursuit, o pruebas de habilidades (digitación, memoria). Entre los más célebres se encuentran los juegos de Playfish y los juegos de Zynga Games como FarmVille.


Para la creación de una aplicación básica para facebook los requisitos son relativamente pocos:

  • Tener conocimientos sobre lenguajes de programación web, como: python. java, php, html, etc.
  • Registrarte en Facebook para poder obtener el ID de la apps.
  • Contar con las librerias cliente de Facebook .
  • Contar con un servidor fijo, para poder alojar tu app y las bases de datos que sean necesarias para su funcionamiento.
 En cuanto a seguridad, ésta no es tan confiable, ya que nuestros datos siempre estarán a la vista de terceros,
por lo que quieras o no, esto reduce la seguridad significativamente.

Bibliografías:
http://es.wikipedia.org/wiki/Facebook
http://developers.facebook.com/docs/guides/web





Google Apps

Google Apps es un servicio de Google para uso de dominios de diversos productos ofrecidos por la red Google. Este servicio representa muchas aplicaciones para Internet con funcionamiento similar a los tradicionales programas para escritorio, incluido Gmail, Google Agenda, Talk, Docs y Sites. Esto permite también elegir una garantía de seguridad y de conformidad (proporcionada por Postini) para la mensajería electrónica existente. Para Educación, el programa es gratuito.


Google Apps es una solución de mensajería y colaboración mucho más básica, idónea para familias, grupos y grupos de comunidades con sus propios dominios de Internet. Se recomienda Google Apps for Business para empresas de todos los tamaños que quieran pasar sus herramientas de mensajería o colaboración a una solución alojada.

Algunas de las características mas importantes para empezar a trabajar con google apps son:

  • Trabaja con lenguajes de programacion web (al menos uno de los siguientes):  java, ruby, python. Soportando también: servlets, javascripts, Django y bibliotecas 100%  python.
  • Se pueden agregar bases de datos para mejorar la funcionalidad de nuestras apps.
  • Se puede almacenar la app en un servidor propio o en appspot.com, según convenga.
  • En cuanto a seguridad, es similar a la utilizada por google, pero que al fin de cuentas no es del todo segura, ya que existen terceros para los cuales estan disponibles nuestros datos.

Ventajas de usar Google Apps (las más destacadas):

-> Ahorros en costes probados
Las aplicaciones de colaboración y mensajería de Google basadas en Internet no requieren ningún hardware ni software y, además, sólo es necesario un mantenimiento mínimo. Gracias a ello, las empresas pueden disponer de mucho tiempo, además de ahorrar costes.

Al realizar la transición a Gmail y a Google Calendar, los usuarios finales tienen la posibilidad de usar la interfaz de Microsoft Outlook (en inglés) para el correo electrónico, para los contactos y para el calendario.

-> Acceso a las aplicaciones de MI, de calendarios y de correo electrónico para móviles
Gracias a la variedad de opciones con las que los empleados cuentan para acceder a la información mientras están en movimiento, éstos pueden ser productivos con Google Apps incluso cuando no estén en sus lugares de trabajo.

-> Garantía de fiabilidad de tiempo de actividad del 99,9%
Garantizamos una disponibilidad de Google Apps del 99,9% como mínimo para que tus empleados sean más productivos y para que no tengas que preocuparte por los períodos de inactividad del sistema.

-> Espacio de almacenamiento 50 veces superior a la media del sector
Cada empleado cuenta con 25 GB para almacenar correo electrónico, por lo que pueden conservar los mensajes importantes y encontrarlos inmediatamente gracias a la incorporación de la búsqueda de Google.

-> Cumplimiento de las normativas y seguridad de la información
Cuando confíes la información de tu empresa a Google, puedes tener la tranquilidad de que esta información importante estará segura y en buenas manos.

-> Control total administrativo y de los datos
Los administradores pueden personalizar totalmente Google Apps para cubrir las necesidades que puedan tener en cuanto a marcas, aspectos técnicos y aspectos empresariales.

-> Asistencia al cliente durante las 24 horas del día, los siete días de la semana
Google Apps es muy fiable y fácil de utilizar, pero, en caso de que sea necesario, ofrece asistencia a los administradores.

Entre otras...

Algunas de las Google Apps mas conocidas son:


  • AdSense Obtén beneficios de tu sitio web.

  • AdWords Anuncia tu empresa en Google.


  •   Alertas de Google Recibe actualizaciones por correo electrónico de los temas que elijas.

  • Analytics Analiza el tráfico de tu sitio web.
     
  • Checkout Realiza compras online de forma más rápida y segura.
  • Búsqueda personalizada de Google Crea una experiencia de búsqueda personalizada en tu sitio web.

  • DoubleClick for Advertisers Administra, ejecuta, publica y revisa tu publicidad online.

  • DoubleClick for Publishers Administra tu inventario de anuncios.


  • Google Earth Explora el mundo desde tu equipo.

  • FeedBurner Analiza las suscripciones a los feeds de RSS que publicas.

  • iGoogle Añade noticias, juegos y mucho más a tu página principal de Google.
  • Knol Comparte tus conocimientos.
  • Google Maps
    Consulta mapas y obtén indicaciones para llegar a los sitios que buscas.

  • Merchant Centre
    Envía tus productos a Google.


  • Google Noticias Busca miles de noticias.
  • orkut Conoce a gente nueva y mantente en contacto con los amigos.


  • Álbumes web de Picasa Busca, modifica y comparte tus fotos.

  • Places Incluye tu empresa en Google.


  • Google Reader Accede rápidamente a todos tus blogs y feeds de noticias.

  • Translator Toolkit Obtén herramientas para que los traductores traduzcan tus páginas y documentos con mayor rapidez.
  • Google Wave Colabora en la elaboración de contenidos y participa en debates desde un mismo lugar.

  • Herramientas para webmasters de Google Mejora la visibilidad de tu sitio.

  • Optimizador de sitios web Crea sitios web eficaces.


  • YouTube Ve, sube y comparte vídeos.


Bibliografias:

http://www.google.com/apps