Вы находитесь на странице: 1из 95

Excelencia Acadmica

INDICE
Presentacin

UNIDAD ACADMICA N 01
SERVIDORES Y LENGUAJES DE PROGRAMACIN WEB

1.1. Servidores 1.2. Lenguajes de Programacin

08 11

UNIDAD ACADMICA N 02
SISTEMA DE AUTENTICACIN DE USUARIOS

2.1. Principios de autenticacin 2.2. Implementacin del sistema de autenticacin

22 23

UNIDAD ACADMICA N 03
COMERCIO ELECTRNICO

3.1. Evolucin Histrica 3.2. Carrito de compras en ASP 3.3. Carrito de compras con PHP

34 36 38

UNIDAD ACADMICA N 04
ADMINISTRACIN DE BASES DE DATOS VIA WEB

4.1 Acceso a una Base de Datos MySQL usando PHP 4.2 Desarrollo de un Sistema Web

52 52

UNIDAD ACADMICA N 05
SISTEMA DE ADMINISTRACIN DE CONTENIDOS

5.1. Gestores de Contenidos con cdigo abierto 5.2. Gestores de Contenidos con cdigo propietario 5.3. Creacin de un Sistema de Gestin de Contenidos en ASP.NET

58 64 66

UNIDAD ACADMICA N 06
SISTEMA DE MENSAJERIA

6.1. Java Message Service 6.2. Arquitectura de JMS 6.3. Ejemplo de una comunicacin punto a punto

70 70 73

UNIDAD ACADMICA N 07
METODOLOGAS PARA EL DESARROLLO DE SISTEMAS DE INFORMACIN WEB

7.1. Metodologas existentes 7.2. Comparacin de las metodologas existentes 7.3. Caso Prctico

79 81 86

UNIDAD ACADMICA N 08
REGISTROS DE DOMINIO Y CPANEL

8.1. Dominios 8.2. Normatividad de cuenta 8.3. Panel de control

92 92 97
5

Excelencia Acadmica

Excelencia Acadmica

SERVIDORES Y LENGUAJES DE PROGRAMACIN


Las organizaciones de hoy en da con sedes dispersas en una amplia rea geogrfica, esperan tener la posibilidad de examinar en forma habitual el estado actual de toda su informacin, simplemente oprimiendo un botn. Mientras crece la habilidad para recolectar procesar y distribuir informacin, la demanda de procesos ms sofisticados crece todava con mayor rapidez. La industria de la informtica ha mostrado un progreso espectacular en muy corto tiempo. El viejo modelo de tener una sola computadora para satisfacer todas las necesidades de clculo de la organizacin se est reemplazando por otro que considera un nmero grande de computadoras separadas, pero interconectadas, que efectan el mismo trabajo.

Al finalizar el estudio de la presente unidad temtica el estudiante: 1. Describe los tipos de servidores. 2. Describe el funcionamiento de los Servidores. 3. Describe los tipos de Tecnologas de Desarrollo Web. 4. Diferencia el uso de los Lenguajes de Programacin para la Web. 5. Implementa un servidor Web, de Datos y de Aplicaciones.

Excelencia Acadmica

1.1. SERVIDORES
Un servidor es un tipo de software que realiza ciertas tareas en nombre y a solicitud de los usuarios. El trmino servidor ahora tambin se utiliza para referirse al ordenador fsico en el cual funciona ese software, una mquina cuyo propsito es proveer datos de modo que otras mquinas puedan utilizar esos datos. Este uso dual puede llevar a confusin. Por ejemplo, en el caso de un servidor web, este trmino podra referirse a la mquina que almacena y maneja los sitios web, y en este sentido es utilizada por las compaas que ofrecen hosting o hospedaje. Alternativamente, el servidor web podra referirse al software, como el servidor de http de Apache, que funciona en la mquina y maneja la entrega de los componentes de las pginas web como respuesta a peticiones de los navegadores de los clientes. Los archivos para cada sitio de Internet se almacenan y se ejecutan en el servidor. Hay muchos servidores en Internet y muchos tipos de servidores, pero comparten la funcin comn de proporcionar el acceso a los archivos y servicios. Un servidor sirve informacin a los ordenadores que se conecten a l. Cuando los usuarios se conectan a un servidor pueden acceder a programas, archivos y otra informacin del servidor. En la web, un servidor web es un ordenador que usa el protocolo http para enviar pginas web al ordenador de un usuario cuando el usuario las solicita. Los servidores web, servidores de correo y servidores de bases de datos son a lo que tiene acceso la mayora de la gente al usar Internet. Algunos servidores manejan solamente correo o solamente archivos, mientras que otros hacen ms de un trabajo, ya que un mismo ordenador puede tener diferentes programas de servidor funcionando al mismo tiempo. Los servidores se conectan a la red mediante una interfaz que puede ser una red verdadera o mediante conexin va lnea telefnica o digital.

1.1.1. Tipos de Servidores:


Esta lista categoriza los diversos tipos de servidores del mercado actual:

Plataformas de Servidor: Un trmino usado a menudo como sinnimo de sistema operativo, la plataforma es el hardware o software subyacentes para un sistema, es decir, el motor que dirige el servidor.

Servidores de Aplicaciones: Designados a veces como un tipo de middleware (software que conecta dos aplicaciones), los servidores de aplicaciones ocupan una gran parte del territorio entre los servidores de bases de datos y el usuario, y a menudo los conectan.

Excelencia Acadmica

Servidores de Audio/Video: Los servidores de Audio/Video aaden capacidades multimedia a los sitios web permitindoles mostrar contenido multimedia en forma de flujo continuo (streaming) desde el servidor. Servidores de Chat: Los servidores de chat permiten intercambiar informacin a una gran cantidad de usuarios ofreciendo la posibilidad de llevar a cabo discusiones en tiempo real. Servidores de Fax: Un servidor de fax es una solucin ideal para organizaciones que tratan de reducir el uso del telfono pero necesitan enviar documentos por fax. Servidores FTP: Uno de los servicios ms antiguos de Internet, File Transfer Protocol permite mover uno o ms archivos. Servidores Groupware: Un servidor groupware es un software diseado para permitir colaborar a los usuarios, sin importar la localizacin, va Internet o va Intranet corporativo y trabajar juntos en una atmsfera virtual. Servidores IRC: Otra opcin para usuarios que buscan l a discusin en tiempo real, Internet Relay Chat consiste en varias redes de servidores separadas que permiten que los u suarios conecten el uno al otro va una red IRC. Servidores de Listas: Los servidores de listas ofrecen una manera mejor de manejar listas de correo electrnico, bien sean discusiones interactivas abiertas al pblico o listas unidireccionales de anuncios, boletines de noticias o publicidad. Servidores de Correo: Casi tan ubicuos y cruciales com o los servidores web, los servidores de correo mueven y almacenan el correo electrnico a travs de las redes corporati vas (va LANs y WANs) y a travs de Internet. Servidores de Noticias: Los servidores de noticias actan como fuente de distribucin y entrega para los millares de grupos de noticias pblicos actualmente accesibles a travs de la red de noticias USENET. Servidores Proxy: Los servidores proxy se sitan entre un programa del cliente (tpicamente un navegador) y un servidor externo (tpicamente otro servidor web) para filtrar peticiones, mejorar el funcionamiento y compartir conexiones. Servidores Telnet: Un servidor telnet permite a los usuarios entrar en un ordenador husped y realizar tareas como si estuviera trabajando directamente en ese ordenador.
Servidores Web: Bsicamente, un servidor web sirve contenido esttico a un navegador, carga un archivo y lo sirve a travs de la red al navegador de un usuario. Este intercambio es mediado por el navegador y el servidor que
9

Excelencia Acadmica

hablan el uno con el otro mediante HTTP. Se pueden utilizar varias tecnologas en el servidor para aumentar su potencia ms all de su capacidad de entregar pginas HTML; stas incluyen scripts CGI,

seguridad SSL y pginas activas del servidor (ASP).


1.1.2. Lista de webservers Se lista a continuacin los diferentes servidores asociados a sistema operativo:
Nombre del Servidor Sistema operativo Unix Windows 2000 Windows 95/98 Windows ME Windows NT 4.0 Windows Server 2003 Windows XP Nombre del Servidor Sistema operativo Red Hat Linux Windows 2000 Windows 95/98 Windows ME Windows NT 4.0 Windows Server 2003 Windows XP AIX HP-UX Linux Solaris Windows 2000 Windows 95/98 Windows ME Windows NT 4.0 Windows Server 2003 Windows XP AIX BSD HP-UX IRIX Linux MacOS X Server SCO OpenServer Solaris Tru64 Unix Windows 2000 Windows 95/98 Windows ME Windows NT 4.0 Windows XP Red Hat Linux Solaris Windows 2000 Windows XP

4D WebSTAR

Sambar Server

Apache

NetWare OS/2 Unix Windows 95/98 Windows NT 4.0

Servertec Internet Server

Microsoft Internet Information Services

Windows Server 2003

Zeus Web Server

Enterprise WebServer for NetWare

NetWare

URL Live!

Java Server

HP-UX IRIX Linux OS/2 Solaris Windows 95/98 Windows NT 4.0 Java_VM Solaris Windows 95/98 Windows NT 4.0

Sun Java System Web Server

Jigsaw

WebBase

Windows 2000 Windows 95/98 Windows NT 4.0

10

Excelencia Acadmica

1.2. LENGUAJES DE PROGRAMACIN 1.2.1. Active Server Pages - ASP


ASP fue lanzada el 12 de diciembre de 1996. Esta tecnologa fue ms conocida al unirse al servidor web de Microsoft, Internet Information Server 3.0 en marzo de 1997, ya que hasta entonces era tan slo una actualizacin que se instalaba por separado. Eran los tiempos de ASP 1.0. En la actualidad forma parte del servidor web de Microsoft IIS 5.0 incluido en el sistema operativo desde Windows 2000. La tecnologa de pginas ASP ofrece al programador la ventaja de utilizar el concepto de objetos COM (ahora COM+) al igual que ocurre con los entornos de programacin visuales (Visual Basic, Visual C++, etc.). El cdigo de estas pginas est formado por VBScript (una variante de Visual Basic) y JScript (una variante de JavaScript) y son sencillas de construir. A nivel interno se basa en el uso de cinco objetos bsicos (Response, Request, Server, Application y Session) e incluye soporte para acceder a ficheros, utilizacin de cookies, bases de datos, etc. En la actualidad es una de las ms utilizadas al estar disponible con uno de los sistemas operativos ms utilizados. Soporta mltiples lenguajes de script, entre los que se incluyen: PerlScript, JScript y VBScript. PerlScript est basado en Perl mientras que JScript est basado en JavaScript, pero el lenguaje por defecto para ASP es VBScript (un subconjunto de Visual Basic). La mayor limitacin de ASP es que slo est disponible para mquinas corriendo un sistema operativo de Microsoft. Aunque se han desarrollado herramientas para portar ASP a otras plataformas (hoy en da, es posible ejecutar pginas ASP bajo servidores Unix/Linux utilizando algn software como puede ser Instant ASP o ChiliSoft.), la potencia de ASP est en el uso de objetos Active-X, que slo estn disponibles para plataformas Windows.

Grfico 01. Esquema de funcionamiento del Active Server Pages. 11

Excelencia Acadmica

1.2.2. Preprocessed Hypertext Pages - PHP


El PHP (acrnimo pseudorrecurrente de "PHP: Hypertext Preprocessor" donde PHP es "Personal Home Page" que fue el nombre que le dio Lerdorf a su "PHP Tools" inicial), es un lenguaje interpretado de programacin de pginas dinmicas, de alto nivel, embebido en pginas HTML y ejecutado en el servidor. El PHP naci como una modificacin de Perl escrita por el dans de origen groenlands Rasmus Lerdorf a finales de 1994. Su primer uso fue el de mantener un control sobre quien visitaba su currculum en su web. El cdigo de ese antecesor del PHP fue reescrito a mediados de 1995. A esta nueva actualizacin se la llam PHP/FI 2.0 y surgi de la remodelacin de ese programa inicial junto con otro paquete que Lerdorf haba diseado, el FI (Form Interpreter), que permita analizar datos provenientes de documentos HTML. El PHP/FI ya inclua como caracterstica principal la compatibilidad con mySQL. Esta forma de programar lleg a muchos usuarios, pero el lenguaje no tom el peso actual hasta que los israeles Zeev Suraski y Andi Gutmans le incluyeron nuevas caractersticas en 1997, que dio por resultado el PHP 3.0. Despus desarrollaron el motor Zend (de ZEev y aNDi), que es el lenguaje de script sobre el que corre PHP 4.0 que es la versin ms reciente (v.4.1.1). Ms de tres millones de servidores tienen esta capacidad implementada y los nmeros continan creciendo. Con PHP se puede hacer cualquier cosa que podemos realizar con un script CGI, como el procesamiento de informacin en formularios, foros de discusin, manipulacin de cookies y pginas dinmicas. Un sitio con pginas dinmicas es el que permite interactuar con el visitante, de modo que cada usuario que visita la pgina vea la informacin modificada para requisitos particulares. Las aplicaciones dinmicas para la Web son frecuentes en los sitios de comercio electrnico), donde el contenido visualizado se genera de la informacin situada en una base de datos u otra fuente externa. Una de sus caractersticas ms potentes es su soporte para gran cantidad de bases de datos. Entre su soporte pueden mencionarse InterBase, mSQL, mySQL, Oracle, Informix, PostgreSQL, entre otras. PHP tambin ofrece la integracin con varias bibliotecas externas, que permiten que el desarrollador haga casi cualquier cosa desde generar documentos en pdf hasta analizar cdigo XML. PHP es la opcin natural para los programadores en mquinas con Linux que ejecutan servidores web con Apache, pero funciona igualmente bien en cualquier otra plataforma de UNIX o de Windows, con el software de Netscape o del web server de Microsoft. PHP tambin utiliza las sesiones de HTTP, conectividad de Java, expresiones regulares, LDAP, SNMP, IMAP, protocolos de COM (bajo Windows).
12

Excelencia Acadmica

PHP provee de una tecnologa similar a ASP para insertar cdigo en las pginas HTML, pero PHP adems de la tecnologa es el lenguaje. En PHP slo podemos incluir cdigo en un lenguaje, PHP, que es un lenguaje interpretado basado principalmente en C, C++ y Java, con los que comparte prcticamente toda su sintaxis y semntica, y aporta tambin algunas caractersticas de lenguajes interpretados como Perl y Bash. Debido a esto, una de sus principales caractersticas y una gran baza a su favor es que la curva de aprendizaje para programadores que ya conozcan estos lenguajes es muy suave, prcticamente pueden sentarse delante del ordenador y comenzar a escribir cdigo. En cuanto a la tecnologa detrs de PHP, ya en la versin 3.0 el intrprete de PHP era bastante ms rpido que los intrpretes existentes de ASP, lo que junto con su buena integracin con el servidor HTTP Apache y su capacidad de acceder a unos 20 sistemas de Bases de Datos distintos, lo ha convertido en un fuerte competidor frente a las soluciones de Microsoft. Con la versin 4.0 de PHP la situacin ha mejorado todava ms: el intrprete es ms rpido (hasta 12 veces ms rpido que el de la versin 3.0); se ha perfeccionado la integracin de PHP con otros servidores adems de Apache, entre otros IIS; y se ha dividido en mdulos todo el diseo interno, entre otras cosas independizado el intrprete del lenguaje PHP (Zend) del mdulo de comunicacin con el servidor, con lo que a partir de ahora es posible utilizar PHP como lenguaje interpretado en cualquier otro proyecto (ya se est trabajando para utilizar PHP como lenguaje para procedimientos en mySQL), tambin incorpora el soporte para objetos COM/DCOM (slo sobre sistemas operativos de Microsoft) y Java.

Grfico 02. Arquitectura de PHP utilizando el intrprete Zend.

13

Excelencia Acadmica

1.2.3. Java Server Pages - JSP


Es una tecnologa basada en el lenguaje Java por lo que su desarrollador y artfice es Sun MicroSystem. De la misma manera que el resto de tecnologas de servidor, en su cdigo se mezclan las etiquetas HTML con la sintaxis propia de Java. La gran ventaja de esta tecnologa es la gran compatibilidad con cualquier entorno en el que existe un intrprete de Java, que hoy en da est disponible en casi todos los sistemas, y por ser una de las herramientas de desarrollo que ms est creciendo. Su programacin utiliza una sintaxis muy similar a Java, adems de utilizar los "componentes" llamados JavaBeans, que son pequeos programas independientes con funciones ya implementadas y que permiten realizare tareas ya establecidas. Para ejecutar pginas JSP correctamente se necesita tener instalado un intrprete para este tipo de pginas. En la actualidad existen varios programas que realizan esta tarea, algunos de ellos son de Sun como el Java Web Server y otros son de terceras empresas como JRun de Macromedia, JakartaTomcat de Apache, LiteWebServer que es gratuito, etc. Algunos de estos programas pueden ser instalados sobre cualquiera de los diferentes servidores web (IIS, Netscape Server, Apache, etc.) y otros incluyen un servidor web HTTP propio. Otra tecnologa que est muy asociada a JSP es la de los "servlets": programas escritos por completo en Java encargados de recibir solicitudes a travs de HTTP y de enviar los resultados utilizando el mismo protocolo. De hecho, una pgina JSP una vez interpretada se convierte en un servlet. Cuando un usuario se conecta a un sitio web que utiliza servlets, primero se comprueba si est en memoria ya que puede que haya sido solicitado por otro usuario, si existe se enva, en caso contrario se interpreta y manda al usuario. Si el sistema detecta que el servlet est en memoria pero que el original ha sido modificado, vuelve a interpretarlo para enviar la ltima versin. De esta forma los tiempos de respuesta que se consiguen son mucho menores.

14

Excelencia Acadmica

Grfico 03. Esquema de ejecucin de una pgina JSP.

1.2.4. ColdFusion
Macromedia es la propietaria de esta otra tecnologa combina una sintaxis propia, basada en etiquetas (tags), para crear pginas dinmicas llamada ColdFusion Markup Language (CFML), con un probado y robusto servidor de aplicaciones web que permiten construir y desarrollar poderosas aplicaciones web. Tambin est disponible para varias plataformas. De hecho es actualmente el principal servidor de aplicaciones web cross-platform existente. Ofrece adems soporte a un gran nmero de bases de datos. Coldfusion es un completo servidor de aplicaciones web para desarrollos y puesta a punto de aplicaciones escalables para e-business, estas aplicaciones pueden ser Sitios web dinmicos manejados en bases de datos, Portales, Automatizacin y Flujo de Informacin, sistemas de publicacin de contenidos, tiendas online (ecommerce), soluciones de autoservicio, aplicaciones de reportes de negocios. Coldfusion es una de las elecciones ms populares de tecnologa en servidores de aplicaciones para muchos desarrolladores y potentes sitios web, tales como Lloyds TSB, DHL y Microsoft's bCentral.

15

Excelencia Acadmica

Grfico 04. Esquema de servicio.

1.2.5. Practical Extraction and Report Language - PERL


PERL es un lenguaje creado por Larry Wall (quien, por cierto, es uno de los gurs ms conocidos en la actualidad) con el objetivo principal de simplificar las tareas de administracin de un sistema UNIX; en realidad, desde su versin 5.005, y especialmente la 5.6, se ha convertido en un lenguaje de uso generalizado, y una de las principales herramientas de un buen internetero y de un buen administrador. Larry Wall es el tipo de personas que han hecho de Internet lo que es ahora: un lugar con libre intercambio de ideas, donde los que saben de algo, los gurs, ayudan al que no sabe. Larry es un habitual del grupo de usenet comp.lang.perl, y es normal que el propio Larry conteste a la pregunta de un principiante o a un error con un parche para solucionarlo. Es un lenguaje que hereda estructuras principalmente de los intrpretes de comandos de UNIX, especialmente el csh, y de otras utilidades estndar, como awk y sed. En realidad, puede hacer todo lo que hacen cualquiera de ellos y todos ellos juntos, y la mayora de las veces de forma ms simple, comprensible y fcil de depurar. PERL es un lenguaje interpretado, aunque en realidad, el intrprete de PERL, como todos los intrpretes modernos, compila los programas antes de ejecutarlos. Por eso se habla de scripts, y no de programas, concepto referido principalmente a programas compilados al lenguaje mquina nativo del ordenador y sistema operativo en el que se ejecuta.

16

Excelencia Acadmica

Aunque desarrollado originalmente en un entorno UNIX, actualmente hay versiones para casi todos los sistemas operativos: DOS (por ejemplo, la ltima versin, OpenDOS) Windows NT, Amiga, MacOS. Los scripts son compatibles entre las diversas plataformas, de forma que es un verdadero lenguaje multiplataforma. Muchos fabricantes lo incluyen en sus versiones de UNIX; tambin el Linux lo incluye. Si quieres saber si est en tu UNIX, escribe simplemente UNIX% which perl /usr/local/bin/perl y si contesta algo similar a lo anterior, es que est instalado en el sistema. En algn otro "sistema operativo", como Windows 9X/Me/2M/XP, acurdate de si lo instalaste o no, debe de estar en algn lado en tu disco duro. Para bajarte la ltima versin. La primera versin de PERL que lleg a ser suficientemente conocida fue la versin 4, dada a conocer al mundo por el libro del camello (aunque es un dromedario), Programming Perl, por Larry Wall y otros. Esta versin se estuvo desarrollando desde 1991 a 1993, y coincidi con la popularidad del PERL como lenguaje para programacin de servidores de Internet; aunque originalmente se haba diseado como lenguaje para administracin de sistemas. La versin 5 estable no apareci hasta octubre de 1994, y ha sido tan popular que todava se usa. Introdujo muchas de las caractersticas que hacen al PERL tan fcil de programar, incluyendo los mdulos, las facilidades para programacin dirigida a objetos, referencias y mucha mejor documentacin. Aparecen muchos otros libros, tales como Learning Perl. A partir de la versin 5.6, Perl sufri una nueva transformacin (comenzando por la eliminacin de muchos nmeros en sus versiones). Adems, se incluye soporte pleno de caracteres internacionales, hebras, y mejor compilador. Se institucionaliza un sistema de patch pumpkin, o encargado de cada nueva versin, que es el que decide qu va a entrar de nuevo y qu no, sustituyendo a Larry Wall. Una empresa comercial, ActiveState, que ya participaba activamente en su desarrollo, comienza a controlar ms de cerca al PERL, y a la vez, a crear herramientas ms potentes (y comerciales) para desarrollo con PERL. A partir del ao 2000, se empieza a discutir sobre la nueva versin, la 6, que ser un gran salto sobre la versin anterior, pero todava no est muy claro qu es lo que va a ser. Aparte de ms rpida, ms flexible y todo eso, todava no se ha comenzado su desarrollo.

17

Excelencia Acadmica

1.2.6. Python
Python es un lenguaje de programacin fcil de aprender y potente. Tiene eficaces estructuras de datos de alto nivel y una solucin de programacin orientada a objetos simple pero eficaz. La elegante sintaxis de Python, su gestin de tipos dinmica y su naturaleza interpretada hacen de l el lenguaje ideal para guiones (scripts) y desarrollo rpido de aplicaciones, en muchas reas y en la mayora de las plataformas. El intrprete de Python y la extensa biblioteca estndar estn disponibles libremente, en forma de fuentes o ejecutables, para las plataformas ms importantes en el sitio web de Python, y se pueden distribuir libremente. El mismo sitio contiene tambin distribuciones y direcciones de muchos mdulos, programas y herramientas Python de terceras partes, adems de documentacin adicional. Es fcil ampliar el intrprete Python con nuevas funciones y tipos de datos implementados en C y C++ (u otros lenguajes a los que se pueda acceder desde C). Python es tambin adecuado como lenguaje de extensin para aplicaciones adaptables al usuario. Para trabajar con bibliotecas C diversas y el ciclo normal C escribir-compilarprobar-recompilar es demasiado lento. Se necesita desarrollar software con ms velocidad. Python es simple, pero es un lenguaje de programacin real. Ofrece ms apoyo e infraestructura para programas grandes que el intrprete de rdenes. Por otra parte, tambin ofrece mucha ms comprobacin de errores que C y, al ser un lenguaje de muy alto nivel, tiene incluidos tipos de datos de alto nivel, como matrices flexibles y diccionarios, que llevaran das de programacin en C. Dados sus tipos de datos ms generales, se puede aplicar a un rango de problemas ms amplio que Awk o incluso Perl, pero muchas cosas son, al menos, igual de fciles en Python que en esos lenguajes. Python permite dividir su programa en mdulos reutilizables desde otros programas Python. Viene con una gran coleccin de mdulos estndar que puedes utilizar como base de tus programas (o como ejemplos para empezar a aprender Python). Tambin hay mdulos incluidos que proporcionan E/S de ficheros, llamadas al sistema, sockets y hasta interfaces a IGU (interfaz grfica con el usuario) como Tk. Python es un lenguaje interpretado, lo que ahorra un tiempo considerable en el desarrollo del programa, pues no es necesario compilar ni enlazar. El intrprete se puede utilizar de modo interactivo, lo que facilita experimentar con caractersticas del lenguaje, escribir programas desechables o probar funciones durante el desarrollo del programa de la base hacia arriba. Tambin es una calculadora muy til.

18

Excelencia Acadmica

Python permite escribir programas muy compactos y legibles. Los programas escritos en Python son tpicamente mucho ms cortos que sus equivalentes en C o C++, por varios motivos:
Los tipos de datos de alto nivel permiten expresar operaciones complejas en

una sola sentencia.


El agrupamiento de sentencias se realiza mediante sangrado (indentacin)

en lugar de begin/end o llaves.


No es necesario declarar los argumentos ni las variables. Python es ampliable: si ya sabes programar en C, es fcil aadir una nueva

funcin o mdulo al intrprete, para realizar operaciones crticas a la mxima velocidad o para enlazar programas en Python con bibliotecas que slo estn disponibles en forma binaria (como bibliotecas de grficos especficas del fabricante). Una vez enganchado, puedes enlazar el intrprete Python a una aplicacin escrita en C y utilizarlo como lenguaje de macros para dicha aplicacin.

1.2.7. eXtensible Markup Language - XML El cdigo HTML permite insertar mens, tablas, imgenes o bases de datos en los documentos, pero no permite al usuario que maneje esos elementos como mejor le convenga con la poderosa ayuda del ordenador. Esa es la principal novedad que XML aporta. Con HTML se pueden hacer accesos a informacin comparativa en diferentes tiendas por ejemplo, pero nada ms. Con XML el usuario podr ordenar los datos o actualizarlos en tiempo real o realizar un pedido. Una gran cantidad de gente ha odo hablar ltimamente de XML y piensan que es una especie de HTML pero ms avanzado. Pero todo el mundo lo que debera preguntarse es qu es exactamente XML y qu aplicaciones tiene actualmente. De estas dos cuestiones el mayor error que se suele cometer es considerar a XML como un HTML extendido. Tenemos claro es que XML es un lenguaje de Marcas, pero qu es exactamente un lenguaje de marcas.

19

Excelencia Acadmica

SERVIDORES Y LENGUAJES DE PROGRAMACIN WEB

UNIDAD ACADMICA N 1
NOMBRE:__________________________________________________________________ APELLIDOS:________________________________________FECHA; ____/_____/______ CIUDAD:_______________________________SEMESTRE:_________________________

1. Elabore un cuadro comparativo de diferencias entre servidores web, de al menos 05 tipos de utilizados actualmente. Considere las siguientes caractersticas: Costo, conexiones permanentes, soporte plugins, soporte virtual servers, autentificacin, CGIs, Conexiones Seguras https, otros que Ud. considere conveniente. 2. Realice un anlisis comparativo de ventajas y desventajas de los Lenguajes de Programacin ASP.NET, PHP y JSP. 3. Elabore un cuadro comparativo de valoracin sobre los Lenguajes de Programacin ASP, PHP y JSP. Considere los temas de: - Portabilidad - Seguridad - Estabilidad - Acceso a Bases de Datos - Multiplataforma - Programacin Orientado a Objetos - Bajo Requerimiento de Hardware - Aplicaciones con Alta Complejidad - Fcil Desarrollo - Facilidad de Ayuda - Soporte XML - Velocidad de Ejecucin - Soporte Tcnico - IDEs Disponibles - Curva de Aprendizaje - Servidores Web disponibles en Internet

20

Excelencia Acadmica

SISTEMA DE AUTENTICACIN DE USUARIOS


La web de un medio relativamente annimo, pero a menudo resulta til saber quin est visitando nuestro sitio. Con frecuencia, la gente comparte un equipo y muchos usuarios utilizan varios equipos para navegar. Por lo tanto, no quedar remedio que preguntar al visitante quien es. Adems de solicitarle que se identifique, tendr que pedirle alguna prueba que confirme que es quin dice ser. El mtodo habitual de autenticacin utilizado en los sitios Web consiste en pedir a los usuarios que introduzca un nombre y una contrasea. El proceso de autenticacin se suele utilizar para conceder o rechazar el acceso a pginas o recursos concretos, per puede resultar adecuado o til para otros fines como la personalizacin.

Al finalizar el estudio de la presente unidad temtica el estudiante: 1. Concepta el trmino de Autenticacin. 2. Configura el sitio dinmico para desarrollar pginas dinmicas PHP. 3. Implementa una base de datos con una tabla en MySQL 4. Desarrolla la interfaz para hacer uso del sistema de autenticacin. 5. Valida el funcionamiento del sistema Web.

21

Excelencia Acadmica

2.1. PRINCIPIOS DE AUTENTICACIN


El objetivo de la autenticacin es demostrar que alguien es quin dice ser. Existen muchas formas de suministrar autenticacin pero como en el caso de muchas medidas de seguridad, cuanto ms seguros son los mtodos ms problemticos resultan de utilizar. Las tcnicas de autenticacin incluyen el uso de contraseas, firmas digitales, medidas biomtricas mediante escneres de huellas y medidas que implican el uso de dispositivos de entrada especiales, lo que limitara el acceso a aquellos usuarios autorizados con ordenadores equipados. Esta opcin podra resultar aceptable o incluso deseable para obtener acceso a los sistemas internos de una organizacin, pero reduce gran parte de ls ventajas de permitir el acceso al sistema en la web. Las contraseas resultan fciles de implementar, sencillas de utilizar y no requieren el uso de dispositivos de entrada especiales. Suministran un determinado nivel de autenticacin pero es posible que resulten insuficientes para sistemas de alta seguridad. El concepto de una contrasea es sencillo. El usuario y el sistema conocen la contrasea. Si otro visitante afirma ser un usuario y conoce la contrasea, el sistema lo aceptar. Este sistema resulta seguro siempre y cuando nadie ms sepa o pueda adivinar la contrasea. A pesar de sus defectos potenciales, las contraseas son una forma sencilla y relativamente efectiva de autenticar usuarios. Puede que el nivel de anonimato no resulte adecuado para la seguridad nacional, pero son una solucin perfecta para comprobar el estado del pedido de un cliente.

La mayor parte de los navegadores y servidores Web incorporan mecanismos de autenticacin. Los servidores Web se pueden configurar para solicitar un nombre de usuario y contrasea para permitir el acceso a los archivos de determinados directorios del servidor. Tanto Apache como el servidor IIS de Microsoft permiten proteger de manera sencilla una parte del sitio o el sitio en su totalidad de esta forma. PHP y MySQL incorporan
22

Excelencia Acadmica

muchas formas de lograr el mismo objetivo. MySQL resulta ms rpido que la autenticacin integra. PHP suministra una autenticacin ms flexible o presenta la solicitud de forma ms atractiva.

2.2. IMPLEMENTACIN DEL SISTEMA DE AUTENTICACIN


Las herramientas que vamos a utilizar son: Xampp Server Dreamweaver 8.0 o superior Mozilla Firefox o Internet Explorer o cualquier otro navegador 2.2.1. INSTALACIN DEL SERVIDOR WEB Como la mayora de nosotros estamos familiarizados, no solo con un sistema operativo utilizaremos el XAMPP, que es un instalador que automatiza el proceso de poner en marcha un servidor con Apache, PHP, Perl, MySQL y phpMyAdmin. XAMPP ofrece versiones del instalador para sistemas GNU/Linux, Solaris, Windows y Mac OS X, as que no hay problemas con el sistema operativo.

Sistema operativo Apache, servidor Web MySQL, sistema gestor de bases de datos Perl, PHP o Python, lenguajes de programacin/scripts.

Para contar con dicho instalador lo descargaremos de la siguiente direccin Web: http://www.apachefriends.org/en/xampp.html Eligindose el mirror ms cercano a su localizacin (los mirror europeos suelen ir bastante rpidos, teniendo en cuenta que se va a descargar 32 megas). Ejecutar el archivo que se ha descargado en la computadora, donde en primer lugar, el XAMPP nos pedir que indiquemos el lenguaje de instalacin. Para nuestro caso seleccionamos Ingles y pulsamos Ok.

En la ventana de Bienvenida, pulsar Siguiente para continuar la instalacin. Luego nos pedir elegir el lugar de instalacin y dejamos tal como esta: C:\xampp

23

Excelencia Acadmica

Esperar mientras XAMPP descomprime e instala todos los componentes.

Una vez terminado el proceso, una ventana DOS nos indicar el xito definitivo de la instalacin.

24

Excelencia Acadmica

Terminada la instalacin, XAMPP nos preguntar si se desea instalar los servidores como servicio de Windows. En principio, la respuesta deber ser afirmativa. De esta forma, el servidor estar siempre operativo, aunque los usuarios no inicien sesin. Una vez terminado el proceso, XAMPP preguntar si se desea poner en marcha el Panel de Control de XAMPP. El panel de control le indicar qu servicios estn funcionando, y le ofrecer la posibilidad de detenerlos o activarlos.

Finalmente, para verificar si se ha instalado correctamente las herramientas WAMP, debemos seguir los siguientes pasos: Ejecutar el programa navegador Internet Explorer. En la barra de direcciones escribir http://localhost

Localhost, significa servidor local, y es un trmino que utilizan los mismos sistemas operativos, para ejecutar pginas dinmicas dentro del mismo computador. Por lo tanto, luego de escribir localhost y presionar enter, se debera visualizar la siguiente pgina principal del XAMPP.

25

Excelencia Acadmica

2.2.2. CONFIGURACIN DEL SITIO DINMICO El primer paso para configurar un sitio dinmico en Dreamweaver es necesario definir el sitio de Datos Locales y luego el Servidor de Prueba. Para configurar un sitio de Datos Locales se ejecuta: Menu Sitio / Nuevo Sitio

Dreamweaver necesita los servicios de un servidor de prueba para generar y mostrar contenido dinmico mientras trabaja. En un sitio esttico, cuando elegimos Vista Previa en el Navegador (F12), Dreamweaver inicia el navegador y le pasa la direccin local de la pgina actual: D:\WEB_SITE_EJEMPLO\index.html Esto conecta con el navegador a travs del sistema de archivos de la computadora.

26

Excelencia Acadmica

Sin embargo, en un sitio dinmico no basta con ver las pginas en un navegador. Dreamweaver tiene que activar el Servidor Web, pasndole una solicitud http para que procese los archivos. Esto requiere una direccin como alguna de las siguientes: http://localhost/misitio/index.php http://127.0.0.1.8500/misitio/index.php http://www.midominio.com/index.php Esto conecta el servidor Web con el navegador para que las pginas se sirvan en lugar de abrirse a travs del sistema de archivos. Por lo tanto el Servidor de Prueba es en esencia un sitio remoto temporal. Ya que funciona casi de la misma forma que si la pgina estuviera en el Servidor de Hosting. Para configurar el Servidor de Prueba se sigue los siguientes pasos: Ejecutar Sitio / Administrar Sitio

Elegir la opcin Editar, y en la ventana de Definicin del sitio SISTEMA WEB, elegimos Servidor de Prueba. En Modelo de servidor, elegimos la tecnologa a utilizar, siendo para nuestro caso PHP y MySQL.

En Acceso, debemos elegir Local/Red, para especificar que el servidor remoto ser local, el mismo que presenta otras opciones a personalizar Carpeta de Servidor : Se debe especificar la carpeta raz predeterminada del servidor Web, desde donde se sirven todas las pginas dinmicas: Para el servidor Web Apache, crearemos una carpeta dinamicas dentro de la carpeta raiz C:\xampp\htdocs\ Luego explorar y elegir la carpeta (dinmicas) del servidor.
27

Excelencia Acadmica

Teniendo entonces la ruta final de la carpeta de servidor de prueba: C:\xampp\htdocs\dinamicas\ Pues, es aqu donde las pginas dinmicas creadas en el Servidor Local se actualizarn, para su visualizacin de localhost. Nota: Para el servidor Web Internet Information Server, la carpeta raiz es C:\Inetpub\wwwroot Activar el Check de Actualizar automticamente. En prefijo de URL: se debe especificar http://localhost/dinamicas/ Y para finalizar, dar clic en Aceptar.

la

carpeta

contenedora

Para comprobar la configuracin del servidor de prueba, nos ubicamos dentro del Servidor Local y la carpeta dinamicas. Dentro del cual creamos el archivo (info.php) Abrimos dicha pgina y elegimos la opcin Mostrar Vista de Cdigo Posicionar el puntero del Mouse al final de <body> y dar enter para escribir el cdigo <?php phpinfo( ) ?> Como se muestra en la figura.
28

Excelencia Acadmica

Luego guardamos la pgina (CTRL + S) y lo publicamos (F12). El resultado ser una pgina Web con una gran cantidad de informacin sobre el estado actual de PHP. Esto incluye informacin sobre las opciones de compilacin de PHP y sus extensiones, la versin del PHP, informacin del servidor y el entorno PHP, informacin de la versin del SO, rutas, valores de configuracin maestros y locales, cabeceras HTTP y la licencia de PHP. Como se muestra en el siguiente grfico.

29

Excelencia Acadmica

2.2.3. CREANDO LA TABLA EN MYSQL Bien, necesitamos una tabla con los datos de nuestros usuarios, as que la vamos a crear la Base de Datos seguridad. En el cual se crea la Tabla usuarios con los siguientes campos. La sentencia SQL es el siguiente:
CREATE table usuarios ( id TINYINT(4) AUTO_INCREMENT, nombre TEXT, apellidos TEXT, login VARCHAR(40), password VARCHAR(20), email TEXT, UNIQUE (id) );

El resultado grfico en PhpMyAdmin de dicha tabla es el siguiente:

2.2.4. FORMULARIO DE CONTROL DE ACCESO Para la elaboracin de dicho formulario, se ha creado el archivo ingreso.php

Considerando los nombres para las cajas de texto: Para usuario: user Para Contrasea: password Los cuales intervienen en el siguiente cdigo de la presente pgina:

30

Excelencia Acadmica

</head> <?php $user=$_POST["user"]; $pwr=$_POST["password"]; //Verificar que las cajas de textos sean rellenadas if(empty($user) || empty($pwr)) { ?> <body> . </form> <div align="center"> <?php } else { //Se ejecuta la conexion a BD require_once('conexion_bd.php'); //Cadena de consulta a BD $query="SELECT * FROM usuarios WHERE login='$user'"; //Ejecucion de la consulta BD $result=mysql_db_query($database_Conexion1,$query); //Identifica el nmero de indice encontrado $array=mysql_fetch_array($result); // Se compara las variables con los datos encontrados if ($user==$array['login'] && $pwr==$array['password']) { echo "<h1>CONTRASEA CORRECTA</h1><br>"; echo "<h2>Su nombre es: ".$array['nombre']."<br> </h2>"; echo "<h2>Sus Apellidos son: ".$array['apellidos']."<br></h2>"; } else { echo "<h1>CONTRASEA INCORRECTA</h1>"; } mysql_close($Conexion1); } ?> </div> </body>

31

Excelencia Acadmica

Al ejecutar dicho cdigo se ejecuta la pgina conexin_bd.php, mediante require_once('conexion_bd.php'). La Pgina conexin_bd.php; slo contiene el siguiente cdigo: <?php $hostname_Conexion1 = "localhost"; $database_Conexion1 = "seguridad"; $username_Conexion1 = "root"; $password_Conexion1 = ""; $Conexion1 = mysql_pconnect($hostname_Conexion1, $username_Conexion1, $password_Conexion1) or trigger_error(mysql_error(),E_USER_ERROR); ?>

SISTEMA DE AUTENTICACIN DE USUARIOS

UNIDAD ACADMICA N 2
NOMBRE:__________________________________________________________________ APELLIDOS:________________________________________FECHA; ____/_____/______ CIUDAD:_______________________________SEMESTRE:_________________________

1. 2. 3. 4. 5.

Cul es la diferencia entre Autenticacion y Autentificacin. Cules son las amenazas a las que se expone el comercio electrnico? Implemente la pgina modificar_datos.php Implemente un sistema de encriptacin para las contraseas del registro de usuarios, del sistema de autenticacin. Basado en el modelo desarrollado, implemente el modulo de autenticacin de usuarios, utilizando la Tecnologa ASP.

32

Excelencia Acadmica

COMERCIO ELECTRNICO
La cantidad de operaciones y comercio en el mundo ha crecido extraordinariamente debido a la propagacin de la Internet a nivel mundial, de alcance total. Una gran variedad de comercio se realiza de esta manera, estimulando la creacin y utilizacin de innovaciones, como la transferencia de fondos electrnicos, la administracin de cadenas de suministro, el marketing en Internet, el procesamiento de transacciones en lnea (OLTP), el intercambio electrnico de datos (EDI), los sistemas de administracin del inventario, los sistemas automatizados de recoleccin de datos y muchos otros ms. La mayor parte del comercio electrnico consiste en la compra y venta de productos entre personas - empresas y todo lo relacionado de transacciones en lnea, sin embargo un porcentaje considerable del comercio electrnico consiste en la adquisicin de artculos virtuales (software y derivados en su mayora). El comercio electrnico realizado entre empresas es llamado en ingls Business-to-business o B2B. El B2B puede estar abierto a cualquiera que est interesado (como el intercambio de mercancas o materias primas), o estar limitado a participantes especficos pre-calificados (mercado electrnico privado). El Carrito de Compras es una aplicacin prctica de un sitio web, donde dicho sitio debe permitir realizar compras electrnicas, significa que el usuario va 'colocando' los objetos o servicios a medida que los va comprando, de la misma manera que hara en un supermercado. Al final el usuario decide cules de ellos compra efectivamente o no. A continuacin vamos a realizar la aplicacin correspondiente al carrito de compras.

Al finalizar el estudio de la presente unidad temtica el estudiante: 1. Entiende a la perfeccin todo lo referente a Transacciones Electrnica. 2. Da ejemplos prcticos de comercio Electrnico. 3. Implementa el carrito de compra en PHP y/o ASP.
33

Excelencia Acadmica

3.1. EVOLUCIN HISTRICA A principio de los aos 1920 apareci en los Estados Unidos operaciones por Internet, impulsado por empresas. Este sistema de operaciones, revolucionario para la poca, consiste en un catlogo con fotos ilustrativas de los productos a vender. Este permite tener mejor llegada a las personas, ya que no hay necesidad de tener que atraer a los clientes hasta los locales de venta. Esto posibilit a las tiendas poder llegar a tener clientes en zonas rurales, que para la poca que se desarroll dicha modalidad exista una gran masa de personas afectadas al campo. Adems, otro punto importante a tener en cuenta es que los potenciales compradores pueden escoger los productos en la tranquilidad de sus hogares, sin la asistencia o presin, segn sea el caso, de un vendedor. La venta por catlogo tom mayor impulso con la aparicin de las tarjetas de crdito; adems de determinar un tipo de relacin de mayor anonimato entre el cliente y el vendedor. A principio de los aos 1970, aparecieron las primeras relaciones comerciales que utilizaban una computadora para transmitir datos, tales como rdenes de compra y facturas. Este tipo de intercambio de informacin, si bien no estandarizado, trajo aparejado mejoras de los procesos de fabricacin en el mbito privado, entre empresas de un mismo sector. A mediados de 1980, con la ayuda de la televisin, surgi una nueva forma de venta al pblico, tambin llamada venta directa. De esta manera, los productos y servicios son mostrados con mayor realismo, y con la dinmica de que pueden ser exhibidos resaltando sus caractersticas. La venta directa es concretada mediante un telfono y usualmente con pagos de tarjetas de crdito. A finales de los aos 90, con la aparicin de la burbuja.com, y con la creacin de sitios como eBay, el comercio a travs de la Internet creci de manera considerable, teniendo un alcance que jams se hubiera imaginado, sin embargo el final de esta burbuja marco el cierre de muchas de las compaas basadas en la Internet, dando inicio a operaciones remotas que hoy en da tenemos. Ventajas para las organizaciones

Mejoras en la distribucin: La Web ofrece a ciertos tipos de proveedores (industria del libro, servicios de informacin, productos digitales) la posibilidad de participar en un mercado interactivo, en el que los costos de distribucin o ventas, tienden a cero, como por ejemplo en la industria del software, en la que los productos pueden entregarse de inmediato, reduciendo de manera progresiva la necesidad de intermediarios. Comunicaciones comerciales por va electrnica: Actualmente, la mayora de las empresas utiliza la Web para informar a los clientes sobre la compaa, aparte de sus productos o servicios, tanto mediante comunicaciones internas como con otras empresas y clientes; esto facilita las relaciones comerciales, as como el soporte al

34

Excelencia Acadmica

cliente, ya que al estar disponible las 24 horas del da, las empresas pueden fidelizar a sus clientes mediante un dilogo asincrnico que sucede a la conveniencia de ambas partes.

Beneficios operacionales: El uso empresarial de la Web reduce errores, tiempo y sobrecostos en el tratamiento de la informacin. Los proveedores disminuyen sus costos al acceder de manera interactiva a las bases de datos de oportunidades de ofertas, enviar stas por el mismo medio, y por ltimo, revisar de igual forma las concesiones; adems, se facilita la creacin de mercados y segmentos nuevos, el incremento en la generacin de ventajas en las ventas, la mayor facilidad para entrar en mercados nuevos, especialmente en los geogrficamente remotos, y alcanzarlos con mayor rapidez. Todo esto se debe a la capacidad de contactar de manera sencilla y a un costo menor a los clientes potenciales, eliminando demoras entre las diferentes etapas de los subprocesos empresariales.

Usos del Comercio Electrnico El comercio electrnico puede utilizarse en cualquier entorno en el que se intercambien documentos entre empresas: compras o adquisiciones, finanzas, industria, transporte, salud, legislacin y recoleccin de ingresos o impuestos. Ya existen organizaciones que utilizan el comercio electrnico para desarrollar los aspectos siguientes:

Creacin de canales nuevos de marketing y ventas. Acceso interactivo a catlogos de productos, listas de precios y folletos publicitarios. Venta directa e interactiva de productos a los clientes. Soporte tcnico ininterrumpido, permitiendo que los clientes encuentren por s mismos, y fcilmente, respuestas a sus problemas mediante la obtencin de los archivos y programas necesarios para resolverlos. Radio y Televisin abierto por Internet.

Mediante el comercio electrnico se intercambian los documentos de las actividades empresariales entre socios comerciales. Los beneficios que se obtienen en ello son: reduccin del trabajo administrativo, transacciones comerciales ms rpidas y precisas, acceso ms fcil y rpido a la informacin, y reduccin de la necesidad de reescribir la informacin en los sistemas de informacin. Los tipos de actividad empresarial que podran beneficiarse mayormente de la incorporacin del comercio electrnico son:

Sistemas de reservas. Centenares de agencias dispersas utilizan una base de datos compartida para acordar transacciones. Stocks. Aceleracin a nivel mundial de los contactos entre proveedores de stock. Elaboracin de pedidos. Posibilidad de referencia a distancia o verificacin por parte de una entidad neutral. Seguros. Facilita la captura de datos.

35

Excelencia Acadmica

Empresas proveedoras de materia prima a fabricantes. Ahorro de grandes cantidades de tiempo al comunicar y presentar inmediatamente la informacin que intercambian.

3.2. CARRITO DE COMPRAS EN ASP Generalidades Previas Vamos a ver una manera sencilla de realizar un carrito de la compra en ASP, utilizando variables de sesin para guardar los productos comprados, junto con sus precios y otros datos. En estos ejemplos nos vamos a centrar exclusivamente en la funcionalidad del carrito, es decir, la memorizacin de los productos comprados a lo largo de toda la sesin, dejando de lado todo lo relativo a presentacin o la extraccin de los productos de una base de datos. La biblioteca de ASP puede dar alguna clave sobre la creacin de un carrito. Ahora bien, aunque puede ser interesante para el conocimiento, los fundamentos de la creacin de un carrito de la compra. Librera carrito.asp Vamos a atacar al problema creando una librera de funciones que implementen el trabajo tpico con el carrito. Esta librera la llamaremos carrito.asp y contendr el cdigo de todas las funciones relacionadas con el carrito de la compra. Dicho carrito de compras realizar: - Introducir un producto en el carrito. - Eliminar un producto del carrito. - Mostrar el carrito. - Otras funcionalidades respecto al trabajo. Datos a utilizar El contenido del carrito se debe poder acceder en cualquier momento, siempre y cuando el visitante permanezca en la pgina. Adems, cada visitante debe disponer de un carrito propio. Aunque podramos pensar en otras soluciones, estas necesidades descritas inicialmente, hacen muy recomendable el uso de variables de sesin, puesto que ofrece la mejor forma de tratar con datos especficos de cada usuario, que deben perdurar entre las distintas pginas que visite. Vamos a mantener una variable de sesin con el nmero de productos que cada usuario tenga en su carrito: session("num_prod") Debera inicializarse a cero al abrir la sesin(global.asa). Tambin necesitaremos guardar los id_producto de cada uno de los productos que se vayan introduciendo en el carrito. Lo haremos tambin utilizando variables de sesin, con esta numeracin:
36

Excelencia Acadmica

session("producto1")=23 session("producto2")=30 session("producto3")=64 ... Con una numeracin as, se puede hacer un bucle para sacar por pantalla todos los identificadores de los productos del carrito. Se hara algo como esto: for i=1 to session("num_prod") response.write session("producto" & i) response.write "<br>" next Probablemente sea til guardar ms que los simples identificadores de los productos. Si se guarda su precio y su nombre puede ser til para mostrar rpidamente esos valores sin necesidad de acceder a la base de datos. Los precios los puedes guardar de esta manera: session("precio1")=200 session("precio2")=99 Los nombres de los productos los puedes guardar en variables como estas: session("nombre1")="Reproductor DVD marca Sony" session("nombre2")="Placa de memoria 256 MB" ...

Implementacin, edicin Global.ASA y funciones de librera Empezamos creando un archivo Global.ASA para inicializar la variable de sesin que guarda el nmero de productos, llamada session("num_prod"). La variable se inicializa en el procedimiento session_onStart(). sub session_onStart() session("num_prod")=0 end sub Veamos ahora las funciones tpicas del carrito. Introducir un producto en el carrito Se hace con una funcin que recibe los datos del producto y los introduce en variables de sesin. Tambin aumenta en uno el nmero de productos del carrito.
37

Excelencia Acadmica

sub introduce_producto(id,texto,precio) session("num_prod") = session("num_prod") + 1 session("producto" & session("num_prod")) = id session("nombre" & session("num_prod")) = texto session("precio" & session("num_prod")) = precio end sub El incremento se hace al principio porque el numero de productos inicialmente es cero y el primer producto a insertar deseamos que tenga el ndice uno.

Borrar un producto del carrito Debemos disponer de una funcin que nos permita eliminar un producto del carrito. En este caso voy a crear una funcin que recibe el nmero de lnea del producto dentro del carrito. Podramos recibir tambin el identificador del producto a borrar o incluso puede ser que nos sea til crear un par de funciones para borrar productos del carrito, una recibiendo la lnea del carrito y otra recibiendo el identificador del producto. Para este ejemplo me resulta ms fcil recibir la lnea en la que est ese producto en el carrito. sub borra_producto(i) session("producto" & i) = 0 end sub Simplemente colocamos a cero el identificador de producto a borrar. No borramos directamente las variables de sesin porque eso nos obligara a recolocar todos los ndices de las variables de sesin para que fuesen correlativos. Este detalle tendremos que tenerlo en cuenta a la hora de mostrar el carrito, pues si el identificador de producto es cero, se entiende que el producto est eliminado del carrito. Tampoco disminuimos en uno el nmero de productos, porque en realidad no estamos eliminando un producto de la estructura de datos, sino que lo estoy marcando a cero para saber que no hay nada que contabilizar en ese caso.

3.3. CARRITO DE COMPRAS CON PHP Vimos que construir un carrito de compras es sencillo, ahora vamos a agregarle dos funcionalidades adicionales pero considerando PHP: El envo de un mail al cliente con el detalle de su compra. La integracin con una Plataforma de Pagos.

38

Excelencia Acadmica

Primero El envo del mail ya fue considerado en un captulo anterior, a forma de armar la tabla de productos es muy similar a la que usamos para mostrarlos en el archivo. La diferencia estriba en que guardamos todo el html que conformar el cuerpo del mensaje en una variable que llamamos $html y finalmente enviamos el mensaje con la funcin mail, la cual tiene como parmetros (en este orden) el email del destinatario, el ttulo del mensaje, el cuerpo del mensaje y las cabeceras que harn que el mensaje sea interpretado como HTML, adems de proporcionar el nombre y la direccin de correo del remitente. mailer.php <?php session_start(); $carro=$_SESSION['carro']; //Guardamos en la //variable $html el //cuerpo del mensaje $html = " <html> <head> <title>Detalle de artculos Comprados</title> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\"> <style type=\"text/css\"> <!-.tit { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; color: #FFFFFF; } .prod { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; color: #333333; } h1 { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 20px; color: #990000; } --> </style> </head> <body> <table width=\"414\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\"> <tr bgcolor=\"#333333\" class=\"tit\"> <td width=\"198\">Producto</td> <td width=\"107\">Precio</td> <td width=\"109\" align=\"center\">Cantidad de Unidades</td>
39

Excelencia Acadmica

</tr>"; $color=array("#ffffff","#F0F0F0"); $contador=0; $suma=0; foreach($carro as $k => $v){ $contador++; $subto=$v['cantidad']*$v['precio']; $suma=$suma+$subto; $html.="<tr bgcolor=\"".$color[$contador%2]."\" class=\"prod\"> <td>".$v['producto']."</td> <td>".$v['precio']."</td> <td align=\"center\">".$v['cantidad']."</td> </tr>"; } $html .= "</table> <div align=\"center\"><span class=\"prod\">Total de Artculos: ".count($carro)."</span> </div><br> <div align=\"center\"><span class=\"prod\">Total: \$".number_format($suma,2)."</span></div><br> <div align=\"left\"><span class=\"prod\"> Aqu escribiremos un mensaje cualquiera, por ejemplo, cules son nuestras opciones de pago </span></div>"; //Como queremos enviar el //mensaje en formato html, //colocamos las 2 cabeceras //que nos permitirn hacerlo $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset= iso-8859-1\r\n"; //Las siguientes 2 cabeceras, //permitirn que el destinatario //sepa a quin responder y //quin le ha enviado el //mensaje $headers .= "Reply-To: mailremitente@dominio.com\r\n"; $headers .= "From: Nombre del Remitente<mailremitente@dominio.com>\r\n"; //En este ejemplo suponemos //que el mail del destinatario //lo hemos enviado desde un //formulario con el mtodo post, //pero es indistinto desde donde //se lo obtenga (consulta a la //base de datos, almacenado en //una variable de sesin, //enviado por get,etc.) mail("{$_POST['email']}","Detalle de su compra en nuestro website",$html,$headers); ?> </CODE< code>
40

Excelencia Acadmica

Segundo Teniendo ya el carrito, sabemos cmo enviarle un mail con los productos seleccionados al comprador, pero an esperando hacer que ste nos pague. Podramos agregar, en el mail que se hizo, algunas instrucciones para formalizar el pago a travs de una transferencia o depsito bancario o tambin podramos hacer que el cliente procese su compra antes de abandonar nuestra pgina. Una manera de hacer esto ltimo es integrar nuestro carrito con una Plataforma de Pagos como Paypal. Para ello debemos sacar previamente una cuenta en https://www.paypal.com/, donde nos pedirn, entre otros requisitos, una direccin de correo electrnico que nos servir para que el sistema de Paypal nos identifique como vendedores cuando un comprador realice una compra desde nuestro website. Debemos tener en cuenta que, en el ejemplo que presentaremos, mientras se realice el proceso de pago el comprador oscilar entre nuestro servidor y el servidor de Paypal. Independientemente del protocolo que use nuestro servidor para las transacciones web (lo ms probable es que use protocolo HTTP), Paypal usa protocolo HTTPS, que es ms apropiado para el trfico de informacin sensible, como por ejemplo nmeros de tarjetas de crdito. El esquema de trabajo que utilizaremos es el siguiente: en nuestro website procesaremos la seleccin de los artculos y calcularemos los precios. Luego derivaremos esa informacin y a nuestro cliente a Paypal. Ya en Paypal y bajo el paraguas del protocolo HTTPS, el cliente se identificar, ver los productos que ha seleccionado en nuestro website junto con el importe de los mismos, y elegir alguna alternativa de pago o suspender la compra o el sistema le indicar que no tiene fondos suficientes o una larga lista de productos y/o servicios. En cualquiera de todos estos casos, al terminar, Paypal redireccionar nuevamente al comprador a nuestro website. En resumen, en el esquema descripto pueden presentarse bsicamente dos alternativas: que el pago se concrete o que el pago no se concrete.

Primera alternativa: Que se concrete el pago. Si el pago se realiza correctamente, Paypal derivar al cliente a una pgina de nuestro website que nosotros le indiquemos para los casos de xito en el pago (la llamaremos ipn_success.php), devolvindonos al mismo tiempo algunas variables que nos servirn para realizar nuestros procesos: por ejemplo, si vendimos un acceso a un servicio web por 3 meses, actualizar la base de datos dndole permisos al comprador por ese perodo o enviar un mail a alguien dicindole que debe entregar x detalle de productos a x cliente, descontar del stock, etc.

41

Excelencia Acadmica

Segunda alternativa: No se concrete el pago. Si el pago no se concreta, Paypal devolver al cliente a una pgina de nuestro site que nosotros le indiquemos para los casos de fracaso en el pago (la llamaremos ipn_error.php). En esta oportunidad no deberemos procesar nada: slo se tiene que notificar al cliente que por alguna razn el pago no pudo concretarse. A la pgina vercarrito.php le agregaremos un botn que llamaremos "Finalizar Compra" el cual, al ser presionado, derivar a la pgina en la que procesaremos el envo a Paypal, a la cual llamaremos "regpago.php".

Botn "Finalizar Compra": La pgina vercarrito.php quedar as (Note que enviaremos el Total del Importe del carrito utilizando el mtodo get): vercarrito.php <?php session_start(); $carro=$_SESSION['carro']; ?> <html> <head> <title>PRODUCTOS AGREGADOS AL CARRITO</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style type="text/css"> <!-.tit { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; color: #FFFFFF; } .prod { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; color: #333333; } h1 { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 20px; color: #990000; }
42

Excelencia Acadmica

--> </style> </head> <body> <h1 align="center">Carrito</h1> <?php if($carro){ ?> <table width="720" border="0" cellspacing="0" cellpadding="0" align="center"> <tr bgcolor="#333333" class="tit"> <td width="105">Producto</td> <td width="207">Precio</td> <td colspan="2" align="center">Cantidad de Unidades</td> <td width="100" align="center">Borrar</td> <td width="159" align="center">Actualizar</td> </tr> <?php $color=array("#ffffff","#F0F0F0"); $contador=0; $suma=0; foreach($carro as $k => $v){ $subto=$v['cantidad']*$v['precio']; $suma=$suma+$subto; $contador++; ?> <form name="a<?php echo $v['identificador'] ?>" method="post" action="agregacar.p hp?<?php echo SID ?>" id="a<?php echo $v['identificador'] ?>"> <tr bgcolor="<?php echo $color[$contador%2]; ?>" class='prod'> <td><?php echo $v['producto'] ?></td> <td><?php echo $v['precio'] ?></td> <td width="43" align="center"><?php echo $v['cantidad'] ?></td> <td width="136" align="center"> <input name="cantidad" type="text" id="cantidad" value="<?php echo $v['cantidad'] ? >" size="8"> <input name="id" type="hidden" id="id" value="<?php echo $v['id'] ?>"> </td> <td align="center"><a href="borracar.php?<?php echo SID ?>&id=<?php echo $v['id'] ?>" ><img src="trash.gif" width="12" height="14" border="0"></a></td> <td align="center"> <input name="imageField" type="image" src="actualizar.gif" width="20" height="20" border="0"></td> </tr></form> <?php }?> </table>
43

Excelencia Acadmica

<div align="center"><span class="prod">Total de Artculos: <?php echo count($carro); ?></span> </div><br> <div align="center"><span class="prod">Total: $<?php echo number_format($suma,2); ?></span></div> <br> <div align="center"><span class="prod">Continuar la seleccin de productos</span> <a href="catalogo.php?<?php echo SID;?>"><img src="continuar.gif" width="13" height="13" border="0" align="absmiddle"></a>&nbsp; <a href="regpago.php?<?php echo SID;?>&costo=<?php echo $suma; ?>"><img src="finalizarcompra.gif" width="135" height="16" border="0" align="absmiddle"></a> </div> <?php }else{ ?> <p align="center"> <span class="prod">No hay productos seleccionados</span> <a href="catalogo.php?<?php echo SID;?>"><img src="continuar.gif" width="13" height="13" border="0"></a> <?php }?> </p> </body> </html> </CODE< code>

En la pgina regpago.php, recogeremos los productos y el Total del Importe y los enviaremos a Paypal valindonos de un formulario que contendr varios campos ocultos cuya funcin explicaremos ms tarde. En definitiva, la pgina regpago.php tendr la siguiente estructura:

<?php session_start(); //Asignamos todos los valores guardados en la sesin a la variable $carro, c omo hicimos en las pginas anteriores $carro=$_SESSION['carro']; //$products es la variable que usaremos para mostrar los productos en esta pgina (separados por '+') $products=''; //$products2 es la que usaremos para enviar a Paypal (separados por ',') $products2=''; foreach($carro as $k => $v){ $unidad=$v['cantidad']>1?" unidades de":" unidad de"; $products.=$v['cantidad'].$unidad.$v['producto']."+"; $products2.=$v['cantidad'].$unidad.$v['producto'].", "; }

44

Excelencia Acadmica

//eliminamos el ltimo '+': $products=substr($products,0,(strlen($products)-1)); //eliminamos la ltima coma y el espacio que sigue a la misma: $products2=substr($products2,0,(strlen($products2)-2)); ?> <html> <head> <title>Finalizar Compra</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style type="text/css"> <!-.tit { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; color: #FFFFFF; } .prod { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; color: #333333; } h1 { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 20px; color: #990000; } --> </style> </head> <body> <!-- Creamos el formulario para enviar a Paypal --> <form action="https://www.paypal.com/cgi-bin/webscr" name="f1" id="f1" method="post"> <fieldset> <legend class="prod"><strong>Finalizar la Compra</strong> <a href="#" onclick="javascript:window.open('https://www.paypal.com/cgibin/webscr?cmd=xpt/popup/OLCWhatIsPayPaloutside','olcwhatispaypal','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, width=400, height=350');"><img src="https://www.paypal.com/en_US/i/bnr/horizontal_solution_PP.gif" alt="Solution Graphics" border="0" align="absmiddle"></a></legend> <input type="hidden" name="shipping" value="0"> <input type="hidden" name="cbt" value="Presione aqu para volver a www.nuestrositio.com >>">
45

Excelencia Acadmica

<input type="hidden" name="cmd" value="_xclick"> <input type="hidden" name="rm" value="2"> <input type="hidden" name="bn" value="nombre de la empresa vendedora"> <input type="hidden" name="business" value="maildelvendedor@dominio.com"> <input type="hidden" name="item_name" value="<?php echo $products2; ?> "> <input type="hidden" name="item_number" value="Nombre del comprador"> <input type="hidden" name="amount" value="<?php echo number_format($_ GET['costo'],2) ?>"> <input type="hidden" name="custom" value="<?php echo $_GET['costo'] ?>" > <input type="hidden" name="currency_code" value="USD"> <input type="hidden" name="image_url" value=""> <input type="hidden" name="return" value="http://www.nuestrodominio.com/ipn_success.php"> <input type="hidden" name="cancel_return" value="http://www.nuestrodominio.com/ipn_error.php"> <input type="hidden" name="no_shipping" value="0"> <input type="hidden" name="no_note" value="0"> <!-- Mostramos el detalle de la compra --> <table width="50%" border="0" align="center" cellpadding="3" cellspacing="0" bgcolor="#EABB5D" style=" border-color:#000000; borderstyle:solid;border-width:1px;"> <tr> <td align="left" valign="top"><span class="prod"><strong>Detalle de los Productos Seleccionados</strong>:</s pan><br> <span class="texto1negro"> </span><span class="prod"><strong>Productos:</strong> <?php echo $products; ?><br> <strong>Pecio Total:</strong> $<?php echo number_format($_GET['costo'], 2) ?> </span></td> </tr> </table> <input type="submit" name="Submit" value="Enviar"> </fieldset> </form> </body> </html> </CODE< code>

46

Excelencia Acadmica

En regpago.php mostramos el detalle de los artculos y el total del importe que habamos enviado desde vercarrito.php. Veamos qu significan los campos hidden con los cuales trabajaremos: shipping: Es el costo de envo. Para nuestro ejemplo es cero, pero si no fuera ese el caso, aqu deberamos colocar el importe correspondiente al total del costo de envo. cbt: Es el mensaje que ver en Paypal el usuario al finalizar el proceso de pago. rm: Es el mtodo con que Paypal devolver las variables a la pgina ipn_success.php (1 es get 2 es post). bn: Esta es la identificacin de la integracin que estamos haciendo, normalmente la identificaremos con el nombre de la empresa vendedora. business: Es el mail que el vendedor registr en su cuenta de Paypal. item_name: Es el detalle de lo que estamos vendiendo. item_number: Aqu va el nmero de item. Podemos completarlo con un cdigo de operacin o utilizarlo para otra cosa (personalmente lo utilizo para guardar el nombre del comprador, ya que cuando la operacin se realiza y Paypal automticamente genera sendos mails al vendedor y al comprador, suele incluir este dato y al vendedor le sirve para saber rpidamente quien es el comprador). amount: Es el importe total de la operacin. custom: Aqu podemos colocar cualquier variable que luego necesitemos para realizar nuestros procesos cuando Paypal redireccione al usuario a nuestra pgina de xito. currency_code: La moneda en que expresamos los valores:USD,GBP,JPY,CAD,EUR. image_url: Es la ruta absoluta de la imagen que aparecer en la cabecera de la pgina de Paypal cuando el comprador est pagando. Se utiliza para que no perdamos del todo la identidad de nuestro site durante el proceso de pago, pero a menos que la imagen est guardada en un servidor con protocolo HTTPS, es mejor dejar este campo en blanco ya que, si no lo hacemos de esa manera, cuando el comprador ingrese a Paypal le aparecer un mensaje dicindole que la pgina contiene elementos seguros y no seguros, cosa que puede asustar a algunos compradores. return: Aqu colocaremos la ruta absoluta a la pgina ipn_success.php. Es la pgina a la que Paypal redirecciona al comprador si el pago se realiza correctamente, y a la que enva las variables que utilizaremos para los procesos ligados a la compra: generar un envo de productos, enviar un mail, descontar del stock, cambiar un nivel de acceso, etc.

47

Excelencia Acadmica

cancel_return: Aqu colocaremos la ruta absoluta a la pgina ipn_error.php. Es la pgina a la que Paypal redirecciona al comprador si el pago no se realiza correctamente. En ella deberemos colocar un mensaje del tipo "Ocurri un error y la operacin no puedo realizarse..." para notificar el fallo al comprador. Como vemos, Paypal acta como un gran if: if(pago==exitoso){enviar a ipn_success.php }else{enviar a ipn_error.php } Veremos cmo podemos recuperar todas las variables que devuelve Paypal en ipn_success.php.

<?php echo '<pre>'; print_r($_POST); echo '</pre>'; ?> </CODE< code> Si queremos saber todas las variables que Paypal nos enva, escribimos lo siguiente en el archivo ipn_success.php y luego realizamos una compra ficticia: Si no queremos hacerlo, sabemos que la variable que siempre recibiremos es custom, y para recogerla podemos hacerlo as: <?php echo $_POST['custom']; ?> </CODE< code> En realidad, con custom es suficiente, ya que en ella podemos guardar todos los datos que necesitemos (es la ventaja de trabajar con el mtodo post, con get estaramos limitados). Por ejemplo, si hiciramos lo siguiente: <input type="hidden" name="custom" value="<?php echo $valor1."separator" .$valor2."separator".$valor3; ?>"> </CODE< code>

48

Excelencia Acadmica

Luego en ipn_success.php podramos recuperar los valores de esta manera: <?php $vec=explode('separator',$_POST['custom']); for($i=0;$i<count($vec);$i++){ echo '$valor1='.$vec[$i]; } ?> </CODE< code> Con esto tenemos un panorama general de cmo integrar nuestro carrito con Paypal. Paypal proporciona una plataforma de pruebas en la que se pueden realizar operaciones ficticias, que funciona igual que la plataforma real, slo que no hay dinero verdadero de por medio. Esto da la posibilidad de hacer todas las comprobaciones necesarias y solucionar todos los errores antes de poner online nuestra integracin. Dicha Plataforma de pruebas se llama Sandbox, y para poder utilizarla slo hay que crearse una cuenta de pruebas en Paypal y cambiar el action de nuestro formulario en regpago.php, que era "https://www.paypal.com/cgi-bin/webscr", por este otro: "https:/www.sandbox.paypal.com/cgi-bin/webscr", y el mail de <input type="hidden" name="business" value="maildelvendedor@dominio.com"> por el que consignemos en la cuenta de pruebas que creemos. Para terminar, decir solamente que lo mejor es posibilitar ms de una alternativa de pago. Podramos, por ejemplo, hacer que el botn "Finalizar Compra" de vercarrito.php remitiese a una pgina en la cual se ofrecieran 2 alternativas de pago: una manual y otra automtica. Si el usuario seleccionara la opcin manual, le enviaramos un mail con el detalle de los artculos (como vimos en el punto 1) y las instrucciones de pago o de cmo contactarse. Si, en cambio, optase por la manera automtica, lo enviaramos a la integracin con Paypal que hemos visto en el punto 2).

COMERCIO ELECTRNICO

UNIDAD ACADMICA N 3
NOMBRE:__________________________________________________________________ APELLIDOS:________________________________________FECHA; ____/_____/______ CIUDAD:_______________________________SEMESTRE:_________________________ 1. 2. 3. Cules son las ventajas del Comercio Electrnico. Explique las desventajas del Comercio Electrnico. Implemente un sistema de Pedidos por Internet y/o de Reserva de Pasajes.

49

Excelencia Acadmica

50

Excelencia Acadmica

ADMINISTRACIN DE BASES DE DATOS VIA WEB


Base de Datos es un conjunto exhaustivo no redundante de datos estructurados organizados independientemente de su utilizacin y su implementacin en mquina accesibles en tiempo real y compatibles con usuarios concurrentes con necesidad de informacin diferente y no predicable en tiempo. La posibilidad de conectarse a estas fuentes bajo un lenguaje de programacin permitir el tratamiento de la informacin desde cualquier parte del mundo desde un computador con acceso a Internet. Los programas desarrollados en la plataforma Web se realizan con muchas paginas interrelacionadas a travs de llamados al servidor. Por ejemplo tendramos el siguiente proceso: - UsuarioListar.php - UsuarioAgregar.php - UsuarioNuevoGuardar.php - UsuarioListar.php

Al finalizar el estudio de la presente unidad temtica el estudiante: 1. Modela el diseo de Base de Datos relacional. 2. Implementa las principales funciones de mantenimiento de base de datos. 3. Desarrolla un Sistema Web Personalizado.

51

Excelencia Acadmica

4.1. ACCESO A UNA BASE DE DATOS MYSQL USANDO PHP 4.1.1. Tablas Existe una variedad de lenguajes de script y motores de bases de datos, pero a una de las mejores alternativas en cuanto a costo y velocidad la conforman PHP y MySQL. Adems de ser extremadamente rpido, utilizamos este sistema de base de datos para los sitios por estar bien documentado. Con solo pocas lneas de cdigo PHP se pueden administrar datos guardados en una base MySQL, agregando, eliminando o actualizando campos y registros. Para comenzar con los ejemplos de este artculo debemos crear una nueva base de datos. Esto se puede hacer de diferentes maneras, ya que existen distintos programas para administrar bases de datos, como el conocido phpMyAdmin; otra forma es desde la lnea de comandos del Server haciendo un Telnet. En este ejemplo asumo que tienes instalado y configurado phpMyAdmin adecuadamente para manejar bases y tablas. La mayora de ISP y proveedores de hosting ofrecen este servicio ya instalado para los clientes. Siguiendo las instrucciones del PhpMyAdmin fcilmente se podr crear la base de datos de ejemplo. Con la primera base creada pasamos a construir la tabla usuarios que estar compuesta como se muestra a continuacin en la tabla: Campo Tipo Entero Autonumerico Valor Default 0 Clave principal

id

nombre Varchar 50 apellido Varchar 50 dni Entero

Las propiedades de los campos se configuran en phpMyAdmin al crear la tabla. Con la base y la tabla creada adecuadamente podemos pasar a escribir cdigo PHP.

4.2. DESARROLLO DE UN SISTEMA WEB A continuacin crearemos cinco scripts que se encargaran de realizar las funciones bsicas sobre una base de datos MySQL, estos archivos sern: conexion.php, cerrar_conexion.php, guardar.php, ver.php y actualizar.php.

52

Excelencia Acadmica

Como primer paso crearemos la conexin con el MySQL, el script correspondiente ser conexin.php, el cual estar incluido utilizando la funcion include (nombre_archivo) de PHP, en todos los dems scripts del sitio que trabajen con la base de datos para establecer la conexin ahorrando lneas de cdigo. Sin una conexin establecida no se podr trabajar con la base de datos. En el archivo conexin.php deben ser configuradas un par de variables correspondientes a nuestro servidor: el host, usuario y password para acceder al MySQL, adems indicar que base se utilizara en la conexin. Entonces podemos abrir el bloc de notas, escribir las siguientes lneas de cdigo y guardarlas con el nombre conexin.php:

Archivo conexion.php <? $dbhost="localhost"; // host del MySQL (generalmente localhost) $dbusuario="agustin"; // aqui debes ingresar el nombre de usuario // para acceder a la base $dbpassword="mipass"; // password de acceso para el usuario de la // linea anterior $db="ejemplo"; // Seleccionamos la base con la cual trabajar $conexion = mysql_connect($dbhost, $dbusuario, $dbpassword); mysql_select_db($db, $conexion); ?> Con este archivo creado podemos empezar a trabajar con la base desde nuestros siguientes scripts. Sera correcto cerrar la conexin abierta al terminar de trabajar con la base, para ello creamos un nuevo archivo con solamente una lnea de cdigo:

Archivo cerrar_conexion.php <? mysql_close($conexion); ?> Esta lnea cierra la conexin con el motor MySQL abierta en el archivo conexion.php, este archivo ser incluido en el final de todos los scripts siguientes. Es el turno ahora del archivo guardar.php que se encargara de insertar registros en la base mostrando un formulario mediante el cual el usuario ingresara los nuevos datos. Entonces creamos un nuevo documento de texto con el siguiente contenido:

53

Excelencia Acadmica

Archivo guardar.php <? include "conexion.php"; if (!isset($accion)){ echo" <html> <head><title>Guardar datos en la base</title></head> <body> <h3>Guardar datos en la base</h3> <form name=\"form1\" method=\"post\" action=\"guardar.php?accion=guardar\"> <p>Nombre:<br> <input type=\"text\" name=\"nombre\"> </p> <p>Apellido:<br> <input type=\"text\" name=\"apellido\"> </p> <p>DNI:<br> <input type=\"text\" name=\"dni\"> </p> <p> <input type=\"submit\" name=\"Submit\" value=\"Guardar Datos\"> </p> </form> </body> </html>"; }elseif($accion=="guardar"){ include"conexion.php"; $result=mysql_query("INSERT INTO usuarios (id,nombre, apellido, dni) VALUES ('',$nombre,$apellido,$dni) ",$conexion); echo" <html> <head></head> <body> <h3>Los datos han sido guardados</h3> </body> </html>"; } include "cerrar_conexion.php"; ?> El script que escribiremos a continuacin toma los datos de la base y mediante una iteracin forma una tabla en la cual se representara la lista de datos ordenada por el campo nombre.

Con formato: Color de fuente: Automtico, Espaol (Espaa) Con formato: Color de fuente: Automtico, Ingls (Estados Unidos)

Con formato: Color de fuente: Automtico, Ingls (Estados Unidos)

54

Excelencia Acadmica

Archivo ver.php <? include "conexion.php"; $result=mysql_query("SELECT * FROM usuarios ORDER BY nombre", $conexion); echo"<table width=300> <tr> <td><b>Nombre</b></td><td><b>Apellido</b></td><td><b>DNI</b></td> </tr>"; while($row=mysql_fetch_row($result)){ echo"<tr> <td>$row[1]</td><td>$row[2]</td><td>$row[3] <a href=\"actualizar.php?id=$row[0]\">Actualizar</a></td> </tr>"; } echo"</table>"; include "cerrar_conexion.php"; ?> Con los archivos creados hasta ahora podemos guardar datos en la base y ver los registros guardados. Al formarse la tabla con los resultados obtenidos de la base, notaremos que al lado de cada registro aparece un link llamado Actualizar, el cual hace referencia al archivo que crearemos a continuacin. El link pasa como parmetro la variable id que contiene el nmero correspondiente al campo autonumrico del registro que actualizaremos. El archivo siguiente muestra un formulario con los datos que actualmente contiene la base en el lugar indicado por la variable id, una vez llenado el formulario, el script actualiza la tabla de la base de datos con la nueva informacin ingresada por el usuario. Archivo actualizar.php <? include "conexion.php"; if (!isset($accion)){ $result=mysql_query("SELECT * FROM usuarios WHERE id=$id", $conexion); $row=mysql_fetch_row($result); echo"<html> <head><title>Actualizar datos de la base</title></head> <body> <form action=\"actualizar.php?accion=guardar\" method=\"POST\"> Nombre:<br> <input type=\"text\" value=\"$row[1]\" name=\"nombre\"><br>
55

Con formato: Color de fuente: Automtico, Espaol (Espaa)

Excelencia Acadmica

Apellido:<br> <input type=\"text\" value=\"$row[2]\" name=\"apellido\"><br> DNI:<br> <input type=\"text\" value=\"$row[3]\" name=\"dni\"><br> <input type=\"hidden\" name=\"id\" value=\"$row[0]\"> <input type=\"submit\" value=\"Guardar\"> </form> </body> </html>"; }elseif($accion==guardar){ $result=mysql_query("UPDATE usuarios SET nombre=$nombre, apellido=$apellido, dni=$dni WHERE id = $id",$conexion); echo" <html> <body> <h3>Los registros han sido actualizados</h3> </body> </html>"; } include "cerrar_conexion.php"; ?> Estos scripts muestran como rpidamente se puede administrar una base de datos on-line. He intentado en este artculo mostrar la manera ms sencilla de hacerlo. Se puede agregar en cada archivo funciones para chequear que los datos ingresados por el usuario son correctos, adems de mostrar diferentes errores en cada caso, pero eso queda en manos de ustedes. El PHP trae incorporadas funciones para interactuar con distintos tipos de bases de datos, como Oracle, SQL Server, y ms. Si alguien tiene crticas, o cualquier tipo de comentarios sobre este articulo, le agradezco que me los haga llegar.

Con formato: Color de fuente: Automtico, Ingls (Estados Unidos)

ADMINISTRACIN DE BASES DE DATOS VIA WEB

UNIDAD ACADMICA N 4
1. Utilizando MySQL y PHP implemente un sistema Acadmico, considerando controles de desaplazamiento y mantenimiento para una tabla y tablas relacionados.

56

Excelencia Acadmica

SISTEMA DE ADMINISTRACIN DE CONTENIDOS


En esta unidad crearemos un sistema de administracin de archivos de contenidos, que nos permitir almacenar, indexar y buscar textos y contenidos multimedia. Los sistemas de administracin de contenidos resultan extremadamente tiles en sitios Web en los que el contenido del mismo lo mantiene ms de un autor, en los que el mantenimiento lo llevan a cabo empleados que no son tcnicos o en los que el contenido y el diseo grfico es competencia de distintos departamentos o diferentes personas. Existen numerosos sistemas de administracin de contenidos, tanto gratuitos como comerciales. Las ventajas e inconvenientes depender del tipo de uso que el desarrollador de sistemas web quiera dar.

Al finalizar el estudio de la presente unidad temtica el estudiante: 1. Conoce la importancia de los Gestores de Contenidos para la administracin de sistemas web. 2. Implementa Gestores de Contenidos gratuitos y licenciados. 3. Desarrolla Gestores de Contenidos en lenguaje ASP.Net

57

Excelencia Acadmica

5.1. SISTEMA DE GESTIN DE CONTENIDOS (CMS)


Un sistema de gestin de contenidos (en ingls content management system, abreviado CMS) es una aplicacin informtica utilizada para crear, editar, gestionar y publicar contenido digital en diversos formatos. El gestor de contenidos genera pginas dinmicas interactuando con el servidor para generar la pgina web bajo peticin del usuario, con el formato predefinido y el contenido extrado de la base de datos del servidor.

Consiste en una interfaz que controla una o varias bases de datos donde se aloja el contenido del sitio. El sistema permite manejar de manera independiente el contenido y el diseo. As, es posible manejar el contenido y darle en cualquier momento un diseo distinto al sitio sin tener que darle formato al contenido de nuevo, adems de permitir la fcil y controlada publicacin en el sitio a varios editores. Esto permite gestionar, bajo un formato padronizado, la informacin del servidor, reduciendo el tamao de las pginas para descarga y reduciendo el coste de gestin del portal con respecto a una pgina esttica, en la que cada cambio de diseo debe ser realizado en todas las pginas, de la misma forma que cada vez que se agrega contenido tiene que maquetarse una nueva pgina HTML y subirla al servidor. Se utiliza principalmente para facilitar la gestin de webs, ya sea en Internet o en una intranet.

58

Excelencia Acadmica

5.1.1. Necesidad de un CMS stos son algunos de los puntos ms importantes que hacen til y necesaria la utilizacin de un CMS: Inclusin de nuevas funcionalidades en el web. Esta operacin puede implicar la revisin de multitud de pginas y la generacin del cdigo que aporta las funcionalidades. Con un CMS eso puede ser tan simple como incluir un mdulo realizado por terceros, sin que eso suponga muchos cambios en la web. El sistema puede crecer y adaptarse a las necesidades futuras. Mantenimiento de gran cantidad de pginas. En una web con muchas pginas hace falta un sistema para distribuir los trabajos de creacin, edicin y mantenimiento con permisos de acceso a las diferentes reas. Tambin se tienen que gestionar los metadatos de cada documento, las versiones, la publicacin y caducidad de pginas y los enlaces rotos, entre otros aspectos. Reutilizacin de objetos o componentes. Un CMS permite la recuperacin y reutilizacin de pginas, documentos, y en general de cualquier objeto publicado o almacenado. Pginas interactivas. Las pginas estticas llegan al usuario exactamente como estn almacenadas en el servidor web. En cambio, las pginas dinmicas no existen en el servidor tal como se reciben en los navegadores, sino que se generan segn las peticiones de los usuarios. De esta manera cuando por ejemplo se utiliza un buscador, el sistema genera una pgina con los resultados que no existan antes de la peticin. Para conseguir esta interaccin, los CMS conectan con una base de datos que hace de repositorio central de todos los datos de la web. Cambios del aspecto de la web. Si no hay una buena separacin entre contenido y presentacin, un cambio de diseo puede comportar la revisin de muchas pginas para su adaptacin. Los CMS facilitan los cambios con la utilizacin, por ejemplo, del estndar CSS (Cascading Style Sheets u hojas de estilo en cascada) con lo que se consigue la independencia de presentacin y contenido. Consistencia de la web. La consistencia en un web no quiere decir que todas las pginas sean iguales, sino que hay un orden (visual) en vez de caos. Un usuario nota enseguida cundo una pgina no es igual que el resto de las de la misma web por su aspecto, la disposicin de los objetos o por los cambios en la forma de navegar. Estas diferencias provocan sensacin de desorden y dan a entender que el web no lo han diseado profesionales. Los CMS pueden aplicar un mismo estilo en todas las
59

Excelencia Acadmica

pginas con el mencionado CSS, y aplicar una misma estructura mediante patrones de pginas. Control de acceso. Controlar el acceso a un web no consiste simplemente al permitir la entrada a el web, sino que comporta gestionar los diferentes permisos a cada rea del web aplicados a grupos o individuos. 5.1.2. CMS comerciales y de cdigo abierto Se puede hacer una primera divisin de los CMS segn el tipo de licencia escogido. Por una parte estn los CMS comercializados por empresas que consideran el cdigo fuente un activo ms que tienen que mantener en propiedad, y que no permiten que terceros tengan acceso. Por la otra tenemos los de cdigo fuente abierto, desarrollados por individuos, grupos o empresas que permiten el acceso libre y la modificacin del cdigo fuente.

La disponibilidad del cdigo fuente posibilita que se hagan personalizaciones del producto, correcciones de errores y desarrollo de nuevas funciones. Este hecho es una garanta de que el producto podr evolucionar incluso despus de la desaparicin del grupo o empresa creadora. Algunas empresas tambin dan acceso al cdigo, pero slo con la adquisicin de una licencia especial o despus de su desaparicin. Generalmente las modificaciones slo pueden hacerlas los mismos desarrolladores, y siempre segn sus prioridades. Los CMS de cdigo abierto son mucho ms flexibles en este sentido, pero se podra considerar que la herramienta comercial ser ms estable y coherente al estar desarrollada por un mismo grupo. En la prctica esta ventaja no es tan grande, ya que los CMS de cdigo abierto tambin estn coordinados por un nico grupo o por empresas, de forma similar a los comerciales. Utilizar una herramienta de gestin de contenidos de cdigo abierto tiene otra ventaja que hace decidirse a la mayora de usuarios: su coste. Habitualmente todo el software de cdigo abierto es de acceso libre, es decir, sin ningn coste en licencias. Slo en casos aislados se hacen distinciones entre empresas y entidades sin nimo de lucro o particulares. En comparacin, los productos comerciales pueden llegar a tener un coste que slo una gran empresa puede asumir.

En cuanto al soporte, los CMS comerciales acostumbran a dar soporte profesional, con un coste elevado en muchos casos, mientras que los de cdigo abierto se basan ms en las comunidades de usuarios que comparten informacin y solucin a los problemas. Las formas de soporte se pueden mezclar, y as encontramos CMS de cdigo abierto con empresas que ofrecen
60

Excelencia Acadmica

servicios de valor aadido y con activas comunidades de usuarios. En el caso comercial tambin sucede, pero el coste de las licencias hace que el gran pblico se decante por otras opciones y por lo tanto las comunidades de soporte son ms pequeas. Un problema que acostumbra a tener el software de cdigo abierto es la documentacin, generalmente escasa, dirigida a usuarios tcnicos o mal redactada. Este problema se agrava en el caso de los mdulos desarrollados por terceros, que no siempre incorporan las instrucciones de su funcionamiento de forma completa y entendible. En el mercado hay CMS de calidad tanto comerciales como de cdigo abierto. Muchos CMS de cdigo abierto estn poco elaborados (aunque en plena evolucin), pero tambin lo encontramos entre los comerciales. En definitiva, un buen CMS de cdigo abierto es mucho ms econmico que su homlogo comercial, con la ventaja de disponer de todo el cdigo fuente y de una extensa comunidad de usuarios. Por todos estos motivos, y como apuesta por la filosofa del software libre, en este trabajo slo se presentan algunos CMS de cdigo abierto. 5.1.3. Presente y futuro de los CMS En la actualidad, aparte de la ampliacin de las funcionalidades de los CMS, uno de los campos ms interesantes es la incorporacin de estndares que mejoran la compatibilidad de componentes, facilitan el aprendizaje al cambiar de sistema y aportan calidad y estabilidad. Algunos de estos estndares son CSS, que permite la creacin de hojas de estilo; XML, un lenguaje de marcas que permite estructurar un documento; XHTML, que es un subconjunto del anterior orientado a la presentacin de documentos va web; WAI, que asegura la accesibilidad del sistema; y RSS, para sindicar contenidos de tipo noticia. Tambin las aplicaciones que rodean los CMS acostumbran a ser estndar (de facto), como los servidores web Apache y ISS; los lenguajes PHP, Perl y Python; y las bases de datos MySQL y PostgreSQL. La disponibilidad para los principales sistemas operativos de estas aplicaciones y mdulos, permite que los CMS puedan funcionar en diversas plataformas sin muchas modificaciones. Sobre el futuro de los CMS, Robertson (2003a) apunta que: Los CMS se convertirn en un artculo de consumo, cuando los productos se hayan establecido y ms soluciones lleguen al mercado. Eso provocar una disminucin de los precios en los productos comerciales y una mayor consistencia en las funcionalidades que ofrecen.
61

Excelencia Acadmica

En este entorno, muchas empresas que implementan webs tendrn que cerrar. Muchos proyectos fracasarn por no ajustarse a los estndares y no entender conceptos como usabilidad, arquitectura de la informacin, gestin del conocimiento y contenido. El campo de los gestores de contenido madurar hasta conseguir un alto grado de consistencia y profesionalismo. Se adoptarn estndares en el almacenaje, estructuracin y gestin del contenido. Se producir una fusin entre gestin de contenidos, gestin de documentos y gestin de registros.

Tambin se puede aadir la incorporacin de sistemas de e-learning y gestin del conocimiento, y en los entornos de intranet corporativa, la posibilidad de acceder a otras fuentes de datos como por ejemplo sistemas de soporte de decisiones (Decision Support Systems o DSS). El campo de los CMS de cdigo abierto tendra que seguir un desarrollo similar. 5.1.4. Los CMS en el e-learning El e-learning tiene unas necesidades especficas que un CMS general no siempre cubre, o si lo hace, no da las mismas facilidades que una herramienta creada especficamente por esta funcin. En general, los sistemas de gestin del aprendizaje (Learning Management Systems o LMS) facilitan la interaccin entre los profesores y los estudiantes, aportan herramientas para la gestin de contenidos acadmicos y permiten el seguimiento y la valoracin de los estudiantes. Es decir, facilitan una translacin del modelo real en el mundo virtual. Un buen ejemplo de sistema de gestin de cursos es Moodle <http://www.moodle.org>, uno de los ms conocidos con licencia de cdigo abierto. Sus caractersticas pueden servir para concretar algunas de las funcionalidades que se esperan de este tipo de herramientas: Administracin de profesores y alumnos. Aulas virtuales que contienen toda la informacin de un curso y permiten la comunicacin con foros o con chats. Creacin, mantenimiento y publicacin del material de un curso, con soporte de diferentes formatos, incluidos audio y vdeo. Talleres virtuales. Exmenes y tests con valoraciones. Trabajos con fecha de lmite de entrega y aviso al profesor en caso de incumplimiento. Seguimiento estadstico de las acciones del estudiante.

62

Excelencia Acadmica

Estos sistemas son diferentes a los CMS, tanto por el objetivo como por las caractersticas, pero actualmente empiezan a incluir capacidades de los sistemas de gestin de contenidos. Con la integracin de las dos herramientas nace un nuevo concepto, los LCMS (Learning Content Management Systems o sistemas de gestin de contenidos para el aprendizaje). 5.1.5. Criterios de seleccin Antes de empezar el proceso de seleccin de un CMS concreto, hay que tener claros los objetivos de la web, teniendo en cuenta al pblico destinatario, y estableciendo una serie de requerimientos que tendra que poder satisfacer el CMS. Arquitectura tcnica. Tiene que ser fiable y permitir la escalabilidad del sistema para adecuarse a futuras necesidades con mdulos. Tambin tiene que haber una separacin de los conceptos de contenido, presentacin y estructura que permita la modificacin de uno de ellos sin afectar a los otros. Es recomendable, pues, que se utilicen hojas de estilo (CSS) y patrones de pginas. Grado de desarrollo. Madurez de la aplicacin y disponibilidad de mdulos que le aaden funcionalidades. Soporte. La herramienta tiene que tener soporte tanto por parte de los creadores como por otros desarrolladores. De esta manera se puede asegurar de que en el futuro habr mejoras de la herramienta y que se podr encontrar respuesta a los posibles problemas. Posicin en el mercado y opiniones. Una herramienta poco conocida puede ser muy buena, pero hay que asegurar de que tiene un cierto futuro. Tambin son importantes las opiniones de los usuarios y de los expertos. Usabilidad. La herramienta tiene que ser fcil de utilizar y aprender. Los usuarios no siempre sern tcnicos, por lo tanto hace falta asegurar que podrn utilizar la herramienta sin muchos esfuerzos y sacarle el mximo rendimiento. Accesibilidad. Para asegurar la accesibilidad de una web, el CMS tendra que cumplir un estndar de accesibilidad. El ms extendido es WAI (Web Accessibility Initiative) del World Wide Web Consortium. Velocidad de descarga. Teniendo en cuenta que no todos los usuarios disponen de lneas de alta velocidad, las pginas se tendran que cargar rpidamente o dar la opcin. Funcionalidades. No se espera que todas las herramientas ofrezcan todas las funcionalidades, ni que stas sean las nicas que tendr finalmente la web. Entre otras: - Editor de texto WYSIWYG a travs del navegador. - Herramienta de bsqueda. - Comunicacin entre los usuarios (foros, correo electrnico, chat). - Noticias. - Artculos.
63

Excelencia Acadmica

- Ciclo de trabajo (workflow) con diferentes perfiles de usuarios y grupos de trabajo. - Fechas de publicacin y caducidad. - Webs personales. - Carga y descarga de documentos y material multimedia. - Avisos de actualizacin de pginas o mensajes en los foros, y envo automtico de avisos por correo electrnico. - Envo de pginas por correo electrnico. - Pginas en versin imprimible. - Personalizacin segn el usuario. - Disponibilidad o posibilidad de traduccin al cataln y al castellano. - Soporte de mltiples formados (HTML, Word, Excel, Acrobat, etc.). - Soporte de mltiples navegadores (Internet Explorer, Netscape, etc.). - Soporte de sindicacin (RSS, NewsML, etc.). - Estadsticas de uso e informes. - Control de pginas caducadas y enlaces rotos.

5.2. GESTORES DE CONTENIDOS CON CDIGO ABIERTO


Dentro de los CMS de cdigo abierto desarrollados en PHP tenemos: 5.2.1. Wordpress Wordpress es un sistema gestor de contenidos poderoso y an fcil de usar. Inicialmente fue diseado como una plataforma para blog. Sin embargo lentamente se ha hecho popular y puede ser personalizado en un poderoso CMS con algunos trucos y plugins.

64

Excelencia Acadmica

5.2.2.

Joomla Joomla es un sistema gestor de contenidos ganador de premios, que posibilita construir sitios web y poderosas aplicaciones en lnea. Muchos aspectos incluyendo su facilidad de uso y extensibilidad han hecho a Joomla el software ms popular para sitios web. Lo mejor de todo es que es una solucin de cdigo libre disponible gratuitamente para todo el mundo.

5.2.3. Frog CMS Frog CMS simplifica la administracin de contenidos ofreciendo una elegante interfaz de usuario, flexible manejo de plantillas por pgina, y una simple administracin de usuarios y permisos, as como las herramientas necesarias para la administracin de archivos.

65

Excelencia Acadmica

5.2.4. TYPOlight TYPOlight es un gestor de contenidos PHP y tiene muchas funcionalidades como actualizacin en vivo, navegador cruzado (compatible con IE7), usa Ajax y tecnologas Web 2.0.

5.3. GESTORES DE CONTENIDOS CON CDIGO PROPIETARIO


5.3.1. UMBRACO Umbraco es un gestor de contenidos (CMS) open-source basado en ASP.NET y escrito en C#. Una de las caractersticas ms importante de Umbraco es que la edicin de contenido se realiza de forma muy sencilla a travs de editores WYSIWYG, sin tener que saber nada de programacin en ASP.NET o C#, convirtiendo la tarea de crear un nuevo sitio web en algo bastante sencillo.

66

Excelencia Acadmica

5.3.2. ADSM Portal 2.0 Gestor de contenidos para PYMES de ADSM Solutions. Mediante plantillas, es posible adaptar por completo el sitio Web a las necesidades del cliente. Su sencillo panel de administracin permite al cliente editar, aadir y eliminar contenidos. El sistema es totalmente escalable, pudiendo adaptarse a todo tipo de necesidades, desde pequeos sitios Web hasta completos portales de contenidos. 5.3.3. Portal Builder CMS Un nuevo e innovador gestor de contenidos. Portal Builder CMS es un nuevo producto de tercera generacin que se lanz al mercado a mediados del 2009 por la empresa SOFTENG - especialista en diseo y desarrollo de webs usando su gestor de contenidos. Desarrollado en sus etapas iniciales en colaboracin con Microsoft, cubre necesidades exigentes en empresas medianas y grandes que buscan una solucin profesional para gestionar su web y llevar a cabo su estrategia de marketing online, pero a un precio razonable comparado con los costes de licencia e implantacin de los productos del cuadrante de Gartner. 5.3.4. Agrupalia Skipper. Skipper Agrupalia permite el control y administracin de los contenidos web de forma fcil y flexible. Sin utilizar plantillas predefinidas, sin necesidad de infraestructura tcnica y sin lmites en el desarrollo de funcionalidades. 5.3.5. Aladetres Completo gestor CMS para empresas y administracin local sobre tecnologa LAMP. Implementacin personalizada.

67

Excelencia Acadmica

AST X-CMS Un CMS hecho en ASP, almacena los datos en archivos XML, maneja mltiples formatos, foros, blogs. 5.3.6. Hbitat Portal. Hbitat es un CMS en espaol, Amigable, Personalizable, Orientado a servicios y Generador de comunidades. 5.3.7. Content-SORT Clasificado como Sistema de Gestin de Portales y de Contenidos Web (CMS), soporta todos los estndares Web W3C y de accesibilidad definidos por la WAI. Orientado originalmente sobre tecnologa LAMP, realmente es mutiplataforma (PHP), y se basa en una arquitectura de 3 capas: Bases de Datos, Aplicacin, Presentacin.

SISTEMA DE ADMINISTRACIN DE CONTENIDOS

UNIDAD ACADMICA N 5
1. Utilizando un CMS, implementa el Portal Web de una Institucin, considere: Sistema de contenidos, blogs, chats y foros.

68

Excelencia Acadmica

SISTEMA DE MENSAJERIA
La mensajera de empresa permite la comunicacin asncrona entre sistemas de software. Puede utilizarse para intercambiar componentes con el servidor o con otros sistemas de software de la empresa. Con tal de que los puntos extremos estn programados para reconocer un formato de mensaje comn, los mensajes se pueden codificar de muchas maneras, incluidas las de objetos Java serializados, mapas de informacin con pares de nombre valor, o incluso texto. Por ejemplo, los documentos XML se transportan a menudo como mensajes de texto. A diferencia de las llamadas a procedimientos remotos (RPC), la mensajera no bloquear al emisor mientras est a la espera de una respuesta. Asimismo, no hace falta que el receptor permanezca desocupado mientras espera la prxima solicitud. El servicio de mensajes se encarga de poner los mensajes en cola hasta que se puedan aceptar, y de asegurar que los mensajes se entregan de manera fiable en el orden establecido.

Al finalizar el estudio de la presente unidad temtica el estudiante: 1. Describe los tipos de servidores. 2. Describe el funcionamiento de los Servidores. 3. Describe los tipos de Tecnologas de Desarrollo Web. 4. Diferencia el uso de los Lenguajes de Programacin para la Web. 5. Implementa un servidor Web, de Datos y de Aplicaciones.

69

Excelencia Acadmica

6.1. JAVA MESSAGE SERVICE Java Message Service (en espaol servicio de mensajes Java), tambin conocida por sus siglas JMS, es la solucin creada por Sun Microsystems para el uso de colas de mensajes. Este es un estndar de mensajera que permite a los componentes de aplicaciones basados en la plataforma Java2 crear, enviar, recibir y leer mensajes. Tambin hace posible la comunicacin confiable de manera sncrona y asncrona. En las comunicaciones cliente servidor, los datos que se intercambian entre las dos partes necesitan de una comunicacin sincrona, es decir, que las dos partes esten presentes en el momento de la comunicacin. Los sistemas de mensajes aportan una serie de mejoras a la comunicacin entre aplicaciones que no tienen por que residir en la misma mquina. JMS se situa como middleware en medio de la comunicacin de dos aplicaciones. En entornos cliente servidor, cuando la aplicacin A quiere comunicarse con la Aplicacin B, necesita saber donde esta B (su IP por ejemplo) y que B est escuchando en ese momento. Cuando se usa JMS (o cualquier otro sistema de mensajes), la aplicacin A enva un mensaje, el sistema de mensajes lo recibe y se lo enva a B cuando se conecte al servicio. De esta manera se consigue una comunicacin asncrona entre A y B, es decir no hace falta que B este presente en el momento del envo del mensaje, y no por ello va a dejar de recibirlo. 6.2. ARQUITECTURA DE JMS

Una aplicacin JMS consta de los siguientes elementos: Clientes JMS Mensajes Aplicaciones que envian o reciben mensajes a travs de JMS Los mensajes que se intercambian

70

Excelencia Acadmica

Objetos administrados

Los objetos JMS a los que se dirigen las comunicaciones

6.2.1. Objetos administrados Los objetos administrados son el punto al que se comunican los clientes JMS para enviar o recibir mensajes, se denominan objetos administrados por que los crea el administrador (en la implementacin de referencia mediante j2eeadmin). Implementan las interfaces JMS y se sitan en el espacio de nombres de JNDI (Java Naming and Directory Interface) para que los clientes puedan solicitarlos. Hay dos tipos de objetos administrados en JMS: ConnectionFactory: Se usa para crear una conexin al proveedor del sistema de mensajes. Destination: Son los destinos de los mensajes que se envan y el recipiente de los mensajes que se reciben. 6.2.2. Mensajes Es el corazn del sistema de mensajes. Estn formados por tres elementos: Header: Es la cabecera del mensaje, contiene una serie de campos que le sirven a los clientes y proveedores a identificar a los mensajes. Aqu se presenta la lista de campos completa : Campo Tipo de Dato Descripcin

JMSMessageID

String

Un numero que identifica univocamente al mensaje. Solo se puede consultar una vez que esta enviado el mensaje.

JMSDestination

Destination El destino a donde se envia el mensaje. Puede ser de tipo PERSISTENT, entonces se envia una unica vez, o de tipo NON_PERSISTEN, de manera que se envia como mucho una vez, lo cual incluye tambien que no sea enviado nunca. PERSISTENT y NON_PERSISTENT estan definidas como constantes. Pues eso, la hora a la que se envio el mensaje. La hora hasta la cual el mensaje es valido, si es 0 quiere decir que no caduca nunca. Prioridad del mensaje de 0 a 9, siendo 0 la mas baja.

JMSDeliveryMode int

JMSTimestamp

long

JMSExpiration

long

JMSPriority

int

71

Excelencia Acadmica

JMSCorrelationID String

Este campo se usa para relaccionar una respuesta a un mensaje, se copia aqui el id de mensaje del mensaje al que se esta respondiendo. Especifica el lugar a donde se deben enviar las respuestas al mensaje actual. Este campo lo puede usar el programa de mensajeria para almacenar el tipo del mensaje. Indica que el mensaje ha sido enviado con anterioridad pero el destino no lo ha procesado, por lo que se reenvia.

JMSReplyTo

Destination

JMSType

String

JMSRedelivered

boolean

Properties: Son propiedades personalizadas para un mensaje en particular. Aqu tienes la lista completa: Propiedad Tipo de Dato String Descripcion

JMSXUserID

El usuario que envia el mensaje. La aplicacion que envia el mensaje. El numero de veces que se ha intentado enviar el mensaje Identificador del grupo al que pertenece el mensaje. Numero de secuencia en el grupo de mensajes. La hora a la que JMS le entrego el mensaje al/los destinatario/s. Para uso del proveedor de mensajeria. Reservado para propiedades particulares del proveedor.

JMSXApplID

String

JMSXDeliveryCount

int

JMSXGroupID

String

JMSXGroupSeq

int

JMSXRcvTimestamp

long

JMSXState

int

JMSX_<nombre_del_proveedor> -

72

Excelencia Acadmica

Body: Es el mensaje en si, hay distintos tipos: StreamMessage: Contiene un stream de datos que se escriben y leen de manera secuencial. MapMessage: Contiene pares nombre-valor. TextMessage: Contiene un String. ObjectMessage: Contiene un objeto que implemente la interfaz Serializable. BytesMessage: Contiene un stream de bytes. 6.2.3. Clientes JMS Son clientes de JMS tanto el que suministra mensajes como el que los recibe. Todos tienen una serie de pasos en comn antes de lograr enviar o recibir un mensaje: Conseguir un objeto ConnectionFactory a travs de JNDI. Conseguir un destino, mediante el objeto Destination a travs de JNDI. Usar ConnectionFactory para conseguir un objeto Connection Usar Destination para crear un objeto Session.

6.3. EJEMPLO DE APLICACIONES PUNTO A PUNTO En las conexiones punto a punto, es decir, con solo dos extremos en la comunicacin, el que enva y el que recibe, el destino en el que se reciben los mensajes enviados y de donde se recogen los mensajes recibidos recibe el nombre de Cola de mensajes (en ingls Queue) y acta como una cola FIFO (el primer mensaje que llega es el primer mensaje que se recoge). Vamos a seguir los pasos que necesita un cliente JMS para conseguir una conexin a una cola de mensajes. Primero debemos crear un contexto inicial para JNDI: InitialContext contextoInicial = new InitialContext(); Recuperamos de este contexto el objeto QueueConnectionFactory QueueConnectionFactory factory = (QueueConnectionFactory)contextoInicial.lookup("QueueConnectionFactory"); Recuperamos de la JNDI la cola de mensajes Queue cola = (Queue)contextoInicial.lookup("Cola"); Mediante el metodo createQueueConnection() de factory conseguimos un objeto QueueConnection. QueueConnection conexion = factory.createQueueConnection(); El objeto anterior nos sirve ahora para crear una sesin, los parmetros los comentaremos mas tarde: QueueSession sesion = conexion.createQueueSession(false,sesion.AUTO_ACKNOWLEDGE); A partir de ahora ya podriamos crear mensajes y enviarlos. Vamos a ver un ejemplo sencillo de una comunicacin punto a punto.

73

Excelencia Acadmica

Implementacin del Ejemplo de una comunicacin punto a punto Para poder probar los ejemplos, necesitamos tener instalada la J2EE 1.3 o superior (es donde viene la api JMS, en el paquete javax.jms) y el classpath debe incluir a j2ee.jar. Esto ser requisito previo para la compilacin y ejecucin de todos los ejemplos. Antes de compilar y ejecutar los ejemplos, debemos crear los objetos administrados que usaremos en los ejemplos: Ejecutamos el servidor J2EE: j2ee -verbose. Entre el montn de mensajes que imprime, divisamos QueueConnectionFactory, es el ConnectionFactory por defecto. Crearemos un destino para nuestros mensajes: j2eeadmin -addJmsDestination Cola queue Esto crea un Destination llamado Cola del tipo queue, comprobamos que esta creado: j2eeadmin -listJmsDestination Esta es la clase que enva mensajes a la cola EnviaCola.java:

import javax.jms.*; import javax.naming.*; public class EnviaCola{ public static void main (String args[]){ InitialContext contextoInicial = null; QueueSession sesion = null; try { // Conseguimos de la JNDI los objetos administrados contextoInicial = new InitialContext(); QueueConnectionFactory factory = (QueueConnectionFactory)contextoInicial.lookup("QueueCon nectionFactory"); Queue cola = (Queue)contextoInicial.lookup("Cola"); // Creamos la conexion y la sesion QueueConnection conexion = factory.createQueueConnection(); sesion = conexion.createQueueSession(false,sesion.AUTO_ACKNOWLEDGE; // Creamos una sesion de envio
74

Excelencia Acadmica

QueueSender enviaACola = sesion.createSender(cola);

// Creamos un mensaje TextMessage mensaje = sesion.createTextMessage(); mensaje.setText("Esto es un mensaje"); // Lo enviamos enviaACola.send(mensaje); System.out.println("Mensaje enviado: " + mensaje.getText()); // Cerramos la conexion conexion.close(); } catch (NamingException e){ e.printStackTrace(); } catch (JMSException e) { e.printStackTrace(); } } }
Esta es la clase que recibe los mensajes de la cola RecibeCola.java:

import javax.jms.*; import javax.naming.*; public class RecibeCola{ public static void main (String args[]){ InitialContext contextoInicial = null; QueueSession sesion = null; try {

75

Excelencia Acadmica

// Conseguimos de la JNDI los objetos administrados contextoInicial = new InitialContext(); QueueConnectionFactory factory = QueueConnectionFactory)contextoInicial.lookup("QueueConn ectionFactory"); Queue cola = (Queue)contextoInicial.lookup("Cola"); // Creamos la conexion y la sesion QueueConnection conexion = factory.createQueueConnection(); sesion = conexion.createQueueSession(false,sesion.AUTO_ACKNOWLEDGE; // Creamos una sesion de recepcion QueueReceiver recibeDeCola = sesion.createReceiver(cola); // Iniciamos la recepcion de mensajes conexion.start(); while (true) { // Cogemos un mensaje de la cola, el 1 indica que esperara 1 milisegundo Message mensaje= recibeDeCola.receive(1); if (mensaje != null){ if (mensaje instanceof TextMessage){ // Lo mostramos TextMessage m = (TextMessage)mensaje; System.out.println("Recibido mensaje: m.getText()); } } else {
76

" +

Excelencia Acadmica

// No hay mas mensajes break; } } // Cerramos la conexion conexion.close(); } catch (NamingException e){ e.printStackTrace(); } catch (JMSException e) { e.printStackTrace(); } } }
Ahora ya podemos compilar los ejemplos: EnviaCola.java, RecibeCola.java: javac EnviaCola.java javac RecibeCola.java Y ejecutarlos. Primero enviamos un mensaje: java EnviaCola Y luego recogemos los mensajes de la cola: java RecibeCola

SISTEMA DE MENSAJERIA

UNIDAD ACADMICA N 6
1. Implementar el sistema de comunicacin orientada a la suscripcin.

77

Excelencia Acadmica

METODOLOGAS PARA EL DESARROLLO DE SISTEMAS DE INFORMACIN WEB


El avance de Internet y las comunicaciones de los ltimos aos ha provocado un inters creciente por el desarrollo de propuestas metodolgicas que ofrezcan un marco de referencia adecuado cuando se desarrolla un sistema de informacin web. En el proceso de desarrollo de un sistema, sea o no para la web, el equipo de desarrollo se enfrenta al problema de la identificacin de requisitos. La definicin de las necesidades del sistema es un proceso complejo pues en l hay que identificar los requisitos que el sistema debe cumplir para satisfacer las necesidades de los usuarios finales y de los clientes. Para realizar este proceso, no existe una nica tcnica estandarizada y estructurada que ofrezca un marco de desarrollo que garantice la calidad del resultado. Existe en cambio un conjunto de tcnicas, cuyo uso proponen las diferentes metodologas para el desarrollo de aplicaciones web.

Al finalizar el estudio de la presente unidad temtica el estudiante: 1. 2. 3. Describe los tipos metodologas para el desarrollo de sistemas web. Se propone una metodologa alineada con el Planeamiento estratgico Institucional. Se desarrolla un modelo prctico.

78

Excelencia Acadmica

7.1. METODOLOGAS EXISTENTES El desarrollo de sistemas de aplicaciones web, agrupa una serie de caractersticas que lo hacen diferente del desarrollo de otros sistemas. Por un lado, hay que tener en cuenta que roles muy diferentes de desarrolladores participan en el proceso: analistas, clientes, usuarios, desarrolladores, diseadores grficos, expertos en multimedia y seguridad, etc. Por otro lado, la existencia en estos sistemas de un importante estructura de navegacin obliga a un desarrollo preciso de este aspecto que garantice que el usuario no se pierde en el espacio navegacional del sistema. Estas ideas unidas al hecho que los sistemas web suelen tratar con mltiples medios y es esencial que ofrezcan una interfaz adecuada en cada momento, obligan a que estos aspectos propios de la web deban ser tratados de una forma especial en el proceso de desarrollo. Estas caractersticas especiales tambin hay que tenerlas en cuenta en la fase de especificacin de requisitos. Por ello, la mayora de las propuestas estudiadas ofrecen diferentes clasificaciones de los requisitos. Sin embargo, la terminologa usada no es siempre la misma. Para facilitar la comprensin de las propuestas, antes de presentarlas, presentamos una clasificacin de requisitos relevantes en sistemas web. Requisitos de datos, tambin denominados requisitos de contenido, requisitos conceptuales o requisitos de almacenamiento de informacin. stos requisitos responden a la pregunta de qu informacin debe almacenar y administrar el sistema. Requisitos de interfaz (al usuario), tambin llamados en algunas propuestas requisitos de interaccin o de usuario. Responden a la pregunta de cmo va a interactuar el usuario con el sistema. Requisitos navegacionales, recogen las necesidades de navegacin del usuario. Requisitos de personalizacin, describen cmo debe adaptarse el sistema en funcin de qu usuario interacte con l y de la descripcin actual de dicho usuario. Requisitos transaccionales o funcionales internos, recogen qu debe hacer el sistema de forma interna, sin incluir aspectos de interfaz o interaccin. Tambin son conocidos en el ambiente web como requisitos de servicios.

Requisitos no funcionales, son por ejemplo los requisitos de portabilidad, de reutilizacin, de entorno de desarrollo, de usabilidad, de disponibilidad, etc.

7.1.1. WSDM: Web Site Design Method WSDM es una propuesta para el desarrollo de sitios web, en la que el sistema se define en base a los grupos de usuarios. Su proceso de desarrollo se divide en cuatro fases: modelo de usuario, diseo conceptual, diseo de la implementacin e implementacin. La fase que ms repercusin tiene para este trabajo es la primera en la que intenta detectar los perfiles de usuarios para los cuales se construye la aplicacin. Para ello, se deben realizar dos tareas: Clasificacin de usuarios: en este paso se deben identificar y clasificar a los usuarios que van a hacer uso del sistema. Para ello, WSDM propone el estudio del entorno de la organizacin donde se vaya a implantar el sistema y los procesos que se vayan a generar, describiendo las relaciones entre usuarios y actividades que realizan estos usuarios.
79

Excelencia Acadmica

Para la representacin grfica de estas relaciones WSDM propone una especie de mapas de conceptos de roles y actividades. Descripcin de los grupos de usuarios: en esta segunda etapa se describen con ms detalles los grupos de usuarios detectados en la etapa anterior. Para ello, se debe elaborar un diccionario de datos, en principio con formato libre, en el que indican los requisitos de almacenamiento de informacin, requisitos funcionales y de seguridad para cada grupo de usuarios. El resto de las fases del proceso de WSDM se hacen en base a la clasificacin de usuarios que se realiza en esta primera etapa. 7.1.2. SOHDM: Scenario-based Object-Oriented Hypermedia Design Methodology Esta propuesta presenta la necesidad de disponer de un proceso que permita capturar las necesidades del sistema. Para ello, propone el uso de escenarios. El proceso de definicin de requisitos parte de la realizacin de un diagrama de contexto tal y como se propone en diagramas de flujos de datos (DFD) de Yourdon [36]. En este diagrama de contexto se identifican las entidades externas que se comunican con el sistema, as como los eventos que provocan esa comunicacin. La lista de eventos es una tabla que indica en qu eventos puede participar cada entidad. Por cada evento diferente SOHDM propone elaborar un escenario. stos son representados grficamente mediante los denominados SACs2 (Scenario Activity Chart). Cada escenario describe el proceso de interaccin entre el usuario y el sistema cuando se produce un evento determinado especificando el flujo de actividades, los objetos involucrados y las transacciones realizadas. SOHDM propone un proceso para conseguir a partir de estos escenarios el modelo conceptual del sistema que es representado mediante un diagrama de clases. 7.1.3. OOHDM: Object Oriented Hypermedia Design Model OOHDM es una propuesta metodolgica ampliamente aceptada para el desarrollo de aplicaciones de la web. En sus comienzos no contemplaba la fase de captura y definicin de requisitos, pero actualmente propone el uso de user interaction diagrams (UIDs). Esta propuesta parte de los casos de uso que considera una tcnica muy difundida, ampliamente aceptada y fcilmente entendible por los usuarios y clientes no expertos, pero que resulta ambigua para el equipo de desarrollo en fases posteriores del ciclo de vida. Igualmente, resalta la necesidad de empezar el diseo del sistema, especialmente en los entornos web, teniendo un claro y amplio conocimiento de las necesidades de interaccin, o lo que es lo mismo de la forma en la que el usuario va a comunicarse con el sistema. Partiendo de estas dos premisas, OOHDM propone que la comunicacin con el usuario se realice utilizando los casos de uso y a partir de ellos los analistas elaboran los UIDs. Estos UIDs son modelos grficos que representan la interaccin entre el usuario y el sistema, sin considerar aspectos especficos de la interfaz. El proceso de transformacin de un caso
80

Excelencia Acadmica

de uso a un UIDs es descripto detalladamente en la propuesta, y se basa en detectar la interaccin necesarias para la realizacin del caso de uso. OOHDM centra el desarrollo de un sistema de informacin web entorno del modelo conceptual de clases. Este diagrama debe surgir de los requisitos que se definan del sistema, pero los casos de uso resultan demasiado ambiguos para ello. As, propone refinar el proceso de desarrollo descripto en UML de forma que de los casos de uso se generen los UIDs que concreticen ms la definicin de los requisitos para, a partir de ellos, obtener el diagrama conceptual.

7.2. COMPARACIN DE LAS METODOLOGAS EXISTENTES

81

Excelencia Acadmica

82

Excelencia Acadmica

83

Excelencia Acadmica

84

Excelencia Acadmica

85

Excelencia Acadmica

86

Excelencia Acadmica

87

Excelencia Acadmica

88

Excelencia Acadmica

89

Excelencia Acadmica

METODOLOGAS PARA EL DESARROLLO DE SISTEMAS DE INFORMACIN WEB

UNIDAD ACADMICA N 7
NOMBRE:__________________________________________________________________ APELLIDOS:________________________________________FECHA; ____/_____/______ CIUDAD:_______________________________SEMESTRE:_________________________

1. 2.

Elabore un cuadro comparativo sobre las metodologas para el desarrollo de sistemas de informacin web. Considerando los pasos de la metodologas propuesta, desarrolle un caso prctico de su inters profesional.

90

Excelencia Acadmica

REGISTROS DE DOMINIO Y CPANEL


Un dominio o nombre de dominio es el nombre que identifica un sitio web. Cada dominio tiene que ser nico en Internet. Por ejemplo, "www.upla.edu.pe" es el nombre de dominio de la pgina web de la Universidad Peruana los Andes. Un solo servidor web puede servir mltiples pginas web de mltiples dominios, pero un dominio slo puede apuntar a un servidor. Un dominio se compone normalmente de tres partes en la mayora de los casos: en www.upla.edu.pe, las tres uves dobles (www), el nombre de la organizacin (upla), el tipo de organizacin (edu), finalmente en el caso nuestro la referencia del pas (pe). Los tipos de organizacin ms comunes son .COM, .NET, .MIL, .ORG, .EDU que se refieren a comercial, network, militar, organizacin y educativo. Puesto que Internet se basa en direcciones IP, y no en nombres de dominio, cada servidor web requiere de un servidor de nombres de dominio (DNS) para traducir los nombres de los dominios a direcciones IP. Cada dominio tiene un servidor de nombre de dominio primario y otro secundario.

Al finalizar el estudio de la presente unidad temtica el estudiante: 1. 2. 3. 4. 5. Describe los tipos de servidores. Describe el funcionamiento de los Servidores. Describe los tipos de Tecnologas de Desarrollo Web. Diferencia el uso de los Lenguajes de Programacin para la Web. Implementa un servidor Web, de Datos y de Aplicaciones.
91

Excelencia Acadmica

8.1. DOMINIOS El registro de dominios es el proceso por el cual una persona pasa a tener el control sobre un nombre de dominio a cambio de pagar una cuota a la pgina web del registrador: Elige el dominio o dominios. Verifica si el dominio est disponible. Da sus datos personales. Elige el tiempo por el que los compra. Al final los paga, normalmente con tarjeta de crdito (o tambin por transferencia bancaria).

Una vez comprado, da los datos de su configuracin, y de qu quiere hacer con el dominio: URL a la cual redireccionar, IP del servidor al que resolver mediante DNS, servidor DNS usado, etc. El registrante tiene que esperar un tiempo hasta que los cambios surtan efecto. Para los .com y .net es entre 4 y 8 horas, y para otros, entre 24 y 48 horas. En ese perodo: El registrador contacta con InterNIC y acaba el proceso con ellos, de forma transparente para el registrante. Se avisa al registrante de que se ha hecho el registro sin problemas. El nuevo dominio funciona, y resuelve a la IP apropiada en el servidor DNS usado, pero no en el resto de servidores DNS del mundo. Poco a poco se va propagando el cambio al resto de servidores ( propagacin DNS). Como cada uno tiene distintos tiempos de actualizacin y parmetros de cach distintos, pasan varias horas (es difcil predecir cuntas) hasta que todos los servidores DNS del mundo conocen cmo hacer la resolucin del dominio. La pgina ya es accesible mediante un nombre de dominio desde cualquier ordenador con acceso a Internet. Ejemplo del Dominio a comprar. www.alumnosupla.com 8.2. NORMATIVIDAD DE CUENTA Cada registrador tiene unas normas especficas sobre lo que considera correcto y lo que en relacin con cuestiones como la codificacin de caracteres permitida. Un requisito imprescindible para registrar un dominio es dar datos veraces sobre el registrante: nombre, direccin (fsica y electrnica), y telfono de contacto. Estos datos
92

Excelencia Acadmica

son importantes para contactar con el responsable de un dominio si hay algn problema, por ejemplo spam proveniente de esa direccin. Toda esta informacin se puede consultar con el programa whois (que est en la mayora de sistemas operativos). Algunos registradores ofrecen "trucos" legales para quienes no quieren mostrar sus datos personales. Como ICANN prohbe que sea el propio registrador quien ponga sus datos ah, algunos contratan a una empresa proxy (intermediaria) usada slo para hacer de representante. Esto hace que sea muy complicado contactar con el propietario en caso de problemas tcnicos. El ICANN solo asume una responsabilidad tica con los compradores de los dominios registrados por uno de sus registradores autorizados. Existen miles de registradores que registran dominios en internet pero muy pocos de ellos estn realmente autorizados, dichos registradores no acreditados realizan meras funciones de intermediarios, muchos de ellos pese a no tener una autorizacin directa actan de manera legal y eficaz, no obstante se ha de tener presente de cara a posibles reclamaciones que no todos ellos actan dentro de esta moralidad empresarial al no estar sujetos a ningn contrato por escrito con el ICANN. La lista de registradores autorizados por el ICANN se puede ver en:Acreditados por el ICANN Datos necesarios para registrar un dominio Los datos necesarios para registrar un dominio son: Registrador oficial de dominios: Empresa registradora oficial inscrita en ICANN la cual se encarga de preservar los datos de los registros. Propietario del dominio: Persona o entidad que figura como propietario y legtimo dueo por el periodo de registro. Contacto administrativo: Persona o entidad designada por el propietario que figura como administrador de los datos del dominio en favor del propietario. Contacto tcnico: Persona o entidad que se encarga de la manutencin de los nmeros DNS del dominio para su correcto funcionamiento y enlace en la red. Contacto de facturacin: Persona o entidad que se encargar de realizar el pago por las correspondientes renovaciones del dominio. DNS (Domain Name Servers) ( Servidor de Nombres de Dominio ): Estos nmeros (mnimo 2) figuran en el registro de los dominios y muestran las direcciones IPs de los servidores que se harn cargo de las peticiones al dominio y de redirigir las mismas a donde proceda en base a la naturaleza de cada peticin. Alcance Legal Los dominios se registran de acuerdo con su disponibilidad sin comprobar si se tiene relacin con el nombre que est comprando o puede originarse un conflicto legal de derechos de marca. Esto ha hecho que muchas empresas se dediquen a comprar nombres con potencial valor para luego revenderlos.
93

Excelencia Acadmica

Adelantarse en el registro Una nueva empresa que est en perodo de crecimiento probablemente no tenga dominio propio pero es posible que en el futuro lo quiera tener. Hay gente que se adelanta y compra ese dominio cuando la empresa an es poco famosa para intentar vendrselo luego ms caro. Lo mismo puede pasar con una empresa ya famosa: como hay tantos tipos de dominios de primer nivel (ver lista), es poco probable que tenga su nombre comprado en todos. Alguien puede comprar uno de los que no tengan y hacer uso de ellos o intentar revenderlos. Esto puede pasar tambin con nombres de personas famosas y por eso hay gente que registra su nombre "slo por si acaso" lo necesitan en el futuro, participando as en el negocio de los dominios. ICANN ya tiene un proceso de resolucin de disputas para estos casos, llamado UDRP. sta es una poltica propia hecha para evitar tener que recurrir al procedimiento legal, mucho ms lento y costoso. Detalles (en ingls).

Nombres parecidos Mucha gente se equivoca al teclear un dominio en la barra de direcciones de su navegador, y reciben un error de No se puede encontrar el servidor . Hay empresas que registran estos dominios para llevar a su pgina a quienes se equivoquen al escribir, que pueden ser muchos si la pgina original es famosa. Los contenidos que puede tener la nueva pgina pueden ser "simplemente" publicidad pero tambin productos de la competencia. Muchas otras veces slo se registra el dominio para impedir que otros lo hagan antes, pero no para poner una pgina web, de forma que sale en whois pero no tienen servidor web. Como ejemplo de lo indicado, a enero de 2008 se tena, las siguientes variaciones de microsoft.com estn registradas: Las 9 resultantes de quitar una de las letras. Las 9 resultantes de duplicar una letra. Las 8 resultantes de intercambiar dos letras contiguas. Una letra con otra cercana en el teclado, triplicar letras, aadir letras aleatorias entre medio, etc. De estos dominios, unos pocos los tienen registrados los propietarios del original: mircrosoft, microsof, mircosoft, microosft, miicrosoft, miccrosoft, micrrosoft, microosoft, microsofft. Esto aumenta mucho el coste anual de estar presente en Internet y no todas las empresas se lo pueden permitir.

94

Excelencia Acadmica

Es famoso Google (google.com) porque su nombre es escrito de muchas maneras distintas que en ingls se pronuncian igual. En se puede ver una lista de los errores ms frecuentes. Google no es propietario de todos esos nombres en cada dominio (.com, .ru, .de,...), pero en alguna ocasin ha sido el registrador de dominios quien decidi que cierto nombre era demasiado parecido a google. Fuente: ZDNet.com.au (en ingls). Algunos famosos con nombres difciles, como Arnold Schwarzenegger, tienen registrados varios dominios para que los visitantes puedan entrar a su pgina aun cuando escriben mal su apellido. Ha habido muchos casos famosos de ciberokupacin (que es como le llaman a esto en los medios de comunicacin); por ejemplo, John Zuccarini registr miles de dominios con errores tipogrficos que redirigan al pblico (principalmente infantil) a sitios pornogrficos, que le daban beneficios. Al olvidarse de renovarlo Cuando una persona registra un dominio, lo hace por un perodo de tiempo determinado (medido en aos). Cuando este perodo est a punto de acabar, es tarea del propietario preocuparse de renovar el dominio, o activar alguna opcin de auto-renovacin, si est disponible en su registrador. Ha habido casos en los que empresas importantes se han olvidado de renovar el dominio, y entonces otra persona ha aprovechado para registrar el mismo dominio recin liberado. Cuanto ms importante es el dominio, ms personas habr intentando "secuestrarlo", y eso ha motivado que se creen mecanismos automticos como listas de espera para registrar el dominio en cuanto est libre (pre-registro). Hay empresas de registro que se dedican slo a esto; vase. ste es un mecanismo nada fiable, ya que varios registradores pueden tener su propia lista (no hay ninguna oficial), y slo uno de los solicitantes conseguir el dominio. Se considera una estafa. Otros negocios Tambin se hacen negocios curiosos que tienen como eje central un nombre de dominio. Por ejemplo, alguien se inventa un nombre atractivo y "comercial" (corto, que suene bien, fcil de recordar,...), registra ese dominio, y empieza a inventar un contexto e historia ficticias sobre esta nueva empresa: caractersticas, prioridades, objetivos, diseo, etc. Despus, pone el dominio a la venta o lo subasta (por ejemplo, en eBay).

95

Excelencia Acadmica

A veces se crean rumores externos sobre el posible crecimiento de esta nueva empresa para subir su valor. Pero tambin hay algn proyecto de creadores rpidos de empresas sin nimo de estafar; por ejemplo, en http://24hdc.com/ crearon desde cero las bases de una empresa y consiguieron venderla, todo en 24 horas. El negocio de los fraudes Hay que destacar que todos los fraudes o negocios que rozan la ilegalidad siempre son rentables para unas empresas: los registradores. En todos los casos anteriores salen ganando. Por ejemplo: Personas que registran dominios "slo por si acaso" los necesitan en el futuro. Empresas que han de comprar muchas variaciones tipogrficas de su nombre. Muchos ciberokupas dispuestos a comprar nuevos dominios antes que el resto. Empresas que han de contratar servicios especiales para que sus dominios no corran peligro. Ciberokupas dispuestos a pagar por servicios de pre-registro y otros que les permiten tener opcin a secuestrar un dominio. Adems, cuando un nuevo dominio pasa a estar disponible (por ejemplo, para un nuevo pas), todas las empresas que quieran estar presentes en esa nueva terminacin competirn para registrar los dominios "valiosos" antes que la competencia, dando as ms registros de dominios. La ICANN intenta evitar esto restringiendo el acceso a algunos dominios; por ejemplo, el .cat se reserva exclusivamente para sitios que hablen de la cultura catalana. Las estafas en el tema del registro de dominios son muy comunes. Al igual que los dominios de primer nivel .com, .net, .org, .info son los que tienen menor "control" sobre su contenido, originariamente la idea era .com para sitios comerciales, .net para sitios que ofrecieran servicios de valor agregado o relacionados con la internet o informtica, .org para organizaciones sin nimo de lucro y .info para aquellos sitios web que su principal funcin fuera informar. Esta administracin ya se perdi ya que no hay control sobre el contenido. En el registro de dominios sobre sexo, pishing, piratera, drogas y material ilcito esta responsabilidad no recae en los registradores sino en la que le d cada uno. La ICANN es quien toma estas medidas de seguridad, si previamente se demuestra que se est cometiendo un abuso. Tambin est creando nuevos TLD para controlar el contenido de las pginas con contenido de forma ms restrictiva, por ejemplo el nuevo dominio an espera de aprobacin es el .xxx para contenido para adultos; todava en proceso, con los .xxx se pretende controlar mejor este contenido que genera grandes cantidades de dinero.

96

Excelencia Acadmica

8.3. PANEL DE CONTROL cPanel es el panel de control ms completo y utilizado de la industria de alojamiento que le permitir administrar su sitio web en trminos de hosting.

cPanel y WHM se combinan para formar un sistema lleno de herramientas y funcionalidades. En conjunto, cPanel y WHM, le permitir manejar todos los aspectos que conforman un servicio de alojamiento web eficiente. cPanel y WHM 11 es la mejor opcin a la hora de automatizar la administracin de un servicio de alojamiento web. Posee herramientas de seguridad, de provisin y transferencia de cuentas de servidor a servidor, auto instalacin de aplicaciones (blogs, cms, etc) y mucho mas.

Grfico 12. Arquitectura del Servidor.

cPanel y WHM 11 le permite a las organizaciones trabajar con cuatro niveles de acceso, teniendo acceso a todas las herramientas necesarias las 24 horas del da, los 7 das de la semana desde cualquier parte del mundo. WebHost Manager (WHM) [Server Admin] : Desde el panel WHM, puede proveer cuentas, configurar opciones de seguridad, instalar software adicional y ms. Esta interface provee acceso al corazn de cPanel y WHM.
WebHost Manager (WHM) [Revendedor/Multicuenta]: Los revendedores tienen

acceso limitado (configurable) a las opciones del WHM, para crear nuevas cuentas, realizar backups y otras aplicaciones determinadas por el Server Admin.
cPanel [Planes individuales]: A travs de cPanel, el usuario tiene todas las

herramientas a su disposicin para generar una excelente presencia en la web. Pueden crear cuentas de email, administrar sus archivos, utilizar manejadores de contenido, blogs y mucho ms.

97

Excelencia Acadmica

Email [Usuario de Email]: Todo aquel que tenga una cuenta de email en una cuenta

de cPanel tendr acceso al Webmail, filtro anti-spam, filtro de mensajes, autorespuestas y todo lo que hace de un servicio de correo electrnico un servicio profesional. Seguridad cPanel 11 le ofrece una gran seguridad a travs de una combinacin de cdigo backend y muchas nuevas utilidades que le permiten proveer polticas de seguridad refinadas. Desempeo cPanel 11 le ofrece un excelente desempeo para sus clientes. Muchos cambios en el cdigo backend y frontend han incrementado la velocidad y disminuido la carga en los servidores.
Velocidad en los Mails: Cambios efectuados en el cdigo backend logran grandes

mejoras en la velocidad de manejo del correo electrnico.


Interfaz Veloz: Con la adicin de nuevas funcionalidades y opciones a la interfaz de

cPanel se logra una reduccin drstica en el tiempo de carga. Tiempos de carga de 1 segundo o menos son posibles en cargas cacheadas (~1.5 segundos sin cache). Esto facilita el trabajo y mejora la experiencia de nuestros clientes al utilizar cPanel. Usabilidad Llegar a donde queremos rpidamente es una de las claves de cPanel 11. Con el objetivo de optimizar la usabilidad, el diseo de cPanel logra convertirse en el panel ms fcil de utilizar.
Asistente Inicial: El Asistente inicial acompaa al dueo de la cuenta a travs de la

experiencia de poner en marcha su cuenta. Desde la configuracin de casillas de correo a la administracin de accesos a discos web, el asistente har que usted y sus clientes estn listos para trabajar en muy poco tiempo.
Acceso instantneo: La pgina inicial de cPanel despliega claramente las opciones

disponibles para que los usuarios puedan acceder a ellas rpidamente. Los mens tambin pueden ser ordenados a gusto arrastrndolos simplemente unos encima de otros, priorizando de este modo que grupo de opciones ver primero. Los mens que no necesite pueden ser minimizados para ahorrar espacio pero dejndolos accesibles en caso de necesitarlos.
Ayuda relevante integrada: Haciendo clic en el botn "Ayuda" en cualquier pagina

dentro de cPanel le proveer a usted o a sus clientes una descripcin del concepto detrs de cualquier funcionalidad. Tambin le brindar un link al recurso correspondiente en caso de que requiera mayor informacin.
Notificaciones y Mensajes de error: Es importante mantenerse al tanto de lo que

sucede con su cuenta de hosting. Para alivianar la carga que conlleva este proceso, se provee informacin a travs de un rea de avisos sobre accesos, cuentas de
98

Excelencia Acadmica

correo y espacio utilizado y ms. Adems de estos avisos textuales se muestra grficamente el estado de su cuenta y los recursos. Estilo Una esttica profesional y limpia es muy importante a la hora de capturar y retener clientes, por eso ofrecemos cPanel. Con una interfaz predeterminada, 10 elecciones de estilo y un sistema de personalizacin muy fcil de usar podemos decir que cPanel 11 es la mejor opcin.
Estilo de Interfaz: Se brindan 10 estilos de interfaz para que usted y sus clientes

puedan elegir la que se adecue mejor a su sitio.


Web 2.0: cPanel 11 integra funcionalidades web 2.0 para transmitir una gran

sensacin a los usuarios. Con caractersticas como mens colapsables, validacin de formularios, zoom y otras funciones javascript y AJAX. La interfaz integra estilo y funcionalidad perfectamente. Personalizacin: Personalizar cualquier aspecto del panel de control es muy sencillo, esta funcin se pone a disposicin para revendedores para que puedan ajustar cualquier aspecto visual del panel que utilizaran sus clientes, desde iconos hasta los bordes de las tablas, pasando por el tamao y color de las fuentes.

99

Вам также может понравиться