Está en la página 1de 251

INSTITUTO POLITÉCNICO NACIONAL

UNIDAD PROFESIONAL INTERDISCIPLINARIA


DE INGENIERÍA Y CIENCIAS SOCIALES
Y ADMINISTRATIVAS

“LA BÚSQUEDA DE INFORMACIÓN A TRAVÉS DE


BUSCADORES Y SOPORTADA CON MAPAS
MENTALES: UN ÁREA DE OPORTUNIDAD PARA
LAS PYMES DE MÉXICO”

T E S I S

QUE PARA OBTENER EL TÍTULO DE


LICENCIADO EN CIENCIAS DE LA INFORMÁTICA

P R E S E N T A N
NATALIA EDITH ALVARADO GONZÁLEZ
MERCED ISAURO GUZMÁN QUIROZ
MIGUEL ÁNGEL JIMÉNEZ FLORES

MÉXICO D.F. 2010


INDICE
RESUMEN...................................................................................................................................... i
INTRODUCCIÓN ........................................................................................................................... ii

CAPÍTULO I
LA PROBLEMÁTICA DE LA BÚSQUEDA DE INFORMACIÓN EN LAS EMPRESAS

1. LA PROBLEMÁTICA DE LA BÚSQUEDA DE INFORMACIÓN EN LAS EMPRESAS ................. 1


1.1. ¿QUIEN USA LOS BUSCADORES? ....................................................................................... 1
1.2. LOCALIZACIÓN DE LA INFORMACIÓN ................................................................................. 1
1.3. LA BÚSQUEDA EN LA WEB ................................................................................................... 2
1.3.1 MECANISMOS DE BÚSQUEDA EN LA WEB........................................................................ 2
1.3.1.1. BUSCADORES .............................................................................................................. 2
1.3.1.2. CLASIFICACIÓN DE LA WEB. ....................................................................................... 3
1.3.1.2.1. WEB VISIBLE ........................................................................................................... 3
1.3.1.2.2. WEB INVISIBLE ....................................................................................................... 3
1.3.1.3. ESTRATEGIAS DE BÚSQUEDA EN LA WEB ................................................................ 5
1.4. ESTIMACIÓN DEL TAMAÑO DEL PROBLEMA EN LAS PYMES DE MÉXICO ....................... 7
1.5. LA IMPORTANCIA DE LA GESTIÓN DE DOCUMENTOS DENTRO DE LAS PYMES............. 8

CAPÍTULO II
SITUACIÓN ACTUAL DE LOS BUSCADORES EN LA WEB

2. SITUACIÓN ACTUAL DE LOS BUSCADORES EN LA WEB .................................................... 10


2.1. GOOGLE .............................................................................................................................. 10
2.1.1. GOOGLE DESKTOP .......................................................................................................... 12
2.1.1.1. VENTAJAS................................................................................................................... 13
2.1.2. GOOGLE DESKTOP PARA PYMES .................................................................................. 19
2.1.3. GOOGLE SEARCH APPLIANCE ....................................................................................... 21
2.1.3.1. INTEGRACIÓN CON SISTEMAS DE ADMINISTRACIÓN DE CONTENIDOS
EMPRESARIALES....................................................................................................................... 22
2.1.3.2. VENTAJAS DE GOOGLE PARA EL USUARIO FINAL.................................................. 23
2.1.3.3. SEGURIDAD Y CONTROL DE ACCESO ..................................................................... 25
2.1.3.3.1. CONFIGURACIÓN Y ADMINISTRACIÓN ............................................................... 25
2.1.4. GOOGLE MINI ................................................................................................................... 25
2.1.4.1. CARACTERÍSTICAS .................................................................................................... 26
2.1.4.2. VERSIONES ................................................................................................................ 29
2.1.5. GOOGLE SCHOLAR.......................................................................................................... 29
2.1.5.1. CARACTERÍSTICAS .................................................................................................... 29
2.1.6. TENDENCIAS DE GOOGLE .............................................................................................. 30
2.1.6.1. GOOGLE CHROME ..................................................................................................... 30
2.1.6.2. CARACTERÍSTICAS ................................................................................................. 30
2.1.6.3. ESTRUCTURA INTERNA .......................................................................................... 30
2.1.6.4. WEBKIT .................................................................................................................... 32
2.1.6.5. SEGURIDAD ............................................................................................................. 32
2.1.6.5.1. NIVELES DE SEGURIDAD .................................................................................. 33
2.2. WIKIA SEARCH .................................................................................................................... 34
2.3. YAHOO ................................................................................................................................. 35
2.3.1. MEJORAS DE YAHOO ................................................................................................... 36
2.4. ALTAVISTA........................................................................................................................... 37
2.5. WOLFRAMALPHA ................................................................................................................ 38
2.6. BING ..................................................................................................................................... 41
2.6.1. DESARROLLO DEL BUSCADOR BING .......................................................................... 41
2.6.2. CARACTERÍSTICAS PRINCIPALES DE BING ................................................................ 43
2.7. OA-HERMES ........................................................................................................................ 45
2.8. OTROS BUSCADORES ........................................................................................................ 47
2.9. TABLA ESTADÍSTICA DEL USO DE LOS BUSCADORES MÁS RELEVANTES ................... 48
2.10. CUADRO COMPARATIVO CON LAS CARACTERÍSTICAS DE LOS BUSCADORES MÁS
RELEVANTES ............................................................................................................................. 49
2.11. REDALYC ........................................................................................................................... 50
2.12. BIBLIOTECAS VIRTUALES EN MÉXICO ............................................................................ 51

CAPÍTULO III
BUSCADORES WEB

3. BUSCADORES WEB ............................................................................................................... 52


3.2. TIPOS DE BUSCADORES .................................................................................................... 53
3.2.1. DIRECTORIOS TEMÁTICOS .......................................................................................... 53
3.2.2. MOTORES DE BÚSQUEDA ............................................................................................ 54
3.2.2.1. PROCESO DE BÚSQUEDA DE UN SEARCH ENGINE Y DIRECTORIO TEMÁTICO .. 55
3.2.2.2. FUNCIONAMIENTO DE UN MOTOR DE BÚSQUEDA ................................................ 55
3.3. ALGORITMOS DE POSICIONAMIENTO............................................................................... 57
3.3.1. PAGERANK (GOOGLE) .................................................................................................. 58
3.3.2. WEBRANK (YAHOO) ...................................................................................................... 59
3.3.3. MSN SEARCH ................................................................................................................ 60
3.4. METABUSCADORES ........................................................................................................... 60
3.4.1. TABLA DE METABUSCADORES .................................................................................... 62

CAPÍTULO IV
HERRAMIENTAS TECNOLÓGICAS UTILIZADAS

4. HERRAMIENTAS TECNOLÓGICAS UTILIZADAS ................................................................... 65


4.1. PROCESO UNIFICADO ........................................................................................................ 65
4.1.1. CARACTERÍSTICAS GENERALES DEL PROCESO UNIFICADO................................... 65
4.2. LENGUAJE UNIFICADO DE MODELADO (UML) .................................................................. 67
4.3. MAPAS MENTALES ............................................................................................................. 68
4.3.1. ¿QUÉ SON LOS MAPAS MENTALES?........................................................................... 68
4.3.2. LOS MAPAS MENTALES COMO HERRAMIENTA .......................................................... 70
4.3.3. USO DE MAPAS MENTALES ......................................................................................... 71
4.4. REDES NEURONALES ........................................................................................................ 74
4.4.1. VENTAJAS DE LAS REDES NEURONALES .................................................................. 77
4.5. BÚSQUEDAS ....................................................................................................................... 78
4.5.1. BÚSQUEDA EN PROFUNDIDAD .................................................................................... 78
4.5.2. BÚSQUEDA EN AMPLITUD............................................................................................ 79
4.6. SISTEMAS BASADOS EN CONOCIMIENTO ........................................................................ 80
4.6.1. BASES DE CONOCIMIENTO .......................................................................................... 81
4.7. LENGUAJE ESTRUCTURADO DE CONSULTA (SQL) ......................................................... 82
4.7.1. FUNCIONAMIENTO DE SQL BÁSICO ............................................................................ 83
4.8. BASE DE DATOS ................................................................................................................. 85
4.8.1. BASES DE DATOS DOCUMENTALES ........................................................................... 86
4.8.2. MYSQL ........................................................................................................................... 86
4.8.2.1. PHPMYADMIN .......................................................................................................... 87
4.9. PROGRAMACIÓN PARA WEB CON SOFTWARE LIBRE ..................................................... 87
4.9.1. LENGUAJE DE MARCAS DE HIPERTEXTO (HTML) ...................................................... 87
4.9.2. JAVASCRIPT .................................................................................................................. 88
4.9.3. LENGUAJE DE ETIQUETADO EXTENSIBLE (XML) ....................................................... 89
4.9.4. STRUTS.......................................................................................................................... 94
4.9.4.1. MODELO MVC .......................................................................................................... 95
4.9.4.2. ACTIONS (LÓGICA DE PROGRAMACIÓN) .............................................................. 98
4.9.4.3. PAGINA DE SERVIDOR JAVA (JSP) ...................................................................... 100
4.9.4.4. FRAMEWORKS (HIBERNATE) ............................................................................... 102
4.10. LENGUAJE PHP ............................................................................................................... 103
4.10.1. ASPECTOS GENERALES DE PHP............................................................................. 106
4.10.2. FUNCIONES EN PHP ................................................................................................. 110
4.10.3. EL PROTOCOLO HTTP .............................................................................................. 121
4.10.4. FORMULARIOS EN HTML .......................................................................................... 121
4.11. UNIFORM SERVER .......................................................................................................... 125
4.12. SERVIDOR APACHE. ....................................................................................................... 126

CAPÍTULO V
DESARROLLO DE LA SOLUCIÓN

5. DESARROLLO DE LA SOLUCIÓN ........................................................................................ 128


5.1. ESQUEMA GENERAL DE LA SOLUCIÓN .......................................................................... 128
5.2. ALCANCE DE LA SOLUCIÓN ............................................................................................. 129
5.2.1. REQUERIMIENTOS PARA EMPLEAR UN SOFTWARE DE MAPAS MENTALES. ........ 130
5.3. BENCHMARKING SOBRE SOFTWARE DE MAPAS MENTALES....................................... 131
5.3.1. CONCLUSIONES DEL BENCHMARKING ..................................................................... 136
5.4. DESCRIPCIÓN DE LA HERRAMIENTA DE MAPA MENTAL A EMPLEAR ......................... 136
5.4.1 ECOTREE...................................................................................................................... 136
5.5. PROPUESTA DE PROTOTIPO “MY POLTREE” ................................................................. 138
5.5.1. CASOS DE USO ........................................................................................................... 138
5.5.1.1. DIAGRAMA ACTORES RELACIÓN GENERALIZACIÓN ......................................... 138
5.5.1.2. DIAGRAMA ACTOR CASOS DE USO ..................................................................... 139
5.5.1.3. MODELO DE CASOS DE USO ............................................................................... 140
5.5.1.3.1. CASO DE USO DEL PERFIL ADMINISTRADOR ............................................... 141
5.5.1.3.2. CASO DE USO DEL PERFIL EXPERTO ........................................................... 141
5.5.2. DIAGRAMAS DE ACTIVIDADES ................................................................................... 142
5.5.2.1. DIAGRAMA DE ACTIVIDADES PARA ADMINISTRADOR ....................................... 142
5.5.2.2. DIAGRAMA DE ACTIVIDADES PARA EXPERTO ................................................... 144
5.5.2.3. DIAGRAMA DE ACTIVIDADES PARA USUARIO FINAL ......................................... 145
5.5.3. PANTALLAS MY POLTREE ............................................................................................. 147
5.6. DESCRIPCIÓN DE UNA PRUEBA REAL CON USUARIO REAL ........................................ 151
5.6.1. EJEMPLO SOBRE AMBIENTE WEB............................................................................. 151
5.6.1.1. BING VS GOOGLE “MAPA COMPARATIVO” .......................................................... 151
5.6.2. EJEMPLO SOBRE AMBIENTE EN EQUIPO LOCAL ..................................................... 153
5.6.1.2. GOOGLE DESKTOP “MAPA COMPARATIVO” ....................................................... 153
5.7. PASOS FUTUROS AL PROTOTIPO ................................................................................... 154
5.7.1. MIGRACIÓN DE ECOTREE A MINDMANAGER ........................................................... 154
5.7.2. CONTROL DE PERMISOS EN LA INFORMACIÓN ....................................................... 155
5.8. SUGERENCIAS PARA UPIICSA ......................................................................................... 156
CONCLUSIONES ...................................................................................................................... 157
BIBLIOGRAFÍA .......................................................................................................................... 158
ANEXOS.................................................................................................................................... 161
RESUMEN
Las PYMES conforman el 97% de las empresas en México y constituyen la base de la
economía convirtiéndose en potenciales desarrolladoras de empleo y reactivadoras de la misma.
Sin embargo se han quedado rezagadas e incapaces de competir y participar en los mercados
debido a que no están preparadas para las exigencias que la globalización impone.1 Una de las
posibles causas de esto es por la mala gestión de su información, que repercute obviamente en la
toma de decisiones diaria.

Hoy, la navegación por Internet se hace más complicada, debido a la gran cantidad de
información que aparece día a día. Encontrar de forma rápida y sencilla algo que se está
buscando, puede convertirse en una tarea difícil, con resultados no deseados.

El origen de los buscadores se remonta a Abril de 1994, año en el que una pareja de
universitarios norteamericanos (David Filo y Jerry Yang) decidieron crear una página web en la que
se ofreciera un directorio de páginas interesantes clasificadas por temas, pensando siempre en las
necesidades de información que podrían tener sus compañeros de estudios, dando vida a Yahoo.
Debido al éxito de este y al continuo crecimiento de la Internet, fueron desarrollados más
buscadores con la única intención de poder clasificar, organizar o catalogar toda esa gran cantidad
de información para su fácil y rápida localización.

Con el desarrollo de los buscadores en la web, se necesito de la ayuda de otros sistemas -


llamados normalmente Buscadores de Buscadores o simplemente Metabuscadores- que utilizan
las Bases de Datos de otros buscadores, mostrando una combinación de las mejores páginas por
cada uno de ellos, permitiendo así consultar en diferentes buscadores al mismo tiempo. Pese a
todos los mecanismos que existen hoy para hacer búsquedas, el problema en la web y empresas
sigue siendo la calidad de la búsqueda, debido a que los buscadores devuelven todo lo que
encuentran y muchos de los resultados son redundantes o no tienen el contexto con el término o
términos que se buscan.

A lo largo de este proyecto se plantea una posible solución al problema antes mencionado
a través del uso de Mapas Mentales, estructurados por expertos, para generar “cadenas sugeridas”
que pueden ir acotando el número de resultados en Google de una manera formidable, permitiendo
también sugerir ligas a páginas web o archivos físicos en el disco duro utilizando para ello, un
prototipo con interfaz intuitiva y costos accesibles que puede ser usado en las PYMES o cualquier
otra área que lo justifique.

1
http://www.gestiopolis.com/canales2/emprendedor/1/sapymes.htm Marzo-10

i
ii
En el capítulo 2 se muestra un enfoque global de los buscadores que actualmente están en
el mercado, los más comerciales y los que son de México, indicando características generales,
ventajas, desventajas y costos de algunos de ellos por adquisición de licencia. También se hace
referencia a buscadores creados para uso particular como OA HERMES de la UNAM, Redalyc
empleado por la UAEM (Universidad Autónoma del Estado de México) y mostrando un listado
general de bibliotecas virtuales de México.

En el capítulo 3 Buscadores Web, se abordan temas desde conceptos básicos como ¿Qué
es un buscador?, tipos de buscadores, motores de búsqueda, metabuscadores, hasta términos
avanzados como algoritmos de posicionamiento que ocupan los principales buscadores Web
comerciales como Google (PageRank), Yahoo (WebRank), MSN SEARCH; explicando de estos
últimos las diferentes variables que se asocian a cada uno de ellos.

Posteriormente en el capítulo 4, se hace una descripción de herramientas tecnológicas


para el apoyo en el diseño de la propuesta empleando desde la metodología de Proceso Unificado,
haciendo mención de sus características generales abordando a su vez el Lenguaje Unificado de
Modelado y sus herramientas. También se hace una referencia a los Mapas Mentales abarcando
desde sus antecedentes, concepto y como se emplean como herramientas tanto en eventos
personales, educativos y empresariales, el cual es un tema clave para el diseño del prototipo, del
mismo modo se hace referencia a herramientas de programación como puede ser java o el
lenguaje de programación PHP.

Finalmente en el capitulo 5 se plantea un esquema de conceptualización de la solución que


se concretiza con la construcción de un prototipo que apoye la búsqueda en las PyMES a través
de Mapas Mentales donde se menciona el alcance que tendrá este, analizando y explicando cada
una de las herramientas de software que se utilizarán y su ¿porqué?; aunado a las pantallas y
diagramas del proyecto. Del mismo modo se muestran tanto pruebas reales o ejemplos tangibles
que sustentan la solución que se esta planteando, pasos futuros al prototipo y consejos que
apoyan la estructuración de la información en la UPIICSA.

Se concluye que los buscadores pueden ser aprovechados por las PyMES al optimizar sus
búsquedas mediante Mapas Mentales evitando con ello información irrelevante, ya que estos
últimos tienen como fundamento organizar -por mencionar: situaciones personales, educativas y de
negocio, que puede incluir notas o apuntes, lluvia de ideas, resumir, revisar y depurar la línea
general de pensamiento humano-, principalmente empleando palabras claves, mismas que se
asocian entre sí; lo cual a futuro permitirá explotar ampliamente esta idea en pedagogía, pequeñas
y medianas empresas o en cualquier otra área de oportunidad que lo justifique.

iii
CAPÍTULO I
LA PROBLEMÁTICA DE LA BÚSQUEDA DE
INFORMACIÓN EN LAS EMPRESAS
CAP. 1. LA PROBLEMÁTICA DE LA BÚSQUEDA DE INFORMACIÓN
EN LAS EMPRESAS
1.1. ¿QUIEN USA LOS BUSCADORES?

Anteriormente, cuando los estudiantes, profesores, entre otros, necesitaban información de


carácter científico o educativo, acudían a las bibliotecas públicas, especializadas o académicas, en
las que un bibliotecario los orientaba sobre en que libro podían encontrar la información buscada o
en su caso debían consultar las tradicionales fichas bibliográficas. El creciente desarrollo científico
y tecnológico optimizó este proceso cotidiano y complejo de búsqueda de información, sin embargo
aún existen problemas para acceder sólo a la información requerida.

La evolución de las tecnologías de información, se centro en el uso de Internet2 que


actualmente utilizan tanto estudiantes como empresarios, etc. Esta red es como una gran
biblioteca, con múltiples departamentos especializados en diferentes materias en donde se
encuentra la información con ciertas desventajas, la principal de ellas es que la mayoría de
resultados obtenidos es información irrelevante para el usuario.

Para resolver esto, surgen herramientas eficaces3 que –tratan- de evitar esta dificultad. Sin
embargo estas herramientas no se han empleado de forma apropiada para evitar este problema,
ya que los buscadores actuales continúan presentando resultados irrelevantes.

1.2. LOCALIZACIÓN DE LA INFORMACIÓN


Uno de los principales problemas a los que se enfrentan las organizaciones y los usuarios
en general hoy en día es la administración de datos, tanto en términos de volumen, como de
ubicación, formato o contexto. La complejidad de estos factores hace cada vez más difícil buscar,
utilizar y compartir información que sirva. Como consecuencia, los usuarios o empresas necesitan
herramientas de búsqueda que les ayuden a ser más productivos para la toma de decisiones y
alcanzar un mayor éxito empresarial o personal.

Asimismo, las compañías buscan optimizar el rendimiento de sus recursos debido a la


intensa competencia, lo que propicia que las estructuras organizativas se compliquen al momento
de filtrar su activo más importante que es la información con sus respectivas características:
exacta, objetiva, veraz, continua, oportuna y comparable4, entre otras. Dentro de estas estructuras
organizativas, la información empresarial puede almacenarse en múltiples ubicaciones -carpetas

2
INTERNET: Conjunto de servidores interconectados entre sí para el intercambio de información.
3
BUSCADORES Y METABUSCADORES
4
www.virtual.unal.edu.co/cursos/enfermeria/2002847/lecciones/tematica4/subtema4-5.html 30-Agosto-09

1
de servidor, intranets, correo electrónico, Internet y PC- lo que aumenta el reto de encontrar
información importante de manera eficaz.

1.3. LA BÚSQUEDA EN LA WEB

La World Wide Web surgió en 1989 como una forma de distribuir información. El rápido
crecimiento de la misma, sobre todo a partir de 1993, y su propia naturaleza no jerárquica, creó la
necesidad de herramientas que permitieran estructurar la información disponible para posibilitar su
fácil acceso, el cual consiste en catalogar documentos de forma manual o en base a la información
particular, utilizando técnicas provenientes de la recuperación de información tradicional
(Information Retrieval).5

1.3.1. MECANISMOS DE BÚSQUEDA EN LA WEB


La información presente en la Web no está de ningún modo estructurada. Adicionalmente,
la cantidad de información presente en la red en forma de páginas HTML es enorme y aumenta día
a día. Como consecuencia, surge la necesidad de disponer de herramientas que faciliten la labor
de búsqueda de información. Diversas universidades y empresas han desarrollado sistemas para
efectuar búsquedas en Internet. Estos –localizadores- de información se conocen con diferentes
nombres: motores de búsqueda (search engines), buscadores, maquinarias de búsqueda, etc. y
son de uso público, es decir que figuran en la red y cualquier usuario puede servirse de ellos.
Algunos de ellos han cobrado mucha popularidad como Google, Yahoo, Altavista, etc. que
constantemente introducen mejoras, nuevos servicios y opciones que van desde conocer las
noticias del día y el horóscopo hasta la posibilidad de traducir un texto de un idioma a otro. En
algunos casos, los buscadores muestran los resultados indicando el grado de relevancia de cada
documento, mediante signos como estrellas, o bien con porcentajes.

1.3.1.1. BUSCADORES
Un buscador es un sitio web cuyo propósito principal consiste en que el público pueda
encontrar información. Estos mecanismos y el software que los apoya tratan de indexar toda la
web, por lo que generan y mantienen enormes bases de datos que almacenan todas las páginas
con autorización de indexación del Internet.

A pesar de su pretendida exhaustividad, se calcula que los mayores motores de búsqueda


6
indexan sólo entre un tercio y la mitad de los documentos disponibles al público en la Red. Un

5
www.campusvirtual-hgm.net/alfin/contenido/1-1.html Marzo - 09
6
www.bhsu.edu/education/edfaculty/lturner Abril - 09

2
estudio muy citado de Bright Planet ha estimado que la información contenida en la web invisible
es aproximadamente 550 veces mayor que la de la web superficial y crece a mayor velocidad.7 Un
estudio posterior de Cyveillance calcula que el tamaño de la web profunda es 275 veces mayor que
el de la web visible.8 Estimaciones posteriores, en cambio, señalan que el tamaño de la web
invisible es sólo entre 2 y 50 veces mayor que el de la web visible9. Las diferencias en las cifras se
deben a las diferentes metodologías utilizadas por los autores. En cualquier caso, el valor de la
información contenida en la llamada Web profunda justifica su estudio y el de sus formas de
acceso.

Los buscadores arrojan resultados sobre las búsquedas realizadas en sus propios índices
y no sobre la web directamente. Esto último sería imposible debido al volumen de información y al
tiempo requerido para realizar la búsqueda.

1.3.1.2. CLASIFICACION DE LA WEB

1.3.1.2.1. WEB VISIBLE (SUPERFICIAL)

Comprende todos aquellos sitios cuya información puede ser indexada por los robots 10 de
los buscadores convencionales y recuperada casi en su totalidad mediante una consulta a sus
formularios de búsqueda. Las características principales de los sitios de la web visible son:

 Su información no está contenida en bases de datos.


 Es de libre acceso.
 No requiere la realización de un proceso de registro para acceder.

1.3.1.2.2. WEB INVISIBLE

La Web invisible es el término utilizado para describir toda la información disponible en


Internet que no es recuperada a través de los buscadores convencionales. Generalmente es
información almacenada y accesible mediante bases de datos. Esta a su vez se clasifica en:

WEB OPACA: Se compone de archivos que podrían estar incluidos en los índices de los motores
de búsqueda, pero no lo están por alguna de estas razones:

 No todas las páginas de un sitio son indexadas en los buscadores.

7
www.brightplanet.com/technology/deepweb.asp Abril - 09
8
www.enssib.fr/bibliotheque/documents/dpssib/rrbouf.pdf Mayo - 09
9
www.sims.berkeley.edu/research/projects/how-muchinfo-2003 Mayo - 09
10
Robots: Ver concepto en el tema 3.2.2.2.

3
 Frecuencia de la indexación: los motores de búsqueda no tienen la capacidad de
indexar todas las páginas existentes.
 Número máximo de resultados visibles: aunque los motores de búsqueda arrojan a
veces un gran número de resultados de búsqueda, generalmente limitan el número de
documentos que se muestran (entre 200 y 1000 documentos).
 URL‟s desconectados: las generaciones más recientes de buscadores, como Google,
presentan los documentos por relevancia basada en el número de veces que aparecen
referenciados o ligados en otros.

WEB PRIVADA: Consiste en las páginas web que podrían estar indexadas en los motores de
búsqueda pero son excluidas deliberadamente por alguna de estas causas:

 Las páginas están protegidas por contraseñas.


 Contienen un archivo “robots.txt” para evitar ser indexadas.
 Contienen un campo “noindex” para evitar que el buscador indexe la parte
correspondiente al cuerpo de la página.

LA WEB PROPIETARIA: Incluye aquellas páginas en las que es necesario registrarse para tener
acceso al contenido, ya sea de forma gratuita o pagada.

LA WEB REALMENTE INVISIBLE: Se compone de páginas que no pueden ser indexadas por
limitaciones técnicas de los buscadores, como las siguientes:

 Páginas web que incluyen formatos como PDF, TXT (Actualmente existen buscadores
especializados que permiten la búsqueda directa en estos formatos), Flash,
Shockwave11, programas ejecutables y archivos comprimidos.
 Páginas generadas dinámicamente, es decir, que se generan a partir de datos que
introduce el usuario.
 Información almacenada en bases de datos relacionales, que no puede ser extraída a
menos que se realice una petición específica.

Algunos buscadores tradicionales como Altavista o Google han evolucionado y presentan


ahora la posibilidad de realizar búsquedas por materiales o formatos especiales. Así, Altavista
permite la búsqueda de imágenes, audio y video, presentando opciones de búsqueda avanzada.

11
Es un plugin para navegadores web que permite la reproducción de contenidos interactivos como juegos, presentaciones,
aplicaciones de formación, etc., anteriormente llamado Macromedia Shockwave.
Plugin: es una aplicación que se relaciona con otra para aportarle una función nueva y generalmente muy especifica. Esta
aplicación adicional es ejecutada por la aplicación principal e interactúan por medio de la API.
API: Una API representa una interfaz de comunicación entre componentes software. Se trata del conjunto de llamadas a
ciertas bibliotecas que ofrecen acceso a ciertos servicios desde los procesos y representa un método para conseguir
abstracción en la programación.

4
Google permite realizar búsquedas avanzadas para localizar imágenes. Por su parte, HotBot
(metabuscador) presenta la posibilidad de buscar por distintos formatos, para localizar imágenes,
audio, vídeo, archivos PDF, Script y Shockwave/Flash.

1.3.1.3. ESTRATEGIAS DE BÚSQUEDA EN LA WEB

Muchas veces, resulta tan frustrante no encontrar información en la web, como confuso
disponer de demasiadas opciones de búsqueda y no saber cómo emprenderla.

A continuación se muestran algunas estrategias generales que deben tenerse en cuenta


para utilizar las diferentes herramientas de búsqueda en la web de forma más rápida y eficiente.
Los rubros bajo los cuales aparecen son orientativos.

Estrategias generales.

 Usar varios recursos de búsqueda, y no enfocarse a uno exclusivamente para todos


los tipos de búsqueda.
 Elaborar y mantener una lista propia de buscadores, metabuscadores, directorios,
guías y recursos más útiles.
 Consultar a los bibliotecarios para recibir orientación sobre estrategias de búsqueda y
localización de recursos de información en la web, y para obtener documentos.

Selección de herramientas.

 Usar los tutoriales para aprender a seleccionar y utilizar las diferentes herramientas de
búsqueda.

Objetivo de la búsqueda.

 Usar buscadores o metabuscadores para localizar información de la que se obtendrán


datos específicos.
 Usar directorios o guías para explorar áreas de interés temático.

Forma de búsqueda.

 Usar buscadores o metabuscadores para realizar búsquedas por palabras.


 Usar directorios o guías para revisar por categorías.

Especialización de la búsqueda.

5
 Usar metabuscadores para realizar búsquedas generales en muchos buscadores a la
vez.

 Usar los concentradores o directorios de buscadores para buscar en varios buscadores


especializados.

Precisión de la búsqueda.

 Seleccionar e instalar en una computadora la versión gratuita de algún motor avanzado


o agente auxiliar para las búsquedas en la web.
 Solicitar la adquisición para uso institucional de la versión completa de algún motor
avanzado o agente auxiliar para las búsquedas en la web.

Mucha información recuperada.

 Usar buscadores con opciones avanzadas de búsqueda.


 Usar directorios anotados o guías.

Selección de recursos.

 Usar las guías temáticas para conocer los principales recursos de información que
cubran los intereses del usuario.
 Usar directorios especializados para búsquedas exhaustivas de recursos.

Poca información recuperada.

 Usar mecanismos de búsqueda en la web invisible cuando se hayan agotado los


mecanismos de búsqueda en la web superficial.
 Consultar a especialistas que conozcan recursos especializados.
 Buscar en recursos adicionales si no se encuentra el material en la web.

Búsquedas Avanzadas.

 Usar las opciones avanzadas de los buscadores para localizar imágenes o archivos
PDF o TXT.
 Usar directorios concentradores de buscadores para realizar búsquedas avanzadas
sucesivas en varios de ellos.

Evaluación de la Información.

6
 Usar directorios anotados para evaluar si los recursos disponibles en la web profunda
son útiles para la búsqueda que se esta realizando.

Usar directorios de bases de datos para conocer cuáles de ellas puede ofrecer información
útil para las búsquedas.

1.4. ESTIMACIÓN DEL TAMAÑO DEL PROBLEMA EN LAS PYMES


DE MÉXICO

El reto al que se enfrentan la mayoría de las compañías es separar el software y los


procesos empresariales de las personas que convierten el negocio en un éxito. Todo negocio debe
ampliar su base de clientes, crear nuevas prácticas y productos, diseñar técnicas, e identificar los
cambios y adaptarse a ellos. Las situaciones empresariales que requieren administración de la
información empresarial son numerosas.

Las PYMES en México constituyen el 97% del total de las empresas, generadoras de
empleo del 79% de la población y generan ingresos equivalentes al 23% del Producto Interno Bruto
(PIB), lo anterior es una clara señal de que se debe poner atención a este tipo de empresas y
verlas como lo que en realidad son: la base de la economía mexicana.

En la Tabla 1. se puede observar la composición de las empresas mexicanas por tamaño y


por sector en términos porcentuales.

Composición por tamaño y sector (participación porcentual).

Tamaño Sector Total

Industria Comercio Servicios* 2,844,308

Micro 94.4% 94.9% 97.4% 95.7%

Pequeña 3.7% 4.0% 1.6% 3.1%

Mediana 1.7% 0.9% 0.5% 0.9%

Grandes 0.4% 0.2% 0.4% 0.3%

Total 100% 100% 100% 100%

Tabla 1. Clasificación de empresas en México por tamaño y por sector en términos porcentuales.12

12
www.contactopyme.gob.mx/impactopymes.asp?Lenguaje=0&Cve_B=5. Enero-09

7
Figura 1. Composición de las empresas mexicanas de acuerdo al empleo que generan y el monto
del PIB que representan en términos porcentuales.13

1.5. LA IMPORTANCIA DE LA GESTION DE DOCUMENTOS


DENTRO DE LAS PYMES

La gestión documental14 tiene gran importancia en las organizaciones a medida que van
creciendo los volúmenes de datos no estructurados –word, excel, power point, pdf, txt- aunado a
los formatos de los archivos en Internet y en las intranets corporativas. El carácter crítico radica en
que una buena gestión documental en una empresa permitirá que los empleados, colaboradores y
socios accedan a la información precisa que necesitan en el momento oportuno, sin tener que
malgastar su tiempo en búsquedas irrelevantes. La gestión inicia por la captura o indexación de los
documentos y acaba en su búsqueda ya sea referencial o un archivo físico.

15
Según los resultados de una encuesta de la consultora IDC , los ejecutivos pasan el 45%
de su tiempo manejando documentos y el 82% creen que los documentos son vitales para el buen
funcionamiento de su organización.

La mayoría de la empresas no tienen conocimiento claro de cuanto gastan anualmente en


el mantenimiento y producción de sus documentos, es más ni siquiera poseen esos datos para
analizar.

13
http://www.contactopyme.gob.mx/grafos.asp?v=0 Enero – 09
14
http://www.servicepoint.es/white-papers/w-servicios-costes.html Agosto – 09
15
http://www.idclatin.com/methodology.asp?ctr=mex Septiembre - 09

8
Los mismos datos de la encuesta de IDC revelan que el 70% de las empresas creen que
una gestión de procesos documentales pobre puede repercutir sobre la agilidad de las operaciones
y el 82% cree que los documentos resultan esenciales para el funcionamiento satisfactorio de su
empresa.

9
CAPÍTULO II
SITUACIÓN ACTUAL DE LOS
BUSCADORES EN LA WEB
CAP. 2. SITUACIÓN ACTUAL DE LOS BUSCADORES EN LA WEB

Diariamente los usuarios frecuentes de Internet se


ven en la necesidad de usar los buscadores para apoyar su
búsqueda de información. En este capítulo se abordan, los
buscadores explicando a grandes rasgos sus funciones y un
poco de historia de ellos. Hay buscadores comerciales como
es el caso de Google y sus variantes, Yahoo, MSN, y el más
reciente Bing de Microsoft.

2.1. GOOGLE Figura 2. Buscadores.

Alrededor de 2001, el buscador Google adquirió prominencia. Su éxito estaba basado en


parte en el concepto de popularidad basado en PageRank, bajo la premisa de que las páginas más
deseadas eran más enlazadas por otras páginas que el resto. Esta idea permitió a Google disponer
de las páginas de una determinada búsqueda en función de su importancia, basada en este
algoritmo, esto es, las páginas más enlazadas por otras páginas se mostraban en primer lugar. La
interfaz minimalista de Google se hizo muy popular entre los usuarios y desde entonces ha tenido
un gran número de imitadores.16

Google y muchos otros buscadores no sólo usaban PageRank17, sino más de 150 criterios
para determinar la pertinencia de una página. La innovadora tecnología de búsqueda Google se
basa en los hipertextos, analizando todo el contenido de cada web y la posición de todos los
términos en cada una de las páginas. Se aproximan los resultados de acuerdo con la proximidad
de los términos de la búsqueda, sin perder tiempo en analizar resultados irrelevantes. Google se
basa en la tecnología PageRank, la cual coloca a los resultados más importantes en primer lugar
en la búsqueda. PageRank mide de forma objetiva la importancia de las páginas web y se calcula
que resuelve una ecuación de 500 millones de variables y más de 2.000 millones de términos.

Los complejos mecanismos automáticos de búsqueda de Google permiten prescindir de la


interferencia humana. Está estructurado de manera que nadie puede comprar un lugar privilegiado
en la lista ni alterar los resultados con fines comerciales (por ejemplo, nadie puede comprar un
PageRank más elevado).

16
www.es.wikipedia.org/wiki/Buscador#Mixtos_Buscador_-_Directorio Agosto - 09
17
Ver capítulo 3.3. Algoritmos de posicionamiento.

10
Google cuenta con más de 3.000 millones de páginas web, y al mes se llegan a realizar
más de 5.000 millones de búsquedas (aproximadamente, unos 200 millones de búsquedas
diarias). Por otro lado, este buscador contiene más de mil millones de imágenes de todos los
tipos: fotografías, dibujos, pinturas, bosquejos, historietas, carteles y más. La última versión de
búsqueda de escritorio de Google, tiene la capacidad de localizar diversos archivos de diferentes
tipos incluyendo PDF y MP3, estando disponible en inglés, francés, alemán, español, chino,
japonés y coreano.

Google News: Este buscador cuenta además con noticias clasificadas (news.google.com), que se
carateriza por:

 Catalogar la información de la prensa digital.

 Las noticias se extraen de forma automática de miles de fuentes, y son clasificadas en


categorías y relacionadas entre sí.

 La información se actualiza constantemente en pocos minutos, y se generan las portadas


de las secciones sin la intervención del hombre.

Google Answers: Mediante el servicio www.answers.google.com se pueden formular preguntas a


investigadores especializados, y se caracterizan por:

 Ofrecer la mejor respuesta, realizando búsquedas por Internet u otros medios.

 Es el único servicio aparte de la publicidad y soluciones profesionales, que tiene un costo


para el usuario final.

 Los investigadores son consultores independientes que reciben el 75% del precio que el
usuario abona.

 Las preguntas ya respondidas quedan publicadas por categorías en Google Answers y se


pueden consultar libremente.

Google Maps: El Mapa de Google, un servicio que ofrece:

 Mapas de ciudades de diversos países (Estados Unidos, Canadá, Reino Unido, Japón),
información que puede ser empleada de una forma fácil y efectiva por usuarios no
expertos.

 Los usuarios pueden navegar y encontrar la información requerida de localización, de


manera dinámica.

11
Google Blogs: En el año 2005 se produjo el boom mundial de los blogs. Éstos tienen dos
características importantes, se publican con rapidez y se suscriben a muchos sitios. Google,
obviamente no quiso quedar fuera de esta revolución de la información casera, y puso a funcionar
su propio Google Blog, en donde publica los productos de la empresa y la información más
reciente. A mediados de septiembre de 2005 se lanzó la búsqueda de blog llamada Google Blog
search, herramienta que ayuda a encontrar los blogs registrados en la web. Además de este
18
servicio lanzó un lector de feeds denominado Google Reader.

Google Talks: En el mes de agosto del 2005, se lanzó Google Talk, un producto que pretende
brindar al usuario una manera libre de hablar. Ofrece una tecnología que permite enviar mensajes
inmediatos, un escritorio de google para búsqueda, acceso a email, noticias, fotos, etc.

Google Websearch y Google SiteSearch: Este buscador vende su tecnología de búsquedas


(Google WebSearch y Google SiteSearch), donde incluye infinidad de funciones y posibilidades
por completo automatizadas. Muchos portales y web corporativas de grandes empresas de todo el
mundo han elegido esta tecnología para sus necesidades de búsqueda.

Publicidad de Google: Es otra de sus fuentes de ingresos. Este buscador ofrece a los anunciantes
dos sistemas publicitarios: Premium Sponsorship (un vínculo de texto aparente aparece en la
parte superior de la página de resultados de Google cuando la palabra clave o la frase que se
haya comprado se incluye en las búsquedas de los usuarios) y AdWords. (Sistema de costo por
clic, totalmente personalizable, donde únicamente se paga cuando los usuarios hacen clic en el
anuncio)

2.1.1. GOOGLE DESKTOP

Se trata de una aplicación de búsqueda en el escritorio que permite encontrar texto en


mensajes de correo electrónico, archivos, música, fotografías, páginas web visitadas (direcciones
guardadas en caché), entre otros.

Al habilitar el equipo para la búsqueda, el programa permite accesar fácilmente a la


información evitando con ello la organización manual de información en el equipo e Internet. Ver
Figura 3.

18
Un feed se compone de un resumen actualizado periódicamente de un determinado contenido web y de los enlaces a la
versión completa del mismo. Al suscribirse al feed de un sitio web mediante un lector de feeds, obtendrá un resumen del
contenido nuevo de dicho sitio.
www.desktop.google.com.mx/es/features.html Septiembre – 09

12
Figura 3. Interfaz de Google Desktop

2.1.1.1. VENTAJAS
 Búsqueda de Archivos en el equipo e Internet: Cuando se realiza una búsqueda en
Desktop, aparece una página que muestra los resultados de ésta más relevantes, cada
uno de ellos con el nombre del archivo y una breve muestra del contenido con los
términos de búsqueda resaltados. – Semejante al buscador Web Google – Asimismo
se puede obtener una vista previa de los resultados de la búsqueda en el mismo
navegador. Ver Figura 4.

Figura 4. Ejemplo de búsqueda en Google Desktop.

 Indexación Inteligente: Una vez instalado Google Desktop, éste empezará a indexar los
archivos almacenados en el equipo. Cabe mencionar que Desktop mantiene actualizado

13
el índice de búsqueda añadiendo los nuevos elementos de información del disco duro
automáticamente. – aproximadamente cada 30 segundos, con el equipo inactivo –

Figura 5. Estado de Indexación de Google Desktop.

 Recuperar Información de Archivos Borrados: Esto es posible gracias a que se crean


copias instantáneas en caché de los archivos del disco duro. Por lo tanto se podrán
encontrar documentos que hayan sido borrados accidentalmente.

Figura 6. Ejemplo de Indexación con archivos mp3 con Google Desktop.

14
 Indexación de todo tipo de Archivos: Google Desktop es capaz de indexar archivos de
Gmail, Outlook Express, Microsoft Word, PowerPoint, Internet Explorer, PDF, música,
video, imágenes, archivos ZIP, etc. Ver Figura 6.

 Búsqueda Avanzada: Al hacer clic sobre esta opción, Desktop mostrara un formulario, en
el que podrá especificar fácilmente el tipo de búsqueda que se desea realizar sin tener
que recordar los operadores de búsqueda especificos, también puede restringir el periodo
de tiempo al que pertenezcan los resultados. Ver Figura 7.

Búsqueda
Avanzada

Figura 7. Búsqueda Avanzada.

Figura 8. Interfaz de Búsqueda Avanzada con Google Desktop.

15
 Google Gadgets “Aparatos”: Desktop ofrece acceso inmediato a información
personalizada y actualizada con los google gadgets, que consisten en un conjunto de mini
aplicaciones interactivas que pueden colocarse en cualquier lugar del escritorio para
mostrar nuevos mensajes de correo electrónico, previsiones meteorológicas, fotografías y
noticias personalizadas, aunado a estas mini aplicaciones también se incluye un reloj
analógico, un calendario, un bloc de notas, una lista de tareas pendientes entre otras. Ver
Figura 9.

Figura 9. Google Gadgets.

Google
Gadgets

Figura 10. Configuración de Google Gadgets.

16
Tiempo

Imágenes
Guardadas en el
Equipo

Figura 11. Barra lateral de Google Desktop. Noticias

 Barra de
Búsqueda

Figura 11. Barra lateral de Google Desktop

 Seguridad: Desktop cuenta con una función que facilita búsquedas ayudando a combatir
los sitios web que distribuyen software malintencionado y realizan plishing “suplantaciones
de identidad”. Si el usuario llegara a accesar un sitio que puede robar datos personales o
instalar software malintencionado en el equipo, recibirá un aviso para que decida si
continúa adelante o no.

 Función Bloquear Búsqueda: Ver Figura 12.

17
Figura 12. Bloquear búsqueda.

Figura 13. Confirmación de bloqueo de búsqueda.

La búsqueda con Google Desktop queda bloqueada, por lo cual se debe introducir una
contraseña del usuario de Windows válida. Ver Figura 14.

18
Figura 14. Google Desktop bloqueado.

2.1.2. GOOGLE DESKTOP PARA PYMES


Google Desktop para empresas proporciona la misma funcionalidad para éstas, que para
usuarios finales; sin embargo esta edición está diseñada especialmente para su utilización en
entornos empresariales, en los que el trabajo se distribuye en recursos corporativos centralizados y
la configuración está a cargo de un Administrador de Red.

Figura 15. Interfaz de Google Desktop versión empresarial.

19
Con Google Desktop para PyME se pueden:

 Realizar búsquedas en el correo electrónico, archivos, material multimedia, historial web y


chats instantáneamente.
 Ver las páginas web que se han consultado, incluso cuando no se este conectado a la red.
 Consultar los resultados de búsqueda de una intranet, de Google.com y de sus propios
escritorios en un mismo lugar.
 Desplegar Google Gadgets.
 Consultar información oportuna y orientada en la barra lateral.

Instalar y administrar Google Desktop en la empresa permitirá:

 Controlar de manera centralizada las características y preferencias de los usuarios.


 Cifrar todos los datos de usuario y buscar archivos de índice.
 Distribuir a todos los equipos de la corporación el programa de instalación.

En empresas que ya utilizan Google Search Appliance19 o Google Mini20 para realizar
búsquedas en la Intranet corporativa, la configuración de Desktop para PyMe permite conseguir
niveles de integración eficientes para las búsquedas. Los usuarios corporativos obtienen un único
punto de búsqueda desde el cual pueden consultar todos los recursos disponibles. Los resultados
de búsquedas realizadas por los usuarios de la empresa incluyen fuentes de la red corporativa,
Internet y el mismo equipo de éstos.

La política de grupo es una tecnología de infraestructuras que permite realizar ajustes o


configuraciones de política a equipo y usuarios objetivos.

Google Desktop para empresas es compatible con la directiva de Grupo Microsoft


Windows. Google proporciona una plantilla administrativa de política de grupo, con la que los
administradores de la empresa podrán editar y gestionar las políticas específicas de Desktop por
medio de Group Policy Management, el gadget MMC de la política de grupo y otros editores de
políticas de grupo de su elección. Por lo tanto, las políticas resultantes se pueden aplicar a los
equipos cliente, lo que dará como resultado modificaciones del registro en el equipo cliente.

Aquellos clientes que prefieran no utilizar Active Directory ni la política de grupo para la
gestión, podrán utilizar sus propios mecanismos administrativos para modificar la configuración de
registro directamente, mediante secuencias de comandos de acceso.

19
Ver tema 2.1.3.
20
Ver tema 2.1.4.

20
2.1.3 .GOOGLE SEARCH APPLIANCE
Cada día, en las empresas, los empleados crean documentos, presentaciones, informes de
estudios de mercado, es decir información de gran interés para las organizaciones. Los empleados
pueden beneficiarse considerablemente del acceso a la información, pero solo sí pueden encontrar
fácilmente lo que necesitan. Lamentablemente, este no suele ser el caso. No puede accederse a
los documentos, porque se encuentran en los equipos de escritorio de los empleados o en
almacenes de documentos de difícil acceso físico. Esto supone la existencia de información de
gran valor que permanece inaccesible, lo que reduce la productividad de su empresa y en
ocasiones, provoca una toma de decisiones limitada basada en un acceso incompleto a la
información.

Google Search Appliance (GSA)


proporciona búsquedas universales para
empresas, un sistema para consultar
todo el contenido empresarial o del sitio
web mediante una interfaz sencilla y fácil
de utilizar. Y es que, este dispositivo
facilita la exploración segura a todo el Figura 16. Hardware de GSA.
contenido de la empresa como: intranets, servidores web, portales, sistemas de archivos
compartidos, bases de datos, sistemas de gestión de contenido y datos en tiempo real en
aplicaciones empresariales, todo ello con precisión y facilidad.

Figura 17. Ejemplo de una empresa utilizando GSA.21

21
www.google.co.uk/enterprise/gsa/ Junio – 09

21
GSA proporciona acceso en tiempo real a las aplicaciones empresariales, como un
directorio de contactos, ERP, CRM o sistemas de inteligencia empresarial. Asimismo simplifica la
administración de la búsqueda en una organización, sin la molestia de tener que configurar
hardware y sistemas operativos. GSA puede ponerse en funcionamiento rápidamente y sólo
requiere un administrador para su mantenimiento.

2.1.3.1. INTEGRACIÓN CON SISTEMAS DE ADMINISTRACIÓN DE


CONTENIDOS EMPRESARIALES

Debido a los flujos de trabajo (workflow) y procesos asociados, las organizaciones dedican
una importante cantidad de dinero al desarrollo, despliegue de contenido y sistemas de gestión
documental. Estos sistemas y portales de información contienen información valiosa de la
corporación que se vuelve cada vez más inaccesible para los empleados debido a la falta de
herramientas de búsqueda eficiente y de interfaces de usuario intuitivas.

Google incluye un framework de desarrollo de conectores que permite que las


organizaciones se conecten a los sistemas de gestión de contenidos más populares, como EMC
Documentum, IBM FileNet22, Microsoft SharePoint23 y OpenText Livelink24, entre otros.

Google indexa la información de toda la empresa, además de ofrecer a los usuarios un


acceso seguro, potente y rápido a toda la información corporativa. GSA rastrea a través de la
interfaz HTTP de los sistemas de administración de contenido y documentos existentes,
visualizando páginas y documentos de una forma muy fácil. El programa indexa el contenido,
haciendo que se pueda buscar fácilmente y se respete la configuración de control de acceso y
seguridad inicial de la aplicación.

El hecho de ofrecer búsquedas con Google en los Sistemas de Gestión de Contenidos


ofrece ciertas ventajas:

 Resultados relevantes: Aunque su ECM25 incluya un motor de búsqueda, es posible que


no ofrezca resultados relevantes como Google.

22
www.142.ibm.com/software/dre/ecatalog/Detail.wss?locale=es_MX&synkey=I418435V33755A93 Agosto-09
23
www.office.microsoft.com/es-es/sharepointserver/HA101656533082.aspx Agosto-09
24
www.ecm-spain.com/interior.asp?IdItem=9517 Octubre - 09
25
La gestión de contenido empresarial o Enterprise Content Management (ECM) es una estrategia utilizada para la captura,
almacenamiento, seguridad, control de las versiones, recuperación, distribución, conservación y destrucción de
documentos. www.herramientasparapymes.com/que-es-ecm-gestion-de-contenido-empresarial Agosto – 09

22
 Búsqueda unificada: A medida que aumenta la información y por ende las Bases de
Datos, los usuarios pueden perderse en tal “mar” de información. Google permite unificar
búsquedas en la Intranet, aplicaciones de terceros, contenido en Bases de Datos e
incluso acceder al escritorio de un usuario –Google Desktop-. Los usuarios ahorran
tiempo y encuentran lo que necesitan por medio de un único cuadro de búsqueda.

 Escalabilidad: Este motor de búsqueda puede ampliarse fácilmente y crecer con el tiempo
para manejar todo el contenido corporativo.26

 Seguridad: Google se integra con sus sistemas de control de acceso para asegurar que
los usuarios sólo vean los documentos para los que cuentan con autorización.

 Interfaz de usuario conocida: Los usuarios ven familiar la interfaz de Google.

2.1.3.2. VENTAJAS DE GOOGLE PARA EL USUARIO FINAL

1) Calidad y Ranking de Google. Permite obtener documentos muy relevantes, utilizando


más de 100 variables en cada consulta.

2) Resúmenes dinámicos de página. Determina la relevancia de los resultados con mayor


facilidad gracias a los fragmentos generados dinámicamente que muestran consultas en el
contexto de la página.

3) Corrector Ortográfico. Google sugiere correcciones de forma automática con una


precisión asombrosa incluso cuando se trata de términos o frases específicas de las
empresas.

4) Google Desktop para Empresas. Busca contenido en la unidad de disco duro local:
archivos, mensajes de correo electrónico, chats, páginas web visitadas, entre otras.

5) Paginas almacenadas en Caché. Visualiza los resultados de la búsqueda aunque


provengan de un sitio inactivo, esto es posible gracias a que Google almacena copias en
caché de las páginas visitadas.

26
MODELOS DE GOOGLE SEARCH APPLIANCE:
GB-1001: Hasta 3 millones de Documentos, 300 consultas por minuto. Precio = € 30.000 (euros)
GB-5005: Hasta 5 millones de Documentos
GB-8008: Capacidad Ilimitada
www.google.es/enterprise Junio-09

23
6) Términos de Consulta resaltados. Encuentra rápidamente la parte más relevante de un
documento mediante la función de resaltar los términos de la consulta que se muestran en
los documentos almacenados en caché.

7) Visualización de archivos como HTML. Visualiza los documentos sin necesidad de


disponer de la aplicación cliente original del formato del archivo gracias a la nueva
conversión automática de formato de más de 220 tipos de archivos a HTML.

8) Ordenar por Fecha. Es posible accesar primero a la información más urgente mediante la
clasificación por fecha.

9) Búsqueda Booleana. Permite realizar consultas complejas que incluyan más de 10


términos especiales. (operadores AND Y OR)

10) Indexación de metadatos externos. Es posible indexar grandes cantidades de


metadatos27 externos y sus documentos asociados para lograr una búsqueda sencilla en
un contenido mejorado y con comentarios en sistemas de administración de contenido y de
documentos.

11) Bases de Datos. Esta herramienta ofrece acceso a los datos almacenados en las Bases
de Datos Relacionales buscando el contenido directamente desde la BD y mostrándolo en
distintos formatos.

12) API de Suministro de Contenido de Terceros. Mediante una simple conversión XML, se
puede transferir contenidos a los que no se puede acceder mediante la web a Google
Search Appliance.

13) Indexación Rápida. El contenido nuevo se indexa de forma continua para garantizar que
aparezcan lo más pronto posible estos en los resultados.

14) Servidores Web. Google ofrece acceso al contenido de todos los servidores web,
independientemente de su ubicación.

15) Servidores Proxy. También ofrece acceso al contenido de la empresa alojada en una
ubicación externa gracias a los servidores Proxy.

27
Metadatos: son datos altamente estructurados que describen información, describen el contenido, la calidad, la condici ón
y otras características de los datos.

24
16) Metaetiquetas. Se da la oportunidad de ofrecer búsquedas acotadas y filtradas por
metaetiquetas, mostrando los valores de metaetiqueta en los resultados.

17) Tipos de Archivos. Google permite buscar más de 220 tipos de archivo, incluidos HTML,
Microsoft Office, PDF, PostScript, WordPerfect y Lotus.

18) Idiomas. Se pueden restringir los resultados a uno de los 28 idiomas disponibles.

2.1.3.3. SEGURIDAD Y CONTROL DE ACCESO

Google Search Appliance se integra con los sistemas existentes de seguridad y control de
acceso de la organización, para proporcionar seguridad en un nivel de usuario y de documento.
Los usuarios únicamente obtendrán resultados de búsqueda si tienen acceso al contenido de
origen, lo que garantiza que la información de la empresa permanezca de forma segura y
protegida.

2.1.3.3.1. CONFIGURACIÓN Y ADMINISTRACIÓN


Google permite configurar varios accesos y administradores para la búsqueda, publicación
y supervisión mediante una interfaz intuitiva y fácil de utilizar. Además se puede segmentar el
índice de búsqueda para mostrar resultados distintos para cada usuario, como, por ejemplo: por
nombre de Dominio, Zona Geográfica, Cargo Profesional, etc.

También se puede restringir de una forma muy fácil las búsquedas a determinados
idiomas, tipos de archivo, sitios Web o Metaetiquetas. Pueden definirse sinónimos para
terminología o acrónimos específicos de la empresa, que permitan aparecer consultas alternas
sugeridas. Aunado a lo anterior Google permite definir concordancias entre las URL y las palabras
clave para que los resultados orientados aparezcan por encima de los demás resultados; asimismo
permite elaborar informes con los datos encontrados.

2.1.4. GOOGLE MINI


Es una solución que integra hardware y software,
diseñada para ayudar a las organizaciones a sacar el
máximo provecho de la información; el cual ofrece la
potencia y productividad de la tecnología de búsqueda
de Google a todo documento y páginas Web de forma
rápida, sencilla y económica. Figura 18. Hardware de Google Mini.

25
2.1.4.1. CARACTERISTICAS

 Admite más de 220 formatos de archivos diferentes.


 Se configura rápidamente.
 No requiere una administración compleja y continua.
 Añade un cuadro de búsqueda al sitio web de la empresa.
 Permite buscar la información de la empresa al instante.
 Realizar búsquedas en la página web o en la red de la empresa, es tan simple como
buscar en www.google.com
 La combinación de la instalación "plug and play" y la interfaz de usuario amigable de
Google Mini permitirán que la empresa empiece a beneficiarse de las ventajas de la
búsqueda de Google.

Figura 19. Interfaz de resultados amigable de Google Mini con sus respectivas funciones de
Búsqueda Avanzada y complementos que contribuyen a mejorar el producto.28

28
www.google.es/enterprise/mini/index.html Junio – 09

26
29
Funciones de Google Mini :

LETRA FUNCIÓN DESCRIPCION


A Búsqueda Avanzada Enlaza con una página que permite limitar las
búsquedas por idioma, dominio, frases exactas
y otros filtros relevantes.
B Sugerencias para la Búsqueda Información que ayudará a mejorar la precisión
de búsquedas y a interpretar los resultados.
C Campo de Búsqueda Para introducir una consulta, sólo se tienen que
escribir algunas palabras clave descriptivas y
hacer un clic en el botón Búsqueda en Google
para obtener una lista de resultados relevantes.
D Menú desplegable de Grupos Permite seleccionar el subgrupo al que se
desea limitar la búsqueda mediante el menú
desplegable. Si se prefiere, es posible elegir
realizar la búsqueda en todos los documentos.
E Botón Búsqueda de Google Este botón realiza otra consulta de búsqueda.
También puede realizar una consulta pulsando
la tecla enter.
F Opciones de Clasificación Se pueden clasificar los resultados según su
relevancia en Google o la fecha en la que el
documento se añadió al índice.
G Sinónimos Los sinónimos sugieren términos de búsqueda
adicionales para obtener más resultados.
H Concordancia de Palabra La función de concordancia de palabra clave de
Clave Google Mini permite a los administradores
colocar determinados sitios Web en las primeras
posiciones de los resultados de búsqueda en
consultas específicas.
I Titulo de la Página La primera línea del resultado es el título del
documento encontrado.
Texto debajo del Titulo Se trata de un extracto de la página de
resultados obtenida en el que se muestran los
J términos de la consulta en negrita. Ello permite
ver el contexto en el que los términos de la
búsqueda aparecen en la página antes de hacer

29
www.google.com/enterprise/mini/features.html Junio – 09

27
LETRA FUNCIÓN DESCRIPCION
clic en el resultado. Si Google Mini ha ampliado
su búsqueda mediante la tecnología de
búsqueda de raíz de palabras a fin de incluir
variaciones de sus términos, estas palabras
también aparecerán en negrita.
K URL de resultado Es la dirección Web del resultado obtenido.
L Tamaño Este número es el tamaño de la parte del texto
de la página Web que se ha encontrado.
M En caché Al hacer clic en el vínculo En caché, se
visualizará el contenido de la página Web a
partir del momento de su indexación. Si por
algún motivo el vínculo del sitio no conduce a la
página actual, habrá posibilidad de recuperar la
versión en caché y buscar la información que se
necesita en ella. En esta versión, sus términos
de búsqueda aparecen resaltados.
N Resultado sangrado Cuando Google encuentra varios resultados en
el mismo sitio Web, coloca el más relevante en
primer lugar y las demás páginas relevantes del
mismo sitio con sangrías debajo de él.
O Más resultados Si un mismo sitio ofrece más de dos resultados,
se puede acceder a los demás resultados
haciendo clic en Más resultados de...
Tabla 2. Detalle de las funciones vistas en la Figura 19.

La nueva versión de Google Mini ha sido modificada para adaptarse aún mejor a las
organizaciones pequeñas. Ahora busca en servidores de archivos, proporciona diferentes
interfaces de resultados de búsquedas para distintas páginas Web, admite un mayor número de
consultas por segundo y, físicamente, su tamaño se ha reducido a la mitad con respecto a la
versión anterior.

Google Mini ofrece resultados tanto si se implanta en la intranet como en un sitio Web
público. Las nuevas funciones permiten buscar en varias fuentes de datos empresariales desde un
mismo cuadro de búsqueda. Estas nuevas funciones, así como la inclusión de Google Analytics y
Google Sitemaps, hacen de Mini la solución perfecta para cualquier sitio Web público.

28
2.1.4.2. VERSIONES

Google Mini se presenta en varias versiones. Con la más económica es posible realizar
búsquedas en 50.000 documentos y disponer de todo el hardware y software necesarios por tan
solo 2,600 €, además de un año de asistencia. Otras versiones realizan búsquedas en 100.000,
200.000 o 300.000 documentos. Ver Tabla 330.

Total de Documentos Indexados Costo


Tabla 3. Costos de Google Mini hasta
50,000 2,600 € Junio de 2009.
100,000 3,500 €
200,000 6,000 €
300,000 8,600 €

2.1.5. GOOGLE SCHOLAR


Google Scholar, ayuda a los usuarios a utilizar los
recursos que proporciona una biblioteca, ya que ofrece una
solución que auxilia a los visitantes de la misma a encontrar
documentación académica con la utilización de los recursos
digitales e impresos.31 Cabe mencionar que Scholar trabaja
conjuntamente con editores que publican material académico
Figura 20. Interfaz de
para indexar obras de todas las disciplinas y ponerlas a Google Scholar
disposición de los usuarios.

Basado en el sistema de búsqueda de Google - PageRank -, se ordenan los resultados por


orden de relevancia mostrando al inicio de la página las referencias más útiles. La tecnología del
algoritmo de posicionamiento de Google toma en consideración el texto completo de cada artículo,
el autor, donde fue publicado, y con qué frecuencia ha sido citado en otras fuentes especializadas.

2.1.5.1. CARACTERISTICAS
 Buscar en diversas fuentes desde un solo sitio.
 Encontrar documentos académicos, resúmenes y citas.
 Localizar documentos académicos completos a través de una biblioteca o en la red.
 Obtener información acerca de documentos académicos clave en un campo de
investigación.

30
www.google-store.com/appliance/product_info.php?currency=EUR&products_id=1&language=ES Junio - 09
31
www.promocion.org/que-es-y-como-funciona-google.htm Junio – 09

29
 Permite buscar bibliografía especializada de una manera sencilla en un gran número de
disciplinas y fuentes como, por ejemplo, estudios revisados por especialistas, tesis, libros,
resúmenes y artículos de fuentes como editoriales académicas, sociedades profesionales,
depósitos de impresiones preliminares, universidades y otras organizaciones
académicas32.

2.1.6. TENDENCIAS DE GOOGLE


2.1.6.1 GOOGLE CHROME
Es un navegador web desarrollado por Google con código abierto, utilizando como motor
de búsqueda webkit. Actualmente posee 1.80 % del mercado y esta disponible gratuitamente33.

2.1.6.2. CARACTERISTICAS

1. Estabilidad: para que el navegador sea confiable como un sistema operativo y con ello
evitar la pérdida de datos cuando el usuario escribe, juega o sube un documento.
2. Velocidad: tanto al inicio del mismo navegador como para la carga de páginas.
3. Seguridad: Google Chrome integra un avanzado sistema anti-malware.
4. Gratuito: haciéndolo de código abierto para que cualquier usuario pueda proponer ideas y
aportar mejoras, construir complementos y otras modificaciones.

2.1.6.3. ESTRUCTURA INTERNA

Un navegador común es otro proceso de Windows, que controla todos los otros
subprocesos como pueden ser el número de sitios visitados. Google Chrome34 funciona como un
sistema operativo creando procesos separados para cada elemento mostrado, asignándole a cada
sitio su propio espacio de memoria, aumentando la velocidad de respuesta y evitando recursos
innecesarios en el resto de sitios abiertos. Ver Figura 21.

32
www.eduteka.org/BarraGoogle.php3 Enero - 10
33
www.google.com/chrome googlechromereleases.blogspot.com Junio - 09
34
www.chiflame.net/story/como-funciona-google-chrome-navegador-futuro Junio - 09

30
Figura 21. Estructura interna de Google Chrome.

Cuando un sitio está siendo visualizado, tiene prioridad de recursos por sobre los otros. Al
cerrar una pestaña en Google Chrome, se recuperan todos los recursos utilizados por ella.
Adicionalmente, cuando, en la misma pestaña, pasamos de un sitio a otro, todos los procesos del
primer sitio son destruidos automáticamente, generando otros nuevos y limpios para el segundo
sitio.

Al igual que un Sistema Operativo, Google Chrome tiene su propio Visor de Procesos, lo
que permite ver qué sitio está consumiendo tal o cual recurso y anularlo si es necesario. Ver Figura
22.

Figura 22. Visor de Procesos de Google Chrome.

Siendo un producto de Google, es difícil que este navegador no conozca cuáles son los
sitios que más utilizan los usuarios y cómo los utilizan. Google Chrome ha sido preparado de
antemano para desenvolverse con la mayor eficiencia en los sitios más populares, gracias a la
base de datos del buscador.

31
2.1.6.4. WEBKIT

Webkit es el motor de Google Chrome que permite interpretar y dibujar en pantalla muy
rápidamente los datos binarios que el navegador lee directamente de un sitio.También controla una
máquina virtual JavaScript propia llamada V8, diseñada especialmente para la navegación web por
lo cual el navegador es más veloz y preciso.

Normalmente, JavaScript necesita ser leído íntegramente por el navegador antes de


ejecutar cualquier porción de código. V8 permite ir directamente a esa parte y ejecutarla sin tener
que rastrear todo el archivo, que a veces puede ser gigante.

Chrome tiene pestañas, -al igual que Firefox e Internet Explorer 7- que pueden arrastrarse
de una ventana a la otra, conservando sus propiedades y procesos independientes. Cada pestaña
posee su propia barra llamada Omnibox, una barra de navegación que no sólo admite que
escribamos la dirección de un sitio si no que también funciona como buscador inteligente,
relacionando las palabras escritas con las búsquedas anteriores, marcadores y preferencias
personales, permitiendo saltar cíclicamente de un sitio a otro presionando la primera letra de su
nombre y la tecla TAB sucesivamente, además de funcionar como un cuadro de búsqueda
convencional.

Asimismo cada pestaña tiene una característica independiente llamada Incognito, que es
un modo seguro para navegar con total privacidad, impidiendo cualquier tipo de almacenamiento
de información personal, como el historial de navegación y las cookies. El resto de los elementos
visibles del navegador se han reducido al mínimo, incluso siendo posible eliminarlos todos
mediante un botón, para que el sitio que se esté viendo ocupe el máximo espacio disponible.

Al abrir una nueva pestaña, se mostrará una página especial con los últimos nueve sitios
visitados y una barra lateral con los marcadores recientes y el historial de navegación, además de
la barra de búsqueda superior.

No existen los pop-ups, esas ventanas que saltan de la nada. Google Chrome las detiene
todas gracias a su máquina virtual exclusiva y las mantiene dentro de la pestaña, indicando en la
barra de estado que la página intenta mostrar un pop-up. Inclusive es posible arrastrar esos pop-
ups desde la barra de estado hacia una nueva pestaña.

2.1.6.5. SEGURIDAD

Google posee una base de datos muy precisa sobre cuáles sitios son confiables y cuáles
no. Este conocimiento está integrado al navegador al punto de que haría imposible entrar a una

32
web realmente peligrosa. El sistema protege todos los datos del usuario, como las contraseñas o
números de tarjeta de crédito, y administra los recursos vulnerables para un óptimo
funcionamiento, por ejemplo, no permitiendo que los sitios inicien otros programas sin
consentimiento del usuario. Si Google Chrome se topa con un sitio maligno nuevo o desconocido,
cierra automáticamente la pestaña y con ella todos los procesos, cookies, y otra información
pertinente a sólo esa pestaña.

2.1.6.5.1. NIVELES DE SEGURIDAD

Los sitios marcados como "de confianza" por el usuario tendrán total libertad, pero el resto
se ejecutará según un novedoso sistema de clasificación. En lugar de 3 niveles de seguridad (alto,
medio y bajo), donde lo único que cambiaba era el permiso que tiene el sitio para escribir datos en
el disco, pero permitiendo la lectura y ocasionando graves fallas de seguridad, Chrome posee sólo
2 niveles: "Alto" y "Ninguno". En el primero, el sitio no puede leer datos sin consentimiento explícito
del usuario, además de no poder escribirlos.

Figura 23. Niveles de Seguridad de Webkit.

El nivel "Ninguno" sigue siendo muy seguro, porque Chrome incorpora un sistema
absolutamente lógico y nunca antes implementado: jamás dejará que un plugin (Flash, Java,
QuickTime, etc.) tenga mayores privilegios que el Sandbox (configuración de seguridad) del
navegador, el centro de seguridad que sólo el usuario puede modificar. Google Chrome pone a
cada plugin en un proceso separado, de manera que no afecte siquiera el performance de la
página en la que está presente dicho plugin. Por lo tanto, los plugins podrán tener niveles de
seguridad diferentes de los del resto de la página. Ver Figura 23. En fin entre otras cosas que
incorpora Chrome, se cuenta con Google Gears, que permite una interacción total entre el software
de escritorio y el software web.

33
2.2. WIKIA SEARCH

El proyecto Wikia Search reúne las tecnologías básicas que debe incorporar un motor de
búsqueda, con su propio algoritmo de código abierto, frente a los de código propietario de los
buscadores con los que compite. Una de sus ventajas es que permite a los usuarios filtrar y votar
los resultados, creando un modelo de comunidad similar al de Wikipedia, cuyo fin es aportar valor
añadido a las búsquedas convencionales. Además, este buscador resta importancia a la
35
clasificación masiva de resultados a cambio de priorizar la votación de sus colaboradores.

Figura 24. Interfaz gráfica de Wikia Search.

Basado en cuatro principios organizativos, Wikia Search trata de cambiar el futuro de las
búsquedas en Internet mediante conceptos como la transparencia, para que todo el mundo sepa
cómo funcionan los algoritmos de búsquedas; el sentimiento de comunidad, que todos los usuarios
puedan contribuir a los resultados que se muestran y establezcan relaciones entre sí; la calidad,
con el argumento de que el ser humano siempre puede mejorar los resultados que ofrecen las
máquinas; y la privacidad, protegiendo los datos de los usuarios y sus preferencias de búsqueda.

Wikia Search se ha presentado en fase de desarrollo, - lo que se conoce como versión alfa
- por lo que aún tiene muchos aspectos que mejorar. Sin embargo, este buscador irá mejorando
con el tiempo y con la colaboración de los usuarios.

35
www.search.wikia.com/wiki/Search_Wikia/es Junio – 09

34
2.3. YAHOO
Es uno de los sitios más importantes en Internet y posiblemente el portal más grande
debido a que un buscador no ofrece servicios adicionales como: correo electrónico, mensajería
instantánea, chats, noticias, álbum de fotos, entre otras. Sin embargo es considerado como tal
debido a que en el año de 1994 fue uno de los primeros buscadores en tener éxito en la web.
36
Yahoo estaba estructurado como un árbol de categorías que permitía una búsqueda por temas.
La construcción de dichas categorías era manual, los propios creadores de páginas web debían
contactar a Yahoo para que incluyeran dicha página en alguna categoría, proceso que se tardaba
varios meses. En el 2003 Yahoo compró a los buscadores Alltheweb, Altavista, Inktomi y Overture,
con lo que pudo crear el buscador actual que funciona de modo similar al Google en cuanto a
rapidez y relevancia. Ahora Yahoo cuenta con un mejorado motor de búsqueda, al que se le ha
dotado de nuevas mejoras, entre las que destacan: “My Yahoo Search” en el que el usuario puede
personalizar sus búsquedas. Asimismo “My Web” permite al internauta encontrar sólo aquellas
páginas que se hayan consultado con anterioridad, similar al servicio de favoritos.

Figura 25. Análisis de


una página de
resultados con
Yahoo.37

1.- Entorno de búsqueda- Esto indica que se ha buscado en Toda la Web, pero también es
posible buscar en Imágenes, Vídeo, Directorio, Noticias y Compras.

2.- La caja de búsqueda es donde se escriben las palabras que se desean buscar.

36
www.search.yahoo.com Junio - 09
37
www.aulaclic.es/internet/t_4_9.htm Junio - 09

35
3.- En esta línea se puede elegir entre realizar la búsqueda en toda la web, en páginas en
español o en España.

4.- Datos del resultado. Indica el intervalo de resultados del 1-10 a continuación muestra el
número de páginas que ha encontrado, 1.440.000 para cursos de informática gratis y el tiempo
que ha tardado en realizar la búsqueda, 0,19 segundos.

5.- Enlaces publicitarios. Estas dos primeras líneas no son un resultado de la búsqueda, sino
enlaces publicitarios. En la parte derecha de la página también pueden aparecer más enlaces
publicitarios separados del resto por una línea vertical y con el letrero en la parte superior
derecha que dice Enlaces publicitarios.

6.- Líneas de Resultados. Cada resultado está compuesto por varias líneas, en la primera
aparece el título de la página web encontrada, en seguida aparecen unas líneas que
normalmente contienen fragmentos del texto de la página. En la última línea, en color verde,
aparece la dirección o URL de la página encontrada (www.aulaclic.org), seguido por el tamaño
de la página, 48k. A continuación aparece un enlace que dice, en cache que contiene la página
tal cual la encontró el robot de Yahoo cuando indexó la página por última vez, y otro enlace a
Más resultados de este sitio web, que lleva a una página con resultados del mismo tema dentro
de ese sitio web.

2.3.1. MEJORAS DE YAHOO

 Buscador de Fotos e Imágenes: Busca en mas de 1.6 millones de fotos e imágenes en


toda la red.

 Buscador de Video: Encuentra los videos más interesantes de la web.

 Búsqueda de Noticias Yahoo: Busca los titulares y noticias más recientes sobre cualquier
tema.

 Buscador de Productos Yahoo: Busca y compara los precios de miles de artículos de


tiendas online.

 Directorio Yahoo: Busca o navega en el directorio de sitios web de Yahoo.

 Búsqueda Rápida Yahoo: Accede a las informaciones más populares (noticias, tiempo,
mapas, entre otras) directamente desde la caja de búsquedas.

36
 Barra de herramientas para Internet Explorer: El buscador y servicios favoritos.

 Búsqueda Avanzada de Yahoo: Encuentra las respuestas que el usuario necesite a través
de su búsqueda avanzada.

Figura 26. Interfaz gráfica de Yahoo.

2.4. ALTAVISTA
Significa "una visión desde las alturas", se vio inspirada por la creación de grandes ideas
de un equipo de expertos fascinados con el seguimiento de la información. Durante la primavera de
1995, los científicos del Laboratorio de investigaciones de Digital Equipment Corporation en Palo
Alto, California, crearon una forma de almacenar todas las palabras de todas las páginas HTML de
Internet en un índice rápido en el que se podían realizar búsquedas. Esto llevó al desarrollo de
Altavista como la primera base de datos de texto completo en la que se podían realizar búsquedas
en la Internet.

Este proyecto se convirtió rápidamente en uno de los sitios más visitados del internet hasta
la entrada de Google al mercado. Siendo el buscador más antiguo de la red, Altavista tuvo una

37
serie de dueños, cada uno vendiendo el sitio por menos dinero que el dueño anterior. Ahora
Altavista pertenece a Yahoo.com y utiliza la misma base de datos para presentar sus resultados,
aunque su algoritmo de posicionamiento es un poco diferente.

Figura 27. Interfaz gráfica de Altavista.

La empresa añadió búsquedas multilingües con compatibilidad para 25 idiomas en 1997;


lanzó 20 sitios locales de países entre 1999 y 2001; lanzó compatibilidad con búsqueda de
archivos multimedia (audio, video, imágenes) en 1999. También ofrece otras herramientas como un
traductor, filtro familiar, servicio de páginas amarillas, Buscador de personas y comparador de
precios de diferentes productos a través de Dealtime –comparador de precios-.38

2.5. WOLFRAMALPHA
Es un nuevo proyecto lanzado en mayo de 2009 por la empresa Wolfram Research
ubicada en Champaign Illinois. Se trata de un motor de búsqueda de conocimiento computacional
que funciona a través de lenguaje natural.

38
www.es.altavista.com/about/ Julio – 09

38
39
WolframAlpha se diferencia del resto de motores de búsqueda en su capacidad de interpretar lo
que se le consulte.

Figura 28. Ejemplo de una consulta de una expresión matemática con WolframAlpha.

39
www.wolframalpha.com/ Julio – 09

39
Figura 29. Resultados obtenidos de la consulta anterior.

Y no sólo expresiones matemáticas se pueden incluir en la búsqueda si no también


preguntas como: ¿Qué películas se estrenan esta semana? o ¿Cuál es el precio de un boleto de
avión entre México y Francia? No solo entiende lo que se pregunta sino que WolframAlpha es
capaz de hacer búsquedas cruzadas para que la respuesta sea tan completa como sea posible. Si
se consulta ¿Cómo se repara una computadora? Buscará videos, temas en foros, precios y todo lo
que resulte útil. Eso significa que no sólo entiende las palabras que forman la frase, sino que
también incorpora algoritmos que clasifican la pregunta, haciendo que comprenda la situación en la
que posiblemente se ha formulado dicha pregunta. El creador de este proyecto, es el matemático
Stephen Wolfram, un prestigioso científico británico conocido por ser el autor del programa de
cálculo 'Mathematica'40, una herramienta de referencia en el campo de la programación.

40
Mathematica es un programa utilizado en áreas científicas, de ingeniería, matemáticas y áreas computacionales.
Originalmente fue concebido por Stephen Wolfram quien continúa siendo el líder del grupo de matemáticos y
programadores que desarrollan el producto en Wolfram Research, compañía ubicada en Champaign, Illinois. Comúnmente
considerado como un sistema de álgebra computacional, Mathematica es también un poderoso lenguaje de programación
de propósito general.

40
2.6. BING
Microsoft presentó a fines de Mayo de 2009 a Bing.com, como su nuevo motor de
búsqueda para una mejor toma de decisiones, como primer paso hacia una nueva experiencia que
permite organizar de forma inteligente altos volúmenes de información disponibles en la Web.

Está diseñado específicamente a partir de los beneficios de los motores de búsqueda


actuales pero con un enfoque más directo al usuario y con herramientas intuitivas que ayudan a la
41
hora de tomar decisiones .

Figura 30. Interfaz gráfica del buscador Bing.

2.6.1 DESARROLLO DEL BUSCADOR BING

Cuando se comenzó el desarrollo de Bing, el punto de partida fue comprender bien al


usuario y sus necesidades. Bing es un avance importante en su visión a largo plazo para ofrecer
innovaciones en el campo de las búsquedas en la Web, que permitan a los usuarios hallar
información de manera rápida y utilizarla para completar tareas y tomar decisiones más certeras.

Los servicios de este buscador, comenzaron poco tiempo después de haber sido
presentado al público usuario y se implementó por completo a nivel mundial el miércoles 3 de Junio
del 2009, del mismo modo en Latinoamérica, la versión beta quedó disponible en esa fecha con

41
www.partner.microsoft.com/mexico/40108839 Septiembre-09

41
mejoras en la relevancia de las búsquedas, cambios en la página principal, así como en la
experiencia de usuario, con más funcionalidades visibles en los próximos meses.

Microsoft identificó tres puntos en su investigación en cuanto al diseño de Bing, que sirvió
de guía para su desarrollo:

1. Presentar resultados excelentes: son una prioridad para los usuarios, no obstante, los
estudios de Microsoft demuestran que sólo una de cada cuatro consultas de búsqueda
arroja un resultado satisfactorio. Bing ayuda a identificar los resultados de búsqueda
relevantes a través de funciones como Best Match -El mejor resultado-, que identifica y
destaca la mejor respuesta posible, agregándole niveles más profundos de información a
simple vista y Quick Preview -vista previa rápida-, una ventana que se expande sobre el
título de un resultado de búsqueda y que da una idea mejor de la relevancia del sitio. Bing
también ofrece la posibilidad de accesar a la información con un único clic a través de
Instant Answers -respuestas instantáneas-, que presenta la información después de una
búsqueda dentro del cuerpo de la página con los resultados de búsqueda y que erradica la
necesidad de hacer clic posteriormente.

2. Ofrecer una búsqueda más organizada simplificando las tareas: los participantes del
estudio de esta investigación, respondieron que una experiencia de búsqueda organizada
por categorías sería el doble de útil para ayudar a hallar la información requerida y cumplir
con las tareas en menor tiempo. Bing comprende una cantidad de funciones que organizan
los resultados de búsqueda, entre ellas:

 Panel de exploración: un conjunto de herramientas de navegación y búsqueda,


relevantes por su dinamismo, ubicado a la izquierda de la página.

 Grupos Web: que agrupa los resultados de manera intuitiva tanto en el panel de
exploración como en los resultados reales.

 Related Searches -búsquedas afines- y Quick Tabs -pestañas rápidas-:


básicamente una tabla de contenidos para las distintas categorías de los
resultados de búsqueda.

En conjunto, éstas y otras funciones de Bing contribuyen a la búsqueda de


resultados, como un “atajo” en la amplia gama de información en la Web y conducen
directamente a tomar decisiones. Ver Figura 31.

3. Brindar información para tomar decisiones más rápidamente: la investigación de Microsoft


identificó a las búsquedas relacionadas con viajes, shopping, salud e información a nivel

42
local, como las áreas en las que los usuarios desean mayor asistencia a la hora de tomar
decisiones importantes. El motor de decisiones de Bing puede responder con eficiencia en
estas áreas principales para los usuarios. Por ejemplo, mientras se utiliza Bing para hacer
una compra en línea, la función Sentiment Extraction -captación de los aspectos
psicológicos-, busca en Internet opiniones de usuarios y revisiones de expertos para sacar
provecho de la comunidad de clientes, así como también de los expertos en los productos,
para tomar una decisión de compra. En Bing Travel (viajes), la función Rate Key -clave de
tarifa-, compara la ubicación, el precio y las facilidades de distintos hoteles y determina una
clave codificada en color de los mejores valores; mientras que Price Predictor -
pronosticador de precios-, ayuda a los consumidores a decidir cuándo comprar un pasaje
aéreo y obtener precios más bajos analizando las últimas tendencias en los valores de los
pasajes.

El nuevo servicio, ideado para ir más allá de la experiencia actual en búsquedas, percibe
innovaciones profundas en las principales áreas de búsqueda como la captación y expansión de
entidades, el reconocimiento de la intención de la consulta y tecnología para el resumen de los
documentos, como también, un nuevo modelo de experiencia para el usuario que se adapta
dinámicamente al tipo de consulta con el objeto de proporcionar herramientas relevantes e
intuitivas para la toma de decisiones.

2.6.2. CARACTERÍSTICAS PRINCIPALES DE BING

Bing de Microsoft tiene tres factores que marcan su diferencia:

1. Sólo el 25% de las búsquedas son exitosas en su primer clic, por lo que Bing ha sido
diseñado para ofrecer los mejores resultados sumados a características propias como el
Quick Preview (Vista Previa es un cuadro en la parte derecha de la lista de resultados de
búsqueda que aparece cuando se pasa el ratón sobre un anuncio.) y Best Match (Mejor
Resultado) para que el usuario sepa que su clic está dirigido a lo que está buscando.

2. Organiza los resultados de las búsquedas de manera inteligente, clasificando en


categorías dinámicas millones y millones de resultados, simplificando la tarea de
búsqueda.

3. Fue especialmente diseñado con especial énfasis en las cuatro principales áreas de
búsquedas: Compras, Viajes, Salud e Información Local/Mapas, con experiencias únicas e
integradas en cada una de ellas.42

42
Martín Spinetto, Gerente de Marketing para los Servicios Online de Microsoft Hispanoamérica.

43
El crecimiento constante de los contenidos en la Web dio la pauta para que el buscador
Bing fuera desarrollado como una herramienta que ayuda al usuario a buscar con mayor facilidad
en el contexto de altos volúmenes de información. Los resultados de un estudio personalizado
realizado por ComScore Inc. (Líder mundial en la medición del mundo digital y fuente preferida de
inteligencia digital para marketing), que abarcó a los principales motores de búsqueda,
demostraron un índice del 30% de abandono de búsquedas sin un resultado satisfactorio. Los
datos también demostraron que aproximadamente dos tercios del resto de las búsquedas
requirieron una búsqueda avanzada o una repetición de la búsqueda en la página de los
resultados. “Los motores de búsqueda actuales se han concentrado más en aportar información y
43
menos en la utilidad de dicha información” .

Figura 31. Paneles de exploración del Buscador Bing.

43
Steve Ballmer, CEO de Microsoft
www.partner.microsoft.com/mexico/40108839 Septiembre - 09

44
2.7. OA-HERMES

Es un metabuscador de contenidos electrónicos provenientes de fuentes de información


académicas localizadas en Internet. Desde su concepción, fue diseñado con el propósito principal
de facilitar la consulta de contenidos digitales en modalidad Open Access, a las instituciones
educativas y público en general. Entre sus principales características se destacan:

 Agrupa múltiples y variadas fuentes de información abierta (Open Access) desde una sola
interfaz, proporcionando un mecanismo de búsqueda flexible, única y amigable.

 Integra fuentes de información previamente seleccionadas y evaluadas por especialistas,


las cuales deben cubrir la calidad suficiente para ser utilizada en el ámbito académico.

 La tecnología empleada en su desarrollo, permite la integración semántica de la


información recuperada desde sus múltiples y variadas fuentes de información.

 Optimiza la infraestructura tecnológica donde radica el aplicativo y los contenidos digitales.


Por ejemplo: no almacena y concentra en un mismo equipo todos los contenidos, en la
medida de lo posible, utiliza almacenamiento distribuido en cada sitio de origen.

ESTADO ACTUAL
Fuentes de
Ochenta y nueve fuentes de información interconectadas, de las cuales se
información
tiene acceso a millones de registros en texto completo (tesis, libros, artículos
de revistas, etc.). Éstos representan una cantidad significativa de
información y complementan a los acervos de las bibliotecas en las
instituciones educativas.
- Número de fuentes de información nacionales: 9

- Número de fuentes de información extranjeras: 80


Interfaz de
La interfaz de consulta se dispone en múltiples idiomas, seleccionado por el
consulta
usuario: español, inglés, francés, alemán, portugués e italiano.
Consulta y uso
De abril 2006 a Agosto de 2007, se han recibido más de 360,000 visitas.
- En promedio se atienden 1,500 búsquedas diarias.

- Entidades federativas de mayor consumo en orden descendente: D.F.,


Puebla, Jalisco, Estado de México, Baja California Norte, Baja California Sur,
Nuevo León, Michoacán, San Luis Potosí e Hidalgo.

45
ESTADO ACTUAL
- Países de mayor consumo en orden descendente: México, Estados Unidos,
Argentina, España, Perú, Colombia, Brasil, Chile, Costa Rica y Venezuela.
Arquitectura y a) Lenguaje de programación: Java, XSL (hojas de estilo) y JavaScript.
44 45 46
código fuente b) Lenguajes de etiquetado: XML , WML y HTML
c) Líneas de código: 46,000 aprox.
d) Estructura general dividida en tres módulos principales: Núcleo,
Buscadores e Interfaz.
e) Hardware: cluster de cuatro computadoras y balanceador redundante de
asignación de carga (basado de software libre)
f) Sistema operativo: Linux Fedora 4 de 64 bits.
g) Servidor Web: Apache y Tomcat (interconectados)
h) Herramientas estadísticas: Statcounter, Awstats y Sawmill.
i) Manejador de base de datos: Posgresql47.
j) Indexador de datos: Zebra Server48.

Seguridad
Configuración de reglas para el filtrado de puertos (permiso de uso de puerto
80)
Rutinas encargadas de monitoreo y verificación de los servicios que requiere
OA-Hermes para su funcionamiento
Conectividad
El proceso de conexión hacia las múltiples y variadas fuentes de información
se realiza a partir de cuatro principales protocolos de comunicación
utilizados en el ámbito bibliotecológico y de la información: HTTP49,
Z39.5050, OAI-PMH51 y SRW52.

44
XML: Ver capítulo 4 HERRAMIENTAS TECNOLOGICAS UTILIZADAS pag. 89.
45
WML: El Wireless Markup Language es un lenguaje cuyo origen es el XML (eXtensible Markup Language). Este lenguaje
se utiliza para construir las páginas que aparecen en las pantallas de los teléfonos móviles y los asistentes personales
digitales (PDA) dotados de tecnología WAP. Es una versión reducida del lenguaje HTML que faci lita la conexión a Internet
de dichos dispositivos y que además permite la visualización de páginas web en dispositivos inalámbricos que incluyan la
tecnología WAP.
46
HTML: Ver capítulo 4 HERRAMIENTAS TECNOLOGICAS UTILIZADAS pag. 87.
47
PostgreSQL es un sistema de gestión de base de datos relacional orientada a objetos y libre. Dicha comunidad es
denominada el PGDG (PostgreSQL Global Development Group).
48
ZEBRA SERVER: Servidor de imprsión.
49
HTTP: Ver capítulo 4 HERRAMIENTAS TECNOLOGICAS UTILIZADAS pag.121.
50
Z39.50: Es un protocolo cliente-servidor dirigido a facilitar la búsqueda y recuperación de información en distintos
sistemas a través de una misma interfaz. Su aplicación en el mundo de las bibliotecas y de los centros de documentación
permite la consulta de recursos distribuidos en distintas bases de datos, desde un mismo punto de acceso.
51
OAI-PMH: El protocolo OAI-PMH (Open Archives Initiative-Protocol Metadata Harvesting), es una herramienta de
interoperabilidad independiente de la aplicación que permite realizar el intercambio de información para que desde puntos
(proveedores de servicio), se puedan hacer búsquedas que abarquen la información recopilada en distintos repositorios
asociados (proveedores de datos).
52
SRW: Es un protocolo de búsqueda normalizado que se utiliza en Internet para consultar bases de datos mediante el uso
de CQL (Commun Query Language), una sintaxis normalizada de consulta. La norma SRW intenta adherirse a las
directrices de la interoperabilidad de servicios web.

46
ESTADO ACTUAL
Funcionalidad a) Búsquedas básica y avanzada
b) Detección automático de dispositivo de conexión: computadoras de
escritorio, PDA‟s y celulares.
c) Búsqueda por selección de fuentes de información.
d) Exportación de registros a distintos formatos de salida: Reference
Manager (Software de administración de bibliografía personal),
53 54
EndNote , Pro-Cite y texto con delimitares.
e) Detección de número de usuarios simultaneas.
f) Resultados agrupados por fuente y visualiza la cantidad de información.
g) Almacenamiento de estado de la última sesión de trabajo (términos de
búsqueda, tipo de búsqueda, fuentes de información, entre otros)
h) Filtrado de resultados que contengan enlace al objeto digital.

Tabla 4. Estado actual del buscador OA-HERMES55

Actualmente OA-Hermes funciona exitosamente en un cluster de cuatro computadoras


interconectadas y un balanceador redundante (dos Pc‟s).

Las medidas tomadas en la ampliación de la plataforma tecnológica del metabuscador,


inmediatamente mostró mejoras sustanciales en dos aspectos prioritarios: optimizar el tiempo de
respuesta, y aumentar el número de usuarios concurrentes.

2.8. OTROS BUSCADORES56


En la actualidad se encuentran diferentes buscadores hechos por empresas
independientes o por portales corporativos que permiten realizar búsquedas, en la Tabla 5 se
mencionan algunos que pertenecen a México57.

BUSCADOR CARACTERÍSTICAS PAIS

Buscador el sabueso en Internet para buscar amigos, amor, tonos,


Mx
mercancía y toda información.

53
EndNote: Es un gestor de referencias que ayuda a los investigadores en el manejo de sus bibliografías. Compatible con
muchos estándares e integrado con los principales buscadores científicos.
54
Pro-Cite: Es un gestor de bases de datos documental producido por ISI ResearchSoft! que se adapta al trabajo más
exigente del investigador y del documentalista.
55
www.ict.udlap.mx/people/alfredo/rabid/.../reporte_tecnico_unam.doc Octubre – 09
56
www.tnrelaciones.com/anexo/buscadores. Julio – 09
57
www.buscadoreshispanos.com/. Julio – 09

47
BUSCADOR CARACTERÍSTICAS PAIS

México Global Directorio de sitios mexicanos incluyendo gran


Mx
parte de otros países.

Todito el mejor portal de México, que ofrece Mail, Noticias,


Deportes, Televisión en línea, videos, horóscopos, artículos y Mx
reportajes.

Es Más. Es uno de los portales más completos de Internet de


habla hispana con el mejor contenido de noticias, espectáculos, Mx
telenovelas, deportes, futbol, estadísticas y mucho más.

MexMaster Buscador México: Todas las páginas de México en


Mx
una solo lugar

Astrolabio Buscadores, postales, traductor, horóscopo, Chat,


foros, software, música, cine, noticias y todo lo que el usuario Mx
desee buscar esta en Astrolabio .Net

Portal Mexico - Discovery Internet. Red de Portales de información


Mx
que cubre todo el País.

Directorio.com.mx: Como su nombre lo indica contiene listas de


diversos sitios que ofrecen sus productos en México. Por ejemplo: Mx
venta de boletos, empleos, números telefónicos, entre otros.

Tabla 5. Buscadores y portales de México.

2.9. TABLA ESTADÍSTICA DEL USO DE LOS BUSCADORES MÁS


RELEVANTES
Actualmente la tendencia que Google tenía en uso ante otros buscadores ha perdido un
0,38 % ya que la aparición de nuevos buscadores como Bing, en un mercado dominado por
Google, parece empezar a tener respuesta en los porcentajes de uso de los principales motores de
búsqueda. El nuevo navegador de Microsoft que fue lanzado en el mes de Julio de 2009 ha logrado
recortar, eso si de forma muy ligera, la cuota de mercado al impresionante Google, ocupando un
porcentaje total del 81.22%, Yahoo también sufre una pérdida del 0.18% manteniendo la segunda
posición y Bing se sitúa en tercera posición con un 5.31%. La tendencia parece apuntar a que
durante los próximos meses Bing continuará recortando distancia a Google y Yahoo.58

58
www.desarrolloweb.com/actualidad/ranking-uso-buscadores-junio-2009-2046.html Agosto – 09

48
La clasificación y porcentaje de uso de los principales buscadores durante el mes de junio
del 2009 resulta:

1-Google: 81.22%
Porcentaje de uso de los principales buscadores

2-Yahoo: 9.21%

3-Bing: 5.31% 1-Google:

2-Yahoo:
4-AOL: 1.74%
3-Bing:
5-ASK: 0.84%
4-AOL:

6-MSN: 0.66% 5-ASK:

6-MSN
7-otros: 0.16%
7-otros:

Figura 32. Porcentaje de uso de los principales buscadores.

2.10. CUADRO COMPARATIVO CON LAS CARACTERÍSTICAS DE


LOS BUSCADORES MÁS RELEVANTES59

Software Descripción Destaca por Puntos fuertes Puntos débiles


Google Buscador con La rapidez y Innovación, servicios La actualización de los
algoritmo de efectividad de alternativos no sólo índices de las páginas
búsqueda sus búsquedas. para las búsquedas “Google”, afectan de
propio. Innovación en avanzadas, sino manera importante los
los anuncios también para resultados obtenidos
publicitarios. búsquedas temáticas mientras se realiza.
Contiene importantes
modificaciones en el
puesto que ocupan las
páginas en virtud de
manipulación del
pagerank.

59
www.revista-redes.rediris.es/html-vol8/vol8_6_Tabla1.htm Agosto – 09

49
Software Descripción Destaca por Puntos fuertes Puntos débiles
Yahoo Buscador La difusión de La gama de servicios Este buscador se quedó
innovador en su uso. que presta. No obsoleto con rapidez, y la
sus directamente clasificación que ofrecía
comienzos y relacionados con las de los enlaces con los que
que hasta búsquedas, aunque contaba en sus
hace poco sí con un concepto comienzos, dejó de estar
trabajó en de servicio integral al actualizada.
colaboración usuario (e-mail,
con Google. grupos, álbum
fotográfico)
Bing Buscador con Comprender las Presenta resultados Su enfoque es más directo
nuevo motor necesidades del excelentes, más hacia el usuario.
de búsqueda, usuario, al hallar organizados
para la toma información de
de decisiones. forma rápida,
para completar
tareas y tomar
decisiones.
Tabla 6. Características de los buscadores más populares.

2.11. REDALYC

Por sus siglas “Red de Revistas Científicas de América Latina y el Caribe, España y
Portugal”. Es un sistema de información científica de la Universidad Autónoma del Estado de
México UAEM cuyo objetivo es brindar un servicio de consulta virtual de Revistas Científicas de los
60
países que representa a través de un portal de Internet.

Figura 33. Redalyc, la red de revistas científicas.

60
www.redalyc.uaemex.mx/redalyc/src/inicio/HomRevRed.jsp?iCveEntRev=106 Octubre – 09

50
2.12. BIBLIOTECAS VIRTUALES EN MÉXICO

El portal de la Dirección General de Bibliotecas brinda un catálogo de bibliotecas virtuales y


digitales, clasificado en dos categorías: Bibliotecas en México y Bibliotecas Internacionales, que
están al servicio del usuario a través de Internet. En el apartado de Bibliotecas en México se puede
encontrar una gran variedad de éstas a nivel institucional, de instancias educativas, estatales o de
organizaciones internacionales, en las cuales se ofrece acceso a bases de datos, libros, catálogos,
hemerotecas, tesis, y otras colecciones electrónicas, que abordan temas educativos, de ciencias
sociales, arte, literatura, jurídicos, salud, así como la clasificación de recursos bibliográficos
especializados para el público infantil y juvenil.61 Entre las que destacan:

1. Biblioteca Digital de la Autónoma de Ciudad Juárez


2. Biblioteca Digital Autónoma de Aguascalientes
3. Biblioteca Digital de Chapingo
4. Biblioteca Virtual de Chiapas
5. Biblioteca Virtual CLACSO
6. Biblioteca Virtual Creativa UASLP
7. Biblioteca Digital CREFAL
8. Biblioteca Digital Daniel Cosío Villegas
9. Biblioteca Virtual El Prisma
10. Biblioteca Digital Francisco Xavier Clavigero
11. Biblioteca Virtual Iberoamericana y Caribeña
12. Biblioteca Digital ILCE
13. Biblioteca Digital del INEGI
14. Biblioteca Jurídica Virtual
15. Biblioteca Digital Nuevo León
16. Biblioteca Digital OEI
17. Biblioteca Universidad Pedagógica Nacional
18. Biblioteca Virtual en Salud
19. Biblioteca Digital SEMARNAT
20. Biblioteca Digital Tec de Monterrey
21. Biblioteca Franciscana UDLA
22. Biblioteca Virtual de la Universidad Panamericana
23. Biblioteca Digital de la UNAM
24. Biblioteca Virtual de la Universidad Veracruzana
25. Biblioteca Virtual de la Dirección General de Bibliotecas

61
www.65.99.205.133/~dgbcona/index.php?option=com_content&task=view&id=96&Itemid=255 Octubre – 09

51
CAPÍTULO III
BUSCADORES WEB
CAP 3. BUSCADORES WEB

Hoy en día, la Web es el mayor concentrado de información que existe en el mundo.


Prácticamente cualquier tema, desde los más usuales e importantes, hasta los más extraños y
simples, tienen su lugar en ésta. Sin embargo, debido a su crecimiento constante, seguramente el
usuario se sentirá abrumado ante tal magnitud de información. Con el objeto de ordenar, clasificar
y localizar los temas que interesan a los usuarios, dentro de ese gran enredo de información, se
han desarrollado ciertos mecanismos automatizados de búsqueda llamados “Buscadores” los
cuales, en cuestión de segundos encuentran y presentan al usuario la información deseada.

Los buscadores en Internet: son programas dentro de un sitio, página o portal Web, los cuales, al
ingresar palabras claves, operan dentro de la base de datos del mismo buscador y recopilan todas
las páginas posibles, que contengan información relacionada a la que se busca. Por lo tanto, los
buscadores, sólo necesitan la palabra clave o el concepto que se desea preguntar y
automáticamente, éste entregará una lista de páginas que contienen aquella información solicitada.

Para que estos mecanismos automatizados (Buscadores) realicen tan compleja tarea,
utilizan un software llamado Spiders (Arañas), éstas se deslizan a través de toda la Web visitando
millones de páginas y registrando sus direcciones en grandes Bases de Datos; después de esto,
algunos buscadores envían Robots a cada una de estas direcciones, mismos que se encargan de
almacenar el texto de dichas páginas y continúa con la visita a las páginas referenciadas por éstas
y así sucesivamente.

En concreto, tanto spiders62 como robots son programas que recorren la Web recolectando
algún tipo de información sobre cada lugar visitado. Por ejemplo:
 Titulo de la página.
 Texto relevante.
 Imágenes.
 Entre otros.

En la actualidad existen más de 3700 buscadores de información, de los cuales un


63
pequeño porcentaje pertenece al ámbito de Latinoamérica .

Obviamente, no todos los buscadores son iguales, ni tienen las mismas potencialidades;
sus diferencias radican principalmente en:

62
Spider, Robot: programas que recorren la Web y recuperan los documentos de forma automática.
63
www.scribd.com/doc/14434440/INTERNET-Y-EDUCACION-Aprendiendo-y-ensenando-en-los-espacios-virtuales- Mayo 09

52
a. El tamaño de la base de datos que contiene los índices de búsqueda.
b. La frecuencia de actualización de dichos datos.
c. La lógica de búsqueda, mediante la cual se va acotando la localización de las palabras y/o
temas solicitados por el usuario.
d. La rapidez con la cual se encuentra la información solicitada.

e. La relevancia, con la que se presenta la información, en orden de importancia.

3.2. TIPOS DE BUSCADORES

Desde el punto de vista del usuario, los mecanismos de búsqueda pueden presentar
diferencias en dos grandes tipos: Directorios temáticos y motores de búsqueda.

3.2.1. DIRECTORIOS TEMÁTICOS

Organizan y clasifican la información de que disponen sus bases de datos en forma


jerárquica y estructurada en temas y subtemas, de tal modo que el usuario pueda iniciar su
búsqueda desde un tema general hasta llegar al cual le interese y desde ahí accesar a las páginas
que contienen información relativa al tema en cuestión, Ver Figura 34.

Figura 34. Ejemplo de un diagrama de organización de temas en un directorio temático.

Es muy probable que al consultar un Directorio Temático o un sistema de búsqueda por


Palabras Clave, el usuario encuentre ciertas diferencias entre ellos. Por ejemplo: Se escribe la
palabra “Colón” (en contexto al descubridor de América), en un directorio temático habrá que
dirigirse al tema HISTORIA y de ahí al subtema AMÉRICA y así sucesivamente hasta llegar al

53
objetivo, sin embargo en el segundo caso existirán muchas referencias hacia la palabra “Colón”, de
las cuales muchas serán basura para el usuario, ya que la palabra objetivo aparecerá como
nombre de un restaurante, ciudad, calle, entre otras.

3.2.2. MOTORES DE BÚSQUEDA

Los motores de búsqueda - Search Engines – son algunos de los sitios en Internet más
visitados porque permiten al usuario encontrar información de diversas fuentes en cuestión de
segundos. Todo motor de búsqueda presenta la información a sus usuarios según los siguientes
criterios:

a) Por relevancia: La lista de resultados en una búsqueda es basada en la cantidad de


información que pueda ser de mayor interés para el usuario, por ejemplo: si un usuario
busca java es muy probable que la primera opción que aparezca sea java.sun.com, esto
es porque dicha página contiene una gran cantidad de información acerca de java; en este
contexto el motor de búsqueda presenta el contenido más interesante para atraer a más
usuarios con información más relevante. Debido a la naturaleza de este criterio casi
siempre las primeras 10 opciones de la búsqueda contienen sólo texto -Links sin gráficos-,
esto es debido a que entre mayor texto tenga dicho link del objetivo a buscar, es más
factible encontrar información relevante sobre éste.

b) Por pago: Todo Search Engine también vende palabras de búsqueda en sus espacios, por
ejemplo: se puede comprar palabras sobre las cuales aparecerá una marquesina –banner
– o un link para que otros usuarios puedan visitar dicha página.

c) Hibrido: Este criterio se basa en los 2 anteriores, por lo tanto los links estarán alternados -
unos pagados y otros por su contenido -. Sin embargo, en caso de ser muy solicitada la
palabra clave o de existir una gran cantidad de información relevante, el orden de
64
aparición dependerá del clicthrough de cada liga.

Un motor de búsqueda sabe que un link no fue relevante sí el usuario utiliza el botón
Back/Atrás de su navegador y elige otra opción de la lista de búsqueda; por otra parte, se asume
que el link fue relevante, sí se detecta que el usuario no ha regresado después de determinado
tiempo.

64
Cantidad de veces que han encontrado relevante el documento los usuarios. Este número determina el orden de
aparición de los resultados encontrados.

54
3.2.2.1. PROCESO DE BÚSQUEDA DE UN SEARCH ENGINE Y
DIRECTORIO TEMÁTICO

El proceso de búsqueda que lleva a cabo cualquier buscador se resume en 3 partes:

 Recolección y análisis de datos (Indexación y Clasificación por Categorías).


 Búsqueda de información.
 Recuperación de información.

En el primer punto, tanto la recolección como el análisis de datos pueden hacerse de forma
manual o automática. En forma manual los índices suelen presentar un cuestionario en línea para
que la persona u organización que quiera darse de alta identifique y clasifique su página Web. La
mayor parte de los formularios de alta que ofrecen los distintos buscadores piden unos datos
obligatorios que suelen ser: El titulo de la página, URL, descripción y clasificación del recurso, pero
también pueden solicitar otro tipo de datos como palabras clave, la persona o entidad responsable
de la página, tipo de información académica, comercial, personal, informativa, localización,
geográfica, idioma, entre otras. La clasificación tiene como fin la inclusión del recurso en alguna
categoría jerarquizada de las que luego se presentarán en el índice temático, aunado a esto, los
responsables del buscador suelen analizar y evaluar la información que se esta proporcionando
para comprobar que sea correcta.

Una recolección de datos automática rastrea los datos necesarios de la red. Para lograr
esto, los motores de búsqueda disponen de un programa informático llamado “Robot” que visita y
analiza desde la página principal hasta las ligas de ésta.

Este programa es capaz de leer las etiquetas meta o metadatos de las páginas y extraer
toda la información contenida en ellas mediante el lenguaje HTML. Con la información obtenida, el
buscador es capaz de indexar palabras clave como el título, idioma, autor, propietario, localización,
temas, etc.

3.2.2.2. FUNCIONAMIENTO DE UN MOTOR DE BÚSQUEDA

Su funcionamiento se basa en 4 elementos fundamentales:

1. Robot: Las bases de datos de los buscadores se suelen construir utilizando robots, esto es,
programas que recorren la Web y recuperan los documentos de forma automática.

55
Normalmente comienzan con un listado de URL preseleccionadas y visitan periódicamente los
documentos en ellas referenciados. Los robots utilizan algoritmos para seleccionar los enlaces
a seguir, determinar la frecuencia de las visitas, etc.

2. Indexador: Se trata de un programa que recibe las páginas recuperadas por un robot, extrae
una representación interna de la misma y la cambia en forma de índice en una base de datos
(indexa). Existen varias técnicas para extraer la información de un documento, algunos
indexadotes sencillos almacenan los títulos HTML, otros los primeros párrafos, pero los más
avanzados utilizan técnicas más complejas.

 EXTRACCIÓN AVANZADA DE VOCABULARIO DE TÉRMINOS:


o Listas de palabras vacías: Son listas de palabras muy habituales que no
aportan significado y que no deben aparecer en la frase a buscar. Por ejemplo:
preposiciones, artículos, entre otras.

 EXTRACCIÓN DE RAÍCES: Consigue un término único para el vocabulario que representa


distintas palabras de significado parecido. Por ejemplo: palabras en plural, tiempos
verbales, etc.

3. Motor de Búsqueda: Es un programa que se encarga de analizar una consulta de usuario y


buscar en el índice los documentos relacionados. Los motores de búsqueda suelen estar
implementados mediante alguna de las tecnologías que permiten a los programas interactuar
con los datos enviados sobre HTTP. Por ejemplo: CGI, Servlets, ASP, etc.

4. Interfaz: La interfaz más utilizada es la basada en páginas Web con formularios:


 FORMULARIOS: El mecanismo de entrada de datos en las páginas son formularios,
normalmente basados en campos de texto – en donde el usuario introduce la palabra o
frase buscada – y un botón de envió. Asimismo existen mecanismos de búsqueda más
complejas que permiten: introducir varias palabras, añadir expresiones booleanas, buscar
en un idioma en particular, entre otras.

 PAGINAS WEB DE RESULTADOS: Los resultados se muestran en una página Web en


grupos de campos. Cada campo contiene una pequeña descripción, el contexto en el que
se ha encontrado, el enlace y en algunos casos se muestran opciones avanzadas como
traducción automática.

56
Se considera un buen motor de búsqueda al que tiene flexibilidad en sus búsquedas
ofreciendo la posibilidad de elegir entre ellas mediante clasificación temática o por medio de
formularios.

Figura 35. Funcionamiento de un Motor de Búsqueda65

3.3. ALGORITMOS DE POSICIONAMIENTO


El posicionamiento de buscadores consiste en la utilización de varias técnicas con el fin de
situar las páginas Web en los lugares idóneos y más frecuentados por los usuarios de Internet.

La optimización de páginas Web es el proceso de adaptar esas páginas para que los
buscadores las entiendan y las valoren más, con el objetivo de que las coloquen entre los primeros
resultados para determinadas frases de búsqueda. Sí lo anterior se hace de manera correcta, se
tendrá:

 La manera más económica de promocionar en Internet a Empresas, Negocios y Páginas


Web.

 Una página cuidadosamente posicionada tiene el potencial de devolver con superavit una
inversión en Internet, al tener más clientes y dar más publicidad a las marcas de productos.

65
www.hipertexto.info/documentos/tipos_buscador.htm Mayo – 09

57
En la actualidad hay tres buscadores que dominan el mundo de la recuperación y
organización de la información en Internet: Google, Yahoo y MSN Search. Algunos datos
interesantes sobre buscadores Web66.
1. Entre el 80% y el 95% de las búsquedas se realizan con Google, Yahoo y MSN.

2. Más del 80% de usuarios de Internet visitan sólo los tres primeros resultados de una
búsqueda.

3. El 54% admite haber visto sólo la primera página de resultados de su búsqueda.

4. El 19% siguieron hasta la segunda página y se quedaron ahí.

5. Sólo el 10% miraron hasta la tercera página de resultados.

3.3.1. PAGERANK (GOOGLE)


Es un algoritmo patentado por Google que se basa en los enlaces de entrada a una
página. Sin embargo en vez de calcular la relevancia y pertinencia de las páginas, cuando localiza
las paginas en su índice (Base de datos de referencia), hace cálculos basados en las ligas
externas e internas, el texto de los enlaces, la temática de los sitios ligados, el peso del sitio, las
meta etiquetas, la frecuencia relativa del término en la búsqueda del texto (número de veces que
se repite la palabra a buscar sobre todos las demás páginas Web), etc. y así hasta más de 100
variables. Entre las más importantes se encuentran:

Variables de mayor importancia del algoritmo PAGERANK


Pagerank1 Total de ligas entrantes (desde otros Web). Se cuentan todos los enlaces
Pagerank2 Ligas entrantes de Web con PR4 (número de enlaces externos en la página que
enlaza) o mayores. Cuanto mayor es el PR de la Web que enlaza, mejor
Pagerank3 Palabra clave en el enlace
Pagerank4 Número de enlaces externos en la página que enlaza (no del sitio Web)
Pagerank5 Posición de la liga en la página que enlaza. Cuanto más arriba se encuentre en el
código html, mejor.
Pagerank6 Numero de veces que aparecen palabras clave en la página que enlaza
Pagerank7 Título html en la página que enlaza
Pagerank8 Liga de un sitio experto (Web con listas de recursos de una misma temática).
Estos enlaces son muy importantes, vienen de fuentes de muy buena reputación,
(como sitios gubernamentales, educativos, entre otros) sobre la misma temática

66
www.posicionamientoweb.tripod.com/index.htm Junio – 09

58
Variables de mayor importancia del algoritmo PAGERANK
de palabras claves
Pagerank9 Temática de la página que enlaza. Será mejor si es de la misma temática que la
propia, aunque si hay un alto número de enlaces, no tiene importancia
Pagerank10 Estar incluido en una categoría de DMOZ. Cuanto más relacionada la categoría
con las palabras clave, mejor
Tabla 7. Listado de variables del algoritmo PAGERANK.

Para determinar el PageRank, Google analiza el número de enlaces que provienen de


otras páginas Web. La lógica es la siguiente: si una página Web tiene enlace con otra página, es
que la está recomendando y si la recomienda, es que debe ser importante en el ámbito del tema
que trata la primera página Web.

Actualmente Google anuncia que va a modificar su algoritmo PageRank, esto es debido a


los cambios que se han dado en la Internet con respecto a páginas muy lentas a la hora de cargar
sus recursos. 67

3.3.2. WEBRANK (YAHOO)

Es otro algoritmo de posicionamiento que toma en cuenta la popularidad del sitio, medida
en las personas que utilizan su barra para acceder a él. Entre algunas variables con las que cuenta
este algoritmo se tienen:

Variables de mayor importancia del algoritmo WEBRANK


Webrank-1 Es importante darse de alta en directorios como DMOZ68 y Yahoo.
Webrank-2 Es importante ser consciente que Yahoo no omite términos en las búsquedas,
es decir, Algoritmos de posicionamiento, Algoritmos y posicionamiento daría
resultados distintos.
Webrank-3 Yahoo da una mayor importancia al contenido que se encuentre en la página.
Webrank-4 El hecho de repetir keywords (palabras clave) con altas densidades (número de
veces que aparecen/total de paginas) y variando el texto, hace muy posible que
aparezcan en muchas búsquedas relacionadas y variadas con las keywords que
tengan una alta densidad.

67
www.seoposicionamientoweb.wordpress.com/2008/03/13/google-actualiza-sus-algoritmos/
68
Directorio temático público de enlaces de Internet dirigido por Netscape. Es mantenido por un grupo mundial de redactores
voluntarios que evalúan sitios para su inclusión en el directorio. Las páginas seleccionadas por estos redactores son
organizadas dentro de una serie de amplias categorías debajo de las cuáles existen muchas subcategorías más
específicas.
www.es.geocities.com/directorioabierto/Introduccion.html -Junio – 09

59
Variables de mayor importancia del algoritmo WEBRANK
Webrank-5 Yahoo le da gran importancia al título de la página. La principal diferencia con
Google es que no es estricto a la hora de la repetición de KeyWords en él.
Webrank-6 La densidad de las palabras clave es fundamental para obtener un buen
resultado en Yahoo. Se recomienda su uso tanto en el texto, como en el título,
meta etiquetas, entre otras.
Webrank-7 Las palabras clave o Keyword en la URL tienen un mayor peso, sobre todo
cuanto más a la izquierda se encuentren.
Webrank-8 Los cambios y actualizaciones en Yahoo son más lentos que en Google.
Tabla 8. Listado de variables del algoritmo WEBRANK.

3.3.3. MSN SEARCH 69


La clasificación de sitios Web de MSN Search se realiza de forma totalmente
automatizada. El algoritmo de clasificación de MSN Search analiza factores como el contenido de
las páginas Web, la cantidad y calidad de los sitios Web que tienen vínculos con las páginas y la
relevancia del contenido del sitio con respecto a palabras clave. Cada vez que se realiza la
actualización del índice, es posible que se observe un cambio en la clasificación del sitio Web. Esto
es debido a que se realiza una revisión de las clasificaciones de relevancia anteriores, ya que se
agregan nuevos sitios y otros se vuelven obsoletos, aunque no se pueda cambiar directamente la
clasificación de un sitio Web, se puede optimizar el diseño del sitio para conseguir una clasificación
apropiada.

3.4. METABUSCADORES
Los Metabuscadores son herramientas de búsqueda que actúan sobre algunos de los
buscadores de información general más conocidos; dirigen las consultas a otros buscadores y
presentan la totalidad de respuestas obtenidas. Es por ello que se usan para aquellas búsquedas
en las que es interesante obtener el máximo de recursos disponibles en la red. Ver Figura 36.

El objetivo de los Metabuscadores es facilitar al máximo y hacer más eficiente la búsqueda


de información. Esto se hace por medio de la búsqueda en múltiples sitios y entregando un
resumen de los artículos relevantes acerca del tema que se solicitó. La diferencia entre ellos es la
forma de buscar, los lugares en que buscan y como presentan la información. Es importante saber
de la existencia de los metabuscadores ya que son herramientas de búsqueda que no son muy

69
www.posicionamientoweb.tripod.com/msn/msn.htm Julio – 09

60
conocidas debido a su poca difusión. Sin embargo en la Tabla 9. se muestra un compendio de los
70
metabuscadores más conocidos y sus características en general.

Figura 36. Metabuscador Metacrawler

70
www.pisitoenmadrid.com/.../goyams.png Julio – 09

61
3.4.1. TABLA DE METABUSCADORES71

LOGOTIPO NOMBRE IDIOMAS ALCANCE BREVE DESCRIPCIÓN


DOGPILE INGLES GLOBAL Dogpile, es un portal que compila diversidad
de información sobre las diferentes áreas del
conocimiento.

IXQUICK ESPAÑOL GLOBAL Es un motor de búsqueda que cuenta con una


gran red de asistentes los cuales precisan
cada uno de los direccionamientos en la red
para llamar cualquier información.

METACRAWLER INGLES GLOBAL Poderosa herramienta de búsqueda que no


mantiene una base de datos propia, sino que
Y envía las consultas formuladas por los
internautas a otros buscadores.
ESPAÑOL

BUSCA ESPAÑOL, LOCAL. BuscaMultiple busca simultáneamente en


MULTIPLE.COM. todos los motores de búsqueda TOP,
INGLES premiando con una distinción TOP 10 a todos
los sitios Web que aparecen en primeros
puestos.

71
www.tusbuscadores.com/metabuscadores/ Julio – 09
62
LOGOTIPO NOMBRE IDIOMAS ALCANCE BREVE DESCRIPCIÓN
MAMMA INGLES GLOBAL Mamma es un artefacto del metabúsqueda
inteligente - cada vez que se hace una
pregunta Mamma muestra una gran variedad
de directorios.

STAR POINT. INGLES. GLOBAL. StartPoint Metabuscador. Busca


simultáneamente en Ask, Jeeves, Excite,
Google, Goto, Looksmart, Lycos, MSN, Yahoo
y Northern Light.

SEARCH.COM. INGLES. GLOBAL. Search.com busca Google, Ask.com,


LookSmart y docenas de otros motores de
búsqueda principales para traerte los mejores
resultados.

MONSTER INGLES GLOBAL Busca simultáneamente en Yahoo, MSN,


AltaVista, FastSearch y OpenDirectory.
CRAWLER

63
LOGOTIPO NOMBRE IDIOMAS ALCANCE BREVE DESCRIPCIÓN
TODA LA NET ESPAÑOL GLOBAL Metabuscador. Consulta los mejores
buscadores de Internet simultáneamente,
extrae los mejores resultados, los ordena por
relevancia de palabras en un ranking.

IPSELON. ESPAÑOL GLOBAL Ipselon: Sistema de clasificación que combina


y clasifica los resultados de los tres motores
de búsqueda más importantes - Google,
Yahoo! y Prodigy/MSN.

NET.PANDORA ESPAÑOL GLOBAL Metabuscador NetPandora.com - El Primer


Metabuscador Latinoamericano.

C4 ESPAÑOL GLOBAL Permite búsquedas booleanas por proximidad


y opciones personalizadas. Los resultados se
ordenan por ponderación.

COPERNIC ESPAÑOL, GLOBAL Es un portal autónomo diseñado en tres


idiomas de acceso como el Ingles, Español y
INGLES, Francés, además cuenta con un diseño
dinámico y varias funcionalidades para
FRANCES
adquirir la información, ya sea literariamente o
video.

Tabla 9. Tabla de Metabuscadores.

64
CAPÍTULO IV
HERRAMIENTAS TECNOLÓGICAS
UTILIZADAS
CAP. 4. HERRAMIENTAS TECNOLOGICAS UTILIZADAS
Las herramientas tecnológicas, son programas y aplicaciones (software) que pueden ser
utilizadas para diversas funciones, han apoyado el entendimiento, el manejo de la información y la
masividad de esta, debido a que cualquier persona que tenga acceso a una computadora tiene a
su mano la información que desee. Así que podríamos resumir que todos aquellos usuarios que
quieran suplir una necesidad en el área Informática estarán dependientes del uso de las diferentes
Herramientas Informáticas que nacen y crecen día a día.

4.1. PROCESO UNIFICADO


El Proceso Unificado de Desarrollo Software o simplemente Proceso Unificado es un
marco de desarrollo de software que se caracteriza por estar dirigido por casos de uso, centrado en
la arquitectura y por ser iterativo e incremental. El refinamiento más conocido y documentado del
Proceso Unificado es el Proceso Unificado de Rational o simplemente RUP.

El Proceso Unificado no es simplemente un proceso, sino un marco de trabajo extensible


que puede ser adaptado a organizaciones o proyectos específicos. De la misma forma, el Proceso
Unificado de Rational, también es un marco de trabajo extensible, por lo que muchas veces resulta
imposible decir si un refinamiento particular del proceso ha sido derivado del Proceso Unificado o
del RUP. Por dicho motivo, los dos nombres suelen utilizarse para referirse a un mismo concepto.

El nombre Proceso Unificado se usa para describir el proceso genérico que incluye
aquellos elementos que son comunes a la mayoría de los refinamientos existentes. También
permite evitar problemas legales ya que Proceso Unificado de Rational o RUP son marcas
registradas por IBM (desde su compra de Rational Software Corporation en 2003). El primer libro
sobre el tema se denominó, en su versión española, El Proceso Unificado de Desarrollo de
Software (ISBN 84-7829-036-2) y fue publicado en 1999 por Ivar Jacobson, Grady Booch y James
Rumbaugh, conocidos también por ser los desarrolladores del UML, el Lenguaje Unificado de
Modelado. Desde entonces los autores que publican libros sobre el tema y que no están afiliados a
Rational utilizan el término Proceso Unificado, mientras que los autores que pertenecen a Rational
favorecen el nombre de Proceso Unificado de Rational. Las características con las que cuenta el
proceso unificado se explicarán.

4.1.1. CARACTERÍSTICAS GENERALES DEL PROCESO


UNIFICADO
 Iterativo e incremental: El Proceso Unificado es un marco de desarrollo iterativo e incremental
compuesto de cuatro fases denominadas inicio, elaboración, construcción y transición. Cada
una de estas fases es a su vez dividida en una serie de iteraciones. Estas iteraciones ofrecen

65
como resultado un incremento del producto desarrollado que añade o mejora las
funcionalidades del sistema en desarrollo. Cada una de estas iteraciones se divide a su vez en
una serie de disciplinas que recuerdan a las definidas en el ciclo de vida clásico o en cascada:
Análisis de requisitos, diseño, implementación y prueba. Aunque todas las iteraciones suelen
incluir trabajo en casi todas las disciplinas, el grado de esfuerzo dentro de cada una de ellas
varía a lo largo del proyecto.

Figura 37. Diagrama ilustrando como el énfasis relativo en las distintas disciplinas cambia a lo largo
del proyecto.

 Dirigido por casos de uso: En el Proceso Unificado los casos de uso se utilizan para capturar
los requisitos funcionales y para definir los contenidos de las iteraciones. La idea es que cada
iteración tome un conjunto de casos de uso o escenarios y desarrolle todo el camino a través
de las distintas disciplinas.
 Arquitectura: El Proceso Unificado asume que no existe un modelo único que cubra todos los
aspectos del sistema. Por dicho motivo existen múltiples modelos y vistas que definen la
arquitectura de software de un sistema. La analogía con la construcción es clara, cuando se
construye un edificio existen diversos planos que incluyen los distintos servicios del mismo:
electricidad, fontanería, etc.

66
 Enfocado en los riesgos: El Proceso Unificado requiere que el equipo del proyecto se centre en
identificar los riesgos críticos en una etapa temprana del ciclo de vida. Los resultados de cada
iteración, en especial los de la fase de elaboración, deben ser seleccionados en un orden que
asegure que los riesgos principales son considerados primero.72

4.2. LENGUAJE UNIFICADO DE MODELADO (UML)


UML es un conjunto de herramientas, que permiten modelar (analizar y diseñar) sistemas
orientados a objetos.

UML contiene las siguientes herramientas:

 Diagrama de casos de uso: Muestran un conjunto de casos de uso y actores (tipo especial
de clases) y sus relaciones. Cubren la vista estática de los casos de uso y son
especialmente importantes para el modelado y organización del comportamiento.
 Diagrama de clases: Muestran un conjunto de clases, interfaces y colaboraciones, así
como sus relaciones. Estos diagramas son los más comunes en el modelado de sistemas
orientados a objetos y cubren la vista de diseño estática o la vista de procesos estática (sí
incluyen clases activas).
 Diagrama de estados: Muestran una maquina de estados compuesta por estados,
transiciones, eventos y actividades. Estos diagramas cubren la vista dinámica de un
sistema y son muy importantes a la hora de modelar el comportamiento de una interfaz,
clase o colaboración.
 Diagrama de secuencias y diagrama de colaboraciones: Tanto los diagramas de secuencia
como los diagramas de colaboración son un tipo de diagramas de interacción. Constan de
un conjunto de objetos y sus relaciones, incluyendo los mensajes que se pueden enviar
unos objetos a otros. Cubren la vista dinámica del sistema. Los diagramas de secuencia
enfatizan el ordenamiento temporal de los mensajes mientras que los diagramas de
colaboración muestran la organización estructural de los objetos que envían y reciben
mensajes. Los diagramas de secuencia se pueden convertir en diagramas de colaboración
sin perdida de información, lo mismo ocurren en sentido opuesto.
 Diagrama de actividades: Son un tipo especial de diagramas de estados que se centra en
mostrar el flujo de actividades dentro de un sistema. Los diagramas de actividades cubren
la parte dinámica de un sistema y se utilizan para modelar el funcionamiento de un sistema
resaltando el flujo de control entre objetos.

72
JACOBSON, Ivar; BOOCH, Grady; RUMBAUGH, James. El Proceso Unificado de Desarrollo de Software. Pearson
Addisson-Wesley. Año 2000.

67
 Diagrama de componentes: Muestra la organización y las dependencias entre un conjunto
de componentes. Cubren la vista de la implementación estática y se relacionan con los
diagramas de clases ya que en un componente suele tener una o más clases, interfaces o
colaboraciones
 Diagrama de distribución: Representan la configuración de los nodos de procesamiento en
tiempo de ejecución y los componentes que residen en ellos. Muestran la vista de
despliegue estática de una arquitectura y se relacionan con los componentes ya que por lo
73
común, los nodos contienen uno o más componentes.

Cabe señalar que no es necesario emplear todas estas herramientas para analizar y
diseñar sistemas orientados a objetos.

4.3. MAPAS MENTALES

Los mapas mentales han sido utilizados por siglos para: aprender, realizar lluvia de ideas,
agilizar la memoria, el pensamiento visual y solucionar todo tipo de problemas. Algunos de los
ejemplos de mapas de la mente, fueron desarrollados por Porphyry de Tyros, pensador conocido
del siglo III, visualizando gráficamente las categorías conceptuales de Aristóteles.

La red semántica fue desarrollada como teoría para entender el aprendizaje humano y
desarrollado en “Mapas Mentales” por el Dr. Allan Collins y el conocido investigador M. Ross
Quillian al inicio de los años 60. Se han estado utilizando las técnicas gráficas radiales (mapas
mentales) por siglos en áreas tales como ingeniería, psicología, y educación. En la actualidad, el
origen del mapa de la mente es atribuido a un autor popular británico de la psicología, Tony
Buzan74 quien es el líder indiscutible en esta materia.

4.3.1. ¿QUE SON LOS MAPAS MENTALES?

El cerebro humano se caracteriza por trabajar de forma asociativa así como en forma
lineal, mientras que una computadora lo hace en forma lineal; la diferencia entre ambos se hace
notar en que el cerebro va comparando, integrando y sintetizando a medida que funciona. La
asociación juega un papel dominante en casi toda función mental y las palabras mismas no son
una excepción, toda palabra e idea tiene numerosas conexiones a otras ideas o conceptos.

73
Raúl Alarcón (2000) “DISEÑO ORIENTADO A OBJETOS CON UML” Grupo EIDOS
74
Buzan Tony & Barry (1996), "EL LIBRO DE LOS MAPAS MENTALES: Como utilizar al máximo las capacidades de la
mente" ED. URANO

68
Los Mapas Mentales, son un método efectivo para tomar notas y muy útiles para la
generación de ideas por asociación, que asemejan –en estructura- a la memoria misma.

Debido a la gran cantidad de asociaciones envueltas, los mapas mentales pueden ser muy
creativos, tendiendo a generar nuevas ideas y asociaciones en las que no se había pensado antes.
Cada elemento en un mapa es, en efecto, un centro de otro mapa.

Los Mapas Mentales son una manera de representar las ideas relacionadas con símbolos
más bien que con palabras complicadas. La mente forma asociaciones casi instantáneamente y
representarlas mediante un "mapa" permite escribir ideas más rápidamente que utilizando palabras
o frases.

Por lo tanto, es un diagrama usado para representar palabras, ideas, trabajos u otros;
ligados y dispuestos de forma radial alrededor de una palabra clave o idea central. Se utiliza para:
generar, visualizar, estructurar y clasificar ideas. Es una herramienta ampliamente utilizada como
ayuda en los estudios, las organizaciones, solucionar problemas y la toma de decisiones.

Constituyen un diagrama centrado que representa semánticamente las conexiones entre


las porciones de información. La presentación de estas conexiones en una manera gráfica -no
lineal- permite ordenar una lluvia de ideas para cualquier tarea, eliminando la problemática inicial
de establecer un marco conceptual intrínseco apropiado o relevante al trabajo particular.

De acuerdo a como se describen los Mapas Mentales se puede decir que son una
herramienta que trabaja acorde a todo el cerebro, permite estimular el aprendizaje no memorístico,
ya que trabaja por medio de una cadena de asociaciones, ampliando teorías y conceptos gracias a
la visión general del tema, explorando la información en forma creativa, resumiendo los conceptos
básicos y las ideas propias, profundizando en los mas mínimos detalles, aplicando varias
estrategias para ser consultado una y otra vez en la búsqueda de un aprendizaje efectivo75.

Cabe señalar que a los Mapas Mentales se les ha dado diversas denominaciones, de
acuerdo al área o tema al cual se le pueda asociar como son:

 MANIFESTACIÓN DEL PENSAMIENTO IRRADIANTE: “Es la expresión externa del


76
pensamiento irradiante. Un mapa mental irradia siempre a partir de una imagen central” .

75
www.llramirezz.unad.googlepages.com/herramientas Agosto – 09
76
Buzan, T.: El libro de los mapas mentales. Como utilizar al máximo las capacidades de la mente: Ed. Urano, 1996.

69
 TÉCNICA GRÁFICA: "Aprovecha toda la gama de capacidades corticales y pone en
77
marcha el auténtico potencial del cerebro" .


78
MÉTODO: "Destila la esencia de aquello que conocemos y lo organiza de forma visual" .

 TÉCNICA MNEMÓNICA: "Es multidimensional lo que permite crear una imagen con varias
79
dimensiones, sirviéndose de la asociación cruzada, del color y del tiempo" .

Es decir, se trata de una técnica que permite la organización y la representación de la


información de forma fácil, espontánea, creativa, en el sentido que la misma sea asimilada y
recordada por el cerebro. Consiste en una metodología para generar y comparar ideas e
información. Los mapas mentales pueden aumentar la creatividad y la energía, atrayendo e
involucrando a aquellas personas que piensan de manera visual.

En forma breve, se puede decir que es: “Una representación gráfica de un proceso integral
y global del aprendizaje que facilita la unificación, diversificación e integración de conceptos o
pensamientos para analizarlos y sintetizarlos en una estructura creciente y organizada, elaborada
con imágenes, colores, palabras y símbolos”.

4.3.2. LOS MAPAS MENTALES COMO HERRAMIENTA

Hay tres elementos que hacen de los mapas mentales una herramienta muy importante por
quienes la usan, de acuerdo a:

1) Las características intrínsecas básicas80, señala cuatro aspectos esenciales del mapa
mental:

 El asunto o motivo de atención se cristaliza en una imagen central.


 Los principales temas del asunto irradian de la imagen central en forma ramificada.
 Las ramas comprenden una imagen o una palabra clave impresa sobre una línea
asociada.
 Las ramas forman una estructura nodal conectada y jerarquizada.

77
Mc.Carthy, M.J.: Domine la era de la información: Ed. Robin-book, 1991.
78
Alamea, G.: “Técnicas para Generación de Ideas y Creatividad: Mapas Mentales”, 2005
79
Ontoria, A.; Gómez, J.P.R.; De Luque, A.: Aprender con mapas mentales. Una estrategia para pensar y estudiar: Ed.
Narcea, 2003
80
Ontoria, A.; Gómez, J.P.R.; De Luque, A.: Aprender con mapas mentales. Una estrategia para pensar y estudiar: Ed.
Narcea, 2003.

70
2) La relación a su sencillez de creación y de uso, destacan las siguientes atribuciones de los
mapas mentales:

 No se limita a una interrelación de tipo lineal.


 La visualización es pictórica e incluso en algunos casos verbal.
 Este tipo de representación es más atractivo y vistoso que transmitir un mensaje a
través de un solo texto.
 Está enfocado a la relación entre las ideas que conciernen al motivo principal.
 Genera un modelo que da estructura y claridad a la realidad que se pretende
mostrar.
 Permite consensuar con los participantes y en tiempo real cualquier estructura
relacional que sea objeto de atención.

3) Prestaciones para ayudar a la auto-organización de las personas se convierte en un


referente necesario, ya que:

 Visualiza claramente donde se desea llegar a través de un plan.


 Mejora la estructuración mental de ideas.
 Y consecuentemente, mejorará sensiblemente el rendimiento laboral.

4.3.3. USO DE MAPAS MENTALES

Los mapas mentales tienen muchos usos en situaciones personales, de la familia,


educativas, y de negocio, incluyendo: la toma de notas o apuntes, lluvia de ideas, resumir, revisar y
clarificar la línea general de pensamientos. Por ejemplo, uno podría escuchar una conferencia y
tomar notas anotando los puntos o palabras clave más importantes. Uno puede también utilizar los
mapas mentales como técnica mnemónica o para organizar una idea complicada.

Uno de los principales elementos a favor de los mapas mentales consiste en su facilidad de
uso ya que solamente se necesita una hoja de papel y lápiz para escribir para empezar a
producirlos. Sin embargo, recientemente se han empezado a utilizar una serie de paquetes
informáticos (software) para su desarrollo. Entre los cuales podemos mencionar: Conceptdraw
MindMap, MindMapper, CMAP tools, Text2MindMap, FreeMind, Mindmanager y ECOTree.

Para hacer un mapa mental, se comienza en el centro de una página con la idea principal,
y se trabaja hacia afuera en todas direcciones, produciendo una estructura creciente y organizada
compuesta de palabras e imágenes claves.

71
Figura 38. Uso de los Mapas Mentales.

Los conceptos fundamentales son:

 Organización: el material debe estar organizado en forma deliberada y la información


relacionada con su tópico de origen (partiendo de la idea principal, se conectan nuevas
ideas hasta completar la información).
 Palabras Clave: las notas con palabras claves son más efectivas que las oraciones o
frases, siendo más fácil para el cerebro, recordar éstas que un grupo de palabras, frases u
oraciones.
 Asociación: todos los aspectos que se trabajan en el mapa deben ir asociados entre sí,
partiendo desde el centro del mismo, permitiendo que las ideas sean recordadas
simultáneamente.
 Agrupamiento: luego de tener un centro definido, un mapa mental se debe agrupar y
expandir a través de la formación de subcentros que partan de él y así sucesivamente.
 Memoria Visual: escribir palabras clave, usando colores, símbolos, iconos, efectos 3D,
flechas, grupos de palabras resaltados.
 Imaginación: las imágenes visuales son más recordadas que las palabras, por este motivo
el centro debe ser una imagen visual fuerte para que todo lo que está en el mapa mental
se pueda asociar con él.
 Enfoque: todo Mapa Mental necesita un único centro.

72
 Participación consciente: la participación debe ser activa y consciente. Si los mapas
mentales se convierten en divertidos y espontáneos, permiten llamar la atención,
motivando el interés, la creatividad, la originalidad y ayudan a la memoria.

El mapa siempre debe tener un centro. Este centro posee ramas como el tronco de un
árbol. Cada rama a su vez desprenderá otras ramas. Ver Figura 39.

Figura 39. Estructura de un Mapa Mental.

Se nombrarán a las ramas conectadas directamente al centro del mapa ramas principales,
ya que determinan la posición de sus ramas hijas. El centro del mapa y todas las ramas tienen un
encabezado. Por lo general, el texto planteado, debe ser una o pocas palabras, para tener un
seguimiento mas sencillo del mapa.

El mapa mental tiene cuatro características esenciales, a saber:


a) El asunto o motivo de atención, se cristaliza en una imagen central.
b) Los principales temas de asunto irradian de la imagen central en forma ramificada.
c) Las ramas comprenden una imagen o una palabra clave impresa sobre una línea
asociada. Los puntos de menor importancia también están representados como ramas
adheridas a las ramas de nivel superior; y
d) Las ramas forman una estructura nodal conectada.

Sumado a estas características, los mapas mentales se pueden mejorar y enriquecer con
colores, imágenes y códigos que le añadan interés, belleza e individualidad, fomentándose la
creatividad, la memoria y la evocación de la información. Ver Figura 40.

Cuando una persona trabaja con mapas mentales, puede relajarse y dejar que sus
pensamientos surjan espontáneamente, utilizando cualquier herramienta que le permita recordar
sin tener que limitarlos a las técnicas de estructuras lineales, monótonas y aburridas.

Para la elaboración de un mapa mental y tomando en consideración las características


esenciales el asunto o motivo de atención, se debe definir identificando una o varias Ideas

73
Ordenadoras Básicas (IOB), que son conceptos claves (palabras, imágenes o ambas) de donde es
posible partir para organizar otros conceptos, en este sentido, un mapa mental tendrá tantas IOB
como requiera el "cartógrafo mental". Son los conceptos claves, los que congregan a su alrededor
la mayor cantidad de asociaciones, siendo una manera fácil de descubrir las principales IOB en
una situación determinada, haciéndose las siguientes preguntas:
- ¿Qué conocimiento se requiere?
- Si esto fuera un libro, ¿cuáles serían los encabezamientos de los capítulos?
- ¿Cuáles son mis objetivos específicos?
- ¿Cuáles son mis interrogantes básicos? Con frecuencia, ¿Por qué?,
-¿Qué?, ¿Dónde?, ¿Quién?, ¿Cómo?, ¿Cuál?, ¿Cuándo?, sirven bastante bien como
ramas principales de un mapa mental.
-¿Cuál sería la categoría más amplia que las abarca a todas?

Figura 40. Ejemplo para elaborar un Mapa Mental.

4.4. REDES NEURONALES

Las Redes Neuronales Artificiales (ANN) son sistemas paralelos para el procesamiento de
la información, inspirados en el modo en el que las redes de neuronas biológicas del cerebro
procesan esta. Es decir que se han intentado plasmar los aspectos esenciales de una neurona real
a la hora de diseñar una neurona “artificial”. Estos modelos realizan una simplificación, averiguando
cuales son los elementos relevantes del sistema, porque la cantidad de información de que dispone
es excesiva o bien porque es redundante. Una elección adecuada de sus características, más una

74
estructura conveniente, es el procedimiento convencional utilizado para construir redes capaces de
realizar una determinada tarea.

Es de prever que dichas Redes Neuronales Artificiales tengan características similares a


las del cerebro:
 Sean robustas y tolerantes a fallas.

 Sean flexibles. El cerebro se adapta a nuevas circunstancias mediante el aprendizaje.

 Puedan trabajar con información borrosa, incompleta, probabilística, con ruido o


inconsistente.

 Sean altamente paralelas. El cerebro está formado por muchas neuronas interconectadas
entre si y es, precisamente el comportamiento colectivo de todas ellas, lo que caracteriza
su forma de procesar la información.

Existen numerosas formas de definir a las redes neuronales; desde las definiciones cortas
y genéricas hasta las que intentan explicar más detalladamente qué son las redes neuronales. Por
ejemplo:

1) Una nueva forma de modelo lógico computacional, inspirado en modelos biológicos.

2) Un modelo matemático compuesto por un gran número de elementos procesales


organizados en niveles.

3) Un sistema de computación compuesto por un gran número de elementos simples,


elementos de procesos muy interconectados, los cuales procesan información por medio
de su estado dinámico como respuesta a entradas externas.

4) Redes neuronales artificiales son redes interconectadas masivamente en paralelo de


elementos simples (usualmente adaptativos) y con organización jerárquica, las cuales
intentan interactuar con los objetos del mundo real del mismo modo que lo hace el sistema
nervioso biológico.

Las redes neuronales son más que otra forma de emular ciertas características propias de
los humanos, como la capacidad de memorizar y de asociar hechos. Si se examinan con atención
aquellos problemas que no pueden expresarse a través de un algoritmo, se observará que todos

75
ellos tienen una característica en común: la experiencia. El hombre es capaz de resolver estas
situaciones acudiendo a la experiencia acumulada. Así parece claro que una forma de aproximarse
al problema consista en la construcción de sistemas que sean capaces de reproducir esta
característica humana. En definitiva, las redes neuronales no son más que un modelo artificial y
simplificado del cerebro humano, que es el ejemplo más perfecto del que disponemos para un
sistema que es capaz de adquirir conocimiento a través de la experiencia. Una red neuronal es “un
nuevo sistema para el tratamiento de la información, cuya unidad básica de procesamiento está
inspirada en la célula fundamental del sistema nervioso humano: la neurona”. 81

La neurona es el principal componente del cerebro. Está formada por complejas uniones
de elementos químicos (moléculas) que interaccionan de acuerdo a las leyes físicas. Cada neurona
es una célula especializada que consiste de un núcleo, un cuerpo celular, dendritas
(ramificaciones), axones, etc. Ver Figura 41.

Una neurona se puede considerar como un pequeño procesador de información, que


recibe entradas, las procesa y devuelve salidas hacia otras neuronas, de tal manera que la salida
de una es la entrada de otra. Se estima que en
el cerebro humano hay alrededor de 100.000
millones de neuronas. Cada una puede
presentar hasta miles de conexiones con otras
neuronas. Actualmente se construyen redes
neuronales artificiales (software) con una
cantidad mucho menor de neuronas artificiales.

Figura 41. Esquema de una neurona biológica.


La neurona artificial es un modelo simplificado, en ella se omiten las interacciones químicas
de la neurona biológica y se las reemplaza por datos de entrada y salida, puede tener una o
muchas entradas (que pueden ser bits, números enteros o números decimales), hay una función
que procesa estas señales (las combina), y devuelve el valor resultante a otras neuronas con las
que se encuentra conectada.

La combinación de las señales suele ser cada entrada multiplicada por un peso de
interconexión (cuán conectada se encuentra la entrada con la neurona) y la suma de todas estas.

La parte interesante de este proceso se encuentra en que si la suma de las entradas


supera un umbral (valor numérico crítico) la neurona se excita. En caso contrario, se inhibe. El

81
Damián J. Matich “Redes Neuronales: Conceptos Básicos y Aplicaciones” 2001

76
resultado de este proceso aplicado a gran cantidad de neuronas es que, luego de la propagación
de la señal a través de la red neuronal, las neuronas adquieren un estado de excitación o
inhibición. Se pueden formar, de esta manera, áreas inhibidas o excitadas que responden positiva
o negativamente ante las nuevas entradas que se le presenten.

Está constituida por neuronas interconectadas y arregladas en tres capas (esto último
puede variar). Los datos ingresan por medio de la “capa de entrada”, pasan a través de la “capa
oculta” y salen por la “capa de salida”. Cabe mencionar que la capa oculta puede estar constituida
por varias capas. Ver Figura 42.

Figura 42. Esquema de una Red Neuronal.

4.4.1. VENTAJAS DE LAS REDES NEURONALES

Debido a su constitución y a sus fundamentos, las redes neuronales artificiales presentan


un gran número de características semejantes a las del cerebro, como son:

 Aprendizaje Adaptativo. Capacidad de aprender a realizar tareas basadas en un


entrenamiento o en una experiencia inicial.

 Auto-organización. Una red neuronal puede crear su propia organización o representación


de la información que recibe mediante una etapa de aprendizaje.

 Tolerancia a fallos. La destrucción parcial de una red conduce a una degradación de su


estructura; sin embargo, algunas capacidades de la red se pueden retener, incluso
sufriendo un gran daño.

77
 Operación en tiempo real. Los cómputos neuronales pueden ser realizados en paralelo;
para esto se diseñan y fabrican máquinas con hardware especial para obtener esta
capacidad.

 Fácil inserción dentro de la tecnología existente. Se pueden obtener chips especializados


para redes neuronales que mejoran su capacidad en ciertas tareas. Ello facilitará la
integración modular en los sistemas existentes.

Son capaces de aprender de la experiencia, de generalizar de casos anteriores a nuevos


casos, de abstraer características esenciales a partir de entradas que representan información
irrelevante, etc. Esto hace que ofrezcan numerosas ventajas y que este tipo de tecnología se esté
aplicando en múltiples áreas.

4.5. BÚSQUEDAS
4.5.1. BÚSQUEDA EN PROFUNDIDAD

Un algoritmo de búsqueda en profundidad recorre todos los nodos de un árbol de manera


ordenada, pero no uniforme. Consiste en ir expandiendo cada uno de los nodos a medida que los
encuentra, empezando siempre por el primer nodo hijo no visitado del nodo actual; cuando ya no
quedan más nodos hijos que visitar en el actual, regresa (backtracking), y el padre del nodo pasa a
ser el nodo actual. El criterio de camino agotado debe ser elegido cuidadosamente, de manera de
evitar la expansión indefinida de nodos. Asimismo, para garantizar la convergencia, en muchos
casos debe evitarse la expansión de nodos repetidos, al menos en un mismo camino.

Expandir un camino hasta su máxima profundidad puede ser útil para acotar la solución en
problemas de optimización. Esto es, si se ha encontrado una solución posible con determinada
valoración, no se admitirá expandir nodos con una valoración peor, y así el algoritmo puede ir
eliminando ramas sin la carga de procesamiento de recorrerlas. Además, el requerimiento de
memoria es limitado, aun si se garantiza que no halla ciclo, ya que sólo hace falta guardar los datos
de la rama actual. Ver Figura 43.

78
Figura 43. Ejemplo de una búsqueda en profundidad.

4.5.2 BÚSQUEDA EN AMPLITUD

Este algoritmo de búsqueda se basa en el termino “Primero en entrar, primero en salir” –


FIFO, por sus siglas en ingles- el cual asegura que todos los nodos que sean visitados primero son
los primeros en ser expandidos, lo que significa que todos los nodos más superficiales se
expanden antes que los nodos más profundos82. La Figura 44. muestra la exploración de este
algoritmo. La base de este algoritmo se resume en los siguientes puntos.

1. Expandir todos los nodos del siguiente nivel antes de proceder con niveles más profundos.

2. Garantiza el encontrar una solución si esta existe.

3. A medida que se incrementa el número de nodos sucesores, se requiere de más tiempo y


memoria.

Un algoritmo de búsqueda por amplitud también conocido por “anchura”, efectúa la


exploración empezando por el nodo raíz y posteriormente se sigue con los nodos del nodo raíz, es
decir que va explorando todos los nodos a una profundidad en el árbol de búsqueda nivel por nivel.

82
Stuart J. y Peter N. “Inteligencia Artificial. Un enfoque moderno”

79
Figura 44. Ejemplo de una búsqueda en amplitud.

4.6. SISTEMAS BASADOS EN CONOCIMIENTO


Son aquellos que suelen aplicar sus características específicas como son la representación
e inferencia simbólica y la búsqueda heurísticas que son áreas de estudio dentro de la Inteligencia
Artificial, porque emulan el comportamiento de un experto dentro de un dominio en concreto para
tener una mejor calidad y rapidez en las respuestas de un experto.

Los sistemas basados en conocimiento se organizan en tres niveles:

1.-Datos o hechos.
2.- Reglas operativas.
3.-Inferencia y control.

Los dos primeros niveles forman la base de conocimientos. A nivel de hechos y datos los
conocimientos declarativos de los hechos tratan del problema particular que se esta resolviendo y
el actual estado del proceso de solución. El nivel operativo y heurístico contiene los conocimientos
operativos y los conjuntos de conocimientos. Estos conocimientos los usa el sistema para razonar
acerca del problema, y viene dado con frecuencia en forma de reglas operativas o los programas
inferenciados por forma (Lógica de predicados). Cada vez, pueden aplicarse al problema una o
varias de esas reglas. Si se aplica una se produce un cambio en los datos y/o en los hechos. La
estructura de control o intérprete de reglas, es un programa que toma la decisión sobre como usar
los conocimientos específicos que se tienen acerca del problema en la búsqueda de la solución.
Por ejemplo, puede tomarse la decisión sobre cual regla aplicar y como aplicarla.

80
Un sistema basado en conocimiento se puede describir utilizando los tres niveles
siguientes.

 Funcional. Se entiende por arquitectura a la ciencia y diseño que determine las estructuras
de un sistema. En este nivel se hace una descripción funcional de como aparece el
sistema ante el usuario. Es decir, se muestra, la arquitectura del sistema que es aquello
que ve y conoce el usuario.

 Lógico. Corresponde con la implementación que tiene que soportar la arquitectura ya


descrita.

 Físico. Que corresponde con la realización concreta del sistema, con los componentes
particulares empleados para construir el sistema de base de conocimientos.

Los elementos básicos de un sistema basado en conocimientos son:

a) La base de conocimientos tiene los conocimientos relativos a la tarea. Esta base usa
formalismos de representación para codificar los conocimientos.

b) El motor de inferencias, es el medio por el cual se controla los conocimientos. Los


mecanismos de inferencia permiten que el sistema razone a partir de los datos, noticias y
conocimientos de entrada para producir los resultados de salida. Los mecanismos de
control gobiernan el orden en que el sistema realiza los pasos de razonamiento, acepta
entradas y produce salidas.

c) Interfaz de entrada/salida que permiten al usuario proporcionar hechos y datos y permite al


sistema realizar preguntas y proporcionar consejos y explicaciones

4.6.1. BASES DE CONOCIMIENTO

Las bases de conocimiento son la evolución lógica de los sistemas de bases de datos
tradicionales, en un intento de plasmar no ya cantidades como datos, sino elementos de
conocimiento (normalmente en forma de hechos y reglas) así como la manera en que estos
elementos han de ser utilizados.

81
En una base de conocimiento, al almacenar “hechos” y un conjunto de “reglas” le apoya
para obtener información que no se encuentra almacenada de forma explícita.83 Contiene
información creada gracias a una extensa investigación organizada en un árbol de conocimientos
completo. Las bases de conocimientos se crean con el propósito de cubrir todos los aspectos de la
evaluación y no únicamente las características y las funcionalidades de un dominio, además de
tener una visualización organizada de todos los aspectos de la evaluación, una base de
conocimientos permite almacenar notas, comentarios y otros datos importantes para cada nivel del
árbol de conocimientos.

Una óptima base de conocimiento en un dominio particular debe poseer las siguientes
propiedades:

 Suficiencia de la representación: La capacidad de representar dos los tipos de


conocimiento necesarios en el dominio.

 Suficiencia deductiva: La capacidad para manipular las estructuras de la representación


con el fin de obtener nuevas estructuras que se correspondan con un nuevo conocimiento
deducido a partir del antiguo.

 Eficiencia deductiva; La capacidad de incorporar información adicional en las estructuras


de conocimiento con el fin de que los mecanismos de inferencia puedan seguir las
direcciones más prometedoras.

 Eficiencia en la adquisición: La capacidad de adquirir nueva información con facilidad. El


caso más simple es aquel en el que una persona inserta directamente el conocimiento en
la base de datos, idealmente el sistema sería capaz de controlar la adquisición de
84
conocimiento por sí mismo.

4.7. LENGUAJE ESTRUCTURADO DE CONSULTA (SQL)

El lenguaje de gestión de bases de datos más conocido en la actualidad es el SQL,


(Structured Query Language), es un lenguaje estándar internacional de generadores de bases de
datos. Permite definir una base de datos mediante tablas, almacenar información en tablas,
seleccionar la información que sea necesaria de la base de datos, realizar cambios en la

83
www.elies.rediris.es/elies18/522.html Agosto – 09
84
Elaine Rich, Kevin Knight “Inteligencia Artificial” 2da Ed.

82
información y estructura de los datos, combinar y calcular datos para conseguir la información
necesaria.

4.7.1. FUNCIONAMIENTO DE SQL BÁSICO

El lenguaje SQL puede utilizarse como DML (Lenguaje de Manipulación de Datos), para
añadir, borrar, modificar o consultar datos. Además puede utilizarse como DDL (Lenguaje de
Definición de Datos), para crear, modificar o borrar diferentes objetos de bases de datos como
tablas, vistas o índices.

El lenguaje SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y


potencia de los sistemas relacionales permitiendo gran variedad de operaciones en estos últimos.

Se considera un lenguaje declarativo de "alto nivel" o "de no procedimiento", que gracias a


su fuerte base teórica y su orientación al manejo de conjuntos de registros, y no a registros
individuales, permite una alta productividad en codificación y orientación a objetos. De esta forma
una sola sentencia puede equivaler a uno o más programas que se utilizan en un lenguaje de bajo
nivel orientado a registro.

El lenguaje de definición de datos (DDL), es el que se encarga de la modificación de la


estructura de los objetos de la base de datos. Contiene cuatro funciones básicas: CREATE,
ALTER, DROP y TRUNCATE, Ver Tabla 10.

Funciones básicas de un Lenguaje de Definición de Datos.


Función Ejemplo
Create: crea un objeto dentro de la base de CREATE TABLE 'TABLA_NOMBRE' (
datos. Puede ser una tabla, vista, índice, 'CAMPO_1' DOCUMENTO,
trigger, función, procedimiento o cualquier 'CAMPO_2' APELLIDO-NOMBRE-EDAD
otro objeto que el motor de la base de datos )
soporte.

Alter: permite modificar la estructura de un ALTER TABLE 'TABLA_NOMBRE' (


objeto. Se pueden agregar/quitar campos a ADD NUEVO_CAMPO INT UNSIGNED
una tabla, modificar el tipo de un campo, )
agregar/quitar índices a una tabla, modificar
un trigger, etc.

83
Funciones básicas de un Lenguaje de Definición de Datos.
Función Ejemplo
Drop: elimina un objeto de la base de datos. ALTER TABLE ''TABLA_NOMBRE''
Puede ser una tabla, vista, índice, trigger, (
función, procedimiento o cualquier otro DROP COLUMN ''CAMPO_NOMBRE1''
objeto que el motor de la base de datos )
soporte. Se puede combinar con la
sentencia ALTER.
Truncate: borra todo el contenido de una TRUNCATE TABLE ''TABLA_NOMBRE1''
tabla. La ventaja sobre el comando DROP,
es que si se quiere borrar todo el contenido
de la tabla, es mucho más rápido,
especialmente si la tabla es muy grande, la
desventaja es que TRUNCATE solo sirve
cuando se quiere eliminar absolutamente
todos los registros, ya que no se permite la
cláusula WHERE. Si bien, en un principio,
esta sentencia parecería ser DML (Lenguaje
de Manipulación de Datos), es en realidad
una DDL, ya que internamente, el comando
truncate borra la tabla y la vuelve a crear y
no ejecuta ninguna transacción.
Tabla 10. Tabla con las funciones básicas de un Lenguaje de Definición de Datos.

Lenguaje de manipulación de datos (LMD), permite a los usuarios llevar a cabo las tareas
de consulta o manipulación de los datos, organizados por el modelo de datos adecuado. Contiene
tres funciones básicas: INSERT, UPDATE y DELETE. Ver Tabla 11.

Funciones básicas del Lenguaje de Manipulación de Datos.


Función Ejemplo
Insert: agrega uno o más registros a una (y INSERT INTO agenda_telefonica VALUES
sólo una) tabla en una base de datos ('Roberto Fernández', '4886850');
relacional. INSERT INTO agenda_telefonica VALUES
('Alejandro Sosa', '4556550');
Update: es utilizada para modificar los UPDATE ''tabla'' SET ''columna1'' = ''valor1''
valores de un conjunto de registros [,''columna2'' = ''valor2'',...]

84
Funciones básicas del Lenguaje de Manipulación de Datos.
Función Ejemplo
existentes en una tabla. WHERE ''columnaN = ''valorN''
Delete: borra cero o más registros existentes DELETE FROM ''tabla'' WHERE ''columna1'' =
en una tabla. ''valor1''
DELETE FROM My_table WHERE field2 = 'N';
Tabla 11. Funciones básicas del Lenguaje de Manipulación de Datos.

4.8. BASE DE DATOS


A finales del siglo XX, la información se ha convertido en uno de lo sustentos tanto
personal como empresarial. La información se utiliza en todos los ámbitos y permite la toma de
decisiones.

Toda esa información esta disponible para su utilización, gracias a unos soportes de
información y programas informáticos que los manejan denominados Bases de Datos.

La definición de Base de Datos no es única, depende del punto de vista con que se mire.
Desde el punto de vista informático, es una colección de ficheros interrelacionados. Desde el punto
de vista de un usuario, es un conjunto de datos que modelan la actividad de una empresa, es decir,
es un modelo del mundo real.

La definición formal de Base de Datos es: conjunto de datos operativos a los que acceden
los programas de aplicación o los usuarios de una empresa. Datos operativos son los que residen
durante un tiempo determinado en el sistema, a diferencia de los datos de entrada y salida.85

Existen muchos tipos de Bases de Datos en función del modo en que se almacenan y
acceden a la información que guardan: relacional, jerárquica, en red, orientada a objetos. Ejemplos
de gestores de Bases de Datos relacionales o RDBMS (Relational Database Management System)
hay muchos: MySQL86, SQLite, Oracle87, Informix, SyBase, Microsoft SQL Server88, PostGres,
mSQL, entre otros.

85
Antonio López. “Enciclopedia de Informática y Computación” Deontología Informática, Edición 1998, Cultural S.A.
86
MySQL: Sistema de gestión de base de datos relacional, multihilo y multiusuario.
87
Oracle: Es un sistema de gestión de base de datos relacional (o RDBMS por el acrónimo en inglés de Relational Data
Base Management System), como uno de los sistemas de bases de datos más completos, destaca en soportes de
transacciones con estabilidad y escalabilidad y soporte multiplataforma.
88
Microsoft SQL Server: Es un sistema para la gestión de bases de datos basado en el modelo relacional, se caracteriza
por dar soporte en transacciones, es escalable, tiene estabilidad y seguridad, entre otros.

85
Un gestor de Base de Datos relacional almacena los datos en tablas, cada una de las
cuales esta formada por filas o registros y estas, a su vez, están formadas por columnas o campos.
Antes de definir una tabla, hay que normalizarla, proceso que consiste en evitar redundancias.

El acceso a los gestores de Bases de Datos se hace a través del lenguaje SQL (Structured
Query Language).

4.8.1. BASES DE DATOS DOCUMENTALES

Las bases de datos documentales son unos tipos especiales de bases de datos que
almacenan información en forma de texto.

La estructura lógica de ese tipo de información es muy complicada de diseñar, puesto que
los diferentes documentos contenidos en la base de datos están almacenados en registros de
longitud variable.

Los accesos a la información también presentan problemas de diseño y programación,


puesto que los documentos han de tratarse como cadenas de caracteres, debiendo buscarse el
término deseado a través de todo el texto almacenado.

Para agilizar y mejorar el proceso de búsqueda a lo largo de los diferentes textos que
componen la base de datos se deben seguir diversas estrategias (índices, búsquedas complejas,
etc.), que provocan una gran complicación al programar la recuperación de la información deseada
por los usuarios.

Textos enciclopédicos o de carácter jurídico son, fundamentalmente, los que se almacenan


89
en este tipo de base de datos.

4.8.2. MySQL
Es un gestor de Base de Datos relacional, multihilo90 y multiusuario con más de 6 millones
de instalaciones.

Cabe mencionar que MySQL es gratuito tanto para usos privados, como comerciales
excepto en el caso de que se desarrolle un producto comercial que este basado en este último),

89
Antonio López. “Enciclopedia de Informática y Computación” Deontología Informática, Edición 1998, Cultural S.A.
90
Hilo de Ejecución, en sistemas operativos, es una característica que permite a una aplicación realizar varias t areas a la
vez concurrentemente.

86
tiene disponibilidad para distintos sistemas operativos (Unix, Windows 9x/NT/2000/XP, OS/2) y es
capaz de trabajar con millones de registros, además de que es muy rápido y no necesita grandes
recursos de máquina.

Las aplicaciones que siguen la arquitectura cliente-servidor (web, correo, dns, ftp, news)
basan su funcionamiento en dos extremos:

1.- Servidor que se mantiene a la escucha de peticiones en un puerto determinado.

2.- Clientes, que cuando quieren contactar con el servidor, realizan conexiones a ese puerto.

MySQL sigue esta misma arquitectura y por tanto, para poder realizar operaciones, es
necesario tener ejecutado el programa servidor. Por defecto, el servidor MySQL escucha
91
peticiones en le puerto TCP 3306.

4.8.2.1. phpMyAdmin

Es una herramienta escrita en PHP con la intención de manejar la administración de


MySQL a través de páginas web, utilizando Internet. Actualmente puede crear y eliminar Bases de
Datos, crear, eliminar y alterar tablas, borrar, editar y añadir campos, ejecutar cualquier sentencia
SQL, administrar claves en campos, administrar privilegios, exportar datos en varios formatos y
está disponible en 50 idiomas. Se encuentra disponible bajo la licencia GPL92.

4.9. PROGRAMACIÓN PARA WEB CON SOFTWARE LIBRE

4.9.1. LENGUAJE DE MARCAS DE HIPERTEXTO (HTML)

HTML es un Lenguaje de marcado de hipertexto. Este lenguaje está hecho de “etiquetas y


atributos” que trabajan conjuntamente para dar alguna característica específica a la página web; el
navegador interpreta dichas etiquetas y atributos y las despliega en la pantalla.

Para empezar a crear páginas web con HTML es necesario contar con:

91
Puerto es una forma genérica de denominar a una interfaz a través de la cual los diferentes tipos de datos se pueden
enviar y recibir. Dicha interfaz puede ser de tipo físico, o puede ser a nivel de software (por ejemplo, los puertos que
permiten la transmisión de datos entre diferentes ordenadores), en cuyo caso se usa frecuentemente el término puerto
lógico. En el ámbito de Internet, un puerto es el valor que se usa, en el modelo de la capa de transporte, para distinguir
entre las múltiples aplicaciones que se pueden conectar al mismo host, o puesto.
92
Licencia Publica General, esta orientado principalmente a proteger la libre distribución, modificación y uso de software.

87
1. Editor de Texto (Bloc de Notas, Wordpad de Windows).
2. Navegador Web (Internet Explorer o Netscape Navigator).

La estructura de las etiquetas y atributos van precedidos de los siguientes símbolos < >,
de tal forma que el navegador pueda reconocer las instrucciones de HTML y no confundirlas con el
contenido que desplegará la página.

El texto que se encuentra entre estos símbolos indica, por un lado la instrucción que se
ejecutará y por otro lado, las especificaciones de la misma.

Para indicar el final de la instrucción se utiliza la misma etiqueta pero añadiendo una
diagonal.

Ejemplo:

<TITLE>Mi primera página</TITLE>

La estructura principal de una página Web está conformada por las siguientes etiquetas:93

<HTML> Empieza un documento HTML


<HEAD> Zona de cabecera
<TITLE> Zona de título
</TITLE> Termina zona de título
</HEAD> Termina zona de cabecera
<BODY> Zona de cuerpo del documento
</BODY> Termina zona de cuerpo del documento
</HTML> Termina documento HTML
Tabla 12. Etiquetas que componen un a página Web.

4.9.2. JAVASCRIPT
Javascript es un lenguaje de programación interpretado, es decir, que no requiere
compilación, utilizado principalmente en páginas web, con una sintaxis semejante a la del lenguaje
Java y el lenguaje C. Es considerado un lenguaje orientado a objetos.

Todos los navegadores modernos interpretan el código Javascript integrado dentro de las
páginas web. El lenguaje fue inventado por Brendan Eich en la empresa Netscape

93
www.entren.dgsca.unam.mx/Html/estr.htm Agosto – 09

88
Communications, que es la que desarrolló los primeros navegadores web comerciales. Apareció
por primera vez en el producto de Netscape llamado Netscape Navigator 2.0.

Tradicionalmente, se venía utilizando en páginas web HTML, para realizar tareas y


operaciones en el marco de la aplicación únicamente cliente, sin acceso a funciones del servidor.
Javascript se ejecuta en el agente de usuario al mismo tiempo que las sentencias van
descargándose junto con el código HTML.

Los autores inicialmente lo llamaron Mocha y más tarde LiveScript pero fue rebautizado
como Javascript en un anuncio conjunto entre Sun Microsystems y Netscape, el 4 de diciembre de
1995.

En 1997 los autores propusieron Javascript para que fuera adoptado como estándar de la
European Computer Manufacturers' Association ECMA, que a pesar de su nombre no es europeo
sino internacional, con sede en Ginebra. En junio de 1997 fue adoptado como un estándar ECMA,
con el nombre de ECMAScript. Poco después también lo fue como un estándar ISO.

JScript es la implementación de ECMAScript de Microsoft, muy similar al Javascript de


Netscape, pero con ciertas diferencias en el modelo de objetos del navegador que hacen a ambas
versiones con frecuencia incompatibles.

Para evitar estas incompatibilidades, el World Wide Web Consortium diseñó el estándar
Document Object Model (DOM, ó Modelo de Objetos del Documento en castellano), que incorporan
Konqueror, las versiones 6 de Internet Explorer y Netscape Navigator, Opera versión 7, y Mozilla
desde su primera versión.

4.9.3. LENGUAJE DE ETIQUETADO EXTENSIBLE (XML)


Es un Lenguaje de Etiquetado Extensible muy simple, pero estricto que juega un papel
fundamental en el intercambio de una gran variedad de datos. Es un lenguaje muy similar a HTML
pero su función principal es describir datos y no mostrarlos como es el caso de HTML. XML es un
formato que permite la lectura de datos a través de diferentes aplicaciones.

Las tecnologías XML son un conjunto de módulos que ofrecen servicios útiles a las
demandas más frecuentes por parte de los usuarios. XML sirve para estructurar, almacenar e
intercambiar información.

Entre las tecnologías XML disponibles se pueden destacar:

89
 XSL: Lenguaje Extensible de Hojas de Estilo, cuyo objetivo principal es mostrar cómo
debería estar estructurado el contenido, cómo debería ser diseñado el contenido de origen
y cómo debería ser paginado en un medio de presentación como puede ser una ventana
de un navegador Web o un dispositivo móvil, o un conjunto de páginas de un catálogo,
informe o libro.
 XPath: Lenguaje de Rutas XML, es un lenguaje para acceder a partes de un documento
XML.
 XLink: Lenguaje de Enlace XML, es un lenguaje que permite insertar elementos en
documentos XML para crear enlaces entre recursos XML.
 XPointer : Lenguaje de Direccionamiento XML, es un lenguaje que permite el acceso a la
estructura interna de un documento XML, esto es, a sus elementos, atributos y contenido.
 XQL : Lenguaje de Consulta XML, es un lenguaje que facilita la extracción de datos desde
documentos XML. Ofrece la posibilidad de realizar consultas flexibles para extraer datos de
documentos XML en la Web.
 XSL: Funciona como un lenguaje avanzado para crear hojas de estilos. Es capaz de
transformar, ordenar y filtrar datos XML, y darles formato basándolo en sus valores.
 XPath: Identifica partes de un documento XML concreto, como pueden ser sus atributos,
elementos, etc.
 XLink: Por su lado, describe un camino estándar para añadir hiperenlaces en un archivo
XML. Es decir, es un mecanismo de vinculación a otros documentos XML. Funciona de
forma similar a un enlace en una página Web, es decir, funciona como lo haría <a
href="">, sólo que a href es un enlace unidireccional. Sin embargo, XLink permite crear
vínculos bidireccionales, lo que implica la posibilidad de moverse en dos direcciones. Esto
facilita la obtención de información remota como recursos en lugar de simplemente como
páginas Web.
 XPointer: Funciona como una sintaxis que apunta a ciertas partes de un documento XML,
es como una extensión de XPath. Se utiliza para llegar a ciertas partes de un documento
XML. Primero, XLink permite establece el enlace con el recurso XML y luego es XPointer el
que va a un punto específico del documento. Su funcionamiento es muy similar al de los
identificadores de fragmentos en un documento HTML ya que se añade al final de una URI
y después lo que hace es encontrar el lugar especificado en el documento XML. Al ser
XPointer una extensión de XPath, XPointer tiene todas las ventajas de XPath y además
permite establecer un rango en un documento XML, es decir, con XPointer es posible
establecer un punto final y un punto de inicio, lo que incluye todos los elementos XML
dentro de esos dos puntos.
 XQL: Lenguaje de consultas, se basa en operadores de búsqueda de un modelo de datos
para documentos XML que puede realizar consultas en infinidad de tipos de documentos

90
como son documentos estructurados, colecciones de documentos, bases de datos,
estructuras DOM, catálogos, etc.

Ejemplo de documento XML:

<?xml version="1.0" encoding="ISO-8859-1"?>

<libro>

<titulo></titulo>

<capitulo>

<titulo></titulo>

<seccion>

<titulo></titulo>

</seccion>

</capitulo>

</libro>

Ejemplo de transformación XSL:

<!-- Transforma el documento XML anterior en un documento XHTML -->

<xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:strip-space elements="libro capitulo titulo"/>

<xsl:output

method="xml"

indent="yes"

encoding="iso-8859-1"

doctype-public="-//W3C//DTD XHTML 1.1//EN"

doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"/>

<!-- Utiliza el título del libro como título del documento XHTML -->

91
<xsl:template match="libro">

<html>

<head>

<title>

<xsl:value-of select="titulo"/>

</title>

</head>

<body>

<xsl:apply-templates/>

</body>

</html>

</xsl:template>

<!-- Y también como título de nivel H1 -->

<xsl:template match="libro/titulo">

<h1>

<xsl:apply-templates/>

</h1>

</xsl:template>

<!-- Los títulos de los capítulos aparecerán como H2 -->

<xsl:template match="capitulo/titulo">

<h2>

<xsl:apply-templates/>

</h2>

</xsl:template>

92
<!-- Los títulos de las secciones aparecerán como H3 -->

<xsl:template match="seccion/titulo">

<h3>

<xsl:apply-templates/>

</h3>

</xsl:template>

</xsl:stylesheet>

Ejemplo de código XPath:

<!-- Toma todos los elementos titulo dentro del elemento capítulo

y los elementos autor dentro del elemento capitulo -->

/doc/capitulo/titulo | /doc/capitulo/autor

Ejemplo de código XLink:

<my:crossReference

xlink:href="libro.xml"

xlink:role="http://www.example.com/linkprops/listalibros"

xlink:title="Lista de libros">

Lista actual de libros

</my:crossReference>

Ejemplo de código XPointer:

documento.xml#xpointer(

/libro/capitulo[@public])xpointer(/libro/capitulo[@num="1"])

Ejemplo de código de XQuery:

<!-- Libros escritos por Vargas Llosa después de 1991 -->

<bib>

93
for $b in doc("http://libro.example.com/bib.xml")/bib/libro

where $b/autor = "Vargas Llosa" and $b/@anio > 1991

return

<libro anio="{ $b/@anio }">

{ $b/titulo }

</libro>

</bib>94

4.9.4 STRUTS
Struts es una herramienta de soporte para el desarrollo de aplicaciones Web bajo el patrón
MVC bajo la plataforma J2EE (Java 2, Enterprise Edition). Se desarrollaba como parte del proyecto
Jakarta de la Apache Software Foundation, pero actualmente es un proyecto independiente
conocido como Apache Struts.

Permite reducir el tiempo de desarrollo. Se basa en el patrón del Modelo-Vista-Controlador


(MVC) el cual se utiliza ampliamente y es considerado de gran solidez. De acuerdo con este
patrón, el procesamiento se separa en tres secciones diferenciadas, llamadas el modelo, las vistas
y el controlador.

Cuando se programan aplicaciones Web con el patrón MVC95, siempre surge la duda de
usar un solo controlador o usar varios controladores, pues si se considera mejor usar un solo
controlador para tener toda nuestra lógica en un mismo lugar, es posible encontrase con un grave
problema, ya que el controlador se convierte en lo que se conoce un controlador de peticiones,
pero los Struts solucionan este problema, ya que implementa un solo controlador (ActionServlet)
que evalúa las peticiones del usuario mediante un archivo configurable (struts-config.xml). Los
componentes de control son los encargados de coordinar las actividades de la aplicación, que van
desde la recepción de datos del usuario, las verificaciones de forma y la selección de un
componente del modelo a ser llamado.

94
www.w3c.es/divulgacion/guiasbreves/tecnologiasXML Agosto – 09
95
Ver tema 4.9.4.1. Modelo MVC.

94
Por su parte los componentes del modelo envían al control sus eventuales resultados o
errores de manera de poder continuar con otros pasos de la aplicación. Esta separación simplifica
enormemente la escritura tanto de vistas como de componentes del modelo: Las páginas JSP no
tienen que incluir manejo de errores, mientras que los elementos del control simplemente deciden
sobre el paso siguiente.

Entre las características de los Struts se pueden mencionar:

 Configuración del control centralizada.


 Interrelaciones entre acciones y página u otras acciones se especifican por tablas XML en
lugar de codificarlas en los programas o páginas.
 Componentes de aplicación, que son el mecanismo para compartir información
bidireccionalmente entre el usuario de la aplicación y las acciones del modelo.
 Librerías de entidades para facilitar la mayoría de las operaciones que generalmente
realizan las páginas JSP.
 Struts contiene herramientas para validación de campos de plantillas bajo varios esquemas
que van desde validaciones locales en la página (en javaScript) hasta las validaciones de
fondo hechas a nivel de las acciones.

Los Struts permiten que el desarrollador se concentre en el diseño de aplicaciones


complejas como una serie simple de componentes del Modelo y de la vista intercomunicados por
un control centralizado. Diseñando de esta manera puede obtenerse una aplicación más
consistente y más fácil de mantener.

4.9.4.1. MODELO MVC


96
MVC o Model View Controller es un patrón de diseño aportado originariamente por el
lenguaje SmallTalk a la Ingeniería del Software. El paradigma MVC consiste en dividir las
aplicaciones en tres partes:
 Controlador.
 Modelo.
 Vistas.

El controlador es el encargado de redirigir o asignar una aplicación (un modelo) a cada


petición; el controlador debe poseer de algún modo, un "mapa" de correspondencias entre
peticiones y respuestas (aplicaciones o modelo) que se les asignan. El modelo seria la aplicación
que responde a una petición, es la lógica de negocio a fin de cuentas. Una vez realizadas las

96
www.es.wikipedia.org/wiki/Apache_Struts Agosto – 09

95
operaciones necesarias el flujo vuelve al controlador y este devuelve los resultados a una vista
asignada. Vemos las diferencias que supone el modelo con los modelos convencionales.
Revisando el esquema básico de un sistema convencional tenemos una entrada de datos (INPUT),
se procesan y se muestra el resultado (OUTPUT). Ver ejemplo en la Figura 45.

Figura 45. Esquema Básico de un Sistema Convencional.

En el caso del patrón MVC el procesamiento se lleva a cabo entre sus tres componentes.
El controlador recibe una orden y decide quien la lleva a cabo en el Modelo. Una vez que el modelo
(la lógica de negocio) termina sus operaciones devuelve el flujo vuelve al controlador y este envía
el resultado a la capa de presentación. Es lo que permite que el sistema siga bajo la estructura de
MVC sin embargo dentro de este orden que seria su raíz de funcionamiento existe el poner
énfasis en el manejo de patrones de diseño, lo cuales apoyaría de una mejor manera el desarrollo
en el ámbito del proceso y el funcionamiento del desarrollo de los sistemas de una manera mas
factible y ordenada97.

En la Figura 46. se muestra de una manera detallada, cual es el funcionamiento de un


sistema bajo el esquema de MCV.

97
www.monografias.com/trabajos28/aplicacion-paso-paso-struts/aplicacion-paso-paso-struts.shtml Septiembre - 09

96
Figura 46. Función de un sistema por medio de un esquema MVC.

El Controlador en cierta forma debe tener un registro de la relación entre órdenes que le
pueden llegar y la lógica de negocio que le corresponde. (Es como una operadora de teléfono que
recibe una petición y une dos líneas). Ver Figura 47.

Figura 47. Función del controlador del esquema MVC.

Al utilizar este modelo se genera una separación total entre lógica de negocio y
presentación. A esto se le pueden aplicar opciones como el multilenguaje, distintos diseños de
presentación, sin alterar la lógica de negocio. La separación de capas como presentación, lógica
de negocio, acceso a datos es fundamental para el desarrollo de arquitecturas consistentes,
reutilizables y más fácilmente mantenibles, lo que al final resulta en un ahorro de tiempo en
desarrollo en posteriores proyectos.

97
En el lenguaje Java se dispone de unas clases muy sencillas para implantar el modelo
MVC: la clase Observer, del paquete útil. Aunque esa implementación del MVC con esas clases se
podría hacer a un nivel muy simple de interacción entre unas pocas clases.

Arquitectura de los Struts

En la siguiente lista se muestran los aspectos funcionales de como se lleva a cabo la


arquitectura de los struts:

 Componentes del sistema:


 Modelo:
o Combinación de EJBs, Java Beans y clases derivadas de la clase de
Struts ActionForm.
 Vista:
o Representada por JSPs, para los cuales Struts proporciona librerías de
JSP Tags. Aunque no obliga a usar JSPs, favorece su utilización.

 Controlador:
o Implementado a través del servlet ActionServlet que llama a las clases
derivadas de Action que se definan.
 Configuración:
o Se lleva a cabo a través del fichero web.xml (común a toda aplicación
Web) y el fichero struts-config.xml (común a toda aplicación que haga uso
de struts).

4.9.4.2. ACTIONS (LÓGICA DE PROGRAMACIÓN)


Dentro de la estructura del modelo este se basa en el orden que se lleve a cabo el sistema
es el vinculo en donde se pone lo que se haría y quien lo haría por lo regular se compone de
Habitualmente relacionados con ActionForms. Estos es recomendable separarlos de la estructura
general ya que Struts ofrece la funcionalidad para Mapear propiedades del actionForm a Java
Beans. Sin embargo Struts no fija en donde se almacena el modelo sin embargo contempla estos
EJBs, BBDD relacional, servidor LDAP.

Componentes del controlador:


 Interacción con el usuario:
 Formularios  Recogen información de usuario.
 Acciones (Actions)  Envían datos de formularios.

98
 Hiperenlaces  Envían usuario a otra pág.

 Componentes principales de Struts:


 ActionForm. Permite definir formularios e hiperenlaces
 Actions a medida. Derivando de la clase base Action se implementan acciones.

 Formularios:
 HTML y HTTP proporcionan mecanismos para enviar información de usuario a la
aplicación
 Struts proporciona la clase ActionForm.
 Son JavaBeans con métodos para validar los datos recibidos
 El desarrollador sólo define el ActionForm y Struts mapea automáticamente sus
propiedades con campos del formulario HTML con el mismo nombre.

public final class LogonForm extends ActionForm {


private String username = null;
public String getUsername() {
return (this.username);
}
public void setUsername(String username) {
this.username = username;
}
}

 Actions a medida:
 Desde la versión 1.1 de Struts se prefiere el método execute() frente a perform()

 ActionMapping.
 De cara al exterior sirve para proporcionar una URI a un Action determinado.
 Se especifica por configuración.

Ejemplo:
<action-mappings>
<action
path="/logonSubmit"
type="app.LogonAction"
name="logonForm"
scope="request"

99
validate="true"
input="/pages/logon.jsp"/>
</action-mappings>

 ActionServlet:
 Pieza central. “Reparte el juego”.
 Recibe todas las peticiones y redirecciona al action determinado. También
completa y valida los ActionForms.
 Extensible. Puede extenderse a través de subclases (no habitual).

4.9.4.3 PÁGINA DE SERVIDOR JAVA JSP (VISTA A USUARIO


FINAL)

JSPs es una tecnología orientada para crear páginas web con programación en Java. Con
esta tecnología se pueden 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.

 Struts no obliga utilizar JSPs para la vista, podría utilizarse otras alternativas
(templates velocity).
 Struts incluye librerías de tags.
 Facilitan interacción con componentes de controlador
 Incorporan lógica útil (p.e. facilidad para incorporar bucles en
presentación)
 Incorporan funcionalidad adicional: Soporte para internacionalización.
 Alguna funcionalidad se ha incorporado en la especificación JSTL (Struts es
anterior a JSTL)
 struts-html.tld.Tags JSP que encapsulan componentes de formularios HTML.

JSP “normal”: <input type="text" name="username“


value="<%=loginBean.getUsername() >"/>
Tags Struts: <html:text e property="username"/>

 struts-bean.tld. Tags JSP para el manejo de beans y soporte de


internacionalización adicional al nativo de Java (parte de funcionalidad en JSTL).

100
 struts-tiles.tld. Tags para crear bloques reutilizables de presentación (tiles). Facilita
cambiar el aspecto general de una aplicación (Look & Feel).
 Se basa en la directiva include de los JSPs
 Permite crear definiciones de pantalla en base a bloques: cabecera, pie,
menu, cuerpo, etc.
 Permite definir distribuciones uniformes para todo el sitio (layouts)
 Ofrece un soporte alternativo para internacionalización (Tiles diferentes
dependiendo del Locale).
 Vistas diferentes según roles, tipo de navegador, etc.

Componentes de configuración.

 web.xml:
 Todo lo que recibe el ServletContainer va a parar al ActionServlet.
 Mapping de URLs (2 esquemas):
 *.do
 /do/*
 Especificación de qué librerías de tags se van a utilizar (incluir taglibs adecuadas)
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>

 ApplicationResources.properties.
 Fichero properties utilizado por defecto para las etiquetas de los mensajes
internacionalizados.

 struts-config.xml:
 Los componentes están débilmente acoplados para permitir reutilización e
independencia unos de otros
 Struts-config.xml configura la relación entre ellos.
 Define principalmente:
 Action-mappings: Qué Actions ha de aceptar el ActionServlet
 Form-beans: Las clases ActionForms que aceptará como entrada la
aplicación

101
Ejemplo de strutsconfig.xml:

Figura 48. Código fuente de un ejemplo en un Strusconfig.xml

4.9.4.4. FRAMEWORKS (HIBERNATE)


Hibernate, es una capa de persistencia objeto/relacional y un generador de sentencias
SQL. Te permite diseñar objetos persistentes que podrán incluir polimorfismo, relaciones,
colecciones, y un gran número de tipos de datos. De una manera muy rápida y optimizada
podremos generar BBDD en cualquiera de los entornos soportados: Oracle, DB2, MySql, etc. Y lo
más importante de todo, es open source, lo que supone, entre otras cosas, que no tiene que pagar
nada por adquirirlo.

Uno de los posibles procesos de desarrollo consiste en que una vez que se téngale diiseño
de datos realizado, mapear este archivo XML siguiendo la DTD de mapeo de Hibernate. Con esto
se puede generar el código de los objetos persistentes en clases Java y también crear BBDD
independientemente del entorno escogido. Hibernate se integra en cualquier tipo de aplicación
justo por encima del contenedor de datos.

102
Una posible configuración básica de Hibernate se observa en la Figura 49.

Figura 49. Configuración básica de Hibernate.

Arquitectura Base
Se puede observar como Hibernate utiliza la BBDD y la configuración de los datos para
proporcionar servicios y objetos persistentes a la aplicación que se encuentre justo por arriba de
él98.

4.10. LENGUAJE PHP

El Lenguaje de programación PHP, ha tenido un auge desde su creación ya que su


objetivo principal era apoyar en la creación de páginas Web dinámicas y hasta la fecha se ha
trabajado de esa manera.

El creador de PHP es Rasmus Lerdorf, miembro del equipo de desarrollo de Apache, creó
PHP en 1994. Su única intención fue la de crear un pequeño sistema de control para verificar el
número de personas que leían su curriculum vitae en la Web. En los meses siguientes a su
creación, PHP se desarrolló en torno a un grupo de programadores que comprobaban el código y
sus revisiones. Para dar más potencia al sistema, Rasmus creó funciones en lenguaje C para
permitir conexión a bases de datos. Este fue el comienzo de la potencia real del lenguaje. En 1995,
apareció un conjunto de herramientas sobre PHP. Esta biblioteca se llamó "Herramientas para
páginas personales" y contenían un analizador de código muy sencillo, un libro de visitas, un
contador y algunas macros que facilitaban el trabajo de los diseñadores.

98
www.javahispano.org/contenidos/archivo/77/ManualHibernate.pdf Diciembre – 09

103
A mediados de 1995, apareció una revisión pública llamada PHP/FI 2.0. Contaba con un
analizador sintáctico reescrito desde 0, además de unas herramientas escritas para el tratamiento
de datos desde un formulario (de ahí el nombre áeFI, Form ínterpreter) y conectividad con mSQL
(Gestor de bases de datos).

Zeev Suraski y Andi Gutmans decidieron crear una nueva versión de PHP/FI para solventar
unos problemas con una aplicación de comercio electrónico que estaban desarrollando. PHP 3.0
nació con suculentas innovaciones como la conectividad con varios gestores de bases de datos,
protocolos y una API ampliada. La versión oficial de PHP 3.0 vio la luz en junio de 1998, donde se
contemplaba ya la programación orientada a objetos.

En 1999 se realizó la primera revisión del motor Zend (Zend Engine), que aportaba
modularidad, claridad y herramientas de optimización para páginas de gran escala. Zend viene de
la unión de Zeev y Andi. PHP 4.0 vio la luz en mayo de 2000, dividida en 3 partes: El motor Zend,
la API de servidor y los módulos de funcionas. El motor Zend es el responsable de analizar el
código PHP, definir la sintaxis y del lenguaje de programación. La API permite la comunicación con
el servidor. Con esta API es posible utilizar PHP desde varios servidores. Los módulos contienen
funciones para el manejo de cadenas, archivos XML o tratamiento de imágenes. La orientación a
objetos no está muy lograda en PHP 4.0. Los objetos tienen un tratamiento muy pobre e ilógico.

PHP 5 incorpora una verdadera orientación a objetos. Añadiendo las palabras reservadas
public, protected y prívate a la definición de las propiedades y métodos de los objetos, se permite
una verdadera encapsulación. Además del considerable avance con respecto a los objetos, PHP 5
incorpora un control de errores muy mejorado, al estilo de los lenguajes de programación más
avanzados.

Generalmente se ejecuta en un servidor Web, tomando el código en PHP como su entrada


y creando páginas Web como salida. Puede ser desplegado en la mayoría de los servidores Web y
en casi todos los sistemas operativos y plataformas sin costo alguno. PHP se encuentra instalado
en más de 20 millones de sitios Web y en un millón de servidores, aunque el número de sitios en
PHP ha compartido algo de su preponderante sitio con otros nuevos lenguajes no tan poderosos
desde agosto de 2005.

Cuando el cliente hace una petición al servidor para que le envíe una página Web, el
servidor ejecuta el intérprete de PHP. Éste procesa el script solicitado que generará el contenido de
manera dinámica (por ejemplo obteniendo información de una base de datos). El resultado es
enviado por el intérprete al servidor, quien a su vez se lo envía al cliente. Mediante extensiones es
también posible la generación de archivos PDF, Flash, así como imágenes en diferentes formatos.

104
Permite la conexión a diferentes tipos de servidores de bases de datos tales como MySQL,
Postgres, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite.

PHP también tiene la capacidad de ser ejecutado en la mayoría de los sistemas operativos,
tales como UNIX (y de ese tipo, como Linux o Mac OS X) y Windows, y puede interactuar con los
servidores de Web más populares ya que existe en versión CGI, módulo para Apache, e ISAPI.

PHP es una alternativa a las tecnologías de Microsoft ASP y ASP.NET (que utiliza C#
VB.NET como lenguajes), a ColdFusion de la compañía Adobe (antes Macromedia), a JSP/Java de
Sun Microsystems, y a CGI/Perl. Aunque su creación y desarrollo se da en el ámbito de los
sistemas libres, bajo la licencia GNU, existe además un IDE (entorno de desarrollo integrado)
comercial llamado Zend Studio. Recientemente, CodeGear (la división de lenguajes de
programación de Borland) . Existe un módulo para Eclipse, uno de los IDE más populares.

El 13 de julio de 2004, fue lanzado PHP 5, utilizando el motor Zend Engine 2.0 (o Zend
Engine 2). La versión más reciente de PHP es la 5.3.0 (30 de junio de 2009), que incluye todas las
ventajas que provee el nuevo Zend Engine 2 como:

 Mejor soporte para la Programación Orientada a Objetos, que en versiones anteriores era
extremadamente rudimentario, con PHP Data Objects.
 Mejoras de rendimiento.
 Mejor soporte para MySQL con extensión completamente reescrita.
 Mejor soporte a XML ( XPath, DOM, etc. ).
 Soporte nativo para SQLite.
 Soporte integrado para SOAP.
 Iteradores de datos.
 Manejo de excepciones.

Ventajas del lenguaje PHP:

 Es un lenguaje multiplataforma.
 Completamente orientado a la Web.
 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.
 Capacidad de expandir su potencial utilizando la enorme cantidad de módulos
(llamados ext's o extensiones).

105
 Posee una amplia documentación en su página oficial, entre la cual se destaca que
todas las funciones del sistema están explicadas y ejemplificadas en un único
archivo de ayuda.
 Es libre, por lo que se presenta como una alternativa de fácil acceso para todos.
 Permite las técnicas de Programación Orientada a Objetos.
 Biblioteca nativa de funciones sumamente amplia e incluida.
 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.
 Tiene manejo de excepciones (desde PHP5).

La sintaxis de PHP es muy similar a otros lenguajes de programación muy extendidos


como son los lenguajes C, JAVA, Perl o inclusive el lenguaje de script JavaScript.

El vocabulario de PHP es relativamente pequeño y de fácil comprensión además de que


proporciona un conjunto de herramientas compactas propias que realzan las iteraciones entre los
usuarios y las páginas HTML, ya que permiten dar servicio a las peticiones más habituales de una
forma sencilla.

4.10.1. ASPECTOS GENERALES DE PHP.

Delimitadores:

PHP está muy relacionado con el lenguaje de hipertextos XTML; tal es el caso que el
código PHP aparece normalmente insertado dentro de un documento HTML. El documento PHP,
una vez insertado correctamente en el servidor, genera una página HTML que será enviada al
cliente, tal como se muestra en la Figura 50.:

Figura 50 Diagrama
que representa el
flujo del código PHP
dentro de un
documento HTML.

106
Ambos lenguajes dentro del mismo documento se pueden diferenciar por medio de
etiquetas de inicio y final del código PHP, las etiquetas más habituales para delimitar los bloques
de código PHP son las siguientes:
<?php
instrucciones PHP
?>

Ahora se mostrara un ejemplo donde el código PHP se encuentra dentro de un documento


HTML que da formato a la página.

<html>
<head>
<title>Prueba PHP</title>
</head>
<body>
</center>
<img src=”php.gif” border=”0” />
<?php
echo “<h2>El modulo de PHP funciona correctamente…</h2>”;
?>
</center>
</body>
</html>

Una vez que es interpretado correctamente por el procesador de PHP el código anterior, el
resultado que muestra el navegador se visualiza en la Figura 51:

Figura 51 Ejemplo de con el código PHP dentro de un documento HTML.

107
Como se puede observar en el ejemplo anterior, el código PHP se halla inmerso dentro de
un documento HTML que da formato a la página. Habitualmente se puede encontrar código PHP
insertado en cualquier parte del documento HTML y aparecerá tantas veces sea necesario. Cada
uno de los bloques de código PHP, al ser procesado, generará una salida en el documento HTML
resultado, justo en la posición en que dicho bloque está.

Sintaxis básica:

Al programar en PHP, es necesario conocer de su sintaxis como son los tipos de variables
que puede aceptar el lenguaje, definición de constantes y tipo y uso de los operadores

Variables: es el nombre que se la da a una posición de la memoria del ordenador en la cual se


almacena información, conociendo esta posición de memoria (dirección), se podrá encontrar,
actualizar o recuperar información cuando sea requerida durante este activo un programa. La
naturaleza de dicha información puede ser de muy distintos tipos: números enteros, números
decimales, caracteres, entre otros.

Declaración de variables:

En el caso de PHP, no es necesario declarar las variables entres de su uso, las variables
se crean en el instante en que son utilizadas por primera vez; para su inicialización, se utiliza el
operador de asignación (=); a partir de ese instante, se puede recuperar su contenido simplemente
haciendo referencia a la variable por su nombre; por otra parte, las variables no tienen asociada la
naturaleza del tipo de información que almacenan. De hecho, una variable podrá almacenar
durante todo su tiempo de vida diferentes tipos de datos.

Nombrado de variables:

Todos los nombres de las variables van precedidos por el símbolo de dólar, $, seguido al
menos por una letra de la a a la z o de la A a la Z, o un guión bajo (“_”) para después continuar por
cualquier combinación de letras ya sea con mayúsculas o minúsculas, de dígitos (del 0 al 9) y de
guiones bajos. En la Tabla 13 se muestran algunos ejemplos de identificadores válidos e inválidos:

Válidos Inválidos Motivo


$Valor_actual $Valor actual Contiene un espacio
$NumeroDeDatos $#Datos Contiene el carácter no válido “#”
$N $2Saldos Empieza por número

108
Válidos Inválidos Motivo
$n $Prueba, valor Contiene el carácter no válido “,”
Tabla 13 Tabla con ejemplos validos e inválidos para nombrar variables en PHP.

Cabe destacar que, como el intérprete PHP distingue entre mayúsculas y minúsculas, los
nombres de variables con diferencias en mayúsculas o minúsculas en caracteres iguales
componen nombres de variables distintas; por tanto, los identificadores $n y $N son diferentes, es
decir, serían variables distintas.

Variables predefinidas:

PHP ofrece una gran cantidad de variables predefinidas a cualquier script que se ejecute
en su sistema. Estas variables guardan información relativa del entorno de ejecución del intérprete
y del propio PHP. Dependen de factores como el tipo de servidor en el que se ejecuta el intérprete
de PHP, la versión y su configuración, entre otras cuestiones.

Estas variables se pueden clasificar en dos grandes grupos: por una parte, las que el
entorno, el servidor Web, le pasa al intérprete de PHP y, por otra parte, las que el intérprete pone a
disposición del programador. La Tabla 14 muestra algunas de las variables del entorno más
utilizadas:

Variable Significado
Indica el nombre del equipo servidor sobre el que se
SERVER_NAME
ejecuta el script.
Indica el puerto del equipo servidor que usa el servidor
SERVER_PORT
Web para la comunicación.
Indica qué software está siendo utilizado en el equipo
SERVER_SOFTWARE
servidor.
Contiene el puerto que utiliza el peticionario para
REMOTE_PORT
comunicarse con el servidor Web.
Contiene la dirección remota desde la que se realiza la
REMOTE_ADDR
petición.
Indica el directorio raíz del documento bajo el que se
DOCUMENT_ROOT
ejecuta el script.
Contiene la dirección de la pagina (en caso de haberla)
HTTP_REFERER
desde la que el navegador saltó a la página actual.
Tabla 14 Tabla con descripción de variables predefinidas de PHP más utilizadas.

109
Estas variable se importan en el espacio de nombres global de PHP desde el entorno en el
que se esté ejecutando el interprete PHP. La mayoría es proporcionada por el intérprete de
comandos en el que se está ejecutando PHP. Otras variables de entorno son las CGI, para las que
no importa si PHP se está ejecutando como un módulo del servidor o con un intérprete CGI. La
Tabla 15 muestra algunas de las variables que el PHP ofrece al programador para facilitar su tarea:

Variable Variable Significado


Argv array con los argumentos que se pasan al script.
Indica el número de argumentos que se pasan al
Argc
script.
Indica el nombre del fichero que contiene el
script en ejecución, salvo que se ejecute PHP
PHP_SELF
como intérprete de la línea de comandos, en
cuyo caso no estará disponible.
array asociativo con las variables pasadas a
HTTP_COOKIES_VARS _COOKIES
través de cookies.
array asociativo con las variables pasadas a
HTTP_GET_VARS _GET
través del método GET.
array asociativo con las variables pasadas a
HTTP_POST_VARS _POTS
través del método POST.
array asociativo con las variables pasadas
HTTP_ENV_VARS _ENV
desde el entorno.
array asociativo con las variables pasadas
HTTP_SERVER_VARS _SERVER
desde el servidor.
HTTP_SESSION_VARS _SESSION array asociativo con las variables de sesión.
array asociativo con información relativa a los
HTTP_POST_FILES _FILES
ficheros recibidos a través del método POST.
Tabla 15 Tabla que muestra algunas de las variables que el PHP ofrece al programador para
facilitar tareas.

4.10.2. FUNCIONES EN PHP

La mayor parte de las secciones del código de un script PHP deben ser ejecutadas tan
pronto como dicho script es interpretado, pero, otras veces, es preferible que el código actúe
después de que se haya producido alguna acción específica o sólo si se dispara un evento.
También es habitual que partes del código se repitan un número indeterminado de veces durante la

110
ejecución del script PHP. Estas necesidades hacen que nazca la idea de dividir el código de un
script en partes menores, para que cada una de las cuales sirva a un propósito especifico e
individual.

Una función PHP es una sección separada de código a la que se le ha dado un nombre en
donde cualquier instrucción PHP válida puede aparecer en el cuerpo de la función, incluso la
llamada a otra función o la definición de clases. Utilizando este nombre, en un script se puede
llamar a esta sección de código tantas veces como se quiera y en los momentos en que se
necesite.

Las funciones dividen las tareas que deben hacer un script, agrupando instrucciones
relacionadas para la ejecución de una tarea. Esta estructuración del código nos permite escribir
scripts más sencillos, legibles y fáciles de entender. Asimismo las funciones pueden recibir valores
desde las sentencias que las llaman. Estos valores se denominan parámetros o argumentos y
pueden devolver valores. Para poder declarar una función en PHP es necesario utilizar la sintaxis:

function nombreFunción ( [ parámetro1, parámetro2, parámetro ] )


{
[ sentencias ]
}
donde:

1.- function es una palabra reservada del lenguaje PHP.

2.- nombreFunción es el nombre de nuestra función.

3.- parámetro son los valores que se recibirán al llamar la función.

Llamada a una función:

Una vez declarada una función, ésta no se ejecuta hasta que se le llama desde cualquier
parte del script. Para llamar a una función, sólo hay que escribir una sentencia que contenga el
nombre de la función y entre paréntesis los valores o argumentos que se desean para llamarla. En
el momento en que ocurre esto, la ejecución del programa salta inmediatamente a la primera línea
de la función llamada. Después de ejecutar las sentencias que componen el cuerpo de la función,
el programa salta de nuevo a la posición en que fue llamada la función y continúa la ejecución de la
lógica siguiente.

111
Paso de parámetros:

En ocasiones, necesitamos definir funciones que acepten parámetros. Esto se hace para
conseguir que la función sea más utilizable dentro del propósito general para el que esta definida.
Por ejemplo, si quisiéramos utilizar una función múltiples veces a lo largo del programa, pero
variando alguno de sus valores internos en cada llamada. La mejor solución a este problema es
definir una función que pueda aceptar argumentos en su llamada para cada valor que necesitemos.

EJEMPLO:
<HTML>
<HEAD>
<TITLE>Trabajando con Funciones</TITLE>
<BODY>
<CENTER>
<H2>Funciones de Usuarios<I></I></H2>
< ?php
function cuentaAtras ($inicio)
{
for($i=$inicio;$i>0;$i--)
echo $i, “. . .<BR>”;
echo “¡ Boom ¡”;
}
?>
<TABLE BORDER=”0” CELLPADING=”4” CELLSPACING=”6”>
<TR ALIGN=”center”>
<TD BGCOLOR=”#FFBBAA”>
<?php
cuentaAtras(8);
?>
</TD>
<TD BGCOLOR=”#FFFBAD”>
<?php
cuentaAtras(5);
?>
</TD>
</TR>
</TABLE>
</CENTER>

112
</BODY>
</HTML>

Tipos de parámetros en PHP:

PHP permite pasar parámetros de tres formas distintas: por valor, por referencia y por
defecto.

Parámetros por valor: Es la opción por defecto de PHP, en donde lo que recibe la función
es una copia del valor de la variable pasada como parámetro; de esta forma, las modificaciones
que puedan hacerse dentro del cuerpo de la función a la variable parámetro no afectan su valor
final.
Parámetros por referencia: Si se desea que los cambios que se producen en el cuerpo de
la función afecten a la variable que se pasó como argumento en la llamada a la función deberemos
pasar el parámetro por referencia. Como su propio nombre indica, a la función le llega una
referencia a la variable y por lo tanto los cambios que se realicen sobre el parámetro se realizan
sobre la variable. Para indicar qué parámetros se pasan por referencia, hay que marcarlos en la
definición de la función, anteponiendo el símbolo ampersand (&) al nombre del parámetro.

Parámetros por defecto: Este tipo de parámetros toma un valor predefinido. Para definir un
parámetro por omisión, hay que, además de nombrar el parámetro, escribir el operador de
asignación (“=”) y a continuación, el valor que vaya a recibir el parámetro. Cuando se usan
parámetros por defecto, éstos tienen que situarse hasta el final, después de cualquier otro
parámetro, de lo contrario no funcionaran correctamente. Por ejemplo:

<HTML>
<HEAD>
<TITLE>Trabajando con Funciones</TITLE>
<BODY>
<CENTER>
<H2>Funciones de Usuarios<I></I></H2>
<?php
$mifinal=0;
function cuentaAtras ($inicio, &$fin, $mensaje= ¡ Boom ¡” )
{
for(;$inicio>$fin;$inicio--)
echo $inicio, “. . .<BR>”;

113
$fin=$fin+2;
echo $mensaje; }
?>
<TABLE BORDER=”0” CELLPADING=”4” CELLSPACING=”6”>
<TR ALIGN=”center”>
<TD BGCOLOR=”#FFBBAA”>
<?php
//$mifinal vale 0
cuentaAtras(6, $mifinal);
//$mifinal vale 2
?>
</TD>
<TD BGCOLOR=”#FFFBAD”>
<?php
//$mifinal vale 2
cuentaAtras(8, $mifinal,”¡ Despierta !”);
//$mifinal vale 4
?>
</TD>
</TR>
</TABLE>
</CENTER>
</BODY>
</HTML>

Ámbito de las variables:

Se puede definir 2 tipos de variables respecto a su ámbito:

 Variables Globales: son aquellas que se definen fuera del cuerpo de una función y son
accesibles desde cualquier punto del código. En PHP, las variables globales deben ser
declaradas con la palabra reservada global.

 Variables Locales: aparecen definidas dentro del cuerpo de una función y solo pueden ser
accedidas desde dentro de la misma función.

114
Devolución de valores:

La devolución de un valor desde una función trabaja de tal manera que el valor devuelto
puede ser asignado a una variable o utilizado dentro de una expresión. Se puede devolver
cualquier tipo de valores incluyendo listas y objetos, pero sólo un único valor; para devolver
múltiples valores, se debe utilizar un array.

Para poder hacer esto, se utiliza la palabra reservada return acompañada de una
expresión. En el instante en que aparece dentro del cuerpo de una función una sentencia con esta
palabra reservada, la función deja de ejecutarse para devolver el flujo de ejecución al punto del
programa donde se llamo a la función. Si después de return hay más líneas de código, dichas
líneas no se ejecutarán nunca; por eso, es habitual que aparezca como última instrucción del
cuerpo de una función. Por ejemplo:
<HTML>
<HEAD>
<TITLE>Trabajando con Funciones</TITLE>
</HEAD>
<BODY>
<H2>Funciones de Usuario<I></I></H2>
<?php
function elMayor($dato1,$dato2,$dato3)
{
$elmayor=($dato1>$dato2) ?$dato1:$dato2;
$elmayor=($elmayor>$dato3) ?$elmayor:$dato3;
return $elmayor;
}
?>
<TABLE BORDER=”0” CELLPADDING=”4” CELLSPACING=”6”>
<TR ALIGN=”center”>
<TD BGCOLOR=”FFFBAD”>
<?php
echo “El mayor de 17, 5 y 9 es <BR><H2>”.elMayor(17,5,9).”</H2>”;
?>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>

115
PHP permite definir funciones en las que el número de parámetros no está fijado, es decir,
en PHP se permite que una función reciba como parámetro una lista de valores de longitud
variable. No se necesita de una sintaxis específica, pero, su funcionamiento se basa en el siguiente
conjunto de funciones definidas en PHP.

 func_num_args(): devuelve el número de argumentos pasados a la función.

 func_get_args(): devuelve un array con los argumentos pasados a la función.

 func_get_arg(): devuelve un elemento de la lista de argumentos pasados a la función. Los


argumentos comienzan en la posición 0, la igual que los arrays. Si se solicita un argumento
de una posición que no existe, devuelve false.

Por ejemplo:
<HTML>
<HEAD>
<TITLE>Trabajando con Funciones</TITLE>
</HEAD>
<BODY>
<H2>Funciones de Usuario<I></I></H2>
<?php
function elMayor()
{
$num_args = func_num_args();
$args = func_get_args();

$elmayor=($dato1>$dato2) ?$dato1:$dato2;
for($i=2; $i<$num_args;$i++)
$elmayor=($elmayor>$args[$i]) ?$elmayor:func_get_arg($i);;
return $elmayor;
}
?>
<TABLE BORDER=”0” CELLPADDING=”4” CELLSPACING=”6”>
<TR ALIGN=”center”>
<TD BGCOLOR=”FFFBAD”>
<?php
echo “El mayor de 17, 5, 22 y 19 es <BR><H2>”.elMayor(17,5,22,19).”</H2>”;

116
echo “El mayor de 1, 35, 22, 80, 7, 12 y 19 es
<BR><H2>”.elMayor(1,35,22,80,7,12,19).”</H2>”;
?>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>

Funciones para variables:

PHP proporciona un conjunto de funciones de gran utilidad a la hora de tratar con las
variables. Estas funciones son:

1. gettype (variable): Devuelve el tipo de dato pasado como parámetro, pudiendo devolver
como valor: integer, float, string, array, class, object y unknown type.

2. settype (variable, tipo): Establece el tipo de dato a guardar en una variable. Tiene dos
argumentos: el nombre de la variable y el tipo que se quiere establecer. Con esta función
se pueden realizar conversiones de un tipo de datos a otro. Devolverá true si ha tenido
éxito o false en caso contrario.

3. isset (variable): Indica si una variable ha sido inicializada con un valor, en cuyo caso
devuelve true y en caso contrario, devuelve false.

4. unset (variable): Destruye una variable liberando los recursos dedicados a dicha variable.
Es necesario indicar como parámetro el nombre de la variable a destruir.

5. empty (variable): Devuelve valor true si la variable aún no ha sido inicializada, o bien, tiene
un valor igual a 0 o es una cadena vacía y en caso contrario devuelve false.

6. is_int (variable), is_integer (variable), is_long (variable): Estas funciones devuelven true si
la variable pasada como argumento es de tipo integer; en caso contrario, devuelve false.

7. is_float (variable), is_real (variable), is_double (variable): Estas funciones devuelven true si
la variable pasada como argumento es de tipo float; en caso contrario, devuelve false.

117
8. is_numeric (variable): Esta función devuelve true si la variable pasada como argumento es
un número o una cadena numérica, en caso contrario, devuelve false.

9. is_bool (variable): Esta función devuelve true si la variable pasada como argumento es de
tipo lógico; en caso contrario, devuelve false.

10. is_array (variable): Esta función devuelve true si la variable pasada como argumento es de
tipo array; en caso contrario, devuelve false.

11. is_string (variable): Esta función devuelve true si la variable pasada como argumento es de
tipo string; en caso contrario, devuelve false.

12. is_object (variable): Esta función devuelve true si la variable pasada como argumento es de
tipo object; en caso contrario, devuelve false.

13. intval (variable, base), floatval (variable), strval (variable): Estas funciones sirven para
realizar conversiones de tipos (casting), de modo que convierten a integer, float o string,
respectivamente, el valor de la variable que se le pasa como parámetro. Estas funciones,
no pueden utilizarse para convertir arrays u objetos. La función intval () puede recibir
además un segundo parámetro que representa la base a utilizar en la conversión (10-
decimal, 8-octal y 16-hexadecimal), tomando por defecto la base 10 de los números
decimales.

Inclusión de ficheros:

Se utiliza principalmente para la definición de librerías comunes a varios scripts,


permitiendo, de este modo, una reutilización y mantenimiento del código más óptimos. La
naturaleza del fichero externo a incluir puede ser de cualquier tipo PHP, HTML, TXT, entre otros.
 include () Esta función incluye y evalúa un fichero externo cada vez que es interpretada.
Ambos pasos, la inclusión del fichero externo y su posterior evaluación, se realizan cada
vez que el flujo del programa llega a una línea que contenga la llamada a esta función. En
caso de que el fichero a incluir no exista o su referencia sea errónea, la función genera un
aviso o warning, continuando con la ejecución por la siguiente instrucción.

Cuando un archivo se incluye con include (), el interprete sale del modo PHP y entra en
modo HTML, al principio del archivo referenciado y vuelve de nuevo al modo PHP al acabar de leer
dicho archivo. Por esta razón, cualquier código dentro del archivo referenciado que debiera ser

118
ejecutado como código PHP debe ser encerrado dentro de etiquetas válidas de comienzo y fin de
PHP.

Todas las funciones y variables definidas con anterioridad a la llamada a la función include
() son accesibles para el código presente en el fichero importado. Todos los elementos definidos en
el código PHP del fichero incluido estarán disponibles para el script llamante una vez se haya
terminado la lectura y ejecución del archivo incluido.

El ámbito de las variables que se definen en los scripts del fichero incluido depende del
lugar desde el que se realice la llamada. Si la llamada se realiza desde el cuerpo de una función,
las variables tendrán ámbito local, en cualquier otro caso tendrán ámbito global.

La función include () puede utilizarse en combinación con otras estructuras de control de


flujo. El contenido del fichero se incluirá y evaluará sólo cuando se interprete la llamada. Si el flujo
de ejecución del script nunca alcanza la línea en la que se realiza la llamada, el fichero nunca será
incluido. Cuando esta función se utiliza dentro de estructuras de bucle o condicionales, siempre
debe aparecer entre llaves. El siguiente ejemplo muestra la posibilidad de uso combinado de la
función include () con estructuras de control de bucles. Para ello, hace uso de cuatro ficheros de
inclusión, denominados fichero1.inc a fichero4.inc, cuyo contenido es un script encargado de
calcular el sumatorio de un número dado:
<?php
if(!isset($numero))
$numero=10;
echo “<BR><B>$numero!</B> = “;
$sumatorio=0;
do {
echo $numero.” +”;
$sumatorio+=numero;
$numero --;
} while(numero>0);
echo “0 = <B>$sumatorio</B>”;
?>
Por su parte, el script principal define dinámicamente el nombre del fichero a incluir
haciendo uso del un bucle:

<HTML>
<HEAD>
<TITLE>Trabajando con include</TITLE>

119
</HEAD>
<BODY>
<CENTER>
<H2>Inclusión de Fichero</H2>
<?php
$fichero=””;
for($i=1;$i<5;$i++) {
$fichero=”fichero”.$i,”.inc”;
$numero=$i;
include($fichero);
}
?>
</CENTER>
</BODY>
</HTML>

PHP permite que desde los ficheros incluidos se devuelva un valor; para ello utiliza el
mismo mecanismo de una función, utilizando la palabra reservada return acompañada de una
expresión. Se puede devolver cualquier tipo de valores, incluyendo listas y objetos, pero solo un
único valor (para devolver múltiples valores, deberemos utilizar un array).

 include_once ( ) Su funcionamiento es idéntico al de la función include ( ), con la diferencia


de que esta función sólo cargará y evaluará cada script una vez como máximo. Con esta
función es seguro de que un fichero sólo se cargué una vez a lo largo de la interpretación
de nuestro script, evitando, de este modo, los errores producidos por la redefinición o la
reasignación de valores y variables.
 require ( ) Esta función se comporta en forma general como la función include ( ), pero
con las siguientes diferencias:

1.- require ( ) sólo incluye el fichero referenciado, es decir, no lo interpreta. Su comportamiento es


equivalente a la directiva #include del lenguaje c.

2.- require ( ) no puede ser utilizado con estructuras condicionales o de control de bucles porque el
contenido del fichero referenciado se incluye antes de que se evalúe la sentencia que lo contiene y
se incluye siempre aunque la condición que lo contiene no se cumpla. No obstante, si la línea en la
que aparece require ( ) no se ejecuta, tampoco se ejecutará el código del archivo al que esta
llamada haga referencia.

120
3.- En caso de que el fichero referenciado por require ( ) no exista, se genera un error fatal que no
nos permite continuar con la ejecución del script.

4.- No se recomienda pasar variables como parámetros de la función require ( ).

 require_once( ) De igual forma que include( ) cuenta con la función include_once(), para
evitar la carga en más de una ocasión de un fichero, require ( ) hace lo propio con la
función require_once ( ), la cual tiene un comportamiento equivalente.

4.10.3. EL PROTOCOLO HTTP

Es un sencillo protocolo cliente-servidor que articula los intercambios de información entre


los clientes y los servidores web a través de operaciones simples de tipo solicitud/respuesta.
Básicamente controla el modo en el que los clientes web solicitan recursos de los servidores web y
el modo en que éstos les envían dichos recursos de vuelta. Todos los recursos proporcionados por
un servidor web (documentos, HTML, gráficos, videos, ficheros de sonido…) están asociados a un
URL o Localizador Uniforme de recursos.

4.10.4. FORMULARIOS EN HTML

Un formulario es una sección de un documento que contiene texto normal, etiquetas HTML
y elementos especiales llamados controles (casillas de verificación o checkboxes, radiobotones o
radiobuttons, menús desplegables, entre otras) y rótulos (labels) asociados a estos controles.

Los usuarios normalmente completan un formulario modificando sus controles


(introduciendo texto, seleccionando objetos de un menú, entre otras), antes de enviar el formulario
a un agente para que los procese (por ejemplo, un servidor web, servidor de correo, entre otros).

Todos los controles presentes en un formulario, para que sean efectivos, deben aparecer
incluidos dentro de un elemento form de HTML. La etiqueta FORM actúa, por tanto, como
contenedor de controles. Pero, además, especifica entre otros:

 El programa que manejará los datos del formulario una vez haya sido completado y
enviado (atributo action). El programa receptor debe ser capaz de interpretar las parejas
nombre/valor para poder hacer uso de ellas.

 La forma en la que se enviarán los datos del usuario al servidor (atributo method).

121
 El tipo MIME usado para enviar los datos del formulario (atributo enctype). El valor por
defecto de este atributo es application/x-www-form-urlencoded

 Juego de caracteres que acepta el servidor para poder manejar este formulario (atributo
accept-charset). Los agentes de usuario pueden avisar al mismo del valor de este atributo
y/o restringir al usuario la posibilidad de introducir caracteres no reconocidos.

El atributo method del formulario form especifica el método HTTP usado para enviar los
datos del formulario al agente procesador. Este atributo puede tener dos valores:

 get: El conjunto de datos del formulario se agrega (con el carácter “?” como separador) al
URL especificado en el atributo action (el programa que tratará los datos) y este nuevo
URL se envía al agente procesador.

 post: Los datos del formulario se incluyen en el cuerpo del mensaje que se envía al agente
procesador.

El conjunto de datos del formulario que se envía al agente servidor es una secuencia de
parejas nombre_de_control/valor construida a partir de los elementos del formulario. Cada uno
de los controles tiene asociado un nombre que viene dado por su atributo name. De igual forma,
cada control tiene tanto un valor inicial, como un valor actual, que son ambos cadenas de
caracteres.99

El método get debería usarse cuando el formulario es idempotente (es decir cuando no
tiene efectos secundarios). Muchas búsquedas en Bases de Datos no tienen efectos secundarios
visibles y constituyen aplicaciones ideales del método get. Si el servicio asociado con el
procesamiento de un formulario causa efectos secundarios (por ejemplo, si el formulario modifica
una BD o la suscripción a un servicio), debería usarse el método post100.

Ejemplos:
Con get:
<html>
<head>
<title>Ejemplo de PHP</title>
</head>

99
“PHP 5 A TRAVÉS DE EJEMPLOS” ABRAHAM GUTIERREZ RODRIGUEZ, GINÉS BRAVO GARCIA EDITORIAL
ALFAOMEGA RA-MA
100
www.webestilo.com/php/php09b.phtml Enero – 10

122
<body>
<H1>Ejemplo de procesado de formularios</H1>
<FORM ACTION="procesa2.phtml" METHOD="GET">
Introduzca su nombre:<INPUT TYPE="text" NAME="nombre"><BR>
Introduzca sus apellidos:<INPUT TYPE="text" NAME="apellidos"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
</body>
</html>

Figura 52. Pantalla que muestra un ejemplo de un formulario aplicando el metodo GET.

Figura 53 Pantalla que muestra un ejemplo de un formulario con los métodos GET y POST.
Con post:

123
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de procesado de formularios</H1>
<FORM ACTION="procesa2.phtml" METHOD="POST">
Introduzca su nombre:<INPUT TYPE="text" NAME="nombre"><BR>
Introduzca sus apellidos:<INPUT TYPE="text" NAME="apellidos"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
</body>
</html>

Figura 54. Pantalla con un ejemplo de un formulario aplicando el método POST.

124
Figura 55. Pantalla que muestra el resultado del procesado de los métodos GET y POST.

Archivo procesa2.phtml
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de procesado de formularios</H1>
El nombre que ha introducido por GET es: <?php echo $_GET['nombre']," ",$_GET['apellidos']
?><br>
El nombre que ha introducido por POST es: <?php echo $_POST['nombre']," ",$_POST['apellidos']
?>
<br>
</body>
</html>

4.11. UNIFORM SERVER

Uniform Server es un paquete WAMP que permite que funcione un servidor en cualquier
computadora basada en el Sistema Operativo Windows. No es necesaria ninguna instalación ni
modificación al registro de Windows, sólo se deben descomprimir los archivos incluidos en la
unidad C:\. Fue desarrollado por Taras Slobodskyy para sus clientes y lanzado más adelante como
proyecto de fuente libre y abierto.

125
WAMP es un término usado para describir un sistema de infraestructura de internet que
usa las siguientes herramientas:

a) Windows, como sistema operativo.


b) Apache, como servidor web.
c) MySQL, como gestor de bases de datos.
d) PHP como lenguaje de programación.

Figura 56. Pantalla que muestra la interfaz gráfica de Uniform Server.

4.12. SERVIDOR APACHE


Es un servidor web HTTP de código abierto para plataformas Unix (BSD, GNU/Linux, etc.),
Microsoft Windows, Macintosh y otras. Cuando comenzó su desarrollo en 1995 se basó
101
inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo.

Su nombre se debe a que se 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. Además Apache consistía solamente en un conjunto de parches a aplicar al
servidor de NCSA por lo que se le denomino servidor parcheado.

101
NCSA: Servidor web.
www.es.wikipedia.org/wiki/NCSA_HTTPd Marzo-2010

126
El servidor Apache se desarrolla dentro del proyecto HTTP Server de la Apache Software
Foundation y 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, otras más utilizan características propias de este servidor Web. Por ejemplo: La capa
frontal del motor de búsqueda Google está basado en una versión modificada de Apache,
denominada Google Web Server (GWS)102

102
www.es.wikipedia.org/wiki/Servidor_HTTP_Apache Marzo - 10

127
CAPÍTULO V
DESARROLLO DE LA SOLUCIÓN
CAP. 5. DESARROLLO DE LA SOLUCIÓN
5.1. ESQUEMA GENERAL DE LA SOLUCIÓN

Figura 57. Esquema general de la solución.

128
Descripción del Esquema General de la Solución:

BUSCADOR: permite hacer búsquedas en la web mediante cadenas sugeridas estructuradas por
mapas mentales.

USUARIO: considerado el perfil de usuario final que puede consultar mapas mentales, para
obtener cadenas sugeridas, recursos locales (txt, pdf, entre otros) y referencias a sitios web.

MAPA MENTAL: es la representación gráfica de una temática específica estructurada a base de


palabras claves jerarquizadas por un especialista o experto que ayuda a la toma de decisiones y el
estudio y/o análisis de la información. Puede contener acceso a recursos informáticos como:
archivos locales, ligas sugeridas y acceso a otros mapas mentales.

CONCENTRADO: contiene las palabras claves que constituyen los mapas mentales que son
estructurados a su vez por un experto.

EXPERTO: especialista en algún área de conocimiento.

5.2. ALCANCE DE LA SOLUCIÓN

Como se planteo al inicio de esta tesis, un prototipo es una representación limitada del
diseño de un producto que permite a las partes responsables de su creación, experimentar,
probarlo en situaciones reales y explorar su uso. Es considerado como un modelo previo no
definitivo de una aplicación o sistema, no se considera un producto final, ya que no lleva a cabo la
totalidad de las funciones necesarias del mismo. Apoya a los usuarios en la retroalimentación del
sistema, para obtener y validar los requerimientos del mismo.

Una vez definido este concepto se pretende diseñar este proyecto como un prototipo, ya
que no contempla la entrega de un sistema o aplicación completa a un usuario final.

La solución se basa en:


 Explorar los buscadores más comerciales para PYMES con sus respectivos costos.
 Explorar diversos softwares orientados a Mapas Mentales y ligarlos a un buscador como
Google

Los programas comerciales actuales generalmente representan una elevada inversión, que
en ocasiones resultan inaccesibles para los usuarios particulares debido a sus costos. El software

129
libre presenta una alternativa cada vez más extendida. El empleo de herramientas de software libre
proporcionando una opción viable para la mayoría de usuarios tanto domésticos como
profesionales, ya que por su bajo costo proporcionan a las PYMES, un apoyo en su infraestructura
sin que se vean estancados sus intentos de crecimiento por no poder hacer frente al pago de
grandes cantidades en licencias.

Lo anterior dio la pauta para dar uso de dichas herramientas en el diseño y programación
del prototipo, sacando ventaja de las características económicas en cuanto al costo de adquisición.

Cabe mencionar que queda fuera del alcance de este proyecto la entrega de un sistema
final, así como su aplicación real en una empresa; sin embargo su funcionalidad es tal, que es
posible hacer mejoras a éste prototipo en cuanto al diseño y programación, para mejorar su
desempeño, quedando como objetivo primordial apoyar la búsqueda de información a través de
buscadores y soportada con Mapas Mentales, logrando con ello un área de oportunidad para las
PYMES de México.

5.2.1. REQUERIMIENTOS PARA EMPLEAR UN SOFTWARE DE


MAPAS MENTALES

Para efecto de poder ligar un buscador con un software de mapas mentales y que este
último fuera a su vez compatible con el lenguaje de desarrollo de este proyecto, nos dimos a la
tarea de investigar cuatro softwares de mapas mentales que cumplieran con los siguientes puntos:

a.- Que sea gratuito.


b.- Que este hecho con lenguaje Javascript o algún otro lenguaje que sea compatible con
el lenguaje de desarrollo del prototipo.
c.- Que sea flexible al utilizarlo con una base de datos.
d.- Que permita configurar fácilmente un mapa mental.
e.- Que los mapas mentales se pueda visualizar en un navegador web para que sean
portables.

130
5.3. BENCHMARKING SOBRE SOFTWARE DE MAPAS MENTALES

HERRAMIENTA

FREEMIND Text2MindMap ECOTree Mindmanager


CARACTERISTICAS

Es una herramienta –software- Es una herramienta en línea Es un código en Javascript que Mindmanager es un software de
que permite la elaboración de ideal para crear lluvias de ideas permite visualizar un árbol creación de mapas mentales que
103
mapas mentales o conceptuales. –Brainstorming– o mapas mediante VML en la pantalla, permite organizar las ideas y la
mentales –MindMap– de una ya sea en Internet Explorer 6+ o información de una forma clara y
forma sencilla en un simple Firefox 1.5+ precisa. Se integra a la
documento de texto. perfección con los productos de
Microsoft Office permitiendo la
exportación a Ms Word, Ms
Power Point y Ms Project. La
¿Qué es?
técnica de los mapas mentales
permite generar y organizar
ideas, tareas y actividades.

103
VML (Lenguaje de Marcado de Vectores), se utiliza para producir gráficos orientados a objetos (vectores) junto con la información de cómo se han de mostrar y como edit ar esta información.
http://es.wikipedia.org/wiki/Vector_Markup_Language Agosto – 09

131
HERRAMIENTA

FREEMIND Text2MindMap ECOTree Mindmanager


CARACTERISTICAS

Para crear un nuevo mapa se Esta herramienta permite al Utiliza nodos que pueden ser de Mindmanager permite:
debe ubicar la idea principal en usuario crear mapas mentales cualquier tamaño o color. Los Capturar, analizar y rehacer los
el centro, dentro de un ovalo y acerca de cualquier tema muy nodos pueden tener un titulo y propósitos de la información
las relaciones de esta se ubican fácilmente a través de palabras, metadatos ocultos; el mapa desde una gran variedad de
dentro de “nubes”, las cuales las cuales se pueden escribir y mental puede tener una fuentes.
pueden alojar otras relaciones o jerarquizar en un espacio que orientación hacia arriba, abajo, Racionalizar los procesos de
subrelaciones internas de menor ofrece el sitio Web en la parte derecha o izquierda; los vínculos negocio y acelerar la toma de
Jerarquía. izquierda de la pantalla. de los nodos pueden ser líneas decisiones.
rectas o curvas; se permite tener Asegurar fácilmente que todo
Una vez terminada la lluvia de un hipervínculo en cada nodo; se colaborador este informado e
ideas, podremos cambiar un pueden ampliar o reducir los involucrado en las distintas
¿Cómo Funciona?
poco el diseño escogiendo el tipo nodos hijos de un padre, aunado tareas. Es fácil de usar, dispone
de letra, tamaño y colores para a que este código tiene una de una sencilla interfaz gráfica
finalmente exportarlo como una función que permite buscar en para realizar una eficiente
imagen jpg. los títulos de los nodos o en los documentación de ideas.
mismo metadatos. Organiza información fácilmente.
Permite mover fácilmente el
contenido del mapa para
organizar rápidamente ideas y
crear mejores planes más
eficientes. Crea dinámicas
presentaciones mostrando los

132
HERRAMIENTA

FREEMIND Text2MindMap ECOTree Mindmanager


CARACTERISTICAS
mapas mediante el modo
Mindmanager Presentation Mode
o exporta rápidamente el
contenido a PowerPoint
Es un programa escrito en JAVA, Esta construido con tecnología El código Javascript es código Crea mapas enriquecidos
por lo tanto esta disponible tanto Flash aunado a que es ejecutable en cualquier visualmente.
en Windows y Linux. totalmente gratuito. navegador Web –Internet Dibuja relaciones entre ideas.
Su instalación ocupa unos 3 MB. No se necesita instalar el Explorer o Firefox- sin la Añade llamadas de atención y
Es gratuito. software, ya que se ejecuta en necesidad de tener un servidor destaca con colores la
104
Utiliza formato de un servidor por vía remota. Web. información importante.
almacenamiento XML, lo que Por la naturaleza del código de Agrupa ideas similares e inserta
permite la reutilización del mapa esta herramienta, se puede iconos e imágenes para ayudarte
mental en otras aplicaciones. Su trabajar muy fácilmente con otras a ti y a los demás.
Ventajas interfaz es muy amigable y fácil aplicaciones; por ejemplo: Java. Se integra con las aplicaciones
de usar. Es gratuito. de Microsoft permitiendo
Permite exportar a distintos No se necesita instalar en la exportar e importar datos de
formatos como HTML, PDF, etc. computadora, simplemente copia Word, PowerPoint, Excel,
la carpeta que contiene los Outlook, Project y Visio.
archivos necesarios para su
ejecución. –es decir donde se
encuentra el código en
Javascript-

104
www.text2mindmap.com/ Enero – 10
133
HERRAMIENTA

FREEMIND Text2MindMap ECOTree Mindmanager


CARACTERISTICAS
Además del mismo programa, se Para crear el mapa mental es No es un programa que cuente Es un programa que requiere
necesita instalar el Runtime de forzoso tener una conexión a con mucha documentación y la licencia. La licencia tiene un
Java. Internet, accesar a la página poca que existe esta en inglés, costo aproximado de $349 US y
No es fácil ligarlo con alguna antes mencionada –referencia 1- por lo tanto hay que explorar un costo de actualización de
105
herramienta de desarrollo y/o y escribir los datos que se dicho algoritmo. versión de $179 US
Base de Datos; como por deseen con sangrías Este código no esta depurado, lo Se encuentra en idioma inglés.
Desventajas ejemplo JAVA o MySQL. especificando sus distintos cual nos lleva a pensar que es
niveles o pegar la información un algoritmo lento.
requerida en forma de niveles.
No es fácil ligarlo con alguna
herramienta de desarrollo y/o
Base de Datos; como por
ejemplo JAVA o MySQL.

105
www.mindjet.com/WebApp/catalog/catalog.aspx Diciembre – 09
134
HERRAMIENTA

FREEMIND Text2MindMap ECOTree Mindmanager


CARACTERISTICAS

Ejemplo

Tabla 16. Benchmarking sobre software de mapas mentales.

135
5.3.1. CONCLUSIONES DEL BENCHMARKING

A continuación se hace una descripción final de los 4 softwares de mapas mentales para
determinar el que cumple con los requerimientos del diseño de nuestro prototipo:

FREEMIND: es gratuito, construido con lenguaje java, pero no es posible ligarlo a una BD, permite
visualizar mapas mentales en un navegador web.

Text2MindMap: es gratuito, construido con tecnología flash, no es fácil ligarlo con alguna
herramienta de desarrollo y/o Base de Datos y permite visualizar lo mapas mentales en un
navegador Web.

ECOTree: es gratuito, esta construido con lenguaje JavaScript, permite ser ligado a una
herramienta de desarrollo y a bases de datos y de fácil configuraron y permite visualizar mapas
mentales en un ambiente Web.

Mindmanager: es un software con un costo de adquisición aproximado de $349 USD. El cual se


caracteriza por crear mapas mentales de forma dinámica y de fácil uso a través de una practica
interfaz gráfica, crea presensaciones dinámicas donde muestra sus mapas mentales e importa los
mismos a formato PowerPoint y otros paquetes de Microsoft Office.

De todas las opciones anteriores fue seleccionada ECOTree, porque es libre y su código
esta hecho con Javascript, el cual se integra fácilmente con el lenguaje de desarrollo y por que
cuenta con el 90% de requisitos para su utilización.

5.4. DESCRIPCIÓN DE LA HERRAMIENTA DE MAPA MENTAL A


EMPLEAR
5.4.1. ECOTree106

Es un código hecho en Javascript que muestra un árbol en el navegador -ya sea en


Internet Explorer o Mozilla Firefox - mediante el uso de VML (Lenguaje de Marcado de Vectores).

Cabe mencionar que este programa consta de una carpeta de archivos que no necesita
instalarse en el ordenador como los programas comunes. Simplemente hay que copiar dicho folder

106
www.codeproyect.com/KB/scripting/graphic_javascript_tree.aspx Marzo – 09

136
en donde el usuario desee guardar todos los árboles que se elaboren con formato HTML ahí
mismo.

La carpeta llamada graphic_javascript_tree_src, tiene en si una subcarpeta con las


imágenes img que utiliza el programa ECOTree aunado a 2 archivos muy importantes que
contienen en si toda la aplicación:

1.- ECOTree.css
2.- ECOTree.js

El primero contiene parámetros del diseño del árbol y el último tiene funciones codificadas
en lenguaje Javascript que nos permite usar el programa.

Entre algunas de las características de ECOTree se encuentran:


 Los nodos pueden ser de cualquier tamaño y color.
 Los nodos pueden tener título y metadatos ocultos.
 Los vínculos de los nodos pueden ser en líneas rectas o con curvas.
 El árbol puede ser de derecha a izquierda o de arriba hacia abajo, según lo deseemos.
 Puede asociarse un hipervínculo a cualquier nodo.
 Podemos visualizar o no los hijos de un padre, según convenga.
 Los nodos del mismo nivel son alineados horizontalmente y el eje de todos los nodos es
paralelo, es decir están bien ordenados y si hay cambios se ajustan automáticamente a la
configuración por default.

Ver Anexos de ARCHIVO ECOTree para más información acerca de su funcionamiento y


configuración.

137
5.5. PROPUESTA DE PROTOTIPO “MY POLTREE”
5.5.1. CASOS DE USO
5.5.1.1. DIAGRAMA ACTORES RELACIÓN GENERALIZACIÓN

Autentificación

Usuario

Administrador del Experto


Sistema Usuario final

Figura 58. Diagrama Actores Relación Generalización.

Cabe la posibilidad de que se autentifiquen 3 tipos de usuarios con diferentes perfiles como
son:

ADMINISTRADOR DEL SISTEMA: Realiza el alta, baja, actualización o consulta de los usuarios
con el perfil de experto.

EXPERTO: Se encarga de actualizar mapas mentales que sean de su propiedad.

USUARIO FINAL: Realiza consultas en los mapas mentales, los cuales le muestran diversas
propuestas para optimizar su búsqueda de información, como son:

 Obtener cadenas sugeridas para Google.


 Acceso a recursos locales (WORD, EXCEL, PDF, TXT, etc.).
 Acceso a referencias o ligas sugeridas de páginas web.

138
5.5.1.2. DIAGRAMA ACTOR CASOS DE USO

<<include>>

Realizar Mostrar
búsquedas Mapas

Usuario Final

<<include>>

Seleccionar Actualizar
Mapas Mapas

Experto

ABC de
<<include>>
Expertos

<<include>>
Alta de
<<include>>
Mapas

Asignar
Administrador de
Mapas a
Sistema
Expertos

Figura 59. Diagrama Actor Casos de Uso

139
5.5.1.3. MODELO DE CASOS DE USO

Realiza
Búsqueda.

Conocimiento del
<<include>> tema

Usuario final.

Ingresa Mapas

<<include>> Ingreso
controlado

Experto <<include>> Proporciona


Acceso a
expertos.

Administra
Aplicación
<<include>> Vigila y monitorea
el sistema
evitando
<<include>> incongruencias.

Da
mantenimiento a
los mapas y a la
aplicación en
Administrador general .

Figura 60. Modelo de Casos de Uso.

140
5.5.1.3.1. CASO DE USO DEL PERFIL “ADMINISTRADOR”
En este punto, se describe el funcionamiento del caso de uso de los perfiles que se
consideran más importantes dentro del prototipo My Poltree. Uno de ellos es el perfil de
Administrador en uno de sus módulos. El Administrador realiza el alta, baja, actualización o
consulta de los usuarios con el perfil de expertos del prototipo My Poltree.

Del mismo modo se encarga de dar de alta nuevos mapas mentales par su
correspondiente asignación a expertos que estén dados de alta o registrados. Ver Anexos para
descripción más a detalle.

5.5.1.3.2. CASO DE USO DEL PERFIL “EXPERTO”

En este tema se toca el caso de uso del perfil Experto el cual selecciona un mapa que sea
de su propiedad y este podrá actualizarlo contando con un ambiente grafico para llevar a cabo esta
tarea. Ver Anexos para más detalle descriptivo.

141
5.5.2. DIAGRAMAS DE ACTIVIDADES
5.5.2.1. DIAGRAMA DE ACTIVIDADES PARA ADMINISTRADOR

1.- Nombre y clave


de administrador

[ FUNCIONES
ADMINISTRATIVAS ]

6.- Administrar Mapas 10.- Buscar Mapa Mental

[ FUNCIONES
ADMINISTRATIVAS ]

7.- Alta de Mapas


2.- Administrar Expertos
Mentales

3.- Alta Experto 8.- Asignar mapa


a Experto 11.- Asignar mapa
a Experto

12.- Editar datos de Mapa

4.- Editar Experto


9- Ingresar datos de mapa

13- Eliminar Mapa.

5.- Eliminar Experto

Figura 61. Diagrama de actividades para el perfil de Administrador.

Descripción de actividades:

1- Nombre y clave de administrador: el usuario que posee el perfil de administrador, ingresa


Nombre y Clave, para obtener acceso.

2.- Administrar Expertos: el Administrador al elegir esta opción tendrá la oportunidad de hacer
diferentes funciones ligadas a la administración de Expertos.

142
3.- Alta experto: este proceso da al administrador la opción de dar de alta a un nuevo Experto.

4.- Editar experto: este proceso permite hacer cambios a los datos de un Experto.

5.- Eliminar experto: este proceso es el que permite al administrador eliminar un usuario Experto,
aquí es importante mencionar que todos los mapas están relacionados con un experto, por lo cual
antes de eliminar a un experto se deberá eliminar los mapas asociados a este o si es el caso,
asignar los mapas a otro experto.

6.-Administrar Mapas: si el administrador elige esta opción tendrá la oportunidad de llevar a cabo
diversas funciones relacionadas con los mapas.

7.- Alta de mapas mentales: en este proceso el usuario podrá dar de alta mapas mentales.

8.-Asignar mapa a experto: en este proceso el usuario deberá buscar el Experto para asignarle el
nuevo mapa mental.

9.- Ingresar datos de mapa: en esta etapa el administrador ingresa los nombres del mapa mental
(descripción de mapa y bloque).

10.- Buscar mapa mental: en este proceso el usuario hará la búsqueda de un mapa mental ya
almacenado en el concentrado, lo cual le permitirá hacer actualizaciones que se requieran
relacionadas con algún mapa mental.

11.-Asignar mapa a experto: en esta etapa el administrador puede reasignar un mapa a otro
experto.

12.- Editar datos de mapa. este proceso permite editar los datos que un mapa, tanto en su
descripción y el nombre del bloque principal.

13.- Eliminar mapa: este proceso le permitirá al usuario dar de baja un mapa mental.

143
5.5.2.2. DIAGRAMA DE ACTIVIDADES PARA EXPERTO

1 Ingreso Pagina [Desea Agregar Bloque]


Principal
7 Interfaz propia
para esta Actividad

2 Ingreso Cuenta
[Desea Modificar Bloque]
de Usuario y
Password
7 Interfaz propia
para esta Actividad

3 Mostrar [Desea Modificar Link]


Colección de
7 Interfaz propia
Mapas Mentales
para esta Actividad

[Desea Agregar Bloque]


4 Elegir un Mapa
Mental y Pulsar 7 Interfaz propia
Hipervínculo para esta Actividad

5 Mostrar Mapa
Mental
Seleccionado

6 Seleccionar 8 Cerrar Sesión


Bloque para
Operación

Figura 62. Diagrama de actividades para el perfil de Experto.

Descripción de actividades:

1.- Ingresa Pagina Principal: consiste en accesar a la página que tiene la interfaz propia del
experto.

2.- Ingresa cuenta de Usuario y Password: consiste en identificar a un usuario como experto.

3.- Mostrar Colección de Mapas Mentales: consiste en proporcionar una lista con cada uno de los
Mapas que son propiedad del experto identificado anteriormente.

144
4.- Elegir un Mapa Mental y Pulsar el Hipervínculo: consiste en seleccionar el nombre del Mapa
que se desee.

5.- Mostrar Mapa Mental Seleccionado: consiste en mostrar el contenido del Mapa seleccionado.

6.- Seleccionar Bloque para Operación: consiste en seleccionar un bloque del Mapa mostrado
anteriormente.

7.- Operaciones con el Bloque: consiste en elegir una de las cuatro operaciones de bloque válidas;
agregar bloque, modificar bloque, modificar link y eliminar bloque.

8.- Cerrar Sesión: consiste en salir de la sesión iniciada.

5.5.2.3. DIAGRAMA DE ACTIVIDADES PARA USUARIO FINAL

1.-Ingresa Aplicación.

6.-Acceso a
Catalogo de Documentos.

2.-Ingresa palabra
clave de búsqueda

[ SELECCION DE
BLOQUE O SALIR ]

7.-Liga a pagina Web


3.-Mostrar las coincidencias Sugerida.
Encontradas.

4.-Elige una coincidencia.

8.-Botón de Búsqueda en
Google con cadena sugerida. .

5.-Visualiza mapa
Con bloque de coincidencia
Encontrada.

Figura 63. Diagrama de actividades para el perfil de Usuario final.

145
Descripción de actividades:

1.- Ingresa aplicación: consiste en accesar a la página que tiene la interfaz dedica al usuario final.

2.- Ingresa palabra clave de búsqueda: el usuario teclea una palabra denominada “Clave de
Búsqueda”.

3.- Mostrar las coincidencias encontradas: el buscador de mapas muestra las coincidencias
encontradas.
4.- Elegir coincidencia: muestra las palabras claves para elegir.

5.- Visualiza mapa: se visualiza el mapa con bloque seleccionado de coincidencia encontrada.

6.- Acceso a catálogo de documentos: si el bloque seleccionado esta configurado con un vínculo a
una carpeta específica, indica que puede accesar aun catalogo de documentos (Word, Excel, txt,
etc.).

7.- Liga a pagina Web sugerida: si el bloque esta configurado a un documento txt, indica que se
mostrara en pantalla una dirección de alguna página Web que el experto dio como sugerencia.

8.- Botón de búsqueda en Google con cadena sugerida: se enviara una cadena de caracteres
sugerida o inicial, partiendo desde el bloque seleccionado por el usuario para que se realice la
búsqueda de esta por Internet.

146
5.5.3. PANTALLAS My POLTREE

Figura 64. Interfaz gráfica de Usuario Final.

Figura 65. Interfaz que muestra como el Usuario final hace una consulta.

147
Figura 66. Interfaz gráfica para identificación del perfil de Administrador y Experto.

Figura 67. Interfaz que indica el acceso en la sesión del Administrador.

148
Figura 68. Interfaz que indica como el Administrador puede dar alta, baja y cambios a expertos.

Figura 69. Interfaz que muestra como el Administrador da altas, bajas y cambios de mapas a
expertos.

149
Figura 70. Interfaz que muestra el listado de mapas que le pertenecen a un experto.

Figura 71. Interfaz que muestra el mapa que selecciono el experto para su actualización.

150
5.6. DESCRIPCIÓN DE UNA PRUEBA REAL CON USUARIO REAL
5.6.1. EJEMPLO SOBRE AMBIENTE WEB
TEMA: Desarrollo de Software
 MAPA MENTAL

Figura 72. Ejemplo de un mapa mental desarrollado con ECOTree.


Fecha de Navegación: 5 de Agosto de 2009

5.6.1.1. BING Vs GOOGLE “Mapa Comparativo”


RESULTADOS
NIVEL

RESULTADOS
CADENA DE BÚSQUEDA INTRODUCIDA EN BING DE
EN GOOGLE
MICROSOFT

1 Desarrollo de software 5,720,000 8,340,000

2 Desarrollo de software “Programación” 1,670,000 626,000


2 Desarrollo de software “Base de Datos” 3,250,000 1,080,000
2 Desarrollo de software “Ingeniería de Software” 2,610,000 144,000
2 Desarrollo de software “Administración de Proyectos” 1,210,000 44,000
2 Desarrollo de software “Inteligencia Artificial” 1,580,000 94,300
3 Desarrollo de Software “Programación” and “.NET” 167,000 426,000
3 Desarrollo de Software “Programación” and “c++” 128,000 2,160,000
3 Desarrollo de Software “Programación” and “c” 630,000 393,000
3 Desarrollo de Software “Programación” and “java” 294,000 390,000

151
NIVEL RESULTADOS
RESULTADOS
CADENA DE BÚSQUEDA INTRODUCIDA EN BING DE
EN GOOGLE
MICROSOFT

3 Desarrollo de Software “Ingeniería de Software” and 45,800 21,300


“Metodologías”
3 Desarrollo de Software “Ingeniería de Software” and 92,200 14,600
“Normas”
3 Desarrollo de Software “Inteligencia Artificial” and 48,500 22,100
“Robótica”
3 Desarrollo de Software “Inteligencia Artificial” and 7,760 4,120
“Programación Lógica”
3 Desarrollo de Software “Inteligencia Artificial” and 16,400 7,470
“lenguaje Natural”
4 Desarrollo de Software “Programación” and “java” 5,000 2,840
and “Java Básico”
4 Desarrollo de Software “Programación” and “java” 4,400 12,200
and “Java web”
4 Desarrollo de Software “Ingeniería de Software” and 490 987
“Normas” and “Cascada”
4 Desarrollo de Software “Ingeniería de Software” and 945 1,700
“Normas” and “CMMI”
4 Desarrollo de Software “Ingeniería de Software” and 209 294
“Normas” and “MOPROSOFT”
4 Desarrollo de Software “Ingeniería de Software” and 5,590 5,590
“Normas” and “ISO”
5 Desarrollo de Software “Programación” and “java” 749 3,570
and “Java web” and “servlets”
5 Desarrollo de Software “Programación” and “java” 3,030 4,660
and “Java web” and “jsp”
5 Desarrollo de Software “Programación” and “java” 2,820 5,450
and “Java web” and “j2ee”
5 Desarrollo de Software “Programación” and “java” 267 897
and “Java web” and “j2se”
5 Desarrollo de Software “Programación” and “java” 321 794
and “Java web” and “j2me”

Tabla 17. Mapa comparativo entre Google y Bing.

152
5.6.2. EJEMPLO SOBRE AMBIENTE EN EQUIPO LOCAL
TEMA: Documentos de Word
 AMBIENTE: Local

Figura 73. Ejemplo de una búsqueda de documentos en dentro de un equipo local.


Fecha de Navegación: 5 de Agosto de 2009

5.6.1.2. GOOGLE DESKTOP “Mapa Comparativo”

RESULTADOS
NIVEL

CADENA DE BÚSQUEDA INTRODUCIDA EN GOOGLE


DESKTOP

1 *.doc 2,244
2 *.doc “Estadística” 78
2 *.doc “Informática” 60
2 *.doc “Calificaciones” 21
2 *.doc “Tesis” 946
3 *.doc “Estadística” and “Antecedentes e Introducción” 1
3 *.doc "Tesis" and "Buscadores" 4
3 *.doc "Tesis" and "Google" 4
3 *.doc "Tesis" and "Anteproyecto" 3
4 *.doc "Tesis" and "Buscadores" and “Search Engines” 3
4 *.doc "Tesis" and "Buscadores" and “Google” 4

153
RESULTADOS

NIVEL
CADENA DE BÚSQUEDA INTRODUCIDA EN GOOGLE
DESKTOP

4 *.doc "Tesis" and "Buscadores" and “Altavista” 1


4 *.doc "Tesis" and "Buscadores" and “Yahoo” 1

Tabla 18. Mapa comparativo con resultados de Google Desktop.

Mapa Mental:

Figura 74. Organización de la búsqueda en un Mapa Mental.

5.7. PASOS FUTUROS AL PROTOTIPO


5.7.1. MIGRACION DE ECOTree A MINDMANAGER

En un futuro cuando las herramientas de construcción de mapas mentales evolucionen,


aunado a que los costos de ellas sean más competitivos, se puede afirmar que este prototipo
tendrá la oportunidad de ser exportado al software Mindmanager. Esto debido a que:

1. Mindmanager utiliza tecnología de mindmapping que permite capturar, organizar y


comunicar información de una manera intuitiva.

2. Mindmanager permite recopilar rápidamente la información relevante desde Internet u otras


fuentes.

154
3. Consolida grandes cantidades de datos e ideas desde múltiples fuentes en un único mapa,
navega o busca en la Web desde o dentro de Mindmanager y agrega enlaces a un mapa
propio para referencias futuras.

4. Añade contenido dinámico de bases de datos de clientes, aplicaciones internas y otros


recursos corporativos.

5. Navega rápidamente a través de todos los datos y otros activos de información


particulares.

6. Buscar sólo lo que se necesita con poderosas funciones de filtro y búsqueda.

7. Permite ver y modificar documentos de Microsoft Office dentro de Mindmanager.

8. Con la gestión de tareas automatizadas en Mindmanager rápidamente se puede obtener


una vista de alto nivel con indicadores visuales que permiten guiar y tomar decisiones en
un instante. Mapa de tareas, inicio y fechas de vencimiento, recursos y Estado. Datos que
resumen proyectos sin esfuerzo a través de cálculos automatizado del progreso de las
tarea. Toma el control del avance de algun proyecto, presupuestos y recursos mediante el
uso JCVGantt complemento del Mindjet a Mindmanager.

9. Transformar mapas en archivos PDF de Adobe o Flash de forma totalmente interactiva sin
la necesidad de algún software especial.

10. Sube mapas Flash en sitios Web o en un blog personal.

11. Permite interactuar con otras personas a través de mapas en tiempo real, o presenta ideas
personales en la Web.

5.7.2. CONTROL DE PERMISOS EN LA INFORMACIÓN


El presente prototipo solo contempla la seguridad al momento de pedir una clave de
acceso para poder alimentar el concentrado de datos, que alimenta el mapa mental; no así, para el
control de la información como tal, -esto es que no todos los usuarios tienen acceso a toda la
información de la empresa-, ese punto de seguridad le toca a Google Mini y Search Appliance.

Estos últimos se integran con los sistemas existentes de seguridad y control de acceso de
la organización, para proporcionar seguridad en un nivel de usuario y de documento. Los usuarios
únicamente obtendrán resultados de búsqueda si tienen acceso al contenido de origen, lo que
garantiza que la información de la empresa permanezca de forma segura y protegida.

155
5.8. SUGERENCIAS PARA UPIICSA

La Unidad Profesional Interdisciplinaria de Ingeniería Ciencias Sociales y Administrativas


(UPIICSA) del Instituto Politécnico Nacional, genera gran cantidad de información que se encuentra
en minutas, circulares, apuntes, planes de estudio, entre otros. Cabe mencionar que la información
esta tanto en PC, paginas Web así como también documentos impresos. El prototipo apoyará a la
estructuración y organización de la información propia.

Bajo la estructura de un concentrado de datos, se organizara en distintos rubros de


información como minutas, planes de estudio (por asignatura), apuntes (realizados por personal
docente), comunicados especiales, formularios, imágenes (por ejemplo fotos escaneadas de
documentos), archivos de texto, entre otros.

El objetivo principal es mostrar al usuario la información que desee de la UPIICSA, por


categorías estructuradas a través de mapas mentales de tal forma que el contenido sea
previamente categorizado por un especialista (ya sea por área o tema en particular). Un ejemplo de
la estructura de la información almacenada en el concentrado de datos puede ser como se muestra
a continuación:

Academia de Informática Planes de estudio Correo electrónico


Puede contener información que Puede contener los planes de Puede contener un listado de
muestre las asignaturas de esta estudio de cada asignatura por correos de personal docente
academia, entre otros. academia para realizar preguntas o envío
de documentos, notificados,
entre otros.

Apuntes por asignatura Minutas Formularios


Puede contener archivos con Puede contener los temas a Puede contener preguntas
apuntes realizados por personal tratar en juntas programadas. frecuentes, con respuestas
docente como apoyo didáctico a sobre algún tema en particular.
los usuarios

Tabla 19. Ejemplo de la estructuración de la información por categorías.

156
157
BIBLIOGRAFÍA
CAPÍTULO I
www.virtual.unal.edu.co/cursos/enfermeria/2002847/lecciones/tematica4/subtema4-5.html
www.campusvirtual-hgm.net/alfin/contenido/1-1.html
www.bhsu.edu/education/edfaculty/lturner
www.brightplanet.com/technology/deepweb.asp
www.enssib.fr/bibliotheque/documents/dpssib/rrbouf.pdf
www.sims.berkele.edu/research/projects/how-muchinfo-2003
www.contactopyme.gob.mx/impactopymes.asp?Lenguaje=0&Cve_B=5
www.contactopyme.gob.mx/grafos.asp?v=0
www.servicepoint.es/white-papers/w-servicios-costes.html
www.idclatin.com/methodology.asp?ctr=mex

CAPÍTULO II
www.es.wikipedia.org/wiki/Buscador#Mixtos_Buscador_-_Directorio
www.desktop.google.com.mx/es/features.html
www.google.co.uk/enterprise/gsa/
www.142.ibm.com/software/dre/ecatalog/Detail.wss?locale=es_MX&synkey=I418435V33755A93
www.office.microsoft.com/es-es/sharepointserver/HA101656533082.aspx
www.ecm-spain.com/interior.asp?IdItem=9517
www.herramientasparapymes.com/que-es-ecm-gestion-de-contenido-empresarial
www.google.es/enterprise
www.google.es/enterprise/mini/index.html
www.google.com/enterprise/mini/features.html
www.google-store.com/appliance/product_info.php?currency=EUR&products_id=1&language=ES
www.promocion.org/que-es-y-como-funciona-google.htm
www.eduteka.org/BarraGoogle.php3
www.search.wikia.com/wiki/Search_Wikia/es
www.search.yahoo.com
www.aulaclic.es/internet/t_4_9.htm
www.es.altavista.com/about/
www.wolframalpha.com/
www.partner.microsoft.com/mexico/40108839
www.partner.microsoft.com/mexico/40108839
www.google.com/chrome googlechromereleases.blogspot.com
www.chiflame.net/story/como-funciona-google-chrome-navegador-futuro

158
www.tnrelaciones.com/anexo/buscadores
www.buscadoreshispanos.com/
www.desarrolloweb.com/actualidad/ranking-uso-buscadores-junio-2009-2046.html
www.revista-redes.rediris.es/html-vol8/vol8_6_Tabla1.htm
www.redalyc.uaemex.mx/redalyc/src/inicio/HomRevRed.jsp?iCveEntRev=106
www.65.99.205.133/~dgbcona/index.php?option=com_content&task=view&id=96&Itemid=255

CAPÍTULO III
www.scribd.com/doc/14434440/INTERNET-Y-EDUCACION-Aprendiendo-y-ensenando-en-los-
espacios-virtuales-
www.hipertexto.info/documentos/tipos_buscador.htm
www.posicionamientoweb.tripod.com/index.htm
www.seoposicionamientoweb.wordpress.com/2008/03/13/google-actualiza-sus-algoritmos/
www.es.geocities.com/directorioabierto/Introduccion.html
www.posicionamientoweb.tripod.com/msn/msn.htm
www.pisitoenmadrid.com/.../goyams.png
www.tusbuscadores.com/metabuscadores/

CAPÍTULO IV
JACOBSON, Ivar; BOOCH, Grady; RUMBAUGH, James. El Proceso Unificado de Desarrollo de
Software. Pearson Addisson-Wesley. Año 2000.
Raúl Alarcón (2000) “DISEÑO ORIENTADO A OBJETOS CON UML” Grupo EIDOS.
Buzan Tony & Barry (1996), "EL LIBRO DE LOS MAPAS MENTALES: Como utilizar al máximo las
capacidades de la mente" ED. URANO, 1996.
www.llramirezz.unad.googlepages.com/herramientas
Mc.Carthy, M.J.: Domine la era de la información: Ed. Robin-book, 1991.
Alamea, G.: “Técnicas para Generación de Ideas y Creatividad: Mapas Mentales”, 2005.
Ontoria, A.; Gómez, J.P.R.; De Luque, A.: Aprender con mapas mentales. Una estrategia para
pensar y estudiar: Ed. Narcea, 2003.
Damián J. Matich “Redes Neuronales: Conceptos Básicos y Aplicaciones” 2001.
Stuart J. y Peter N. “Inteligencia Artificial. Un enfoque moderno”.
www.elies.rediris.es/elies18/522.html
Elaine Rich, Kevin Knight “Inteligencia Artificial” 2da Ed.
Antonio López. “Enciclopedia de Informática y Computación” Deontología Informática, Edición
1998, Cultural S.A.
www.entren.dgsca.unam.mx/Html/estr.htm
www.w3c.es/divulgacion/guiasbreves/tecnologiasXML

159
www.es.wikipedia.org/wiki/Apache_Struts
www.monografias.com/trabajos28/aplicacion-paso-paso-struts/aplicacion-paso-paso-struts.shtml
www.javahispano.org/contenidos/archivo/77/ManualHibernate.pdf
PHP 5 A TRAVÉS DE EJEMPLOS” Abraham Gutiérrez Rodríguez, Ginés Bravo García
EDITORIAL ALFAOMEGA RA-MA
www.webestilo.com/php/php09b.phtml
www.es.wikipedia.org/wiki/NCSA_HTTPd marzo-2010
www.es.wikipedia.org/wiki/Servidor_HTTP_Apache

CAPÍTULO V
www.text2mindmap.com/
www.mindjet.com/WebApp/catalog/catalog.aspx
www.codeproyect.com/KB/scripting/graphic_javascript_tree.aspx

160
ANEXOS
ARCHIVO ECOTree
Un archivo ECOTree válido consta de 4 partes indispensables; con esto se quiere decir
que si a un archivo ECOTree le faltará alguna de estas, ya no se ejecutaría de manera correcta. A
continuación se muestran dichas secciones.
<html>
<head>
<title>ECOTree Simple Tree 4</title>
<script type="text/javascript" src="ECOTree.js"></script>
<link type="text/css" rel="stylesheet" href="ECOTree.css" />
<xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v"/>
<style>v\:*{ behavior:url(#default#VML);}</style> 1
<style>
.copy {
font-family : "Verdana";
font-size : 10px;
color : #CCCCCC;
}
</style>
<script>
var t = null;

function CreateTree() { Método que


t = new ECOTree('t','sample2'); permite crear el
t.config.iRootOrientation = ECOTree.RO_TOP; ECOTree
t.config.defaultNodeWidth = 110;
t.config.defaultNodeHeight = 35;
t.config.iSubtreeSeparation = 20;
t.config.iSiblingSeparation = 10;
t.config.linkType = 'B';
2 t.config.useTarget = true;
t.config.nodeFill = ECOTree.NF_GRADIENT;
t.config.colorStyle = ECOTree.CS_LEVEL;
t.config.levelColors = ["#966E00","#BC9400","#D9B100","#FFD700"];
t.config.levelBorderColors=["#FFD700","#D9B100","#BC9400","#966E00"];
t.config.nodeColor = "#FFD700";
t.config.nodeBorderColor = "#FFD700";
t.config.linkColor = "#FFD700";

t.add(1,-1,'DESARROLLO DE SOFTWARE',null,null,"#F08080");
t.add(2,1,'PROGRAMACIÓN');
t.collapseNode(2,false);
t.add(3,1,'BASE DE DATOS');
t.add(4,1,'INGENIERIA DE SOFTWARE');
t.collapseNode(4,false);
3 t.add(5,1,'ADMINISTRACIÓN DE PROYECTOS');
t.add(6,1,'INTELIGENCIA ARTIFICIAL');
t.collapseNode(6,false);
t.add(7,2,'.NET');
t.add(8,2,'C++',null,null,null,null,'www.borland.com');
t.add(9,2,'C');
t.add(10,2,'JAVA',null,null,null,null,'www.sun.com');

161
t.collapseNode(10,false);
t.add(11,10,'JAVA BÁSICO');
t.add(12,10,'JAVA WEB');
t.collapseNode(12,false);
t.add(13,12,'SERVLETS',null,null,null,null,'http://pdf.coreservlets.com/');
t.add(14,12,'JSP');
t.add(15,12,'J2EE');
t.add(16,12,'J2SE');
t.add(17,12,'J2ME');
t.add(18,4,'METODOLOGIA');
3 t.add(19,4,'NORMAS');
t.collapseNode(19,false);
t.add(20,19,'CASCADA');
t.add(21,19,'CMMI');
t.add(22,19,'MOPROSOFT');
t.add(23,19,'ISO');
t.add(24,6,'ROBÓTICA');
t.add(25,6,'PROGRAMACIÓN LOGICA');
t.add(26,6,'LENGUAJE NATURAL');
t.UpdateTree(); }
</script>
</head>
<body onload="CreateTree();">
<div id="sample2">
4 </div>
</body>
</html>

En la primera sección se mandan a llamar las librerías básicas que permiten que el
ECOTree funcione, aunado a los archivos en los que se basa el prototipo. Cabe mencionar que si
alguna de estas librerías faltara o no se escriba bien; directamente se vería reflejado en el árbol.

En la segunda sección se encuentran las funciones propias que permiten configurar a


libremente el estilo del ECOTree y con ello visualizar un árbol de manera particular. Si esta sección
no se escribiera en el código se mostraría el árbol pero con las configuraciones por default.

En la tercera sección se muestra el código que alimenta el árbol nodo a nodo. Su sintaxis
es:
t.add(id, pid, DSC. w, h, c, bc, Target, Meta)

En donde:
id  #Nodo
pid  #Nodo padre al que pertenece
DSC Titulo del nodo
w (opcional) Anchura del nodo en pixeles.
h (opcional) Altura del nodo en pixeles.

162
C (opcional) Color del nodo.
bc (opcional) Color de borde del nodo.
Target (opcional) Vínculo del nodo.
Meta (opcional) Metadatos del nodo. No se visualizan.

Se debe tener en consideración que un hijo no puede existir sin un padre. Tomando esto,
se entiende que este programa no funciona sin un nodo raíz e hijo sin padre. Por último en esta
parte del programa encuentra una función que actualiza el árbol “t.UpdateTree();”. Sin esta función
el navegador nos mostraría errores en la página.

La cuarta y última sección del código es sin duda tan importante como las otras tres ya que
en esta se llama a la función que crea el árbol:
<body onload=” CreateTree();”>

Nodo Padre Nodo Raíz

Nodos Hijos

Titulo del
Nodo

Ejemplo de un árbol visualizado completamente.

163
CONFIGURACION ECOTREE

Los parámetros y valores por default que se pueden utilizar en este programa son:

Valores
Parámetro Función
Default Opciones
iMaxDepth 100 Es el número máximo
de nodos permitido
en el árbol.
iLevelSeparation 40 Es la separación que
existe entre los
distintos niveles en
pixeles.
iSiblingSeparation 80 Es la separación que
existe entre nodos
hermanos en pixeles.
iSubtreeSeparatio Usuario Es la separación que
n existe entre nodos
vecinos de distinto
padre en pixeles.
iRootOrientation ECOTree.RO_TOP ECOTree.RO_BOTTOM Indica la dirección del
ECOTree.RO_RIGHT árbol. Los valores
ECOTree.RO_LEFT posibles son:
TOP De arriba
abajo.
BOTTOM De abajo
hacia arriba.
RIGHT De derecha
a izquierda.
LEFT De izquierda
a derecha.
iNodeJustification ECOTree.NJ_TOP ECOTree.NJ_CENTER Indica la alineación de
ECOTree.NJ_BOTTOM los nodos que
pertenecen a un
mismo nivel. Los
valores posibles son:
CENTER  Los

164
Valores
Parámetro Función
Default Opciones
nodos son alineados
hacia el centro.
TOP Los nodos son
alineados hacia la
parte superior.
BOTTOM Los
nodos son alineados
en la parte inferior.
linkType “M” “B” Especifica el estilo de
los enlaces de los
nodos. Los valores
posibles son:
“M” Líneas Rectas
“B” Curvas
linkColor “blue” Usuario Especifica el color de
los enlaces de los
nodos.
nodeColor “#CCCCFF” Usuario Especifica el color de
los nodos.
nodeFill ECOTree. ECOTree.NF_FLAT Especifica si el color
NF_GRADIENT de los nodos se
degradará o no.
nodeBorderColor “blue” Usuario Especifica el color de
borde que tendrán los
nodos.
nodeSelColor “#FFFFCC”, Usuario Especifica el color a
utilizar cuando algún
nodo se seleccione.
levelColors [“#5555FF”,”#8888 Usuario Especifica en forma
FF”,”#AAAAFF”,”#C ordenada el color de
CCCFF”] cada nivel.
levelBorderColors [“#5555FF”,”#8888 Usuario Especifica en forma
FF”,”#AAAAFF”,”#C ordenada el color de
CCCFF”] los bordes por nivel.

165
Valores
Parámetro Función
Default Opciones
colorStyle ECOTree. ECOTree.CS_LEVEL Activa o desactiva los
CS_NODE valores que se le
dieron en la opción
levelColors. Los
valores posibles son:
NODE Cada nodo
utiliza un mismo color.
LEVEL Cada nodo
de un cierto nivel
utiliza un mismo color.
useTarget true false Activa o desactiva los
hipervínculos de los
nodos.
searchMode ECOTree.SM_DSC ECOTree.SM_META Especifica si dada una
ECOTree.SM_BOTH palabra o frase, esta
se buscara en los
títulos de los nodos,
en los metadatos o en
ambos.
selectMode ECOTree. ECOTree.SL_SINGLE Permite seleccionar a
SL_MULTIPLE ECOTree.SL_NONE un solo nodo, muchos
o a ninguno.
defaultNodeWidth 80 Usuario Especifica el ancho
del nodo en pixeles.
DefaultNode_ 40 Usuario Especifica la altura del
Height nodo en pixeles.
defaultTarget „Javascript:void(0);‟ Usuario Especifica la liga por
default de los nodos.
expandedImage „./img/less.gif‟ No Modificable A través de la imagen
de menos (-) permite
ocultar los hijos del
nodo seleccionado.
collapsedImage „./img/plus.gif‟ No Modificable A través de la imagen
de más (+) muestra
todos los hijos del

166
Valores
Parámetro Función
Default Opciones
nodo seleccionado.
transImage „./img/trans.gif‟ No Modificable Es un icono
transparente que se
utiliza en las
imágenes de las
opciones pasadas.
Configuración de los parámetros y valores de ECOTree.

MÉTODOS PÚBLICOS EN ECOTREE

Método Parámetros Función


UpdateTree() Permite actualizar el árbol.
add() id = # de nodo. Permite agregar un nuevo
pid = Permite especificar el nodo nodo al árbol.
padre al que pertenecerá el nuevo
nodo. Si se tratará del nodo raíz se
debe especificar el número “-1”.
dsc = Titulo del nodo. Será la
descripción visible.
w = Es el ancho del nodo en pixeles.
–opcional-
h = Es la altura de nodo en pixeles.
–opcional-
c = Es el color del nodo. -opcional-
bc = Es el color de borde del nodo.
–opcional-
target = Es el vinculo objetivo de
nuestro nodo. Si no se especifica, el
valor utilizado por el programa será
el de “default” y si se le especifica
una cadena vacía, entonces el nodo
no tendrá liga. –opcional-
meta = Son los metadatos del nodo.
En otras palabras el contenido.

167
Método Parámetros Función
Estos no serán visibles y nos
permitirán buscar información
contenida en los nodos. –opcional-
searchNodes(str) str = Es la cadena que se pretende Permite buscar la cadena
buscar. “str” en todos los nodos del
árbol. Los nodos encontrados
serán seleccionados y si es el
caso se ampliara la vista. Se
pueden usar mayúsculas o
minúsculas.
selectAll() Selecciona todos los nodos
del árbol. El método
UpdateTree() se llama
automáticamente.
unselectAll() Elimina todas las
selecciones.
collapseAll() Oculta todos los nodos
excepto el nodo raíz.
collapseNode nodeid = # de nodo. Oculta solo el nodo
(nodeid, upd) upd = Es el llamado al método especificado en nodeid.
UpdateTree().
selectNode nodeid = # de nodo. Selecciona únicamente el
(nodeid, upd) upd = Es el llamado al método nodo especificado en nodeid.
UpdateTree().
setNodeTitle nodeid = # de nodo. Actualiza el título del nodo
(nodeid, title, upd) title = Nuevo titulo del nodo. especificado en nodeid.
upd = Es el llamado al método
UpdateTree().
setNodeMetadata nodeid = # de nodo. Actualiza los metadatos
(nodeid, meta, upd) meta = Nuevo metadatos del nodo. -contenido- del nodo
upd = Es el llamado al método especificado en nodeid.
UpdateTree().
setNodeTarget nodeid = # de nodo. Actualiza el vínculo del nodo
(nodeid, target, target = Nuevo vínculo objetivo del especificado en nodeid.
upd) nodo.
upd = Es el llamado al método

168
Método Parámetros Función
UpdateTree().
setNodeColors nodeid = # de nodo. Actualiza el color y borde del
(nodeid, color, color = Nuevo color del nodo. nodo especificado en nodeid.
border, upd) border = Nuevo color de borde del
nodo.
upd = Es el llamado al método
UpdateTree().
getSelectedNodes() Devuelve una matriz de
objetos de JavaScript, con los
valores “id”, “dsc”, “meta” de
los nodos seleccionados.
Función de los métodos públicos de ECOTree.

169
Casos de uso “Administrador”
Altas, bajas y actualizaciones de usuarios con perfil Experto

Introducción
La finalidad de este documento es describir el funcionamiento del caso de uso de uno de
los módulos de Administrador

Descripción

El Administrador realiza el alta, baja, actualización o consulta de los usuarios con el perfil
de expertos, del prototipo My Poltree.

Precondiciones

El usuario administrador se identificó en el sistema.

Flujo normal

1. El usuario invoca el modulo para administrar usuarios de perfil expertos.


2. El sistema muestra un listado con los usuarios con el rol de expertos existentes en el
sistema, la opción de crear una alta experto y las opciones de ver editar experto y eliminar
experto.
3. Si el administrador solicita crear una cuenta nueva, ir al paso 4. Si el usuario solicita
modificar la cuenta señalada, ir al paso 8. Si el administrador solicita eliminar la cuenta
señalada, ir al paso 12.
4. El sistema solicita al usuario la introducción de los datos del nuevo usuario que contara con
el perfil de experto (nombre de usuario y clave).
5. El administrador introduce los datos requeridos.
6. El sistema verifica que los datos ingresados sean correctos.
7. El sistema crea la nueva cuenta de usuario de perfil experto y muestra una notificación.
Volver al paso 1.
8. Cuando se lleva a cabo la consulta de los usuarios de perfil experto. El sistema muestra los
datos del usuario con perfil de experto en un formulario.
9. Cuando se lleva a cabo la modificación de usuarios con el perfil de experto. El usuario
introduce los datos que desea modificar.
10. El sistema verifica que los datos ingresados sean correctos.
11. El sistema modifica la cuenta de usuario con el perfil de experto. Volver al paso 1.
12. Cuando se lleva a cabo la eliminación de un Experto. El sistema muestra el detalle de la
cuenta señalada y pregunta al administrador si en realidad desea borrar la cuenta.

170
13. El usuario introduce la respuesta
14. El sistema verifica la respuesta, en caso de ser afirmativa elimina el registro y envía un
mensaje, en caso contrario regresar al paso 1.
15. Fin del caso de uso.

Flujos alternos.
Aplicados a Alta de Experto.
A) El sistema determina que los datos son incorrectos.
B) Regresar al paso 4 con un mensaje de error.

Aplicados a Editar Experto.


A) El sistema determina que los datos son incorrectos.
B) Regresar al paso 8 con un mensaje de error.

Aplicados a Eliminar Experto.


A) El usuario decide no eliminar la cuenta.
B) Regresar al paso 1 sin haber borrado la cuenta.

Post-condiciones

Se ha creado, modificado o eliminado un usuario de tipo Experto.

Reglas de negocio.

En el sistema debe de existir mínimo un usuario de tipo experto y a la par su mapa de este.

No se podrá eliminar un experto que tenga todavía asignado mapas.

Alta de Mapas

Introducción
La finalidad de este documento es describir paso a paso, el funcionamiento del caso de
uso de Alta de Mapas.

Descripción
El usuario de perfil administrador podrá dar de alta nuevos mapas mentales.

171
Precondiciones.

Debe de tener un mapa aplicado a un tema específico y un autor (usuario de tipo Experto),
relacionado a este.

Flujo normal.

16. El Administrador invoca el modulo para dar de alta un mapa mental.


17. El Administrador introduce selecciona el experto al que se le asignara el mapa.
18. El Administrador introduce el mapa y lo visualiza por bloques que puede modificar.
19. El sistema verifica que los datos son correctos.
20. El sistema permite incorpora un nuevo mapa.

Flujos alternos.

1. El sistema determina que la asignación a el experto del mapa es incorrecto.


2. Ocurrió algo inesperado que afecto la carga del mapa.

Post-condiciones.

Se incorporo un nuevo mapa.

Reglas de negocio.

Los usuarios de tipo experto y administrador son los únicos que tienen permitido el acceso
al sistema My Poltree.
Los mapas nuevos que se incorporen al sistema deberán pertenecer a un Experto.

Asignar Mapas a Expertos

Introducción
La finalidad de este documento es describir paso a paso, el funcionamiento del caso de
uso de Asignar mapas a expertos.

Descripción
El usuario de perfil administrador podrá asignar expertos a mapas mentales.

172
Precondiciones.

El usuario de tipo Experto debe de tener un mapa de su autoría.

Flujo normal.

21. El Administrador invoca el modulo para asignar un Experto a un mapa.


22. El Administrador selecciona el experto y asignara a este su mapa.
23. El sistema verifica que los datos son correctos.
24. El sistema permite incorpora un nuevo mapa.

Flujos alternos.

3. El sistema determina que existió un error a la asignación del experto.

Post-condiciones.

Se asigno un Experto a un mapa.

Reglas de negocio.

Los usuarios de tipo experto y administrador son los únicos que tienen permitido el acceso
al sistema My Poltree.
Se esperaría que el usuario creador de un mapa fuese especialista en el tema del cual
realice el mapa.
Y tener en cuenta que la aportación de cada experto sea definida como compartida ya que
el fin de esta es el manejo efectivo de la información.

173
Casos de uso “Experto”

Introducción
La finalidad de este documento es describir el funcionamiento del caso de uso de
Seleccionar Mapas con el objetivo de Actualizar mapas.

Descripción

El usuario Experto seleccionara un mapa que sea de su autoría y este podrá actualizarlo
contando con un ambiente grafico para llevar a cabo esta tarea.

Precondiciones
El usuario de perfil Experto se identificó en el sistema.
Se ha ejecutado efectuado el despliegue de los mapas correspondientes al usuario de
tipo Experto.

Flujo normal

1. El usuario ingresa al sistema.

2. El sistema proporciona la lista de los mapas que le pertenecen al usuario de que fue
ingresado mencionado en el paso anterior.

3. El usuario, Elige un mapa.

4. El sistema despliega el mapa seleccionado.

5. El usuario actualiza el mapa y se guardan los cambios.

6. Fin del caso de uso.

Flujos alternos

Ninguno

Post-condiciones

Actualización de mapas mentales y mantenimiento de estos.

Reglas de negocio

Ninguna

174
MANUAL DE INSTALACIÓN:

“MY POLTREE”

Instituto Politécnico Nacional


Unidad Profesional Interdisciplinaria de
Ingeniería Ciencias Sociales y Administrativas
Licenciatura en Ciencias de la Informática

Natalia Edith Alvarado González


Merced Isauro Guzmán Quiroz
Miguel Ángel Jiménez Flores

nalvarado@gmail.com
licisauroguzman@gmail.com
licmigueljimenezflores@gmail.com

Versión 0.1
México, Distrito Federal
2010

175
CONTENIDO

1. Introducción

2. Requerimientos
2.1. Hardware
2.1.1.Windows XP
2.1.2.Windows Vista
2.1.3.Windows 7
2.2. Software

3. Instalación de Uniform Server

4. Manual de Usuario final

5. Manual de Administrador
5.1. Acceso al módulo de administrador
5.2. Asignar cuentas de usuario experto
5.3. Asignar un mapa mental a usuario experto
5.4. Editar datos de un mapa mental
5.5. Reasignar un mapa mental a otro usuario experto
5.6. Dar de baja un mapa mental
5.7. Editar datos de un usuario experto
5.8. Dar de baja un usuario experto
6. Manual de Experto.
6.1. Acceso a módulo para experto
6.2. Interfaz gráfica de edición de mapas y sus funciones
6.3. Agregar un bloque
6.4. Agregar un link de páginas recomendadas
6.5. Agregar un link de descarga de un documento
6.6. Renombrar un bloque
6.7. Eliminar un bloque

176
Introducción
El presente documento describe las actividades necesarias para realizar la instalación en
diferentes plataformas de Windows el prototipo denominado “MY POLTREE”.

MY POLTREE es desarrollado por Natalia Edith Alvarado González, Merced Isauro


Guzmán Quiroz y Miguel Ángel Jiménez Flores pasantes de la Licenciatura en Ciencias de la
Informática de la UPIICSA del Instituto Politécnico Nacional, con la finalidad de demostrar la mejora
al realizar búsquedas de Información, a través de Mapas Mentales combinados con un buscador
comercial como Google. Explotando la potencialidad de este último al ir acotando las búsquedas
con una cadena sugerida con la clasificación previa especializada de un “experto” en cierta
temática; todo esto soportado con Mapas Mentales.

A continuación se describen también los requerimientos de hardware y de software que


son requisitos previos necesarios para la correcta ejecución del prototipo en cualquier Equipo de
Cómputo.

177
2. Requerimientos
2.1. Hardware
2.1.1. Windows XP
 Procesador Pentium 455 MHz o superior
 512 MB de RAM (mínimo)
 200 MB libres en el Disco Duro
 Puerto USB Libre
 Monitor VGA o superior
 Mouse Microsoft o compatible
 Teclado Multimedia
 Acceso a Internet

2.1.2. Windows Vista


 Procesador Pentium 1.0 GHz o superior
 1024 MB de RAM (mínimo)
 200 MB libres en el Disco Duro
 Tarjeta Gráfica (mínimo 128 MB)
 Puerto USB Libre
 Monitor VGA o superior
 Mouse Microsoft o compatible
 Teclado Multimedia
 Acceso a Internet

2.1.3. Windows 7
 Procesador Pentium 1.0 GHz o superior
 1024 MB de RAM (mínimo)
 200 MB libres en el Disco Duro
 Tarjeta Gráfica (mínimo 128 MB)
 Puerto USB Libre
 Monitor VGA o superior
 Mouse Microsoft o compatible
 Teclado Multimedia
 Acceso a Internet

178
2.2. Software

Para la instalación del prototipo MY POLTREE se requiere de un paquete WAMP llamado


Uniform Server, navegador Mozilla Firefox 3.5 o superior, y la Máquina Virtual de Java versión 6
actualización 18.
Nota: En Internet Explorer es muy probable que no se visualice el mapa mental, debido
principalmente a una falta de compatibilidad de Explorer con VML.
WAMP es usado para describir un sistema de infraestructura de Internet que usa las
siguientes herramientas:
a) Windows, como sistema operativo (cualquier versión XP, Vista ó 7).
b) Apache, como servidor Web.
c) MySQL, como gestor de bases de datos.
d) PHP como lenguajes de programación.

Uniform Server es un paquete WAMP que permite que funcione un servidor en cualquier
computadora basada en el Sistema Operativo Windows. No es necesaria ninguna instalación ni
modificación al registro de Windows, sólo se deben descomprimir los archivos incluidos en la
unidad C:\

179
Para la Instalación de Uniform Server y ejecutar el servidor de Apache y el gestor MySQL,
a continuación se enlistan los pasos a seguir:
1. Abrir la el archivo START.EXE que se ubica en la ruta:
C:\UniServer5_0\UniServer

NOTA: En Windows XP, ejecutar el archivo “Start.exe” directamente, en Windows Vista o


Windows 7, dar clic con el botón derecho del ratón y elegir la opción ejecutar como
Administrador.

180
2. Aparecerá un cuadro de Mensaje. Para continuar dar clic en Aceptar.

3. Desplegar el menú contextual haciendo clic derecho sobre el botón azul con la etiqueta [1],
que se encuentra en la parte inferior derecha de la pantalla y seleccionar Install and Run
All Services para levantar los servicios del Servidor Apache y el gestor MySQL.

181
Nota: Espere de 15 a 20 segundos y aparecerá en pantalla la Bienvenida a MY POLTREE.

182
4. Manual de Usuario Final
Para que el usuario haga consultas, debe abrir la página de My Poltree en su navegador,
(de preferencia Mozilla Firefox).
La pantalla de Bienvenida de My Poltree es la que se ve a continuación:

Se debe introducir una palabra clave y hacer clic en el botón Buscar en Mapa, para que My
Poltree haga la tarea de buscar temas relacionados dentro del repositorio.

183
En este ejemplo se teclea la palabra “SOFTWARE”
My Poltree mostrará en pantalla los resultados con la palabra a buscar, si es su caso, se
visualizarán coincidencias, el usuario debe elegir una de ellas, para este ejemplo se elige Ing.
Software.

Se visualizará en pantalla el Mapa Mental resaltando el bloque que contenga la palabra


clave seleccionada de las coincidencias que haya encontrado My Poltree en la pantalla anterior.

184
Los bloques pueden tener diferentes configuraciones, si el bloque seleccionado esta
configurado con un hipervínculo a un archivo de texto, indica que el usuario vera en pantalla un link
de una página sugerida por un experto, por otro lado, los bloques pueden estar configurados para
la descarga de algún documento, por ejemplo archivos Word, Excel, Power Point, PDF, imágenes,
videos, entre otros.

En la siguiente pantalla se muestra un ejemplo del bloque que fue seleccionado en las
coincidencias que encontró My Poltree y que está configurado para mostrar un link a una página
sugerida

185
El usuario copia el link sugerido que se muestra en pantalla y lo abre en su navegador para su
consulta como se ve en la pantalla siguiente.

En la pantalla siguiente se muestra un ejemplo de otro bloque que se selecciona en el


mismo mapa mental consultado y que está configurado para descargar un documento.

186
En esta pantalla se muestra el cuadro de dialogo de la descarga de un documento.

My Poltree le da al usuario la opción de cambiar la orientación de los mapas, puede elegir


la opción que le sea de su agrado (orientación arriba, abajo, derecha e izquierda).

187
En la pantalla siguiente se muestra un ejemplo en el cual se cambia la orientación del
mapa en pantalla, en este caso se elige la opción izquierda.

188
5. Manual de Administrador
5.1. Acceso al módulo de administrador
Paso 1. El Administrador debe abrir la página que le permite el acceso a My Poltree

Paso 2. El usuario debe teclear los datos de su cuenta de Administrador y dar clic en el botón
Entrar.

189
My Poltree mostrara en pantalla la bienvenida al usuario Administrador junto con las
opciones de Administrar Expertos, Administrar Mapas y la función Cerrar sesión.

5.2. Asignar cuentas de usuario experto


Paso 3. Para asignar una cuenta nueva a un experto, el Administrador debe elegir la opción Admin.
Expertos, como se muestra en la siguiente pantalla y dar clic en el botón Agregar.

190
Paso 4. Se asigna un nombre de usuario Experto y una clave de acceso y se da clic en Aceptar.

My Poltree notifica en un mensaje que se agrego una cuenta de experto.

191
Paso 5. Teclear nombre de cuenta de experto en el campo Buscar Experto y dar clic en el botón
Buscar

My Poltree visualizará en pantalla las operaciones que se pueden hacer en la cuenta nueva
asignada, como Editar y Borrar.

La cuenta nueva de usuario experto asignada ya está lista para que le sea asignado un
Mapa Mental para su desarrollo, ir al Paso 3 para dar de alta a más usuarios con perfil experto.

192
5.3. Asignar un mapa mental a usuario experto
Paso 6. El Administrador debe seleccionar la opción Admin. Mapa, para agregar un mapa mental y
asignarlo al nuevo usuario experto, para ello debe dar clic en el botón Agregar.

Paso 7. My Poltree solicita el nombre de usuario experto para asignarle el nuevo mapa mental, se
debe teclear el nombre de cuenta y dar clic en el botón Buscar.

193
Paso 8. En pantalla se muestra el nombre del usuario experto al que se le desea asignar un mapa,
el cual se debe seleccionar.

Paso 9. En la siguiente pantalla se le solicita al Administrador que teclee los datos


correspondientes del nuevo mapa, debe asignar una descripción del mapa y del bloque principal y
después se da clic en el botón Aceptar.

194
My Poltree notifica que fue agregado un mapa.

El usuario puede teclear la descripción del nuevo mapa para verificar sus datos o en su
caso pueda reasignar a otro experto el mapa, editar sus datos o borrarlo si se considera necesario.

Hasta este punto ya se tiene registrado un nuevo usuario Experto con un Mapa Mental
asignado para su correspondiente desarrollo, si se requiere asignar más mapas al usuario u otros
se debe ir al Paso 6.

195
5.4. Editar datos de un mapa mental
Paso 10. Seleccionar Admin. Mapa y dar clic en el botón Buscar, de esta forma se visualizarán
mapas y propietarios registrados, dar clic en el botón editar del mapa que se desee actualizar, (en
este ejemplo se selecciono la descripción del mapa PYME ABC).

Paso 11. El administrador debe teclear los datos nuevos del mapa a editar y dar clic en Aceptar.

196
My Poltree notifica que fueron actualizados los datos del mapa seleccionado.

5.5. Reasignar un mapa mental a otro usuario experto


Paso 12. Seleccionar la opción Admin. Mapa y dar clic en el botón Buscar para visualizar los
mapas y propietarios registrados, dar clic en el botón Asignar del mapa que se quiere reasignar a
otro usuario Experto, (en este ejemplo fue seleccionado CASO PYME ABCD).

197
Paso 13. My Poltree solicita el nombre del experto para asignarle el mapa mental seleccionado,
puede dar clic en el botón enviar y seleccionarlo de la lista que aparece en pantalla, en este
ejemplo se asignará al usuario Experto 1.

My Poltree notifica que la actualización ha sido exitosa.

198
5.6. Dar de baja un mapa mental
Paso 14. Seleccionar la opción Admin. Mapa y dar clic en el botón Buscar para visualizar los
mapas y propietarios registrados, dar clic en el botón Borrar del mapa que se requiere dar de baja,
(en este ejemplo fue seleccionado CASO PYME ABCD).

My Poltree notifica que fue dado de baja el mapa seleccionado.

199
5.7. Editar datos de un usuario Experto
Paso 15. Seleccionar la opción Admin. Expertos y dar clic en el botón Buscar para visualizarla lista
de usuarios registrados y dar clic en el botón Editar del experto que se requiere actualizar, en este
ejemplo fue seleccionado Experto 2.

Paso 16. Se solicita teclear el nombre de usuario que se desea corregir y dar clic en Aceptar.

200
My Poltree notifica que se actualizó los datos de usuario Experto.

5.8. Dar de baja un usuario experto


Paso 17. Seleccionar la opción Admin. Expertos y dar clic en el botón Buscar para visualizarla lista
de usuarios registrados y dar clic en el botón Borrar del Experto que se requiere dar de baja, en
este ejemplo fue seleccionado Experto A.

201
My Poltree indica que fue dado de baja el nombre de usuario Experto seleccionado.

Si el Administrador ya no requiere hacer más operaciones dentro del módulo, debe dar clic
en la opción Cerrar Sesión para salir, como se muestra en la siguiente pantalla.

202
6. Manual de Experto
6.1. Acceso a módulo para experto
Paso 1. El Experto debe abrir la página que le permite el acceso a My Poltree

Paso 2. El usuario debe teclear los datos de su cuenta de Experto y dar clic en el botón Entrar.

203
My Poltree muestra en pantalla el listado de mapas que tiene asignados el usuario Experto
y del mismo modo le indica que tiene la opción de seleccionar el que desee desarrollar o actualizar.

6.2. Interfaz gráfica de edición de mapas y sus funciones.


Una vez seleccionado el mapa a editar se muestra la interfaz gráfica con las opciones que
permiten desarrollar su contenido. En el cuadro se indican las funciones básicas de edición de
bloques para el mapa que son: Agregar hijo, Modificar bloque, Actualizar link y Borrar bloque.

204
Donde:
 Agregar hijo: como su nombre lo indica, permite asignar un hijo al bloque seleccionado.

 Modificar bloque: permite cambiar el nombre del bloque seleccionado, sin embargo al
Experto no le está permitido renombrar el nombre del bloque principal.

 Actualizar link: permite ingresar un link o liga al bloque seleccionado, pueden ser archivos
de paquetería Microsoft Office, PDF, MP3, imágenes, entre otros, los cuales deben estar
almacenados dentro de la carpeta destinada para su descarga. Del mismo modo se puede
ingresar la liga a un archivo TXT que contenga links a páginas recomendadas que son
asignadas por el Experto

 Borrar bloque: permite eliminar el bloque seleccionado.

Nota: no se permite eliminar un bloque que contenga bloques hijos, tampoco se permite eliminar el
bloque principal.

6.3. Agregar un bloque


Paso 3. Para agregar un bloque hijo, se debe seleccionar el bloque al que se le desea añadir y
teclear la descripción del nuevo bloque, seleccionar la opción para Agregar hijo de la lista de
funciones y dar clic en el botón Aceptar.

My Poltree notifica en pantalla que se ha Agregado un bloque.

205
6.4. Agregar links para páginas recomendadas
Paso 4. Seleccionar el bloque al que se desea agregar un link, y teclear la ruta del archivo que
contiene las ligas recomendadas en un TXT en el campo “Inserta link”, seleccionar la función
Actualizar link y dar clic en el botón Aceptar.

My Poltree indica en pantalla que se modificó o actualizo un bloque.

206
6.5. Agregar un link de descarga de un documento
Paso 5. Seleccionar el bloque al que se desea agregar un link de descarga de documento y teclear
en el campo “Inserta link” la ruta del documento donde se encuentra almacenado dicho archivo,
seleccionar la opción Actualizar link y dar clic en el botón Aceptar.

My Poltree del mismo modo notifica que fue modificado o actualizado un bloque.

207
6.6. Renombrar un bloque
Paso 6. Para renombrar un bloque, se debe seleccionar y escribir el nombre en el campo
“Descripción” y seleccionar la opción Modificar bloque y dar clic en Aceptar.

My Poltree notifica que se modifico o actualizo un bloque.

208
6.7. Eliminar un bloque
Paso 7. Para eliminar un bloque, se debe seleccionar y elegir la opción Borrar bloque de la lista de
funciones y dar clic en el botón Aceptar.

My Poltree notifica que fue eliminado un bloque.

209
El usuario Experto debe dar clic en Cerrar Sesión para salir del modulo para Expertos.

210
Código fuente del prototipo My Poltree
Interfaz para usuario final

<?php include("ar/JvFcn.php");?>
<?php include("ar/mostrar.php");?>

<HTML>
<HEAD>
<?php
if(isset($_GET['hacer'])){
if($_GET['hacer']){
config2();
saludo($_GET['fid']);
echo 'myTree.selectNode('.$_GET['s'].',true);';
end1();
}
}else{
}
?>
<script>
function buscar() {
var selnodes = myTree.getSelectedNodes();
if(selnodes.length > 0){
window.open("buscar.php?id="+selnodes[0].id);
}else{
alert('Selecciona el bloque de busqueda');
}

}
function ChangePosition() {
var pos = parseInt(document.formBuscar.rootPosition.value);

myTree.config.iRootOrientation = pos;
switch (pos)
{
case ECOTree.RO_TOP:
myTree.config.topXAdjustment = 20;
myTree.config.topYAdjustment = -20;
break;
case ECOTree.RO_BOTTOM:

myTree.config.topXAdjustment = 20;
myTree.config.topYAdjustment = -500;

break;
case ECOTree.RO_RIGHT:
myTree.config.topXAdjustment = 20;
myTree.config.topYAdjustment = -500;

break;
case ECOTree.RO_LEFT:
myTree.config.topXAdjustment = 20;

211
myTree.config.topYAdjustment = -20;

break;
}
myTree.UpdateTree();
}
</script>
<center><img src="IMAGENES/poltreen.GIF" />
<p><img src="IMAGENES/final.GIF" /></p>
</center>
<TITLE>BIENVENIDO A MY POLTREE</TITLE>
<script type="text/javascript" src="ar/ECOTree.js"></script>
<link type="text/css" rel="stylesheet" href="ar/ECOTree.css" />
</HEAD>
<body background="IMAGENES/linea.jpg" onLoad="CreateTree();">
<CENTER>
<H3>Introduce palabra clave: </H3><HR>
<form name="formBuscar" action="buscador.php" method="get">
<input type="text" name="q">
<input type="submit" value="Buscar en Mapa">
<?php
if(isset($_GET['hacer'])){
echo '<input type="button" name="Bdo" id="Bdo" value="Buscar en google"
OnClic="javascript:buscar();"/>';
echo '
<select name="rootPosition" id="rootPosition" onChange="ChangePosition();" >
<option value="0"selected="selected">Arriba</option>
<option value="1">Abajo</option>
<option value="2">Derecha</option>
<option value="3">Izquierda</option>
</select>
';
}
?>

</form>
</CENTER>
<HR>
<?php
if(isset($_GET['hacer'])){
$DesMapa=descripcion($_GET['fid']);
echo '<center><b>MAPA: <em>'.$DesMapa.'</em></b></center>';
}
?>
<div id="myTreeContainer"> </div>
</BODY>
</HTML>

212
Código fuente para establecer conexión con Google
<?php
$ar=1;
$idcad="";
$busca="";
$g1='http://www.google.com.mx/#hl=es&q=';
$g2='&meta=&aq=f&oq=';
$g3='&fp=5af4cc7663617887';
function dameid($id){
$link = mysql_connect('localhost', 'root','root');
if (!$link) {
die('Conexion no establecida: ' . mysql_error());
}
mysql_select_db("postal", $link);
$result = mysql_query("SELECT * FROM bloque WHERE id='".$id."'", $link);
$row = mysql_fetch_row($result);
global $ar;
global $idcad;
$ar=$row[1];
$idcad=$row[3];
}
$romper=1;
dameid($_GET['id']);
do
{
if($ar==-1)
{
$busca.='+%2B"'.$idcad.'" ';
$romper=2;

}else{
$busca.='+%2B"'.$idcad.'" ';
dameid($ar);
}

}while($romper==1);

//invierte cadena
$tok=strtok($busca,"+");
$arreglo[1]=$tok;
$i=2;
while ($tok) {
$tok = strtok ("+");
$arreglo[$i]=$tok;
$i=$i+1;
}
$i=$i-2;
$busca="";
for ($j=0;$j<=$i;$j++)
{
$busca=$busca.$arreglo[$i-$j];
}
$busca=$g1.$busca.$g2.$busca.$g3;
header("Location: ".$busca.'"');
?>

213
Código fuente para el buscador
En este archivo se muestra el código que define las características de las variables principales del
buscador y el nombre de la base de datos, cabe mencionar que esta fuente es una referencia
supervisada por Carlos Arjona de Onlinegrup

<?
/********************************************************************
buscador.php - Programado por carlos arjona - carjona@onlinegrup.com

Notas:
el buscador pide 2 variables pasadas por GET, y son las siguientes:
$sec -> esta define la seccion en la que buscaremos. Si se desea
buscar en todas las secciones hay que pasarle $sec = "TODAS"

$q -> esta variable es una cadena que contiene el texto de busqueda

Debo hacer un apunte, y es que si el valor de $q es '%' lo que pasara


es que el buscador sacara todos los registros de todas las tablas en las
que tu permitas buscar, asi que te aconsejo que controles esto :)
********************************************************************/

// nombre de la base de datos


$DBNAME = "postal";

// esta variable conecta con la base de datos, y requiere el nombre del host al que se desea
// conectar, el usuario y el password (sustituye las 3 variables por el valor correspondiente)
$link = mysql_connect(localhost, root, root);

// variable que contara las coincidencias


$coincidencias = 0;
// caracteres minimos permitidos para la busqueda
$num_car_minimo = 2;

// estas variables se usan para enviar un email cuando se ha realizado una búsqueda
// Si $notificar es TRUE enviara el email.
$notificar = FALSE;
$email_dest = "carjona@onlinegrup.com";
$asunto = "Búsqueda en byte1024";
$q=$_GET['q'];
$sec="TODAS";
if(strlen($q) <= $num_car_minimo)
{
echo $q."tama: ".strlen($q);
?>
<script type="text/javascript">
alert('El texto de consulta debe superar los <?echo $num_car_minimo;?> carácteres');
history.back();
</script>
<?
}
else
{
// enviamos el email si $notificar es cierto
if($notificar == TRUE)
mail($email_dest,$asunto,$q);
?>

214
<body background="IMAGENES/linea.jpg">
<table width="100%" cellpadding="0" cellspacing="2">
<tr>
<td>
<td width="90%">
<p class="titulo" align="center">Buscando "<i><?echo $q?></i>" en <b><?echo
strtoupper($sec);?></b></p>
</td>
<td>
</tr>

</table>
</body>
<br>
<?
/**************************************************************************************************/
// en este array guardaremos las tablas en las que permitiremos que se realice la busqueda

$tablas = array("bloque");

// este array guarda simplemente las carpetas en las que el buscador puede acceder. Si al
comprobar
// todos los elementos no encuentra ninguno igual a $sec, no busca
// esta variable solo la utiliza la funcion fileSearch()
$dirs = array("dai","articulos");

// en esta variable definiremos argumentos especiales que requiera la pagina php encontrada
// por ejemplo en las noticias siempre direccionaremos a noticias.php?sec=2&id=lokesea
// pues bien, tenemos que definir ese $sec de alguna forma
// el id=lokesea lo añade el buscador al generar el enlace
$paginas = array("index.php?hacer=1&");

// esta otra variable definira (con un valor numerico) que campo es el que define la descripcion
// que saldra en el enlace final que genera el buscador. Devuelve el numero de fid o familia al que
pertenece
$descs = array(3);

// esta variable definira cual es el identificativo de toda tabla. Por lo normal siempre sera
// el 0, pero pueden darse casos contrarios. Devuelve el numero del id del bloque se esta
buscando.
$keys = array(2);

// aqui guardamos las extensiones de los ficheros que dejaremos que el buscador lea.
// Es recomendable restringir los ficheros .php o los que guarden cosas que no queremos que se
vean
// pongo un ejemplo: si alguien busca "mysql_db_query" y aqui permitimos buscar en los ficheros
.php
// nos habrán capturado el password
$valid_ext = array("html","txt","htm");
/**************************************************************************************************/

// transformamos el texto de busqueda a un array


// para poder tratar las palabras por separado
$q = explode(" ", $q);

215
// la busqueda se debe realizar en cada item de $tablas
if(strtoupper($sec) == "TODAS")
{
// buscamos en una tabla
$tabla_query = $tablas;
for($i=0; $i < count($tabla_query); $i++)
dbSearch($i);

/* buscamos en un directorio. En este caso no hay directorio


for($i=0; $i< count($dirs); $i++)
fileSearch($dirs[$i]);*/
}
else
{
// en este caso la consulta ataca a una tabla. Si se pone un valor para $sec
// que no se encuentre en $tablas, simplemente no encontrara nada (ni buscara)
for($i=0; $i<count($tablas); $i++)
{
if(strtoupper($tablas[$i]) == strtoupper($sec))
dbSearch($i);
}

// recorremos el array dirs buscando la coincidencia del valor de $sec con el


// valor de cada item del array
for($i=0; $i<count($dirs); $i++)
{
if($dirs[$i] == $sec)
fileSearch($dirs[$i]);
}
}

?>
<p align="center"><?echo "<b>Hay $coincidencias coincidencia(s)</b>";?></p>
<center><img src="IMAGENES/esfer.jpg" />
<?
}

// esta funcion busca el texto definido por el array $q sobre la tabla definida por $numElemento,
// que se correspondera a un elemento del array $tablas
function dbSearch($numElemento)
{
// es necesario llamar a estas variables externas
global $q;
global $DBNAME, $link;
global $tablas, $paginas, $keys, $descs;
global $coincidencias;

// sacamos el numero de campos y los nombres que tiene esa tabla


$result = mysql_db_query($DBNAME, "SELECT * FROM $tablas[$numElemento] WHERE
1", $link);
$num_fields = mysql_num_fields($result);
$fields = mysql_fetch_field($result);
?>
<table width="100%" align="center" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#3c82b5" style="color:#FFFFFF; font-weight:bold; ">

216
&nbsp;<?echo "Búsqueda en $tablas[$numElemento]";?>
</td>
</tr>

<tr>
<td style="border: 1px solid #bbbbbb;" bgcolor="#f0f0f0">
<table width="100%" cellspacing="3" cellpadding="0">
<?
// realizamos la consulta SQL y escribimos los resultados
$select = "SELECT *";
$from = "FROM $tablas[$numElemento]";
$where = "WHERE ";

// construimos la clausula WHERE


for($word = 0; $word < count($q); $word++)
{
$where .= "(";
for($field=0; $field < $num_fields; $field++)
{
$where .= mysql_field_name($result, $field) . " LIKE
'%$q[$word]%'";
if($field < $num_fields-1) $where .= " OR ";
}
$where .= ")";
if($word < count($q)-1) $where .= " AND ";
}

// construimos la consulta entera


$query = $select . " " . $from . " " . $where;
$result = mysql_db_query($DBNAME, $query, $link);

if(mysql_num_rows($result) > 0)
{
$coincidencias += mysql_num_rows($result);

// imprimimos resultados
for($row=0; $reg = mysql_fetch_array($result);
$row++)
{
// generamos todo el enlace
$desc = sprintf("%d",$descs[$numElemento]);

// acortamos la descripcion si sobrepasa de los 60


caracteres
if(strlen(nohtml($reg[$desc])) > 60) $desc =
substr(nohtml($reg[$desc]), 0, 60) . "...";
else $desc = nohtml($reg[$desc]);

// valor y nombre del campo clave (id)


// (ver variable $keys, arriba)
$key = sprintf("%d",$keys[$numElemento]);
$key_name = mysql_field_name($result, $key);

// definimos con que color pintaremos el fondo de


la celda
// Este color se alterna

217
if($row % 2 == 0) $bgcolor = "#f8f8f8";
else $bgcolor = "fefefe";
?>
<tr>
<td bgcolor="<?echo $bgcolor;?>">
<?
// esto es especial para los comentarios, ya
que el link que se crea
// tiene que apuntar al comentario indicado
por #id
if($tablas[$numElemento] = "comentarios")
$posicion =$reg[$key];

echo "<img
src='images/punto.gif'>&nbsp;<a class='dai'
href='$paginas[$numElemento]$key_name=$posicion&s=$reg[0]'>$desc</a>";?>
</td>
</tr>
<?
}
}
else echo "<tr><td bgcolor='#f8f8f8' style='font-size: 10px;
font-family: tahoma;'>Sin resultados</td></tr>";

?>
</table>
</td>
</tr>
</table>
<br>
<?
}

// esta funcion controla si el fichero que intentamos leer


// tiene una extension definida en el array $valid_ext (ver arriba)
function grant_ext($fichero)
{
global $valid_ext;

$file_members = explode(".", $fichero);

for($i=0; $i<count($valid_ext); $i++)


{
if($file_members[1] == $valid_ext[$i])
return TRUE;
}

return FALSE;
}

// esta funcion transforma un texto con tags HTML a texto plano


function nohtml($string)
{
for($conta = 0, $tag = 0; $conta < strlen($string); $conta++)
{
switch($string[$conta])

218
{
case "<": $tag++; break;
case ">": $tag--; break;
default:
if($tag == 0) $copia .= $string[$conta];
break;
}

}
return $copia;
}

?>

219
Código fuente que permite cargar las funciones básicas de ECOTree
El experto podrá interactuar con los mapas.

<?php include("seguridad.php");?>
<?php include("JvFcn.php");?>
<?php include("mostrar.php");?>
<html>
<head>
<?php JavaFunc();?>
<title>Actualizar-MAPAS</title>
<script type="text/javascript" src="ECOTree.js"></script>
<link type="text/css" rel="stylesheet" href="ECOTree.css" />
<xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v"/>
<style>v\:*{ behavior:url(#default#VML);}</style>
<style>
.copy {
font-family : "Verdana";
font-size : 10px;
color : #CCCCCC;
}
.gbd {border-top:1px solid #c9d7f1;font-size:1px}
.gbh {border-top:1px solid #c9d7f1;font-size:1px}
.gbh {
height:0;
position:absolute;
top:36px;
width:100%
}
a.gb1 {color:#00c !important}
a.gb2 {color:#00c !important}
a.gb3 {color:#00c !important}
a.gb4 {color:#00c !important}
#guser {padding-bottom:7px !important;text-align:right}
.style1 {
color: #FF0000;
font-weight: bold;
}
</style>
<!-- Empieza el script que busca las variables y ve que hacer phpmain.php-->
<?php config1();?>
<?php
if(isset($_POST['hacer']) ){
if($_POST['hacer']==1){
//cuando solo cambiamos de mapa
if(isset($_POST['fid'])){ //se puede cargar por el nombre de la variable fid
//ya obtuvo el fid, ahora se validará si es del dueño
$fid=$_POST['fid'];
$link = mysql_connect('localhost', 'root','root');
if (!$link){
die('Conexion no establecida: ' . mysql_error());
}
mysql_select_db("postal", $link);
$result = mysql_query("SELECT * FROM arbol WHERE fid='".$fid."'", $link);
if(result){
$exper = mysql_fetch_row($result);
if($exper[1]==$_SESSION[user_name]){

220
$descripcion=$exper[2];
$msj="";
saludo($fid);
}else{
$msj= "El Mapa que intentas acceder no es de tu propiedad";
}
}
//************************************************
}else{
$msj= "Error en el parametro fid";
}
}else{
//acaban los operaciones del oper
if($_POST['hacer']=='2'){
if(isset($_POST['sid'])){
if(isset($_POST['fid'])){
if(isset($_POST['dsc'])){
if(isset($_POST['rootOperacion'])){
//se han validado los datos para hacer las operaciones +++++++++++++++++++++++
$fid=$_POST['fid'];
$link = mysql_connect('localhost', 'root','root');
if (!$link){
die('Conexion no establecida: ' . mysql_error());
}
mysql_select_db("postal", $link);
$result = mysql_query("SELECT * FROM arbol WHERE fid='".$fid."'", $link);
if(result){
$exper = mysql_fetch_row($result);
if($exper[1]==$_SESSION[user_name]){
$descripcion=$exper[2];
$fid=$exper[0];
switch($_POST['rootOperacion'])
{
case 0://agregar un bloque
$result = mysql_query("INSERT INTO `postal`.`bloque` (`id` ,`pid` ,`fid` ,`dsc` ,`w`
,`h` ,`target` ,`meta`)VALUES (NULL , '".$_POST['sid']."', '".$_POST['fid']."', '".$_POST['dsc']."',
NULL , NULL ,'".$_POST['dsc2']."' , NULL)", $link);
if($result){
$msj="AGREGASTE UN BLOQUE";
}else{
$msj="Error agregando bloque";
}
break;

case 1://modificar un bloque


$result = mysql_query("SELECT * FROM bloque WHERE id='".$_POST['sid']."'
and pid=-1", $link);
$num_rows = mysql_num_rows($result);
if($num_rows>0){
$msj="No puedes modificar un bloque padre";
}else{
$result = mysql_query("UPDATE `postal`.`bloque` SET `dsc` = '".$_POST['dsc']."'
WHERE `bloque`.`id` =".$_POST['sid']." LIMIT 1",$link);
if($result){
$msj="MODIFICASTE UN BLOQUE";
}else{

221
$msj="Error al intentar modificar un bloque";
}
}
break;

case 2;//eliminar un bloque


$result = mysql_query("SELECT * FROM bloque WHERE pid='".$_POST['sid']."'",
$link);
$num_rows = mysql_num_rows($result);
if($num_rows > 0){
$msj="No se puede eliminar bloque con hijos";
}else{
$result = mysql_query("SELECT * FROM bloque WHERE id='".$_POST['sid']."'
and pid=-1", $link);
$num_rows = mysql_num_rows($result);
if($num_rows>0){
$msj="NO PUEDES ELIMINAR BLOQUE PADRE";
}else{
$result = mysql_query("DELETE FROM `postal`.`bloque` WHERE `bloque`.`id` = "
.$_POST['sid']. " LIMIT 1",$link);
if($result){
$msj="ELIMINASTE UN BLOQUE";
}else{
$msj="Error al intentar eliminar un bloque";
}
}
}

break;

case 3;//modificar hipervinculo


$result = mysql_query("SELECT * FROM bloque WHERE id='".$_POST['sid']."'
and pid=-1", $link);
$num_rows = mysql_num_rows($result);
if($num_rows>0){
$msj="NO PUEDES MODIFICAR UN BLOQUE PADRE";
}else{
$result = mysql_query("UPDATE `postal`.`bloque` SET `target` =
'".$_POST['dsc2']."' WHERE `bloque`.`id` =".$_POST['sid']." LIMIT 1",$link);
if($result){
$msj="MODIFICASTE UN BLOQUE";
}else{
$msj="Error al intentar modificar un bloque";
}
}
break;
}
saludo($fid);//
}else{
$msj= "El Mapa que intentas acceder no es de tu propiedad";
}
}
//****************************************************************************
}else{
$msj= "Error en el parametro de la operación";
}

222
}else{
$msj= "Error en el parametro de la descripción";
}
}else{
$msj= "Error en el parametro del mapa seleccionado";
}
}else{
$msj= "Error en el parametro del bloque seleccionado";
}
}else{
$msj= "Error en el parametro de mostrar";
}

}
}else{
//$msj= "Error en el parametro hacer";
}
?>
<?php end1();?>
<!-- termina todo lo que hace el script -->
</head>

<body background="IMAGENES/linea.jpg" onLoad="CreateTree();" onLoad="CreateTree();">


<div class="gbh" style="right: 3.75pt;"></div>
<div id="guser" width="100%"><nobr><b><h3>Bienvenido <?php echo $_SESSION[user_name];
?></b> | <a href="paginarbol.php" class="gb4">Selecciona Mapa</a> | <a href="logout.php"
class="gb4">Cerrar Sesion</h3></a></nobr></div>
<form id="form1" name="form1" method="post" action="index.php">
<?php
if(isset($fid)){
echo '<input type="hidden" name="fid" value='.$fid.'>';
}else{
echo '<input type="hidden" name="fid">';
}

if(isset($descripcion)){
echo '<input type="hidden" name="fid_dsc" value="'.descripcion.'">';
}else{
echo '<input type="hidden" name="fid_dsc">';
$descripcion="Selecciona un Mapa por Favor";
}
?>

<input type="hidden" name="sid">


<input type="hidden" name="hacer">

<table >
<tr>
<td><label>Descripcion:
<input name="dsc" type="text" id="dsc" size="30" maxlength="30" />
</label></td>
<td><select name="rootOperacion" id="rootOperacion">
<option value="0" selected="selected">Agregar Hijo</option>
<option value="1">Modificar bloque</option>

223
<option value="3">Actualizar link</option>
<option value="2">Borrar bloque</option>
</select></td>
<td ><input type="button" name="Bdo" id="Bdo" value="Aceptar"
OnClick="javascript:ObtenId();"/></td>
<?php
echo'<td width="480"><div align="right"><span class="style1">'.$msj.'</span></div></td>';
?>
</tr>
<tr>
<td>
<label>Inserta link:
<input name="dsc2" type="text" id="dsc2" size="30" maxlength="2048" />
</label></td>

<td><select name="rootPosition" id="rootPosition" onChange="ChangePosition();" >


<option value="0"selected="selected">Arriba</option>
<option value="1">Abajo</option>
<option value="2">Derecha</option>
<option value="3">Izquierda</option>
</select></td>
</tr>
</table>
</form>
<?php
echo '<center><b>MAPA: <em>'.$descripcion.'</em></b></center>';
?>
<div id="myTreeContainer"> </div>
</body>
</html>

224
Código fuente que contiene las configuraciones de ECOTree
<?php
function JavaFunc(){
echo "
<script>
function ChangePosition() {
var pos = parseInt(document.form1.rootPosition.value);

myTree.config.iRootOrientation = pos;
switch (pos)
{
case ECOTree.RO_TOP:
myTree.config.topXAdjustment = 20;
myTree.config.topYAdjustment = -20;
break;
case ECOTree.RO_BOTTOM:

myTree.config.topXAdjustment = 20;
myTree.config.topYAdjustment = -500;

break;
case ECOTree.RO_RIGHT:
myTree.config.topXAdjustment = 20;
myTree.config.topYAdjustment = -500;

break;
case ECOTree.RO_LEFT:
myTree.config.topXAdjustment = 20;
myTree.config.topYAdjustment = -20;

break;
}
myTree.UpdateTree();
}

function SearchTree() {
var txt = document.form1.search.value;
myTree.searchNodes(txt);
}
function ObtenId() {
var selnodes = myTree.getSelectedNodes();
if (selnodes == \"\")
{
alert('No se ha seleccionado nodo para operar!!');
}else{
document.form1.sid.value=selnodes[0].id;
document.form1.hacer.value=2;
document.form1.submit();
}
}
</script>
";
}
function config1(){

225
echo"
<script>
var myTree = null;
function CreateTree() {
myTree = new ECOTree('myTree','myTreeContainer');
myTree.config.render=\"AUTO\";
myTree.config.linkType = 'M';
myTree.config.searchMode=ECOTree.SM_DSC;
myTree.config.linkColor = \"#8A4B08\";
myTree.config.nodeColor = \"#ACFA58\";
myTree.config.nodeBorderColor = \"#38610B\";
myTree.config.nodeSelColor=\"#F7FE2E\";
myTree.config.useTarget = true;
myTree.config.selectMode = ECOTree.SL_SINGLE;
myTree.config.defaultNodeWidth = 110;
myTree.config.defaultNodeHeight = 45;
myTree.config.iSiblingSeparation = 20;
";
}
function config2(){
echo"
<script>
var myTree = null;
function CreateTree() {
myTree = new ECOTree('myTree','myTreeContainer');
myTree.config.render=\"AUTO\";
myTree.config.linkType = 'M';
myTree.config.searchMode=ECOTree.SM_DSC;
myTree.config.linkColor = \"#8A4B08\";
myTree.config.nodeColor = \"#ACFA58\";
myTree.config.nodeBorderColor = \"#38610B\";
myTree.config.nodeSelColor=\"#F7FE2E\";
myTree.config.useTarget = true;
myTree.config.selectMode = ECOTree.SL_SINGLE;
myTree.config.defaultTarget = 'javascript:buscar();'
myTree.config.defaultNodeWidth = 110;
myTree.config.defaultNodeHeight = 45;
myTree.config.iSiblingSeparation = 20;
";
}
function end1(){
echo"
myTree.UpdateTree();
}
</script>
";
}
?>

226
Código fuente para la interfaz de Administrador
El administrador puede realizar el ABC de Expertos y Mapas

<?php include("seguridad2.php");?>
<html>
<head>

<style>
.copy {
font-family : "Verdana";
font-size : 10px;
color : #CCCCCC;
}
.gbd {border-top:1px solid #c9d7f1;font-size:1px}
.gbh {border-top:1px solid #c9d7f1;font-size:1px}
.gbh {
height:0;
position:absolute;
top:36px;
width:100%
}
a.gb1 {color:#00c !important}
a.gb2 {color:#00c !important}
a.gb3 {color:#00c !important}
a.gb4 {color:#00c !important}
#guser {padding-bottom:7px !important;text-align:right}
.style1 {
color: #FF0000;
font-weight: bold;
}
</style>
</head>
<body background="IMAGENES/linea.jpg" onLoad="CreateTree();">
<div class="gbh" style="right: 3.75pt;"></div>
<div id="guser" width="100%"><nobr><b><H3>Bienvenido <?php echo $_SESSION[user_name];
?></b> | <a href="experto.php?hacer=mostrar" class="gb4">Admin.Expertos</a> |<a
href="experto.php?hacer=mostrarar" class="gb4">Admin. Mapa</a> | <a href="logout.php"
class="gb4">Cerrar Sesion</h3></a></nobr></div>
<!-- Esta parte cambia el if de acuerdo a lo que se planee hacer -->
<?php
include("funcionesexperto.php");
require_once 'PHPPaging.lib.php';

//++++ Funciones que hacen las diferentes operaciones

if(isset($_REQUEST['hacer'])){

if($_GET['hacer']=='mostrar'){
mostrar("");
}

if($_GET['hacer']=='buscar'){
mostrar("");
buscar ($_GET['valor']);
}//codigo para buscar un experto

227
if($_GET['hacer']=='editar'){
editar($_GET['usuario']);
}//codigo para editar un experto -mostrar-

if($_POST['hacer']=='editarex'){

if($_POST['usuario']<>"" and $_POST['pass'] <>""){


if(strlen($_POST['pass'])>4){
$msj=editarex($_POST['usuario'],$_POST['pass'],$_POST['quien']);
}else{
$msj='El password a editar debe contener 5 caracteres minimo';
}
}else{
$msj="Debe llenar los campos";
}
mostrar($msj);
}//codigo para editar un experto -mostrar-

if($_GET['hacer']=='agregar'){
agregar();
}//codigo para agregar un experto -mostrar-

if($_POST['hacer']=='agregarex'){
if($_POST['usuario']<>"" and $_POST['pass'] <>""){
if(strlen($_POST['pass'])>4){
$msj=agregarex($_POST['usuario'],$_POST['pass']);
}else{
$msj='El password debe contener 5 caracteres minimo';
}
}else{
$msj='Debe llenar los campos';
}
mostrar($msj);
}//codigo para agregar un experto -haciendolo-

if($_GET['hacer']=='borrar'){
$link = mysql_connect('localhost', 'root','root');
if (!$link){
die('Conexion no establecida: ' . mysql_error());
}
mysql_select_db("postal", $link);
$result=mysql_query("select * from `postal`.`arbol` WHERE `arbol`.`own` =
'".$_GET['usuario']. "'",$link);
if($result){
$num_rows = mysql_num_rows($result);
if($num_rows==0){
$result = mysql_query("DELETE FROM `lr`.`authorize` WHERE `authorize`.`username` = '"
.$_GET['usuario']. "' LIMIT 1",$link);
if($result){
$msj="ELIMINASTE A: ".$_GET['usuario'];
}else{
$msj="Error al intentar eliminar";
}
mostrar($msj);

228
}else{
mostrar("EL USUARIO AUN TIENE MAPAS");
}
}
}//codigo para borrar un experto

//++++++++++++++++++ codigo del ABC de Administrador para mapas


++++++++++++++++++++++++++++++

if($_GET['hacer']=='mostrarar'){
mostrarar("");//muestra interfaz administración de mapa
}
if($_GET['hacer']=='buscarar'){
mostrarar("");
buscarar ($_GET['valor']);
}

if($_GET['hacer']=='mostrarexperto'){
mostrarexperto("");
}//codigo para agregar un experto -mostrar-

if($_GET['hacer']=='buscarex'){
mostrarexperto("");
buscarex ($_GET['valor']);
}

if($_GET['hacer']=='mostrarexperto2'){
mostrarexperto2("",$_GET['fid']);
}//codigo para agregar un experto -mostrar-

if($_GET['hacer']=='buscarex2'){
mostrarexperto2("",$_GET['fid']);
buscarex2 ($_GET['valor'],$_GET['fid']);
}

if($_GET['hacer']=='asignar'){
mostrarexperto2(asignar($_GET['fid'],$_GET['experto']),"");
}

if($_GET['hacer']=='agregarar'){
agregarar("","",$_GET['experto'],"agregararex");
}

if($_GET['hacer']=='agregararex'){
//validar los datos
if($_GET['dsca']<>"" and $_GET['dscb']<>""){
mostrarar(agregararex($_GET['experto'],$_GET['dsca'],$_GET['dscb']));
}
}

if($_GET['hacer']=='borrarbol'){
mostrarar(borrarbol($_GET['fid']));
}

if($_GET['hacer']=='editarar'){

229
editarar($_GET['fid'],$_GET['des']);
}

if($_GET['hacer']=='editararbol'){

$msj=editararbol($_GET['fid'],$_GET['desarbo'],$_GET['desbloo'],$_GET['desarbn'],$_GET['desblo
n']);
mostrar($msj);
}
}
?>
</body>
</html>

Código fuente para la interfaz de Experto


El Experto realiza el Altas y cambios de mapas

<?php include("seguridad.php");?>
<?php include("funcionesexperto.php");?>
<script type="text/javascript">
function mostrar_arbol (a)
{
document.form1.fid.value=a;
document.form1.hacer.value=1;
document.form1.submit();
}
</script>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"


"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Selecciona el Mapa con cual trabajar</title>

<style>
.copy {
font-family : "Verdana";
font-size : 10px;
color : #CCCCCC;
}
.gbd {border-top:1px solid #c9d7f1;font-size:1px}
.gbh {border-top:1px solid #c9d7f1;font-size:1px}

230
.gbh {
height:0;
position:absolute;
top:36px;
width:100%
}
a.gb1 {color:#00c !important}
a.gb2 {color:#00c !important}
a.gb3 {color:#00c !important}
a.gb4 {color:#00c !important}
#guser {padding-bottom:7px !important;text-align:right}
.style1 {
color: #FF0000;
font-weight: bold;
}
</style>
</head>
<body background="IMAGENES/linea.jpg" onLoad="CreateTree();">
<div class="gbh" style="right: 3.75pt;"></div>
<div id="guser" width="100%"><nobr><b><h3>Bienvenido <?php echo $_SESSION[user_name];
?></b> | <a href="paginarbol.php" class="gb4">Seleccion Mapa</a> | <a href="logout.php"
class="gb4">Cerrar Sesion</h3></a></nobr></div>
<form id="form1" name="form1" method="post" action="index.php">
<input type="hidden" name="fid">
<input type="hidden" name="hacer">
</form>
<h2 align="center"><span class="style1">Selecciona un Mapa</span></h2>
<table width="407" border="1" align="center">
<tr>
<th width="101" bgcolor="#33CCFF" scope="col"><div align="center">fid</div></th>
<th width="290" bgcolor="#33CCFF" scope="col">Descripcion</th>
<th width="290" bgcolor="#33CCFF" scope="col">Bloque Padre</th>
</tr>
<!-- empieza la tabla -->
<?php
if(isset($_SESSION[user_name]))
{
require_once 'PHPPaging.lib.php';

231
// Abrimos la conexión al servidor MySQL
$link = mysql_connect('localhost', 'root', 'root');
mysql_select_db('postal', $link);

// Instanciamos, indicando el recurso de conexión


$paging = new PHPPaging($link);
$q = "SELECT * FROM arbol WHERE own='".$_SESSION[user_name]."'";
// Y se usa la función agregarConsulta() (Ver documentación)
$paging->agregarConsulta($q);
$paging->ejecutar();
$polk=1;
while($datos = $paging->fetchResultado()) {
// En cada ciclo, la variable $datos se convierte en un arreglo
// que contiene los datos de la fila que corresponde
if ($polk==1){
echo"<tr>";
echo"<td bgcolor=\"#FFFFFF\"><div align=\"center\">".$datos['fid']."</div></td>";
//<td bgcolor="#66CCFF" ><div align="center"><a href="javascript:t.collapseAll();">Collapse
All</a></div></td>
echo"<td bgcolor=\"#FFFFFF\"><div align=\"center\"><a
href=\"javascript:mostrar_arbol(".$datos['fid'].");\"style=\"text-
decoration:none\">".$datos['des']."</a></div></td>";
echo"<td bgcolor=\"#FFFFFF\"><div align=\"center\">".desbloque($datos['fid'])."</div></td>";
echo"</tr>";
$polk=2;
}else{
echo"<tr>";
echo"<td bgcolor=\"#99CCFF\"><div align=\"center\">".$datos['fid']."</div></td>";
echo"<td bgcolor=\"#99CCFF\"><div align=\"center\"><a
href=\"javascript:mostrar_arbol(".$datos['fid'].");\"style=\"text-
decoration:none\">".$datos['des']."</a></div></td>";
echo"<td bgcolor=\"#99CCFF\"><div align=\"center\">".desbloque($datos['fid'])."</div></td>";
echo"</tr>";
$polk=1;
}
}
}
?>

232
<!-- termina la tabla -->
</table>
<?php
if(isset($_SESSION[user_name])){
// Imprimimos algo de información
echo'<div align="center">';
echo "<b>Página ".$paging->numEstaPagina()." de ".$paging->numTotalPaginas()."<br />";
echo "</b>Mostrando ".$paging->numRegistrosMostrados()." resultados, del ".$paging-
>numPrimerRegistro()." al ".$paging->numUltimoRegistro();
echo " de un total de ".$paging->numTotalRegistros()."<br /><br />";
// Imprimimos la barra de navegación
echo $paging->fetchNavegacion();
echo '</div></th>';
}
?>
</body>
</html>

233
Comercialización de My Poltree
Estrategia de Mercado
1.- ¿Cuánto costó el prototipo?
Por Concepto de Transporte a Escuela
Nombre Horas totales Costo/hora Subtotal
Natalia 150 $33.5 $5,025
Isauro 200 $20 $4,000
Miguel 280 $55 $15,400
Total 630 $24,425

Por Concepto de Transporte de Trabajo


Nombre Horas totales Costo/hora Subtotal
Natalia 110 $30 $3,300
Isauro 210 $20 $4,200
Miguel 205 $44 $9,020
Total 525 $16,520

Por Concepto de Gastos de Desarrollo y Redacción


Concepto/Investigación Horas totales Costo/hora Subtotal
PyMES 40 $35 $1,400
Buscadores 50 $35 $1,750
Herramientas Tecno. 120 $35 $4,200
Metodología UML 40 $35 $1,400
Aplicación UML 40 $35 $1,400
Herramientas Mapas 60 $35 $2,100
Mentales
Vinculo herramienta mapas 20 $35 $700
mentales con plataforma de
programación.
Lenguaje de programación 150 $35 $5,250
Java
Lenguaje de programación 240 $35 $8,400
PHP
Total 760 $26,600

234
Por concepto de otros gastos
Concepto Costo Subtotal
Asesoría PHP $3,200 $3,200
Papelería, impresiones, $1,500 $4,500
comida, etc.
Total $7,700

Total de costo de prototipo My Poltree= $75,245

2.- ¿Cuánto costaría instalar el prototipo?


Las condiciones en las que se encuentra “My Poltree” en este momento permiten que se
pueda dar de alta los servicios del mismo en una empresa que cumplan los requerimientos
mínimos de Hardware y Software en sus equipos.
La empresa que decida obtener este programa sólo cubrirá por tiempo promocional los
costos de la instalación de “My Poltree”
El prototipo se instalará con 5 Mapas Mentales y se dejará funcionando en mínimo 1 día
trabajando 8 horas, esto dependiendo de la estructuración y configuración de cada uno de ellos. El
costo por hora de 1 ejecutivo para este servicio se desglosa a continuación:
Costo:
Concepto Costo Unitario
Costo/hora $75
Transporte $100
Papelería $70
Otros $55
Subtotal $300
Total (IVA incluido) $348

3.- ¿Sería Vendible?


Las Ventajas que caracterizan este prototipo son:
 Mejora la calidad de la búsqueda de información o gestión de documentos contenidos en
una empresa.
 Mejora la cadena de búsqueda acotando el número de resultados en Google de una
manera notable.
 Permite sugerir vínculos entre páginas web o archivos físicos en una carpeta compartida
dentro del servidor
 Tener la información requerida en un menor tiempo, para la toma de decisiones.

235
 Es un prototipo con interfaz intuitiva que puede ser usado en las PyMES o cualquier otra
área que lo justifique.
Dado la naturaleza de este proyecto, no es fácil determinar un precio de venta, puesto que
nos encontramos con una apertura de mercado (sin competencia), por lo cual suponemos que una
PyME puede invertir $10,000 o más en esta solución.
De igual forma al ser un bien intangible es difícil determinar el costo-beneficio de este
proyecto y por lo tanto se trata de un caso de estudio que esta fuera del alcance de nuestra tesis y
queda abierto para su estudio y análisis futuros.
4.- Conclusión Prueba Real
Queda postergada una prueba real dentro de una organización, la cual nos permitirá
mejorar la funcionalidad de este proyecto.
Las empresas que deseen tener esta prueba dentro de ellas, sólo deberán cubrir los gastos
de instalación que se mencionan en el punto número 2 esta estrategia de mercado.

RETORNO DE INVERSIÓN
Suponiendo que una PYME puede invertir $10,000 o más en esta solución y pensando que
en 1 mes se instalaría la solución en una empresa. Llegamos a la conclusión de que en promedio
de 8 meses estaremos recuperando más del costo total de este proyecto. De igual forma en 10
meses estaríamos obteniendo ya una utilidad.

236

También podría gustarte