Академический Документы
Профессиональный Документы
Культура Документы
El servidor Web distribuye páginas de información formateada a los clientes que las solicitan. Los
requerimientos son hechos a través de una conexión de red, y para ello se usa el protocolo HTTP.
Una vez que se solicita esta petición mediante el protocolo HTTP y la recibe el servidor Web, éste
localiza la página Web en su sistema de archivos y la envía de vuelta al navegador que la solicitó.
Las aplicaciones Web están basadas en el modelo Cliente/Servidor que gestionan servidores web,
y que utilizan como interfaz páginas web.
Las páginas Web son el componente principal de una aplicación o sitio Web. Los browsers piden
páginas (almacenadas o creadas dinámicamente) con información a los servidores Web. En
algunos ambientes de desarrollo de aplicaciones Web, las páginas contienen código HTML y
scripts dinámicos, que son ejecutados por el servidor antes de entregar la página.
1
Una vez que se entrega una página, la conexión entre el browser y el servidor Web se rompe, es
decir que la lógica del negocio en el servidor solamente se activa por la ejecución de los scripts de
las páginas solicitadas por el browser (en el servidor, no en el cliente). Cuando el browser ejecuta
un script en el cliente, éste no tiene acceso directo a los recursos del servidor.
Hay otros componentes que no son scripts, como los applets (una aplicación especial que se
ejecuta dentro de un navegador) o los componentes ActiveX. Los scripts del cliente son por lo
general código JavaScript o VBSscript, mezclados con código HTML.
La colección de páginas son en una buena parte dinámicas (ASP, PHP, etc.), y están agrupadas
lógicamente para dar un servicio al usuario.
El acceso a las páginas está agrupado también en el tiempo (sesión).
Los componentes de una aplicación Web son:
1. Lógica de negocio.
Parte más importante de la aplicación.
Define los procesos que involucran a la aplicación.
Conjunto de operaciones requeridas para proveer el servicio.
2. Administración de los datos.
Manipulación de BD y archivos.
3. Interfaz
Los usuarios acceden a través de navegadores, móviles, PDAs, etc.
Funcionalidad accesible a través del navegador.
Limitada y dirigida por la aplicación.
Las aplicaciones web se modelan mediante lo que se conoce como modelo de capas, Una capa
representa un elemento que procesa o trata información.
Los tipos son:
Modelo de dos capas: La información atraviesa dos capas entre la interfaz y la
administración de los datos.
Modelo de n-capas: La información atraviesa varias capas, el más habitual es el modelo de
tres capas.
2
Modelo de tres Capas.
Esta diseñada para superar las limitaciones de las arquitecturas ajustadas al modelo de dos capas,
introduce una capa intermedia (la capa de proceso)
Entre presentación y los datos, los procesos pueden ser manejados de forma separada a la
interfaz de usuario y a los datos, esta capa intermedia centraliza la lógica de negocio, haciendo la
administración más sencilla, los datos se pueden integrar de múltiples fuentes, las aplicaciones
web actuales se ajustan a este modelo.
Las capas de este modelo son:
1. Capa de presentación (parte en el cliente y parte en el servidor)
Recoge la información del usuario y la envía al servidor (cliente)
Manda información a la capa de proceso para su procesado
Recibe los resultados de la capa de proceso
Generan la presentación
Visualizan la presentación al usuario (cliente)
2. Capa de proceso (servidor web)
Recibe la entrada de datos de la capa de presentación
Interactúa con la capa de datos para realizar operaciones
Manda los resultados procesados a la capa de presentación
3. Capa de datos (servidor de datos)
Almacena los datos
Recupera datos
Mantiene los datos
segura la integridad de los datos
3
2.2 Lenguajes de programación del lado del cliente.
Los lenguajes de programación del lado cliente se usan para su integración en páginas web. Un
código escrito en un lenguaje de script se incorpora directamente dentro de un código HTML y se
ejecuta interpretado, no compilado.
Con la programación del lado del cliente se pueden validar algunos de los datos en la máquina
cliente antes de enviarlos al servidor. Esto proporciona a los usuarios informes de error inmediatos,
mientras siguen en esa página de formulario y sin necesidad de volver atrás tras recibir un mensaje
de error. Puede resultar necesario acceder a una base de datos para validar determinados valores,
mientras que no suele disponer de un acceso directo a la base de datos en la máquina del cliente,
aunque ese acceso a la base de datos es factible.
Para incorporar un fragmento de código script en una página HTML se introduce el script entre los
tags <SCRIPT> y </SCRIPT> . Dos son los lenguajes de script que hay en la actualidad: el
VBScript (derivado de Visual Basic) y el JavaScript (derivado de Java)
Vbscript (Visual Basic Script): Es un lenguaje de script, directamente derivado de Visual Basic.
Para insertar código VBScript en una página HTML se añade al tag <SCRIPT> el parámetro
LANGUAGE="VBScript" , que determina cual de los lenguajes de script se utiliza.
Decimos que los lenguajes de script se ejecutan interpretados, no compilados. Esto significa que
un código escrito en un lenguaje de script no sufre ninguna transformación previa a su ejecución.
Cada línea de código es traducida a lenguaje máquina justo antes de su ejecución. Después es
ejecutada y la traducción no se conserva en ningún sistema de almacenamiento (como discos,
cintas, etc.). Si es necesaria otra ejecución, el intérprete se verá abocado a realizar una nueva
traducción de cada línea de código. Sin embargo el lenguaje Visual Basic, del cual deriva el
VBScript, es un leguaje compilado. Esto significa que un código en Visual Basic sufre un proceso
global de traducción a lenguaje máquina. Todo el código es traducido de una sola vez y el
resultado de esa traducción se almacena en el disco con la extensión .EXE.
Cuando llega el momento de la ejecución, se ejecuta el código compilado, no el código original del
programa (llamado código nativo o código fuente). Cada sistema tiene sus ventajas e
inconvenientes.
4
Las ventajas e inconvenientes de la interpretación son:
El código compilado se ejecuta muy rápido, al no ser necesaria una traducción cada vez.
El código compilado no puede ser "abierto" por otras personas. No es necesario transmitir
el código fuente.
El código compilado puede estar, íntegramente, incluido en un solo fichero.
Es necesario disponer de un compilador-linkador para el proceso de la compilación.
El código compilado suele ocupar bastante en disco, ya que incorpora en el propio código
algunas librerías del sistema.
Depurar un programa implica volver a compilar tras los cambios.
El código en VBScript puede, además, estar diseñado para su ejecución en el lado del cliente o en
el del servidor. La diferencia es que un código que se ejecuta en el lado del servidor no es visible
en el lado del cliente. Este recibe los resultados, pero no el código. El código que se debe de
ejecutar en el lado del servidor estará incluido en la página web correspondiente entre los tags <%
y %>. Además habrá que renombrar la página para aplicarle la extensión .asp (Active Server Page
-página activa en servidor-). El funcionamiento intrínseco de la ASP se especificará con mayor
detalle en el capítulo 3. Lenguajes del servidor
<HTML>
<HEAD>
<TITLE>Cuadro de mensaje</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE = "VBScript">
MSGBOX ("Ejemplo de mensaje")
</SCRIPT>
</BODY>
</HTML>
Este código incluye la instrucción MSGBOX ("Cuadro de mensaje"), que genera en pantalla lo
siguiente:
JavaScript:
5
Las diferentes versiones de JavaScript han sido finalmente integradas en un estándar denominado
ECMAScript-262. Dicho estándar ha sido realizado por la organización ECMA dedicada a la
estandarización de información y sistemas de comunicación. Las versiones actuales de los
navegadores soportan este estándar.
Por ejemplo, una aplicación escrita en JavaScript puede ser incrustada en un documento HTML
proporcionando un mecanismo para la detección y tratamiento de eventos, como clicks del ratón o
validación de entradas realizadas en formularios.
Sin existir comunicación a través de la red una página HTML con JavaScript incrustado puede
interpretar, y alertar al usuario con una ventana de diálogo, de que las entradas de los formularios
no son válidas. O bien realizar algún tipo de acción como ejecutar un fichero de sonido, un applet
de Java, etc.
<html>
</head>
<body>
<br>
Este es un documento HTML normal
<br>
<script language="JavaScript">
document.write("Esto es JavaScript!")
</script>
<br>
En HTML otra vez.
</body>
</html>
Este primer programa se limita a escribir en pantalla un determinado texto para lo que se emplea el
código document.write. En este código, document es un objeto creado por el sistema que hace
referencia al propio documento y write es uno de los métodos que proporciona para interactuar con
él. El resultado de cargar este documento en un visualizador que interprete JavaScript será la
aparición de los dos textos, el escrito en JavaScript y el escrito en HTML, sin que el usuario sea
consciente del proceso.
Podemos hablar también de páginas dinámicas del servidor, que son reconocidas, interpretadas y
ejecutadas por el propio servidor.
Los Lenguajes de programación del lado del servidor son especialmente útiles en trabajos que se
tiene que acceder a información centralizada, situada en una base de datos en el servidor, y
cuando por razones de seguridad los cálculos no se pueden realizar en la computadora del
usuario.
Es importante destacar que los lenguajes de programación del lado del servidor son necesarios
porque para hacer la mayoría de las aplicaciones web se debe tener acceso a muchos recursos
externos a la computadora del cliente, principalmente bases de datos alojadas en servidores de
6
Internet. Un caso claro es un banco: no tiene ningún sentido que el cliente tenga acceso a toda la
base de datos, sólo a la información que le concierne.
Las páginas dinámicas del servidor se suelen escribir en el mismo archivo HTML, mezclado con el
código HTML, al igual que ocurría en las páginas del cliente. Cuando una página es solicitada por
parte de un cliente, el servidor ejecuta los scripts y se genera una página resultado, que solamente
contiene código HTML. Este resultado final es el que se envía al cliente y puede ser interpretado
sin lugar a errores ni incompatibilidades, puesto que sólo contiene HTML.
Luego es el servidor el que maneja toda la información de las bases de datos y cualquier otro
recurso, como imágenes o servidores de correo y luego envía al cliente una página web con los
resultados de todas las operaciones.
Las ventajas de este tipo de programación son que el cliente no puede ver los scripts, ya que se
ejecutan y transforman en HTML antes de enviarlos. Además son independientes del navegador
del usuario, ya que el código que reciben es HTML fácilmente interpretable.
Como desventajas se puede señalar que será necesario un servidor más potente y con más
capacidades que el necesario para las páginas de cliente. Además, estos servidores podrán
soportar menos usuarios concurrentes, porque se requerirá más tiempo de procesamiento para
cada uno.
7
JAVA y DCOM, las avanzadas características de XML y las mejoras de la programación
orientada a objetos (POO) que incorpora su última versión PHP5, han incrementado la
aceptación de PHP en entornos comerciales, y lo han convertido en una herramienta viable
para la programación en entornos empresariales.
8
vez se compone de diversos subproyectos entre los cuales esta el Eclipse Web Tools
Platform (WTP), el cual contiene herramientas para el desarrollo de aplicaciones web, que
incluyen editores gráficos para simplificar el desarrollo.
9
característico para funcionar como adaptadores de los objetos conceptuales y
delegar así operaciones específicas del dominio. Entonces, los objetos
navegacionales pueden actuar como observadores, para construir vistas de
objetos conceptuales, y como adaptadores, para extender la actividad
navegacional de un nodo y poder aprovechar el comportamiento conceptual del
objeto adaptado.
Diseño de Interfaz Abstracta. Una vez que las estructuras navegacionales son
definidas, se deben especificar los aspectos de interfaz. Esto significa definir la
forma en la cual los objetos navegacionales pueden aparecer, cómo los objetos de
interfaz activarán la navegación y el resto de la funcionalidad de la aplicación, qué
transformaciones de la interfaz son pertinentes y cuándo es necesario realizarlas.
Una clara separación entre diseño navegacional y diseño de interfaz abstracta
permite construir diferentes interfaces para el mismo modelo navegacional,
dejando un alto grado de independencia de la tecnología de interfaz de usuario. El
aspecto de la interfaz de usuario de aplicaciones interactivas (en particular las
aplicaciones web) es un punto crítico en el desarrollo que las modernas
metodologías tienden a descuidar. En OOHDM se utiliza el diseño de interfaz
abstracta para describir la interfaz del usuario de la aplicación de hipermedia. El
modelo de interfaz ADVs (Vista de Datos Abstracta) especifica la organización y
comportamiento de la interfaz, pero la apariencia física real o de los atributos, y la
disposición de las propiedades de las ADVs en la pantalla real son hechas en la
fase de implementación.
Implementación. En esta fase, el diseñador debe implementar el diseño. Hasta
ahora, todos los modelos fueron construidos en forma independiente de la
plataforma de implementación; en esta fase es tenido en cuenta el entorno
particular en el cual se va a correr la aplicación. Al llegar a esta fase, el primer
paso que debe realizar el diseñador es definir los ítems de información que son
parte del dominio del problema. Debe identificar también, cómo son organizados
los ítems de acuerdo con el perfil del usuario y su tarea; decidir qué interfaz
debería ver y cómo debería comportarse. A fin de implementar todo en un entorno
web, el diseñador debe decidir además qué información debe ser almacenada.
10
Diseño Conceptual: Se construye el modelo conceptual del dominio de la
aplicación considerando los requisitos reflejados en los casos de uso. El resultado
es el diagrama de clases de dominio.
Diseño Navegacional: Se obtienen el modelo de espacio de navegación y el de
estructura de navegación, que muestra como navegar a través del espacio de
navegación. El resultado son diagramas de clases que representan estos modelos.
Diseño de Presentación: Representa las vistas del interfaz del usuario mediante
modelos estándares de interacción UML.
Ejemplo de la metodología UWE.- Este es un ejemplo típico de Altas, Bajas y Cambios de Clientes
en un sistema, estos son los cuatro pasos de este ejemplo:
1. Análisis de requisitos. En este ejemplo los casos de uso son los siguientes:
Autenticación. El administrador se autenticará, con su usuario y contraseña, para
acceder al sistema de información. A través de esta autenticación le será mostrada la
información relativa a los clientes.
Alta de clientes. El administrador es el encargado de dar de alta en el sistema a los
clientes. Es el primer paso que hay que realizar para tener a los clientes dentro el
sistema.
Búsqueda de clientes. El administrador puede buscar los datos de los clientes del
sistema para su mantenimiento.
Baja/Modificación de clientes. En caso de que el cliente sufra cualquier cambio en sus
datos, el administrador se encarga de llevar a cabo dichas modificaciones o dar de
baja a los clientes.
Usuario
Cliente
11
que quieran utilizar la aplicación y también permitirá realizar la modificación de la
clave de acceso.
Clase Cliente.- Esta clase atiende las peticiones para el acceso a las funciones del
cliente. Esta clase nos permitirá hacer el alta, baja, modificación y búsqueda de un
cliente.
El modelo de navegación además de especificar las clases que podrán ser visitadas por el
usuario, define cómo se alcanzan dichas clases mediante lo que se denomina estructura
de navegación.
Usuario
Menu
Alta Cliente
Búsqueda Cliente
Consulta ? Indice
Indice
Cliente
En la estructura de navegación intervienen aparte de las dos clases, tres elementos más,
que son índices, consultas y menús, a los cuales se les llama elementos de acceso. Un
índice permite el acceso directo a las instancias de una clase de navegación, mientras que
Una consulta representa una búsqueda en función de unos parámetros como la búsqueda
de cliente.
12
Logout
Inicial
Captura Alta
login Datos
Error
Error búsqueda
login Modificar
Error
13
Administrador Vista Usuario SQL
Petición Entrada
Solicitud Login-Password
Devolver Control
Autentica Usuario
Crear SQL
Devolver Control
Comprobación log-pass
Comprobación valida
Autenticación
Correcta
Destruir SQL
14
2.6 Aspectos de seguridad.
Debido a los pocos mecanismos de seguridad informática en Internet, el hecho de colocar una
página Web en ella trae determinados riesgos que pueden ser controlados con alguna estrategia
adecuada.
La seguridad en una página debe cumplir con tres aspectos: operatividad, integridad y privacidad,
al igual que cualquier otro dispositivo de cómputo.
Cada una de las condiciones de seguridad de una página Web: operatividad, integridad y
privacidad, tienen sus propios riesgos que actúan dentro o fuera del sistema.
Para establecer una estrategia de seguridad se debe evaluar el grado de importancia de cada uno
de ellos y basándose en ello, establecer normas y procedimientos necesarios para contenerlos:
15
cada usuario tiene dos claves: una clave pública y una clave privada. Los algoritmos de
encriptación y desencriptación son adaptados de manera que sólo la clave pública puede
desencriptar los datos encriptados por la clave privada. Por consiguiente, puede transmitir
con libertad la clave pública al mundo.
3. Creación de un Sitio Seguro: Las ventajas de crear un sistema seguro antes de ser
pirateado deben ser obvias. La prevención es la mejor medicina y esto se aplica también
ala seguridad de las computadoras. Se debe mantener la seguridad de los archivos de
datos de tal forma que solo las personas correctas puedan verlos. Esto es crucial para los
siguientes tipos de datos y archivos: contraseñas de usuarios, archivos de facturación,
registros de sistema y de usuarios, información de tarjetas de créditos, información
confinada de sistemas remotos, compiladores, herramientas de administración.
4. Firewalls, Wrappers y Proxies: Los firewalls, wrappers y proxies ofrecen una buena línea
de defensa para los propietarios de servidores Web y administradores de sistemas. Los
firewalls pueden ser software o hardware que protege los puertos y evita que los piratas
penetren al sistema. Los firewalls permiten que tengan acceso al sistema sólo ciertos
nombres de dominio confiables. Los wrappers se encuentran disponibles en CERT al igual
que en otros archivos en Internet. Los wrappers se ejecutan como una capa de software
alrededor de su otro software. Un usuario que se conecta a FTP primero entraría en
contacto con el wrapper, el cual luego habilitaría al FTP. El usuario no sabe que existe el
wrapper y no puede detectar ninguna diferencia en el sistema. Los wrappers son
interesantes porque son flexibles. Pueden actuar como firewalls y en realidad pueden
rechazar usuarios con base en sus nombres de usuarios al igual que en sus nombres de
dominios. Además permite crear callejones sin salida que permiten atrapar piratas. El
modo proxy es un método permite ocultar datos por medio de reenrutamiento de las
solicitudes. Es útil para usuarios que están detrás de una firewall. Los usuarios establecen
una dirección proxy de su navegador para que apunte hacia su servidor Web. El servidor
Web maneja entonces la dirección real de los datos hacia el mundo exterior. Esto reduce la
dirección que el usuario está tomando cuando deja su sistema, permitiéndole al usuario
enrutar los datos los datos a través de los agujeros en sus propias firewalls. La otra ventaja
es que las solicitudes pueden ser filtradas por el software del servidor. Al filtrar la
información, puede restringir el contenido y rastrear el uso al igual que modificar la
información en ese instante. Los servidores proxy también pueden ser dirigidos a otros
servidores proxy, lo cual les permite ocultar datos en forma efectiva. Otra ventaja de los
servidores proxy es que los servicios como FTP, Telnet, Gopher, NetnNews, etc., pueden
ser erutados a servidores diferentes. Esto le permite distribuir diversas cargas de servidor
Web a diferentes servidores físicos. Además de beneficiarse con el ocultamiento de los
datos, ser reduce la carga del servidor.
Algunas de las definiciones más importantes en el manejo de la seguridad son las siguientes:
Clave pública: Es una clave alfanumérica creada por medio de algoritmos matemáticos que
sirve para encriptar una serie de datos. Suele ser creada junto con una clave privada, la
clave pública se suele llamar también llave pública.
Clave privada: Es una clave alfanumérica creada por medio de algoritmos matemáticos
que sirve para desencriptar una serie de datos que han sido creados por la clave pública
que forma la pareja.
Certificado: Es la certificación electrónica que vincula unos datos de verificación de firma a
un signatario y confirma su identidad
Autoridad certificadora: Es la autoridad que garantiza que una firma es de quien dice ser,
esta garantía se da por medio de certificados digitales.
Prestador de servicios de Certificación: Es una empresa o entidad que expide certificados
digitales, puede ser una autoridad de certificación o expedirlos en nombre de ésta
16
Los certificados digitales son expedidos por una autoridad de certificación (CA) y contienen entre
otros datos el nombre de la empresa, un numero serial, fecha de expiración y una llave publica que
permite encriptar la información.
La empresa que desee encriptar información debe solicitar un certificado digital a una autoridad de
certificación (CA). La CA emite un archivo con un certificado digital que contiene la llave pública así
como otros datos.
El uso mas común para los certificados digitales es verificar que un sitio en internet es quien en
realidad dice ser, y proveer transferencia encriptada de datos. El usuario que recibe la información
encriptada utiliza la llave pública que ofrece la CA para decodificar el certificado digital. Se verifica
que el certificado es autentico y que fue en realidad emitido por la CA y una vez entonces
identificado obtiene la llave publica del sitio.
Un uso práctico de ello se da en los bancos por Internet, los que utilizan sitios seguros para
identificar a sus usuarios y ofrecer servicios con seguridad y prevenir delitos informáticos.
Este sistema parece en si seguro, pero tiene un problema, imaginemos que el usuario A manda
todas las semanas dinero al usuario B, un hacker ser percata de ello y trama el siguiente plan:
Crea dos llaves, privada y pública y manda la pública al usuario A diciéndole que le mande mas
dinero esa semana, entonces el usuario A envía los datos del banco por correo y los cifra con la
supuesta llave pública. El dinero acabaría en manos del hacker, puesto que sólo él dispone de la
llave para desencriptar los datos del banco.
El problema aquí es que el hacker se ha hecho pasar por el usuario B. aparece entonces la
necesidad de crear una tercera entidad en la transacción: Autoridad de Certificación.
El certificador, es una entidad o persona en la que tanto el usuario A como el usuario B confían,
por lo que certifica al usuario A que la llave pública que le llega a éste es del usuario B y no del
hacker.
17
5. En el camino el haker, intercepta el mensaje, el posee la llave pública, pero como no posee
la privada que sólo el usuario B posee, no le sirve de nada el mensaje interceptado, puesto
que no puede descifrar, los datos bancarios.
6. El mensaje llega al usuario B que abre o desencripta el mensaje con la seguriidad de que
nadie lo ha abierto.
Un ejemplo comercial de la utilización de certificados es el SSL o Secure socket Layer que se basa
en la utilización de certificados y que garantiza al día de hoy, si se realiza correctamente el
comercio electrónico en Internet, este protocolo funciona como en el siguiente ejemplo:
Un negocio que vende sus productos por Internet, antes de comenzar a vender, crea un par de
llaves una pública y otra privada y solicita un certificado a una autoridad de certificación de manera
que no halla dudas de que la llave pública es de esa empresa, esta llave pública sólo sirve para
encriptar, y cualquier persona puede estar en posesión de ella, de hecho cada vez que un usuario
quiere hacer una compra por primera vez, debe haber descargado el certificado con la llave pública
de la empresa.
Estos serían los pasos a seguir para realizar una compra por Internet:
Paso 1: Un usuario quiere comprar un producto por Internet, para ello pondrá la dirección en su
programa navegador, por ejemplo http://www.musica-online.com el navegador conectará y pondrá
https://www.musica-online.com en vez de:
http://www.musica-online.com
Hay que darse cuenta que ha puesto https en vez de hhtp la s significa que estamos en un sitio
seguro.
Paso 2: Pero como es la primera vez que nos conectamos, el navegador nos dará un mensaje,
informándonos que no confiamos en esa empresa, puesto que no tenemos ningún certificado que
la acredite, seguramente en la propia página web encontraremos algún vínculo donde descargar el
certificado. Aparecerá una pantalla donde podamos leer el certificado, y nos pedirá si confiamos en
el y si queremos instalarlo. Si el certificado es de nuestra garantía; es decir conocemos la autoridad
certificadora, por ejemplo nuestro Banco o Caja de ahorros entonces lo instalaremos.
Paso 4: Nuestro navegador, utilizando la llave pública de la empresa, que sólo sirve para encriptar,
es decir para cerrar, manda encriptada la llave pública que ha generado aleatoriamente nuestro
navegador, puesto que es pública se podría haber mandado sin encriptar, pero aún asi este
proceso mejora la intimidad y la manda encriptada.
Paso 5: A la empresa le llega la llave pública generada para esa transacción, puesto que ambas
partes tienen la llave pública del otro, pueden establecer un canal. El usuario mandará los datos de
su tarjeta y verá en pantalla un recibo que podrá imprimir y utilizar en caso de reclamación. La
18
empresa por su parte tendrá que comprobar los datos de la tarjeta por otro sistema, puesto que
nadie le asegura a la empresa que el que compra es quien dice ser.
19