005.3-M361d-CAPITULO II

Anuncio
34
CAPITULO II
MARCO TEÓRICO
2.1 GENERALIDADES
Ante el rápido crecimiento del volumen de información disponible en Internet, se hace
necesario mejorar los mecanismos de búsqueda y aprovechar al máximo las posibilidades
que nos ofrece la propia Internet. Para ello es necesario conocer cómo funcionan los
buscadores como herramienta básica, así como otros métodos para realizar búsquedas.
Si se busca un documento en Internet que realmente existe, tarde o temprano lo
encontraremos, pero se trata de encontrarlo en el menor tiempo posible. Un conocimiento
de las características de los diferentes buscadores permite elegir el método de búsqueda
en cada caso. Dentro de un mismo buscador, el resultado puede variar muchísimo, por
ejemplo, refinando la interrogación a la base de datos. Por tanto, la idea principal es saber
las posibilidades de los distintos buscadores, y establecer una comparación entre las
características de cada uno de ellos.
2.2 ANTECEDENTES DE INTERNET
Internet es una especie de autopista gigante que une a millones de personas y
organizaciones. Pero a diferencia de las autopistas tradicionales, en donde las personas y
cosas se desplazan de un lugar a otro; por Internet viajan ideas e información. En vez de
recorrer un área geográfica, usted se mueve por el ciberespacio, el espacio de movimiento
electrónico de ideas e información.
35
INTERNET: es una gigantesca red de cómputo, la cual se divide en cuatro aplicaciones:
correo electrónico, grupos de conversación, ejecución de programas y transferencia de
archivos., y al mismo tiempo posee dos utilidades: Gopher y World Wide Web.
Internet es una red mundial de gigantescas proporciones. Conecta entre si a sistemas de
cómputo del mundo entero interesados en compartir sus recursos. A si dado pie, a la
creación de una sociedad cooperativa, que forma una comunidad virtual de uno a otro
extremo del planeta.
El origen de Internet se remota a 1969, cuando el gobierno de los Estados Unidos financió
un importante proyecto de investigación sobre redes de cómputo. Se creó entonces una
red nacional de cómputo, llamada ARPANET (Advanced Research Proyect Agency
Network), Red Avanzada de Organismos Para Proyectos de Investigación). Fue usada por
organismos gubernamentales y militares para comunicarse y compartir recursos de
cómputo con investigadores a cargo de proyectos de seguridad nacional.
A partir de sus inicios militares y de investigación, Internet evolucionó hasta convertirse en
un instrumento de utilidad para muchas personas en su vida diaria. En 1995, más de 4
millones de computadoras en 156 países estaban conectadas a Internet, con más de 30
millones de usuarios. En el año 2000, 100 millones de computadoras en todos los países
del mundo se conectaron entre sí y dieron servicio a más de mil millones de usuarios.
Para tener acceso a Internet, es necesario conectarse a uno de los sistemas de cómputo
que ya estén en ella. Una vez que se realiza la conexión con un sistema, es posible
conectarse fácilmente con otro. La persona se desplaza electrónicamente de un sistema
de cómputo a otro, de una ubicación a otra y a menudo de un país a otro, todo apenas en
unos cuantos segundos. Lo notable en Internet es la increíble velocidad y eficiencia en la
realización de estas conexiones. En cuanto se está en Internet, parecería que se está en
una sola computadora gigante con ramificaciones en todo el mundo.
Uno de los aspectos más importantes y por la cual Internet se ha vuelto la fuente más
grande de consulta de información, son los Buscadores, los cuales permiten buscar
información de cualquier parte del mundo. Este ha sido uno de los logros más importantes
36
de Internet, ya que gracias a este servicio los estudiantes, profesionales y hombres de
negocios han podido realizar todo tipo de trabajos.
2.2.1 APLICACIONES DE INTERNET
9 CORREO ELECTRÓNICO: el envió y recepción de correo electrónico es el
servicio más popular de Internet. Puede enviar y recibir correo electrónico de
amigos y familiares en casi cualquier parte del mundo.
9 GRUPOS DE CONVERSACIÓN: se puede intervenir y escuchar conversaciones
y debates sobre una amplia variedad de temas de interés especial, con temas
que van desde el acondicionamiento físico hasta la búsqueda de empleo.
9 EJECUCIÓN DE PROGRAMAS: se pueden operar incluso programas selectos
de otras computadoras. Estos programas van desde juegos hasta programas
educativos de la NASA.
9 TRANSFERENCIA DE ARCHIVOS: se pueden copiar o transferir archivos de
una computadora a otra. Existen miles de programas y juegos gratuitos a
disposición en Internet.
9 BUSCADORES: son herramientas que facilitan la búsqueda de información en
la red, la cual puede ser desde un manual para aprender un programa en
específico, hasta libros completos o enciclopedias.
2.2.2 BUSCADORES
Conceptos:
o Un motor de búsqueda es una herramienta interactiva que ayuda a las personas a
localizar la información de su interés en la “World Wide Web”.
37
o Los motores de búsqueda constan de una base de datos locales que contienen
miles de referencias a recursos de información. Los usuarios son capaces de
interactuar con la base de datos, enviando pedidos que "verifican" en la base de
datos sí ésta contiene recursos que coincidan con el criterio especificado.
o Un motor de búsqueda o mecanismo de búsqueda (search engine) es un
programa que realiza búsquedas dentro de una base de datos. En el caso que nos
ocupa.
Existen bastantes motores de búsqueda disponibles en la Web.
Un motor de búsqueda Web, provee una interfaz entre el usuario y la mencionada base de
datos.
La interfaz presenta al usuario un lugar donde digitar una cadena de búsqueda, la cual
puede ser una palabra, una frase, una fecha, o algún otro criterio. Al mismo tiempo se
coloca un botón de comando con el cual se indica iniciar la búsqueda.
El motor de búsqueda Web ejecuta la cadena de búsqueda contra la base de datos,
devolviendo una lista de recursos que coinciden con el criterio, y muestra todos los
resultados encontrados al usuario en una porción de la pantalla prácticamente definida.
Muchos motores de búsqueda Web utilizan formularios y campos a rellenar como interfaz,
soportan arreglos para búsquedas complejas. Otros también incluyen instrucciones y
ayuda para buscar en la base de datos.
Dado que los motores de búsqueda Web pueden utilizar hipertexto, los usuarios son
capaces de conectarse directamente con el recurso listado en la pantalla de resultados.
38
¿Como es que los recursos aparecen en una base de datos de un motor de búsquedas
Web?
La mayoría de los motores de búsqueda utilizan herramientas automáticas o programas
para recolectar recursos. Estas herramientas, se les conoce como Worms, Spiders,
Crawlers, y robots, buscan miles de Websites en el mundo, recolectan información, y la
almacenan en la base de datos.
Para entender mejor de estas herramientas Se listan algunas de sus funcionalidades.
Un robot, según el “WWW Robots FAQ”, es un programa que de manera automática
atraviesa la estructura de documentos Web extrayendo un documento, y a partir de éste,
extrae recursivamente todos los documentos que están referenciados por enlaces. Los
documentos son introducidos en una base de datos e indexados para su posterior
localización por un mecanismo de búsqueda.
Un índice o directorio, es una recopilación manual de documentos, que pueden
mantenerse como directorio, o bien, ser introducidos también en una base de datos para
permitir que se realicen búsquedas sobre su contenido.
Originalmente los robots nacieron con la función principal de medir el tamaño del WWW,
pero rápidamente se convirtieron en herramientas muy útiles para localizar documentos.
El criterio para seleccionar las páginas que visita un robot depende de la configuración
construida en cada uno de ellos. En general parten de una lista de servidores inicial, y a
partir de ahí va visitando los diferentes enlaces de cada página hasta un nivel arbitrario
respecto al inicial. Cuando un robot entra en un nuevo servidor, busca un fichero que se
llama “robots.txt”, en el que se le indican los directorios permitidos y los prohibidos. Si este
fichero no existe, considera todos los directorios permitidos.
Además, se puede solicitar al robot direcciones de páginas para que sean visitadas e
incluidas en la base de datos. Para esto se suele rellenar un formulario dependiente
(submission form).
39
La manera en que cada robot indexa el contenido de las páginas que visita también varía
de unos a otros. Algunos robots indexan los títulos de páginas HTML. Los
primeros
párrafos o el contenido entero del documento, etc. Últimamente se ha generalizado el uso
del elemento HTML <META>, que está oculto para el usuario, y que permite al creador de
la página indicar al robot qué palabras clave quiere que sean indexadas y la descripción
de la página que aparecerá cuando un usuario la localiza.
Cada motor de búsqueda Web provee su propia base de datos, interfaz, y características
especiales.
Una base de datos de un motor de búsqueda no puede contener posiblemente toda pieza
de información que se encuentra en la WWW, es por eso que los resultados de las
búsquedas no incluirán todos los recursos Web disponibles.
Además, dado que cada motor de búsqueda recolecta recursos de manera distinta, lo más
seguro es que la misma frase digitada en distintos motores de búsquedas es seguro que
produzcan diferentes resultados.
Los motores de búsqueda (search engines ), Como hemos dicho, se trata de realizar
búsquedas dentro de una base de datos de documentos, que puede haber sido recopilada
por un robot, o bien puede ser un índice recopilado manualmente. En cualquier caso, el
motor de búsqueda recibe la interrogación del usuario (“Query”), que consiste en una o
varias palabras, realiza la búsqueda en la base de datos, y extrae una lista ordenada de
documentos que cumplen entera o parcialmente con la interrogación. El orden depende de
una puntuación (“Score") que asocia el programa a cada documento cuando realiza la
búsqueda, dado que esta contenido en la propia base de datos.
2.2.3 MEDIOS DE ACCESO A INTERNET
Los proveedores son los que proporcionan el acceso físico a Internet. Las conexiones con
Internet pueden ser directas, por medio de SLIP y PPP o conmutadas. Los protocolos son
reglas para el intercambio de información entre las computadoras. Actualmente Internet y
el sistema telefónico son bastante similares, es posible conectarse a Internet tan
40
fácilmente como se conecta un teléfono al sistema telefónico. Una vez en Internet su
computadora se convierte en una extensión de lo que seria una computadora gigante, con
ramificaciones en todo el mundo.
2.2.4 CONCEPTOS BASICOS DE INTERNET
2.2.4.1 WORLD WIDE WEB
“World Wide Web”, o simplemente Web, es el universo de información accesible a través
de Internet, una fuente inagotable de conocimiento humano.
El componente más usado en el Internet es definitivamente el Web. Su característica
sobresaliente es el texto remarcado, un método para referencias cruzadas instantáneas.
En la mayoría de los Sitios Web, ciertas palabras aparecen en texto de otro color diferente
al resto del documento. Por lo general, este texto es subrayado. Al seleccionar una
palabra o frase, el control es transferido al sitio o página relacionada a esa frase. En
algunas ocasiones hay botones, imágenes, o porciones de imágenes que pueden
activarse mediante un click.
Usando el Web, se tiene acceso a millones de páginas de información. La exploración en
el Web se realiza por medio de un software especial denominado “Browser” o Explorador.
La apariencia de un Sitio Web puede variar ligeramente dependiendo del explorador que
se use. Así mismo, las versiones más recientes disponen de una funcionalidad mucho
mayor tal como animación, realidad virtual, sonido y música.
2.2.4.2 PÁGINAS WEB
Una página Web es la unidad básica del “World Wide Web”.
Una página Web es un documento electrónico que contiene información específica de un
tema en particular y que es almacenado en algún sistema de cómputo que se encuentre
41
conectado a la red mundial de información denominada Internet, de tal forma que este
documento pueda ser consultado por cualquier persona que se conecte a esta red mundial
de comunicaciones y que cuente con los permisos apropiados para hacerlo.
Una página Web tiene la característica peculiar de que el texto se combina con imágenes
para hacer que el documento sea dinámico y permita que se puedan ejecutar diferentes
acciones, una tras otra, a través de la selección de texto remarcado o de las imágenes,
acción que nos puede conducir a otra sección dentro del documento, abrir otra página
Web, iniciar un mensaje de correo electrónico o transportarnos a otro Sitio Web totalmente
distinto a través de sus hipervínculos.
2.2.4.3 SITIO WEB
Es un conjunto de archivos electrónicos y páginas Web referentes a un tema en particular,
que incluye una página inicial de bienvenida, generalmente denominada “home page”, con
un nombre de dominio y dirección en Internet específicos.
Un Sitio Web no necesariamente debe localizarse en el sistema de cómputo de su
negocio. Los documentos que integran el Sitio Web pueden ubicarse en un equipo en otra
localidad, inclusive en otro país. El único requisito es que el equipo en el que residan los
documentos esté conectado a la red mundial de Internet. Este equipo de cómputo o
Servidor Web, como se le denomina técnicamente, puede contener más de un sitio Web y
atender concurrentemente a los visitantes de cada uno de los diferentes sitios.
Los Sitios Web pueden ser de diversos géneros, destacando los sitios de negocios,
servicio, comercio electrónico en línea, imagen corporativa, entretenimiento y sitios
informativos.
42
2.2.4.4 RED
En términos de tecnologías de información, una red es una serie de puntos o nodos
interconectados
por
algún
medio
físico
de
comunicación.
Las
redes
pueden
interconectarse con otras redes y contener sub-redes.
La topología más común, o configuración general de redes, incluye el bus, la estrella, y las
topologías token ring. Las redes se pueden clasificar también en términos de la separación
física entre nodos, como redes de área local (LAN, local area network), redes de área
metropolitana (MAN, metropolitan area network), y redes de área amplia (WAN, wide area
network).
Una cierta clase de redes puede también ser clasificada por el tipo de tecnología de la
transmisión de datos que se emplea. Por ejemplo, una red TCP/IP (Transport Control
Protocol/Internet Protocol), o una red del tipo SNA (Systems Network Architecture); si
transporta voz, datos, o ambas clases de señales; por quién puede utilizar la red (pública o
privada); por la naturaleza de sus conexiones (conmutada, dedicada o no dedicada, o por
conexión virtual); y por los tipos de conexiones físicas (por ejemplo, fibra óptica, cable
coaxial, y par trenzado sin blindaje UTP). Las grandes redes de telefonía y las redes que
usan su infraestructura (tal como el Internet) disponen de acuerdos para compartir e
intercambiar recursos con otras compañías para formar redes mucho más grandes.
2.3 PROTOCOLOS DE COMUNICACIÓN
En la actualidad contamos con muchos protocolos de comunicación comerciales con los
cuales muchas veces aún sin darnos cuenta, los utilizamos, nos ayudan a hacer tareas
como lo son el Internet, una transferencia por módem o una simple comunicación a un
servicio en línea inteligente de algún banco (BITAL).
A continuación se mencionan y explican varios de estos protocolos:
FTP, HTTP, IPX/SPX, NFS, POP3, SCP, TCP/IP.
43
2.3.1 FTP (File Transfer Protocol/Protocolo de Transferencia de Archivos)
El objetivo principal de este protocolo son varios puntos, promover el compartir archivos
entre computadoras (programas y/o datos), alentar al uso remoto de las computadoras, y
transferir datos de una forma segura y optima por computadora. FTP más que para ser
usado por un usuario directamente, es para que los programas lo usen entre ellos para
comunicarse.
Con esta forma de hacer las cosas se ayuda machísimo al usuario a despreocuparse si el
tiene contacto con macrocomputadoras, microcomputadoras, mini computadoras o simples
PC’s. Gracias a un protocolo como éste, no se necesita saber mucho y se logra que las
computadoras compartan archivos.
FTP ha ido evolucionando demasiado en todos estos años desde que se creó. Éste
protocolo empezó en 1971 con un modelo de transferencia llamado RFC 141 en M.I.T.
Fue hasta después de muchas revisiones que llegó a RFC 265 cuando ya se le consideró
un protocolo de transferencia de archivos completa entre HOSTs (servidores de archivos)
de ARPHANET. Finalmente un documento declarando un FTP oficial se publicó cuando se
llego a RFC 454.
Alrededor de Julio de 1973, el FTP ya habia sufrido muchos cambios, pero siempre
conservó la estructura principal desde el principio.
Al final de la edición de RFC 765 se incluyeron algunos de los que son ahora los
comandos de este protocolo:
CDUP
Change to Parent Directory
SMNT
Structure Mount
STOU
Store Unique
44
RMD
Remove Directory
MKD
Make Directory
PWD
Print Directory
SYST
System
Alguna de la terminología usada en este protocolo son las siguientes definiciones:
-ASCII Solo se usan todos los caracteres dentro de los 8 bits en su valor bajo
-Access controls. Este sirve para hablar a cerca de los privilegios (derechos en la red) de
cada usuario tanto en archivos como en dispositivos.
-Data connection. Habla de cuando hay una comunicación Full Duplex entre dos
computadoras.
-Data Transference Protocolo. Proceso de la transferencia.
-Error Recovery. Este es un procedimiento que le permite al usuario en algunos casos
recuperar información perdida en el proceso de transferencia.
2.3.1.1 TIPOS DE DATOS UTILIZADOS EN FTP
Existen tres tipos de datos en la transferencia por FTP, tipo ASCII, EBCDIC e IMAGEN.
El tipo ASCII, es el más común en el protocolo FTP, este se usa cuando se transfieren
archivos de texto. La computadora que envía (sender), debe convertir cualquiera que sea
su estructura de archivos interna, aun formato genérico de 8 bits; y el que recibe (receiver)
lo debe convertir de nuevo a su formato propio.
El tipo EBCDIC es el más eficiente cuando ambos equipos, el que recibe y el que envía lo
usan como formato propio. Este tipo se representa también en 8 bits pero de forma
EBCDIC. Lo único en lo que cambian es en la forma de reconocer los códigos de los
caracteres.
45
El formato de IMAGEN es cuando se empaca todo lo que se quiere enviar en cadenas
seguidas de paquetes de 8 bits, esto es, no importa el formato en que internamente se
maneje la información, cuando se va a enviar se tiene que hacer una conversión de 8 bits
en 8 bits y cuando el que recibe tiene todo el paquete, el mismo de be codificarlos de
nuevo para que la transmisión sea completada.
2.3.1.2 ESTRUCTURAS DE DATOS UTILIZADAS EN FTP
En la estructura de datos en FTP se consideran tres tipos diferentes de archivos:
File - structure donde no hay estructuras internas y el archivo es considerado una
secuencia continua de bytes.
Record - structure donde los archivos están compuestos por registros que mantienen la
misma estructura.
Page - structure donde los archivos contienen páginas enteras indexadas separadas.
Al establecer una conexión por FTP se debe tomar en cuenta que el mecanismo de
transferencia consiste en colocar bien la transferencia de datos en los puertos adecuados
y al concluir la conexión estos puertos deben ser cerrados adecuadamente. El tamaño de
transferencia es de 8 bits, en ambos. El que va a transferir, debe escuchar desde el puerto
hasta que el comando enviado sea recibido por el otro equipo, conocido por la dirección
de transferencia. Una vez recibido el comando y establecida la conexión hacia el servidor
del que se solicitan datos se inicializa la comunicación de la transferencia para verificar la
conexión; Esta es una cabecera con un formato específico; después de esto se comienza
a enviar las tramas de 8 bits sin importar el tipo de datos que sea, y al finalizar se envía
otra trama cabecera confirmando la transferencia completada.
46
2.3.2 HTTP (HyperText Transfer Protocol/Protocolo para la transferencia de
hipertextos)
El protocolo para la transferencia de hipertextos se aplica a todos los sistemas de
información distribuidos que tengan la necesidad de mostrar la información y pasarla por
una comunicación normal haciendo uso de las ligas de este lenguaje. La primera versión
de este lenguaje (HTTP 0.9) se uso desde 1990.
El Protocolo fue implementado inicialmente para WWW en 1991 como una iniciativa de
software y se denominó HTTP 0.9. El protocolo completo fue definido en 1992 e
implementado en marzo de 1993.
•
HTTP 1.0 Esta especificación prevé las características básicas del protocolo. Fue
desarrollado por Tim Berners-Lee, Roy T. Fielding, y Henrik Frystyk Nielsen.
•
HTTP 1.1 La primera versión no está aun habilitada, pero las especificaciones son
muy similares a la anterior.
•
HTTP-NG Next Generation of HTTP, propuesta por Simón Spero. Es un protocolo
binario con nuevas características para un acceso más rápido usando TCP. Este es
el último HTTP en la actualidad, este es más complejo que un 0.9.
Como todos los protocolos este, tiene su propia terminología, que se explica a
continuación:
Conexión: Es el circuito virtual establecido entre dos programas en una red de
comunicación con el proceso de una simple comunicación.
Mensaje: Esta es la unidad básica de un protocolo HTTP, estos consisten en una
secuencia estructurada que es transmitida siempre entre los programas.
Cliente: Es el programa que hace la llamada al servidor y es el que atiende la trama de los
mensajes para cada transmisión de datos realizada.
Servidor: El que presta el servicio en la RED.
47
En una red de ordenadores, un servidor es un equipo que pone ciertos recursos a
disposición de otros ordenadores (los clientes). Estos recursos pueden ser datos,
aplicaciones, impresoras, etc.
Proxy: Un programa intermedio que actúa sobre los dos, el servidor y el cliente. Software
que permite a varios ordenadores acceder a Internet a través de una única conexión física.
Según lo avanzado que sea, puede permitir acceder a páginas Web, FTP, correo
electrónico, etc.
2.3.3 NFS (Sistema de archivos de RED)
NFS es un protocolo que se utiliza en sistemas distribuidos para archivos, cuando existen
redes heterogéneas. Con este protocolo, el usuario solo ve un directorio cuando está
dentro de la red, claro que tiene ramas dentro pero no puede ver más arriba del nivel que
se le asigna como raíz. Como consecuencia, es posible que los archivos dentro de esta
estructura del directorio ni siquiera estén en la misma computadora de ingreso.
2.3.4 POP3 (Post Office Protocol version 3)
Este es un protocolo para la administración de correo en Internet.
El Protocolo de oficina de correos - Versión 3 (POP3) está destinado a permitir que una
estación de trabajo acceda dinámicamente a un “maildrop” en un host servidor de forma
útil y eficiente. Esto significa que el protocolo POP3 se usa para permitir a una estación de
trabajo recobrar correo que el servidor tiene almacenado.
POP3 no está destinado a proveer de extensas operaciones de manipulación de correo
sobre el servidor; normalmente, el correo es transmitido y entonces borrado.
48
2.3.5 SCP (Simple Communication Protocol)
Este es un protocolo simple que deja al servidor y al cliente tener múltiples conversaciones
sobre una TCP (Transmission Control Protocol) normal. Esto como es evidente, declara
que el protocolo SCP necesita montarse sobre el TCP, Este protocolo esta diseñado para
ser simple de implementar.
El servicio principal de este protocolo es el control del diálogo entre el servidor y el cliente,
administrando sus conversaciones y agilizadas en un alto porcentaje. Este protocolo le
permite a cualquiera de los dos (servidor cliente) establecer una sesión virtual sobre la
normal.
2.3.6 TCP/IP (Transfer Communication Protocol / Internet Protocol)
El TCP/IP es un conjunto de protocolos de comunicación, es decir, de convenciones
particulares, creadas para permitir la colaboración y la partición de recursos entre más
ordenadores conectados entre sí lo que establece una red o network. Internet es en
absoluto la más grande entre todas las redes existentes, debido a que logra conectar entre
sí ordenadores personales y redes de menor amplitud en todo el mundo. Sobre Internet,
de hecho, puede usted encontrar en conexión los ordenadores de instituciones del
gobierno, militares, universidades y empresas privadas. Lo que permite a máquinas tan
distintas en hardware y por prestaciones, comunicarse entre sí de manera casi
transparente, es el TCP/IP, el cual constituye un tipo de 'lenguaje universal' comprendido y
utilizado por todas las máquinas que cooperan en red.
2.4 LENGUAJES DE PROGRAMACIÓN WEB
2.4.1 CGI (Common Gateway Interface)
Es el sistema más antiguo que existe para la programación de las páginas dinámicas de
servidor.
49
Actualmente se encuentra un poco en desuso por diversas razones, entre las que destaca
la dificultad con la que se desarrollan los programas y la pesada carga que supone para el
servidor que los ejecuta.
Los CGI se escriben habitualmente en el lenguaje Perl, sin embargo, otros lenguajes como
C, C++ o Visual Basic pueden ser también empleados para construirlos.
El funcionamiento básico de un programa CGI es parecido al apuntado para el conjunto de
las páginas dinámicas del servidor, con algunas particularidades.
1. Se realiza una petición http, a la que pueden acompañar datos llegados o bien por
un formulario, de igual forma por una URL.
2. El servidor ejecuta los programas CGI a los que se accede y trabaja con los
recursos necesarios para llevar a cabo las acciones, como por ejemplo bases de
datos.
3. El programa CGI va escribiendo en la salida estándar el resultado de la ejecución
del CGI, que incluye etiquetas HTML, ya que lo que se escribe es una página web.
2.4.2 PERL (Processing Estraction Report Language)
El Perl es un lenguaje dirigido principalmente al tratamiento de stringhe y file de texto. En
él es natural hacer búsquedas de secuencias de carácteres dentro de stringhe (pattern
matching), sustituciones de substringhe (pattern substitution), operaciones sobre file de
textos estructurados en campos y record o bien no estructurados. Por estas razones, se
utiliza con fuerza en la escritura de procesos CGI instalados en un servidor web, o para el
desarrollo de procesos de mantenimiento de las actividades de un servidor.
Perl se
convierte en una necesidad para quien tenga que manejar un sitio web que no esté
compuesto sólo de texto e imagen: con este lenguaje, es posible automatizar algunas
operaciones útiles, desde las más simples solicitud de una dirección e-mail) a las más
complejas (como registrar datos de usuarios, etc.). ¿Quién no se ha topado alguna vez
con un sitio en el que se nos pedía la dirección e-mail para inscribirnos en una mailing-list,
o quién no ha visto en algunas páginas algo como "Visitante número nnn", o a quién no le
50
han pedido que rellenase módulos de inscripción o registro? Creo que todos!. Pues bien,
por debajo de todo esto, hay líneas y líneas de Perl (¡en la mayor parte de los casos!) que
realizan lo que el usuario ha tecleado y lo restituyen al webmaster en formato inteligible o
mejor (sobre todo para registros e inscripciones, en los que hay bastantes campos que
rellenar: nombre, apellidos, etc.) formateado en diversos campos (de base de datos) o, en
el mejor de los casos, haciéndolo todo solo: tomemos por ejemplo a un usuario que quiere
tener un espacio web gratis y que tiene que registrarse: se encontrará ante muchas
preguntas que responder, y al final tendrá que pulsar la tecla "envía" y pasar el asunto al
webmaster, que se ocupará de confirmar la inscripción. Quien haya hecho esto al menos
una vez se habrá dado cuenta de que la confirmación de inscripción realizada llega
inmediatamente (¡hablamos de algunos minutos como máximo!): pues bien, aquí no es el
webmaster el que trabaja a la velocidad de la luz, sino un complicado script que recibe las
informaciones y las elecciones del usuario, asignándole un nombre de usuario y una clave,
preparando un directorio en el servidor que pueda recibir los file del usuario, file que, por
otra parte, quedará protegido de otros usuarios que pretendiesen modificarlo, etc.; envia al
usuario un mensaje para advertirlo de que la operación se ha completado con éxito. El
mismo script controla que las elecciones del usuario sean sensatas: por ejemplo,
controlando que la dirección e-mail sea válida (en el sentido de que esté en la forma
usuario@dominio y no usuario_dominio,
2.4.3 HTML (HyperText Markup Language)
Una página Web la vemos en nuestro navegador, o cliente Web, y parece una sola
entidad, pero no es así, está compuesta por multitud de diferentes ficheros, como son las
imágenes,
los
posibles
vídeos
y
lo
más
importante:
el
código
fuente.
El código de las páginas está escrito en un lenguaje llamado HTML, que indica
básicamente donde colocar cada texto, cada imagen o cada video y la forma que tendrán
estos al ser colocados en la página.
El HTML se creó en un principio con objetivos divulgativos. No se pensó que la web
llegara a ser un área de ocio con carácter multimedia, de modo que, el HTML se creó sin
51
dar respuesta a todos los posibles usos que se le iba a dar y a todos los colectivos de
gente que lo utilizarían en un futuro.
El lenguaje consta de etiquetas que tienen esta forma <B> o <P>. Cada etiqueta significa
una cosa, por ejemplo <B> significa que se escriba en negrita (bold) o <P> significa un
párrafo, <A> es un enlace, etc. Casi todas las etiquetas tienen su correspondiente etiqueta
de cierre, que indica que a partir de ese punto no debe de afectar la etiqueta. Por ejemplo
</B> se utiliza para indicar que se deje de escribir en negrita. Así que el HTML no es más
que una serie de etiquetas que se utilizan para definir la forma o estilo que queremos
aplicar a nuestro documento. <B>Esto está en negrita</B>.
PARTES DE UN DOCUMENTO HTML
Un documento HTML ha de estar delimitado por la etiqueta <html> y </html>. Dentro de
este documento, podemos asimismo distinguir dos partes principales:
El encabezado, delimitado por <head> y </head> donde colocaremos etiquetas de índole
informativo como por ejemplo el titulo de nuestra página.
El cuerpo, flanqueado por las etiquetas <body> y </body>, que será donde colocaremos
nuestro texto e imágenes delimitados a su vez por otras etiquetas como las que hemos
visto.
El resultado es un documento con la siguiente estructura:
<html>
<head>
Etiquetas y contenidos del encabezado
Datos que no aparecen en nuestra página pero que son importantes para catalogarla: Titulo, palabras clave,...
</head>
<body>
Etiquetas y contenidos del cuerpo
Parte del documento que será mostrada por el navegador: Texto e imágenes
</body>
</html>
52
2.4.4 ASP (Active Server Pages)
ASP es la tecnología desarrollada por Microsoft para la creación de páginas dinámicas del
servidor. ASP se escribe en la misma página Web, utilizando el lenguaje Visual Basic
Script o Jscript (Javascript de Microsoft).
Un lenguaje del lado del servidor es aquel que se ejecuta en el servidor Web, justo antes
de que se envíe la página a través de Internet al cliente. Las páginas que se ejecutan en el
servidor pueden realizar accesos a bases de datos, conexiones en red, y otras tareas para
crear la página final que verá el cliente. El cliente solamente recibe una página con el
código HTML resultante de la ejecución de la ASP. Como la página resultante contiene
únicamente código HTML, es compatible con todos los navegadores.
El tipo de servidores que emplean este lenguaje son, evidentemente, todos aquellos que
funcionan con sistema Windows NT, aunque también se puede utilizar en un PC con
Windows 98 si instalamos un servidor denominado Personal Web Server. Incluso en
sistemas Linux podemos utilizar ASP si instalamos un componente denominado “Chilisoft”,
aunque parece claro que será mejor trabajar sobre el servidor Web para el que está
diseñado: IIS (Internet Information Server/Servidor de Información para Internet).
Con ASP podemos realizar muchos tipos de aplicaciones distintas. Nos permite acceso a
bases de datos, al sistema de archivos del servidor y en general a todos los recursos que
tenga el propio servidor. También tenemos la posibilidad de comprar componentes ActiveX
fabricados por distintas empresas de desarrollo de software que sirven para realizar
múltiples usos, como el envió de correo, y generar gráficas dinámicamente, entre otros.
Actualmente se ha presentado ya la segunda versión de ASP, el ASP.NET, que
comprende algunas mejoras en cuanto a posibilidades del lenguaje y rapidez con la que
funciona. ASP.NET tiene algunas diferencias en cuanto a sintaxis con el ASP. De modo
que se ha de tratar de manera distinta uno de otro.
53
2.4.5 JSP (Java Server Pages)
JSP es un acrónimo de Java Server Pages, que en castellano vendría a decir algo como
Páginas de Servidor Java. Es, pues, una tecnología orientada a crear páginas Web con
programación en Java.
Con JSP podemos crear aplicaciones Web que se ejecuten en variados servidores Web,
de múltiples plataformas, ya que Java es en esencia un lenguaje multiplataforma. Las
páginas JSP están compuestas de código HTML/XML mezclado con etiquetas especiales
para programar Scripts de servidor en sintaxis Java. Por tanto, las JSP podremos
escribirlas con nuestro editor HTML/XML habitual.
MOTOR JSP
El motor de las páginas JSP está basado en los “servlets” de Java -programas en Java
destinados a ejecutarse en el servidor-, aunque el número de desarrolladores que pueden
afrontar la programación de JSP es mucho mayor, dado que resulta mucho más sencillo
aprender que los servlets.
En JSP se crean páginas de manera parecida a como se crean en las otras dos otras dos
tecnologías de servidor (ASP o PHP). Se crear archivos con extensión .jsp que incluyen,
dentro de la estructura de etiquetas HTML, las sentencias Java a ejecutar en el servidor.
Antes de que sean funcionales los archivos, el motor JSP lleva a cabo una fase de
traducción de esa página en un servlet, implementado en un archivo class (Byte codes de
Java). Esta fase de traducción se lleva a cabo habitualmente cuando se recibe la primera
solicitud de la página .jsp, aunque existe la opción de precompilar en código para evitar
ese tiempo de espera la primera vez que un cliente solicita la página.
54
2.4.6 XML (eXtensible Markup Language)
XML, Lenguaje de descripción de páginas de Internet, es una tecnología en realidad muy
sencilla que tiene a su alrededor otras tecnologías que la complementan y la hacen mucho
más grande y con unas posibilidades mucho mayores.
XML, con todas las tecnologías relacionadas, representa una manera distinta de hacer las
cosas, más avanzada, cuya principal novedad consiste en permitir compartir los datos con
los que se trabaja a todos los niveles, por todas las aplicaciones y soportes.
Así pues, el XML juega un papel importantísimo en este mundo actual, que tiende a la
globalización y la compatibilidad entre los sistemas, ya que es la tecnología que permitirá
compartir la información de una manera segura, fiable, y fácil.
Además, XML permite al programador y los soportes dedicar sus esfuerzos a las tareas
importantes cuando trabaja con los datos, ya que algunas tareas tediosas como la
validación de estos o el recorrido de las estructuras corre a cargo del lenguaje y está
especificado por el estándar, de modo que el programador no tiene que preocuparse por
ello.
Vemos que XML no está sólo, sino que hay un mundo de tecnologías alrededor de él, de
posibilidades, maneras más fáciles e interesantes de trabajar con los datos y, en definitiva,
un avance a la hora de tratar la información, que es en realidad el objetivo de la
informática en general. XML, o mejor dicho, el mundo XML no es un lenguaje, sino varios
lenguajes, no es una sintaxis, sino varias y no es una manera totalmente nueva de
trabajar, sino una manera más refinada que permitirá que todas las anteriores se puedan
comunicar entre sí sin problemas, ya que los datos cobran sentido.
XML es interesante en el mundo de Internet y el e-bussiness, ya que existen muchos
sistemas distintos que tienen que comunicarse entre si, pero como se ha podido imaginar,
55
interesa por igual a todas las ramas de la informática y el tratamiento de datos, ya que
permite muchos avances a la hora de trabajar con ellos.
2.4.7 PHP (Personal Home Page)
PHP es uno de los lenguajes de lado servidor más extendidos en la web. Se trata de un
lenguaje de creación relativamente creciente que ha tenido una gran aceptación en la
comunidad de webmasters debido sobre todo a la potencia y simplicidad que lo
caracterizan.
Fue desarrollado originalmente en el año 1994 por Rasmus Lerdorf como un CGI escrito
en C que permitía la interpretación de un número limitado de comandos. El sistema fue
denominado “Personal Home Page Tools” y adquirió relativo éxito gracias a que otras
personas pidieron a Rasmus que les permitiese utilizar sus programas en sus propias
páginas. Dada la aceptación del primer PHP y de manera adicional, su creador diseñó un
sistema para procesar formularios al que le atribuyó el nombre de (Form Interpreter) y el
conjunto de estas dos herramientas, sería la primera versión compacta del lenguaje:
PHP/FI.
PHP nos permite embeber sus pequeños fragmentos de código dentro de la página HTML
y realizar determinadas acciones de una forma fácil y eficaz sin tener que generar
sistemas programados íntegramente en un lenguaje distinto al HTML. Por otra parte, y es
aquí donde reside su mayor interés con respecto a los lenguajes pensados para los CGI,
PHP ofrece un sinfín de funciones para la explotación de bases de datos de una manera
llana, sin complicaciones.
56
2.5 SISTEMAS OPERATIVOS
2.5.1 LINUX
LINUX es un sistema operativo, compatible con Unix. Dos características muy peculiares
lo diferencian del resto de los sistemas que podemos encontrar en el mercado, la primera,
es que es libre, esto significa que no tenemos que pagar ningún tipo de licencia a ninguna
casa desarrolladora de software por el uso del mismo, la segunda, es que el sistema viene
acompañado del código fuente. El sistema lo forman el núcleo del sistema (kernel) más un
gran número de programas, librerías que hacen posible su utilización.
LINUX se distribuye bajo la GNU Public License, por lo tanto, el código fuente tiene que
estar siempre accesible.
El sistema ha sido diseñado y programado por multitud de programadores alrededor del
mundo.
El núcleo del sistema sigue en continuo desarrollo bajo la coordinación de Linus Torvalds,
la persona de la que partió la idea de este proyecto, a principios de la década de los
noventa.
Día a día, más y más programas, aplicaciones están disponibles para este sistema, y la
calidad de los mismos aumenta de versión a versión. La gran mayoría de los mismos
vienen acompañados del código fuente y se distribuyen gratuitamente bajo los términos de
licencia de la GNU Public License.
En los últimos tiempos, ciertas casas de software comercial han empezado a distribuir sus
productos para Linux y la presencia del mismo en empresas aumenta rápidamente por la
excelente relación calidad-precio que se consigue con Linux.
Las plataformas en las que en un principio se puede utilizar Linux son 386-, 486-. Pentium,
Pentium Pro, Pentium II/III/IV, Amiga y Atari, también existen versiones para su utilización
en otras plataformas, como Alpha, ARM, MIPS, PowerPC y SPARC.
57
Características de LINUX:
•
Multitarea: La palabra multitarea describe la habilidad de ejecutar varios programas
al mismo tiempo.
LINUX utiliza la llamada multitarea preventiva, la cual asegura que todos los
programas que se están utilizando en un momento dado serán ejecutados, siendo
el sistema operativo el encargado de ceder tiempo de microprocesador a cada
programa.
•
Multiusuario: Muchos usuarios usando la misma maquina al mismo tiempo.
•
Multiplataforma: Las plataformas en las que en un principio se puede utilizar Linux
son 386-, 486-. Pentium, Pentium Pro, Pentium II,Amiga y Atari, también existen
versiones para su utilización en otras plataformas, como Alpha, ARM, MIPS,
PowerPC y SPARC.
•
Multiprocesador: Soporte para sistemas con mas de un procesador esta disponible
para Intel y SPARC.
•
Funciona en modo protegido 386.
•
Protección de la memoria entre procesos, de manera que uno de ellos no pueda
“colgar” el sistema.
•
Carga de ejecutables por demanda: Linux sólo lee del disco aquellas partes de un
programa que están siendo usadas actualmente.
•
Política de copia en escritura para la compartición de páginas entre ejecutables:
esto significa que varios procesos pueden usar la misma zona de memoria para
ejecutarse. Cuando alguno intenta escribir en esa memoria, la página (4Kb de
memoria) se copia a otro lugar. Esta política de copia en escritura tiene dos
beneficios: aumenta la velocidad y reduce el uso de memoria.
58
•
Memoria virtual usando paginación (sin intercambio de procesos completos) a
disco: A una partición o un archivo en el sistema de archivos, o ambos, con la
posibilidad de añadir más áreas de intercambio sobre la marcha. Un total de 16
zonas de intercambio de 128Mb de tamaño máximo pueden ser usadas en un
momento dado con un límite teórico de 2Gb para intercambio. Este límite se puede
aumentar fácilmente con el cambio de unas cuantas líneas en el código fuente.
•
La memoria se gestiona como un recurso unificado para los programas de usuario y
para el caché de disco, de tal forma que toda la memoria libre puede ser usada
para caché y ésta puede a su vez ser reducida cuando se ejecuten grandes
programas.
•
Librerías compartidas de carga dinámica (DLL's/ Dynamic Link Library) y librerías
estáticas.
•
Se realizan volcados de estado (core dumps) para posibilitar los análisis postmortem, permitiendo el uso de depuradores sobre los programas no sólo en
ejecución sino también tras abortar éstos por cualquier motivo.
•
Compatible con POSIX, System V y BSD a nivel fuente.
•
Emulación de iBCS2, casi completamente compatible con SCO, SVR3 y SVR4 a
nivel binario.
•
Todo el código fuente está disponible, incluyendo el núcleo completo y todos los
drivers, las herramientas de desarrollo y todos los programas de usuario; además
todo ello se puede distribuir libremente. Hay algunos programas comerciales que
están siendo ofrecidos para Linux actualmente sin código fuente, pero todo lo que
ha sido gratuito sigue siendo gratuito.
•
Control de tareas POSIX.
•
Pseudo-terminales (pty's).
59
•
Emulación de 387 en el núcleo, de tal forma que los programas no tengan que
hacer su propia emulación matemática. Cualquier máquina que ejecute Linux
parecerá dotada de coprocesador matemático. Por supuesto, si el ordenador ya
tiene una FPU, unidad de coma flotante (Floating Point Unit), esta será usada en
lugar de la emulación, pudiendo incluso compilar tu propio kernel sin la emulación
matemática y conseguir un pequeño ahorro de memoria.
•
Soporte para muchos teclados nacionales o adaptados y es bastante fácil añadir
nuevos dinámicamente.
•
Consolas virtuales múltiples: varias sesiones de login a través de la consola entre
las que se puede cambiar con las combinaciones adecuadas de teclas (totalmente
independiente del hardware de video). Se crean dinámicamente y puedes tener
hasta 64.
•
Soporte para varios sistemas de archivo comunes, incluyendo minix-1, Xenix y
todos los sistemas de archivo típicos de System V, y tiene un avanzado sistema de
archivos propio con una capacidad de hasta 4 Tb y nombres de archivos de hasta
255 caracteres de longitud.
•
Acceso transparente a particiones MS-DOS (o a particiones OS/2 FAT) mediante un
sistema de archivos especial: no es necesario ningún comando especial para usar
la partición MS-DOS, esta parece un sistema de archivos normal de Unix (excepto
por algunas restricciones en los nombres de archivo, permisos, y esas cosas). Las
particiones comprimidas de MS-DOS 6 no son accesibles en este momento, y no se
espera que lo sean en el futuro. El soporte para VFAT, FAT32 (WNT, Windows
95/98) se encuentra soportado desde la versión 2.0 del núcleo y el NTFS de WNT
desde la versión 2.2 (Este último sólo en modo lectura).
•
Un sistema de archivos especial llamado UMSDOS que permite que Linux sea
instalado en un sistema de archivos DOS.
60
•
Soporte en sólo lectura de HPFS-2 del OS/2 2.1
•
Sistema de archivos de CD-ROM que lee todos los formatos estándar de CD-ROM.
•
TCP/IP, incluyendo ftp, telnet, NFS, etc.
•
Appletalk.
•
Software cliente y servidor Netware.
•
Lan Manager / Windows Native (SMB), software cliente y servidor.
•
Diversos protocolos de red incluidos en el kernel: TCP, IPv4, IPv6, AX.25, X.25,
IPX, DDP, Netrom
2.5.2 WINDOWS SERVER 2003
La familia de Windows Server 2003 es el paso siguiente en la evolución continua de los
sistemas operativos de servidor Windows. Windows Server 2003 se basa en la
confiabilidad, la escalabilidad y la capacidad de administración probadas de Windows
2000 Server, para entregar una plataforma de infraestructura altamente productiva para
potenciar las aplicaciones conectadas, las redes y los servicios Web XML, desde los
grupos de trabajo hasta los centros de datos.
2.5.2.1 FAMILIA WINDOWS SERVER 2003
Microsoft Windows Server 2003 Release Candidate 2 (RC2) ya se encuentra disponible
para que los clientes puedan obtener una vista previa. La familia de Windows Server 2003
aprovecha lo mejor de la tecnología Windows 2000 Server y facilita su implementación,
61
administración y uso. El resultado: una infraestructura altamente productiva que posibilita
que la red se convierta en un activo estratégico para las organizaciones.
Windows Server 2003 incluye toda la funcionalidad que los clientes esperan de un sistema
operativo de servidor Windows de gran trascendencia, como son la seguridad, la
confiabilidad, la disponibilidad y la escalabilidad. Además, Microsoft ha mejorado y
ampliado los sistemas operativos de servidor Windows para que las organizaciones
puedan beneficiarse de las ventajas de Microsoft .NET, un software para conectar
información, personas, sistemas y dispositivos.
2.5.2.2 FUNCIONES DEL SERVIDOR
Windows Server 2003 es un sistema operativo multipropósito capaz de controlar una gama
diversa de funciones de servidor, en función de las necesidades del usuario, de modo
centralizado o distribuido. Algunas de estas funciones de servidor son:
- Servidor de archivos e impresión.
- Servidor Web y servidor de aplicaciones Web.
- Servidor de correo.
- Terminal Server.
- Servidor de acceso remoto/Servidor de red privada virtual (VPN).
- Servicios de directorio, Sistema de nombres de dominio (DNS), servidor de Protocolo de
configuración dinámica de host (DHCP) y Servicio de nombres
- Internet de Windows (WINS).
- Servidor de multimedia de transmisión por secuencias.
62
2.5.2.3 VENTAJAS DE LA FAMILIA DE WINDOWS SERVER 2003
Windows Server 2003 proporciona dos ventajas fundamentales:
- Proporcionar una infraestructura integrada que le permite asegurar la seguridad de la
información empresarial.
- Proporcionar confiabilidad, disponibilidad y escalabilidad para que pueda proporcionarse
la infraestructura de red que los usuarios requieren.
2.5.2.3.1 PRODUCTIVO
Windows Server 2003 proporciona las herramientas que le permiten implementar,
administrar y utilizar la infraestructura de red para obtener la máxima productividad.
Windows Server 2003 lo consigue gracias a:
- Proporcionar herramientas flexibles que permiten que el diseño y el desarrollo se adapten
a las necesidades organizativas y de red.
- Facilitar la administración pro activa de la red, mediante el establecimiento de políticas, la
automatización de tareas y la simplificación de las actualizaciones.
- Facilitar la disminución de la sobrecarga de los servicios de soporte técnico, aumentando
la autosuficiencia de los usuarios.
2.5.2.3.2 CONECTADO
Windows Server 2003 puede ayudarle a crear la infraestructura de soluciones
empresariales para mejorar la conexión entre empleados, asociados, sistemas y clientes.
Windows Server 2003 lo consigue gracias a:
63
- Proporcionar un servidor Web y un servidor de multimedia de transmisión por secuencias
integrados para facilitar la creación rápida, fácil y segura de sitios Web dinámicos para
Internet e intranet.
- Proporcionar un servidor de aplicaciones integrado para facilitar una administración,
implementación y desarrollo sencillos de servicios Web XML.
- Proporcionar las herramientas para permitir la conexión de servicios Web XML con
aplicaciones internas, proveedores y asociados.
2.5.3 UNIX
UNIX designa el núcleo de un sistema operativo multiusuario y multitarea. En un sentido
más amplio, comprende el núcleo del sistema operativo más un conjunto de programas
que permiten compilar lenguajes de programación, editar texto, interpretar comandos,
manejar archivos y discos, acceder a otras máquinas, establecer comunicaciones
telefónicas, enviar y recibir correo electrónico, manejar las colas de impresión y un sinfín
de tareas más. Algunos de estos programas pueden haber sido desarrollados por los
propios usuarios.
UNIX designa al mismo tiempo un cierto "ambiente de trabajo", un conjunto de
circunstancias que encuentra el usuario de la computadora donde corre UNIX, tales como
la presentación en pantalla, los programas disponibles y la forma de trabajo que impone o
permite.
2.5.3.1 PRINCIPALES CARACTERÍSTICAS DE UNIX
•
muchas herramientas de software (compiladores, editores, utilitarios para muchas
tareas).
•
reutiliza el software, a través de la combinación de comandos simples en
aplicaciones complejas.
64
•
portable: el mismo sistema operativo corre en un espectro de máquinas que van
desde notebooks a supercomputadoras. Es el único sistema operativo con estas
características.
•
flexible: se adapta a muchas aplicaciones diferentes.
•
potente: dispone de muchos comandos y servicios ya incorporados.
•
multiusuario: lo utilizan muchas personas simultáneamente.
•
multitarea: realiza muchas tareas a la vez.
•
elegante: sus comandos son breves, coherentes, específicos para cada tarea y muy
eficientes.
•
orientado a redes desde el comienzo.
•
dispone de un estándar (POSIX) que debe cumplir todo sistema operativo que
pretenda ser UNIX, lo que asegura una evolución predecible.
2.5.3.2 ANTECEDENTES (UNIX)
•
las computadoras ejecutan un trabajo por vez (años '40 y '50).
•
los trabajos se agrupan y ejecutan "por lotes" (años '60).
•
CTSS, un sistema operativo de propósito general y tiempo compartido, logra
enorme éxito.
•
MULTICS, un ambicioso proyecto de sistema operativo para cientos de usuarios
fracasa y no llega a terminarse.
2.5.3.3 ALGUNAS VERSIONES RECIENTES DE UNIX
•
AT&T, para enfrentar a OSF, crea UI, UNIX International, junto con otras empresas;
crea otro UNIX ampliado de POSIX.
•
IBM crea su propia variante de UNIX, llamada AIX. La confusión de versiones
continúa.
65
•
surgen las versiones UNIX de dominio público FreeBSD y Linux, que se distribuyen
sin costo. Linux es desarrollado por una multitud de personas y equipos de trabajo a
través de Internet. FreeBSD es desarrollado por un grupo de trabajo cerrado.
•
UNIX hacia el usuario final: distribuciones fáciles de instalar (SuSE, Redhat,
Mandrake, Corel), aplicaciones de escritorio (Applixware, StarOffice), programas
asistentes de administración para estaciones de trabajo o servidores.
2.5.3.4 OBJETIVOS DEL SISTEMA UNIX
•
Crear un sistema interactivo de tiempo compartido diseñado por programadores y
para programadores, destinado a usuarios calificados.
•
Brindar un ambiente de trabajo.
•
Permitir resolver problemas complejos combinando un número reducido de
comandos básicos.
2.5.3.5 FILOSOFÍA DEL SISTEMA UNIX
Los objetivos con que se creó determinaron una "filosofía" de Unix caracterizada por:
•
comandos cortos, simples, específicos y muy eficientes, que "hacen una sola cosa
pero la hacen muy bien".
•
entrada y salida estandarizadas que permiten la interconexión de comandos. Esto
se llama entubamiento ("pipelining"): la salida de un comando es tomada por el
siguiente como entrada.
2.5.3.6 VENTAJAS DE UNIX
Orientado en primera instancia a terminales de caracteres, actualmente dispone de la
interfase gráfica X-Windows. Esto ha simplificado mucho el uso para los no especialistas.
66
Es ideal para trabajar como servidor: una máquina potente como servidor, terminales o
computadores personales baratas en los puestos de trabajo. El paquete de libre uso
Samba permite que una máquina UNIX actúe como servidor de puestos de trabajo
Windows 3.11, Windows 95, y Windows NT.
Se orienta en la dirección contraria a la tendencia de hacer invisible al usuario el sistema
operativo, permitiendo el uso de todas las bibliotecas, llamadas al sistema y herramientas
internas, aunque su uso requiere un alto nivel de especialización. Es posible compilar un
núcleo específicamente adaptado a las necesidades particulares de una empresa o grupo
de trabajo, reduciendo el uso de recursos y aumentando la rapidez.
Las máquinas RISC de los '80 y '90 adoptaron UNIX como sistema operativo, es por lejos
el sistema predominante en las estaciones de trabajo orientadas a cálculos e
investigación. También fue adoptado para la creación de Internet, mayoritariamente
soportada por UNIX.
Por sus características de diseño, está especialmente preparado para su ampliación y
desarrollo en 64 bits y el multiprocesamiento en varios microprocesadores.
2.6 SERVIDORES WEB
2.6.1 GENERALIDADES
¿Que son los servidores Web?, ¿Cómo funcionan?
Cuando se navega por Internet en busca de información o por entretenimiento, existe una
comunicación con un Servidor Web. Esta comunicación existe cuando se visita cualquier
página en la Web. En otras palabras las páginas visitadas se albergan en servidores Web.
Existen diversos software para Servidores Web, pero en este documento se mencionan
solamente dos: Internet Information Server y Apache, que actualmente son los más
populares.
67
2.6.2 IIS (Internet Information Server)
Internet Inforamation Server de Microsoft, da soporte a la tecnología Microsoft Active
Server Pages (ASP), e incluye una interfaz HTML de administración para poder
configurarlo de manera remota en cualquier navegador.
IIS esta diseñado para trabajar bajo plataformas Windows, presenta su versión mas
completa en Windows 2000 Server, que también esta disponible para la versión de
Windows 2000 Profesional.
2.6.3 APACHE
¿Que es apache?
Apache, sustancialmente, es un proyecto nacido para crear un servidor de Web estable,
fiable y veloz para plataformas Unix. Apache nace, por una parte, de un código ya
existente y de una serie de “match” para mejorar su fiabilidad y sus características; de ahí
su nombre: ¡A PAtCHy sErver! Apache esta formado por voluntarios dispersos en todo el
mundo, quienes siguen manteniendo este servidor de forma gratuita. Aunque Apache nace
originalmente en sistemas Unix, se han hecho numerosas distribuciones para su uso en
diferentes plataformas incluyendo la Plataforma de Windows.
2.7 SERVIDORES DE BASES DE DATOS
2.7.1 GENERALIDADES
Un servidor de bases de datos en un programa que almacena datos estructurados en
forma de tablas relacionales, escucha un puerto TCP/IP a través del cual acepta
conexiones de clientes autentificados, admite comandos en lenguaje SQL, y devuelve al
cliente a través de la red los datos resultantes del procesamiento de los comandos SQL.
68
2.7.2 Microsoft SQL Server
Microsoft SQL Server. Entre sus ventajas están su perfecta integración con el sistema
operativo Windows NT Server.
¿Qué ventajas ofrece SQL Server para publicar datos en Internet?
- Estabilidad para el servidor Web.
Si utilizamos bases de datos mdb y recibimos muchas visitas o la base de datos crece
mucho, existen riesgos de inestabilidad para el servidor Web que pueden provocar un
error. SQL Server reside en un ordenador distinto al Servidor Web, y está preparado para
admitir cualquier número de visitas y tamaño de bases de datos. Utilizando SQL Server
liberamos al servidor Web de las tareas relacionadas con los datos con lo que mejorará
notablemente su rendimiento y estabilidad.
- Acceso directo a los datos.
La característica Cliente-Servidor se manifiesta en SQL Server de la siguiente forma: es
posible acceder a la base de datos del servidor utilizando un cliente en un ordenador
conectado a Internet.
2.7.3 POSTGRES
“Postgres”, desarrollada originalmente en el Departamento de Ciencias de la Computación
de la Universidad de California en Berkeley, fue pionera en muchos de los conceptos de
bases de datos relacionales orientadas a objetos que ahora empiezan a estar disponibles
en algunas bases de datos comerciales.
Entre las caracteristicas mas sobresalientes de Postgres se pueden mencionar integridad
de transacciones, y extensibilidad de tipos de datos.
PostgreSQL es un descendiente de dominio público y código abierto del código original de
Berkeley.
69
2.7.4 MYSQL
Una base de datos es un conjunto de datos estructurados. Para agregar, acceder y
procesar los datos almacenados en una base de datos computacional, se necesita un
sistema administrador de base de datos tal como MySQL. Además los computadores son
muy buenos manejando grandes cantidades de datos, el administrador de base de datos
juega un rol central en la computación, ya sea como utilidad autónoma o parte de otra
aplicación.
2.8 INTERNET2
Es un consorcio de Universidades unidas para el desarrollo de aplicaciones avanzadas
para Internet.
Las instituciones conectadas a Internet2 se comunican entre ellas a través de redes de
alto rendimiento por la misma conexión usada a Internet actual, es decir, es el ISP
(Internet Service Provider) conectado a Internet2 el que se encarga de dirigir el tráfico a
través de Internet2 o Internet comercial según corresponda.
Es posible filtrar los accesos para que sólo ciertas direcciones, dentro de alguna
Universidad por ejemplo, se conecten a Internet2 y en horas determinadas. Esto es así en
algunos países de Suramérica debido a que son las Universidades quienes deben
soportar la totalidad del costo de la conexión a Internet2, así la Universidad sólo querrá
pagar por quienes realmente vayan a hacer un uso interesante del recurso. Este no es el
escenario en otras partes del mundo como en USA o Europa en donde en general es el
gobierno el que soporta gran parte de estos gastos y por tanto no se lleva a cabo la
restricción mencionada.
70
El uso de Internet como herramienta educativa y de investigación científica ha crecido
aceleradamente debido a la ventaja que representa el poder acceder a grandes bases de
datos, la capacidad de compartir información entre colegas y facilitar la coordinación de
grupos de trabajo.
Internet 2 es una red de cómputo con capacidades avanzadas separada de la Internet
comercial actual. Su origen se basa en el espíritu de colaboración entre las universidades
del país y su objetivo principal es desarrollar la próxima generación de aplicaciones
telemáticas para facilitar las misiones de investigación y educación de las universidades,
además de ayudar en la formación de personal capacitado en el uso y manejo de redes
avanzadas de cómputo.
Algunas de las aplicaciones en desarrollo dentro del proyecto de Internet 2 a nivel
internacional son: telemedicina, bibliotecas digitales, laboratorios virtuales, manipulación a
distancia y visualización de modelos 3D; aplicaciones todas ellas que no serían posibles
de desarrollar con la tecnología del Internet de hoy.
El proyecto Internet2 es administrado por la Corporación Universitaria para el Desarrollo
Avanzado de Internet, y es un esfuerzo de colaboración para desarrollar tecnología y
aplicaciones avanzadas en Internet.
2.8.1 CONECTARSE EN INTERNET2.
Si se forma parte de una universidad, una organización sin ánimo de lucro relacionado con
el trabajo en red, o una empresa interesada en estar relacionada con Internet2, se debe
revisar la documentación disponible en Internet2 como primer paso.
Internet2 es una red de investigación y educación que une equipos en las instituciones
miembros. Conectándose a Internet2 en el modo de que una persona se conecta con
Internet a través de un proveedor de Internet o a través de la red de una empresa no es
posible. Internet2 no es simplemente una red separada o privada que requiere una
conexión especial. No proporcionará enlaces como la WWW o el correo electrónico. Los
71
desarrollos harán posible hacerlo, de cualquier manera, pronto se encontrará la manera de
introducir cualquier red de ordenadores, incluyendo Internet. Las aplicaciones y equipos
proporcionados por Internet2 transformarán la manera que tiene la gente de trabajar con
los ordenadores.
2.8.2 DESARROLLO EN INTERNET2
Los objetivos mencionados anteriormente son llevados a cabo mediante actividades de
desarrollo y prueba de nuevos protocolos y aplicaciones para Internet2. Estos desarrollos
son hechos en comités llamados Grupos de Trabajo (Working Groups, WG). Cada WG
pertenece a alguna área técnica del desarrollo de Internet2: Ingeniería, Middleware
(interfaz software que provee funcionalidades rutinarias en una conexión típica Internet.
Entre estas, como ejemplo se pueden mencionar las autenticaciones de usuario) y
Aplicaciones. Cada una de estas áreas posee un Director de Área que es el responsable
de las actividades de sus áreas respectivas. Los miembros de estos grupos de trabajo
pueden ser tanto miembros de Internet2 como empresas de apoyo externo (las empresas
de apoyo económico por ejemplo).
2.8.3 INTERNET2 VRS INTERNET
Además de que las redes que serán usadas por Internet2 serán más rápidas, las
aplicaciones desarrolladas utilizarán un completo conjunto de herramientas que no existen
en la actualidad. Por ejemplo, una de estas herramientas es comúnmente conocida como
la garantía "Calidad de servicio". Actualmente, toda información en Internet viene dada con
la misma prioridad como si ésta pasara a través de toda la red de un ordenador a otro.
"Calidad de servicio" permitirá a las aplicaciones requerir un especifica cantidad de ancho
de banda o prioridad para ella. Esto permitirá a dos ordenadores hacer funcionar una
aplicación como la tele-inmersión comunicarse a las altas velocidades necesarias para
una interacción en tiempo real. Al mismo tiempo, una aplicación con unas necesidades de
comunicación como la World Wide Web sólo necesita usar la velocidad de transmisión
necesaria para funcionar adecuadamente.
72
Es importante resaltar la diferencia en velocidad que tendrá, mucho más que una rápida
WWW. Se piensa que una red de 100 a 1000 veces más rápida permitirá a las
aplicaciones cambiar el modo de trabajar e interactuar con los ordenadores. Aplicaciones
como la tele-inmersión y las bibliotecas digitales cambiarán el modo que tiene la gente de
usar los ordenadores para aprender, comunicarse y colaborar. Quizás las más excitantes
posibilidades son aquellas que todavía no se han imaginado y serán desarrolladas junto
con Internet2.
2.8.4 POR QUÉ OTRA RED.
La Internet de hoy en día ya no es una red académica, como en sus comienzos, sino que
se ha convertido en una red que involucra, en gran parte, intereses comerciales y
particulares. Esto la hace inapropiada para la experimentación y el estudio de nuevas
herramientas en gran escala.
Adicionalmente, los proveedores de servicios sobre Internet "sobrevenden" el ancho de
banda que disponen, haciendo imposible garantizar un servicio mínimo en horas pico de
uso de la red. Esto es crítico cuando se piensa en aplicaciones que necesiten calidad de
servicio garantizada, ya que los protocolos utilizados en la Internet actual no permiten esta
funcionalidad.
Por otro lado, los enlaces de alta velocidad son aún demasiado costosos para poder
realizar su comercialización masiva.
Todo esto, entonces, nos lleva a la conclusión que Internet no es un medio apto para dar
el salto tecnológico que se necesita.
Este proceso se representa habitualmente con la llamada "Espiral de desarrollo de
Internet".
Internet2 no es una red que reemplazará a la Internet actual. La meta de Internet2 es unir
a las instituciones académicas nacionales y regionales con los recursos necesarios para
73
desarrollar nuevas tecnologías y aplicaciones, que serán las utilizadas en la futura
Internet.
2.9 LENGUAJE UNIFICADO DE MODELADO (UML)
2.9.1 GENERALIDADES
El Lenguaje Unificado de Modelado prescribe un conjunto de notaciones y diagramas
estándar para modelar sistemas orientados a objetos, y describe la semántica esencial de
lo que estos diagramas y símbolos significan. Mientras que ha habido muchas notaciones
y métodos usados para el diseño orientado a objetos, ahora los modeladores sólo tienen
que aprender una única notación.
UML sirve para el modelado completo de sistemas complejos, tanto en el diseño de los
sistemas software como para la arquitectura hardware donde se ejecuten.
Otro objetivo de este modelado visual es que sea independiente del lenguaje de
implementación, de tal forma que los diseños realizados usando UML se puedan
implementar en cualquier lenguaje que soporte las posibilidades de UML (principalmente
lenguajes orientados a objetos).
UML es además un método formal de modelado. Esto aporta las siguientes ventajas:
• Mayor rigor en la especificación.
• Permite realizar una verificación y validación del modelo realizado.
• Se pueden automatizar determinados procesos y permite generar código a partir de los
modelos y a la inversa (a partir del código fuente generar los modelos). Esto permite que
el modelo y el código estén actualizados, con lo que siempre se puede mantener la visión
en el diseño, de más alto nivel, de la estructura de un proyecto.
UML Se basa en las anteriores especificaciones BOOCH, RUMBAUGH y COADYOURDON. Divide cada proyecto en un número de diagramas que representan las
diferentes vistas del proyecto. Estos diagramas juntos son los que representa la
arquitectura del proyecto.
74
UML también intenta solucionar el problema de propiedad de código que se da con los
desarrolladores, al implementar un lenguaje de modelado común para todos los
desarrollos se crea una documentación también común, que cualquier desarrollador con
conocimientos de UML será capaz de entender, independientemente del lenguaje utilizado
para el desarrollo.
UML es ahora un standard, no existe otra especificación de diseño orientado a objetos, ya
que es el resultado de las tres opciones existentes en el mercado. Su utilización es
independiente del lenguaje de programación y de las características de los proyectos, ya
que UML ha sido diseñado para modelar cualquier tipo de proyectos, tanto informáticos
como de arquitectura, o de cualquier otro ramo.
UML permite la modificación de todos sus miembros mediante estereotipos y restricciones.
Un estereotipo nos permite indicar especificaciones del lenguaje al que se refiere el
75
diagrama de UML. Una restricción identifica un comportamiento forzado de una clase o
relación, es decir mediante la restricción estamos forzando el comportamiento que debe
tener el objeto al que se le aplica.
UML se puede usar para modelar distintos tipos de sistemas: sistemas de software,
sistemas de hardware, y organizaciones del mundo real. UML ofrece nueve diagramas en
los cuales modelar sistemas.
-
Diagramas de Casos de Uso
-
Diagramas de Secuencia para modelar el paso de mensajes entre
objetos.
-
Diagramas de Colaboración para modelar interacciones entre objetos.
-
Diagramas de Estado para modelar el comportamiento de los objetos
en el sistema.
-
Diagramas de Clases para modelar la estructura estática de las clases
en el sistema.
-
Diagramas de Objetos para modelar la estructura estática de los
objetos en el sistema.
2.9.2 Notación y Semántica estándar
UML prescribe una notación estándar y semánticas esenciales para el modelado de un
sistema orientado a objetos. Previamente, un diseño orientado a objetos podría haber sido
modelado con cualquiera de la docena de metodologías populares, causando a los
revisores tener que aprender las semánticas y notaciones de la metodología empleada
antes que intentar entender el diseño en sí. Ahora con UML, diseñadores diferentes
modelando sistemas diferentes pueden sobradamente entender cada uno los diseños de
los otros.
76
2.9.3 Diagrama de Casos de Uso (Use Case)
El diagrama de casos de uso representa la forma en como un Cliente (Actor) opera con el
sistema en desarrollo, además de la forma, tipo y orden en como los elementos
interactúan (operaciones o casos de uso).
Un diagrama de casos de uso consta de los siguientes elementos:
-
Actor.
-
Casos de Uso.
-
Relaciones de Uso, Herencia y Comunicación.
Elementos de Casos de Usos
a) Actor:
Una definición previa, es que un Actor es un rol que un usuario juega con
respecto al sistema. Es importante destacar el uso de la palabra rol, pues con
esto se especifica que un Actor no necesariamente representa a una persona
en particular, sino más bien la labor que realiza frente al sistema.
Como ejemplo a la definición anterior, tenemos el caso de un sistema de ventas en que el
rol de Vendedor con respecto al sistema puede ser realizado por un Vendedor o bien por
el Jefe de Local.
b) Caso de Uso:
Es una operación/tarea específica que se realiza tras una orden de algún
agente externo, sea desde una petición de un actor o bien desde la
invocación desde otro caso de uso.
77
c) Relaciones:
Asociación
Es el tipo de relación más básica que indica la invocación desde un actor o caso de uso a
otra operación (caso de uso). Dicha relación se denota con una flecha simple.
Dependencia o Instanciación
Es una forma muy particular de relación entre clases, en la cual una clase depende de
otra, es decir, se instancia (se crea). Dicha relación se denota con una flecha punteada.
Generalización
Este tipo de relación es uno de los más utilizados, cumple una doble función dependiendo
de su estereotipo, que puede ser de Uso (<<uses>>) o de Herencia (<<extends>>).
Este tipo de relación esta orientado exclusivamente para casos de uso (y no para actores).
extends: Se recomienda utilizar cuando un caso de uso es similar a otro (características).
uses: Se recomienda utilizar cuando se tiene un conjunto de características que son
similares en más de un caso de uso y no se desea mantener copiada la descripción de la
característica.
De lo anterior cabe mencionar que tiene el mismo paradigma en diseño y modelamiento
de clases, en donde esta la duda clásica de usar o heredar.
2.9.4 Diagrama de Estructura
Un diagrama de estructura muestra el conjunto de clases y objetos importantes que hacen
parte de un sistema, junto con las relaciones existentes entre estas clases y objetos.
Muestra de la estructura de información del sistema y la visibilidad que tiene cada una de
las clases, dada por sus relaciones con las demás en el modelo.
78
2.9.5. Diagrama de Transición de Estados
Muestra el conjunto de estados por los cuales pasa un objeto durante su vida en una
aplicación, junto con los cambios que permiten pasar de un estado a otro.
Los Diagramas de Estado representan autómatas de estados finitos, desde el p.d.v. de los
estados y las transiciones. Son útiles sólo para los objetos con un comportamiento
significativo. Cada objeto está en un estado en cierto instante. El estado está
caracterizado parcialmente por los valores algunos de los atributos del objeto. El estado en
el que se encuentra un objeto determina su comportamiento. Cada objeto sigue el
comportamiento descrito en el Diagrama de Estados asociado a su clase. Los Diagramas
de Estados y escenarios son complementarios, los Diagramas de Estados son autómatas
jerárquicos que permiten expresar concurrencia, sincronización y jerarquías de objetos,
son grafos dirigidos y deterministas. La transición entre estados es instantánea y se debe
a la ocurrencia de un evento.
Estado
Identifica un periodo de tiempo del objeto (no instantáneo) en el cual el objeto está
esperando alguna operación, tiene cierto estado característico o puede recibir cierto tipo
de estímulos. Se representa mediante un rectángulo con los bordes redondeados, que
puede tener tres compartimientos: uno para el nombre, otro para el valor característico de
los atributos del objeto en ese estado y otro para las acciones que se realizan al entrar,
salir o estar en un estado (entry, exit o do, respectivamente).
Eventos
Es una ocurrencia que puede causar la transición de un estado a otro de un objeto. Esta
ocurrencia puede ser una de varias cosas:
- Condición que toma el valor de verdadero o falso
79
- Recepción de una señal de otro objeto en el modelo
- Recepción de un mensaje
- Paso de cierto período de tiempo, después de entrar al estado o de cierta hora y fecha
particular
- El nombre de un evento tiene alcance dentro del paquete en el cual está definido, no es
local a la clase que lo nombre.
- Envío de mensajes
Además de mostrar y transición de estados por medio de eventos, puede representarse el
momento en el cual se envían mensajes a otros objetos. Esto se realiza mediante una
línea punteada dirigida al diagrama de estados del objeto receptor del mensaje.
Transición simple
Una transición simple es una relación entre dos estados que indica que un objeto en el
primer estado puede entrar al segundo estado y ejecutar ciertas operaciones, cuando un
evento ocurre y si ciertas condiciones son satisfechas. Se representa como una línea
sólida entre dos estados, que puede venir acompañada de un texto con el siguiente
formato:
event-signature "[" guard-condition] "/" action-expression "^"send-clause
event-signature es la descripción del evento que da lugar la transición, guard-condition
son las condiciones adicionales al evento necesarias para que la transición ocurra, actionexpression es un mensaje al objeto o a otro objeto que se ejecuta como resultado de la
transición y el cambio de estado y send-clause son acciones adicionales que se ejecutan
con el cambio de estado, por ejemplo, el envío de eventos a otros paquetes o clases.
80
Transición interna
Es una transición que permanece en el mismo estado, en vez de involucrar dos estados
distintos. Representa un evento que no causa cambio de estado. Se denota como una
cadena adicional en el compartimiento de acciones del estado.
Acciones
Podemos especificar la solicitud de un servicio a otro objeto como consecuencia de la
transición. Se puede especificar el ejecutar una acción como consecuencia de entrar, salir,
estar en un estado, o por la ocurrencia de un evento.
Generalización de Estados
Podemos reducir la complejidad de estos diagramas usando la generalización de estados.
Distinguimos así entre superestado y subestados.
Un estado puede contener varios subestados disjuntos.
Los subestados heredan las variables de estado y las transiciones externas.
La agregación de estados es la composición de un estado a partir de varios estados
independientes.
La composición es concurrente por lo que el objeto estará en alguno de los estados de
cada uno de los subestados concurrentes. La destrucción de un objeto es efectiva cuando
el flujo de control del autómata alcanza un estado final no anidado. La llegada a un estado
final anidado implica la subida al superestado asociado, no el fin del objeto.
Subestados
Un estado puede descomponerse en subestados, con transiciones entre ellos y
conexiones al nivel superior. Las conexiones se ven al nivel inferior como estados de inicio
o fin, los cuales se suponen conectados a las entradas y salidas del nivel inmediatamente
superior.
81
Transacción Compleja
Una transición compleja relaciona tres o más estados en una transición de múltiples
fuentes y/o múltiples destinos. Representa la subdivisión en threads del control del objeto
o una sincronización. Se representa como una línea vertical de la cual salen o entran
varias líneas de transición de estado.
Transición a estados anidados
Una transición de hacia un estado complejo (descrito mediante estados anidados) significa
la entrada al estado inicial del subdiagrama. Las transiciones que salen del estado
complejo se entienden como transiciones desde cada uno de los subestados hacia afuera
(a cualquier nivel de profundidad).
Transiciones temporizadas
Las esperas son actividades que tienen asociada cierta duración.
La actividad de espera se interrumpe cuando el evento esperado tiene lugar.
Este evento desencadena una transición que permite salir del estado que alberga la
actividad de espera. El flujo de control se transmite entonces a otro estado.
Descargar