UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERÍA ESCUELA DE COMPUTACIÓN SISTEMA DE AUTOMATIZACIÓN PARA BRINDAR SERVICIOS DE ALOJAMIENTO EN INTERNET (WEBHOSTING) Y REGISTRO DE DOMINIOS CON CREACIÓN DE CUENTAS DE FORMA AUTOMÁTICA Y PAGO A TRAVÉS DE TARJETAS DE CRÉDITO DOCUMENTO DE TESIS PARA OPTAR AL GRADO DE INGENIERO EN CIENCIAS DE LA COMPUTACION PRESENTADO POR: LUIS ARMANDO SERRANO ANDRADE MELVYN RAUL GOMEZ GUEVARA ASESOR: ING. ÁNGEL SORIANO CIUDADELA DON BOSCO, SEPTIEMBRE DE 2004 I N D I C E 1. Introducción 4 2. Definición del tema 5 3. Objetivos 7 3.1 Objetivo General 7 3.2 Objetivos Específicos 7 4. Justificación 8 5. Alcances 9 6. Limitaciones 11 7. Antecedentes 12 8. Situación Actual 14 8.1 Diagrama del Flujo Actual 16 9. Marco Teórico 18 10. Bases teóricas para el desarrollo del proyecto 23 10.1 Aplicaciones en Internet 23 10.2 Servidores Web 23 10.3 Sistema Operativo Linux 25 10.4 Base de Datos 26 10.5 Redes TCP/IP 28 10.6 Formato de Números de Tarjetas de Crédito 34 11. Tecnología 37 12. Desarrollo del plan de trabajo 44 12.1 Técnica de Programación 44 12.2 Diseño del Sistema 45 12.2.1 Diseño de la Base de Datos 45 12.2.2 Diseño del Módulo de WebHosting 55 12.2.3 Diseño del Módulo de Registro de dominios 55 12.2.4 Diseño de diagrama de flujo del sistema de automatización 56 12.2.5 Diseño de las interfaces graficas del sistema y de las salidas del mismo 57 12.3 Desarrollo del sistema 102 12.3.1 Instalación del software a utilizar y configuración del servidor. 102 12.3.2 Registro de Usuarios 104 12.3.3 Selección del Plan 105 12.3.4 Detalle de Orden de Compra 106 12.3.5 Proceso de Cobro 107 12.3.6 Resultado de la Verificación 107 12.4 Evaluación 108 12.5 Documentación 108 12.5.1 Manual del proveedor de servicios 108 2 12.5.2 Manual del Usuario 109 13. Cronograma 110 14. Factibilidad Técnica y Económica 112 15. Recursos 114 16. Presupuesto 116 17. Recomendaciones 117 18. Conclusiones 118 19. Bibliografía 119 20. Glosario 120 21. Anexos 127 3 1 . 0 I N T R O D U C C I O N En la actualidad las compañías están reconociendo la importancia y la necesidad de disponer de sitios en Internet con características propias y clásicas de la informática empresarial, a saber: Alta disponibilidad, seguridad, integración con aplicaciones de negocios, etc. Esta necesidad se convierte en un objetivo crítico para cualquier estrategia en la Red. Y aunque es cierto que algunas empresas pueden abordar el reto anterior con recursos propios, resulta cada vez más evidente que la mejor solución es contratar a un proveedor externo de tecnología con suficiente experiencia profesional, en alojamiento, y gestión del ambiente en Internet, así como la gestión, monitorización y control de algunas o todas sus aplicaciones; estos servicios son desarrollo y mantenimiento de aplicaciones, espacio para alojamiento de aplicaciones y páginas web, registro de dominios y son brindados por proveedores de servicios de Internet (ISP) o “Application Services Providers” (ASP). De esta forma, las empresas al contratar servicios externos consiguen acceder a proveedores que, debido a sus capacidades especializadas, pueden ofrecer servicios muy amplios a costo reducido. La contratación de servicios reduce la necesidad de comprar equipos muy caros y evita la compra de amplias infraestructuras para realizar operaciones que son periféricas para aquellos objetivos de la empresa que son la fuente de beneficios. Así es como surge la intención de cubrir estas necesidades, de satisfacer esta demanda creciente; por ello se aspira a ser un proveedor externo de tecnologías basadas en red, que proporcione soporte adicional para abordar negocios en Internet, con la fiabilidad, seguridad y escalabilidad necesarias. 4 2 . 0 D E F I N I C I Ó N D E L T E M A Sistema de automatización para brindar servicios de alojamiento en Internet y registro de dominios con creación de cuentas de forma automática y pago a través de tarjetas de crédito Se ha desarrollado una aplicación, que permite la creación, administración y control de cuentas de usuarios, tanto como en los recursos en el servidor, foros, interfaces para pagos en línea. Los datos generales de los usuarios están almacenados y administrados en una base de datos, utilizando herramientas de ambiente Internet que permiten la creación de cuentas de forma automática y pagos a través de tarjetas de crédito. La oferta de los servicios que presta el sistema permite que las empresas puedan tener el control administrativo de su sitio en Internet. El cliente aporta el contenido y los proveedores el equipo, la programación, la administración de los sistemas y el soporte necesario para disponer de un sitio en Internet de alto rendimiento y que puede ir creciendo a medida que lo hace su negocio. Se ofrecen plantillas exclusivas para nuestros clientes, disponibilidad de contenidos y “scripts” prediseñados y listos para implementarse. El cliente que recibe los servicios de este proyecto alojará su sitio en Internet en servidores de alto rendimiento, los cuales suministran almacenamiento, acceso a la red global y monitorización del servicio. Entre las características más notables cabe destacar: 5  Los recursos del servidor son compartidos por varios clientes.  Habitualmente este tipo de renta de espacio en Internet está enfocado hacia clientes que se inician en la red global y en el comercio electrónico, con poca experiencia y conocimientos en tecnologías Internet.  Este servicio se dirige a pequeñas y medianas empresas. Servicios que se ofrecen:  Servidor de correo  Acceso a correo electrónico vía Internet (Webmail)  Acceso a correo vía POP3  Servidor de Transferencia de Archivos  Creación de subdominios  Acceso a bases de datos MySQL  Publicación de Sitios Web (Alojamiento de contenido para el acceso público vía Internet). 6 3 . 0 O B J E T I V O S S E G U N D A D E F E N S A 3 . 1 O B J E T I V O G E N E R A L Desarrollar un sistema automatizado que permita crear cuentas de espacio en Internet así como su administración y el registro de nombres de dominio; con una interfase para el pago mediante tarjetas de crédito desde Internet. 3 . 2 O B J E T I V O S E S P E C I F I C O S  Desarrollar una aplicación para ambiente de Internet mediante la cual se administrarán las cuentas del sitio de manera personalizada.  Utilizar herramientas y procedimientos que den soporte a la seguridad de la información del sistema.  Crear las distintas interfases para las cuentas del usuario, así como las que servirán para el manejo de la información de las tarjetas de crédito.  Trabajar con una estructura de programación modular que permita el cambio y la actualización del código de programación de manera eficiente.  Crear un módulo que proporcione ayuda en línea para responder a las dudas e inquietudes que el usuario tenga para que este pueda entender correctamente las funciones del sistema.  Desarrollar manuales orientados hacia los diferentes usuarios, que sirvan como guía en el uso del sistema. 7 4 . 0 J U S T I F I C A C I Ó N Se seleccionó este tema práctico, ya que en la actualidad las compañías que ofrecen servicios como el registro de dominios y/o creación de cuentas de espacio en Internet en el país son pocas y además se demoran mucho tiempo en brindar el servicio cuando un cliente lo solicita, ya sea por verificación de datos, configuración de opciones, validación de pagos, etc. El sistema a desarrollar será capaz de superar todos estos inconvenientes mediante la automatización de los procesos. Estos incluyen:  Recolección de datos de los clientes  Verificación del pago mediante Tarjetas de Crédito  Creación de cuenta de “Hosting”  Registro de nombres de “Dominio” Además se detallan a continuación aspectos que caracterizan la ventaja de los servicios que se darán a las empresas que implementen este proyecto:  Mejora del proceso de pago y creación de cuentas  Proporciona una opción confiable para un negocio en línea a bajo costo  Minimiza los costos de operación  Ampliar el alcance de los negocios con clientes de cualquier parte del mundo donde se tenga acceso a Internet.  Permitir el desarrollo de un negocio altamente rentable mediante el uso de recursos gratuitos (software GPL/GNU) 1. 1 http://www.gnu.org 8 5 . 0 A L C A N C E S Se brinda a los clientes el alojamiento de un servidor compartido con el fin de brindarle un servicio adecuado sin la necesidad de invertir en la adquisición de equipo. A pesar que se trabaja en un entorno compartido los clientes disponen del control administrativo de sus respectivas cuentas, por tanto gozan de los privilegios y la flexibilidad necesaria para configurar las mismas, e incluso añadir aquellas aplicaciones y funcionalidades que estime oportunas para agregar valor a su oferta e incrementar su facturación. Los clientes gozan de los siguientes privilegios:  Registro automático de clientes a través de formularios en línea.  La información de los usuarios (páginas y scripts) puede ser accesada a través de Internet.  Acceso a un panel de control para la administración de los recursos asignados.  El correo puede ser accesado a través de Internet (webmail) o a través de programas clientes.  Cada usuario puede crear cuentas FTP a su conveniencia, acorde al número establecido por el administrador del servidor en los planes ofertados.  Cada usuario tiene una cuenta FTP para la transferencia de archivos hacia su sitio.  Cada usuario puede crear, modificar y eliminar cuentas de correo. 9 En resumen, el sistema permite al cliente, combinar la eficiencia en costo de un entorno de alojamiento compartido, con la seguridad, aislamiento y todo ello con la posibilidad de incorporar servicios de valor añadido de forma inmediata en directo por Internet. 10 6 . 0 L I M I T A C I O N E S  No se ha desarrollado sistema para manejo de las tarjetas de crédito, la cual es la única forma de pago para los servicios ofertados. Esta parte es responsabilidad de una compañía especializada en brindar este tipo de servicios; esto debido al riesgo que involucra el manejo de esta clase de información.  Desde un principio se cuenta con servidores para compartir los recursos entre los clientes, pero estos no podrán hacer uso de forma exclusiva de los recursos de dichos servidores.  Por restricciones de los proveedores, no se tiene acceso a la consola del server (sesiones vía telnet).  El servicio es brindado utilizando servidores con recursos compartidos (un mismo servidor puede alojar diferentes dominios).  El pago por medio de tarjetas de crédito se hace a través de la empresa que en la actualidad utiliza http://www.esornet.com, esta compañía externa es especializada en este tipo de transacciones electrónicas ya que cuenta con amplia experiencia y reconocimiento mundial; dicha compañía se llama 2Checkout.com, es esta la que se utiliza y además verifica los datos del cliente y aplica los cargos una vez aprobada la transacción.  Los recursos asignados a cada usuario solo pueden administrarse a través del panel de control, ningún acceso vía telnet está permitido.  Todo dominio registrado, estará disponible de 24 a 36 horas posterior a su registro, debido a la propagación en los diferentes servidores de nombre en el mundo. 11 7 . 0 A N T E C E D E N T E S En la actualidad se encuentran en el país una mínima cantidad de empresas que ofrecen servicios de alojamiento y registro de dominios y otros. Podemos mencionar las siguientes:  Hoy en día se ofrecen herramientas2 dirigidas a las pequeñas y medianas empresas para que estas puedan acceder y tener presencia en Internet de una forma ágil, al tiempo que maximiza sus comunicaciones y el manejo de información. Las Herramientas de Presencia Web son: o Creación de Dominios. o Alojamiento compartido para almacenaje de todo tipo de información. o Administrador de archivos. o Administrador de “Mail Sender”. o Panel de Control.  Existe otra empresa3 que también ha incursionado un poco en este mercado y brinda servicios como: o Alojamiento en línea compartido, ofreciendo planes ya sea para pequeñas y medianas empresas que quieran incursionar en Internet. o Tramites de ventas de dominios con la agencia internacional InterNIC, traspaso de registro de dominio a servidor de Telemovil. o Correo Electrónico Virtual. o Diseño de “páginas web” y revisiones adicionales. 2 http://www.telefonica.com.sv/ 3 http://internet.telemovil.com/webhosting/ 12  Puede encontrarse otra empresa4 salvadoreña que en la actualidad también ofrece servicios como lo es el alojamiento en línea compartido, trámites de registros de dominios, mensajería vía correo electrónico y soporte adicionales a sitios de Internet.  En síntesis, la diferencia radica en que se brinda acceso a la cuenta de hosting (alojamiento) con previa autorización o posterior a la aprobación de los cargos efectuados a la tarjeta de crédito en el preciso instante de que el cliente lo solicite por medio de Internet, ya sea desde su casa y/o empresa, sin que tenga que recurrir a una oficina a solicitar los servicios. 4 http://www.salnet.net/ 13 8 . 0 S I T U A C I O N A C T U A L Como se ha mencionado, en la actualidad se encuentran o existen diversos sitios en Internet que brindan servicios de alojamiento en línea, pero hasta la fecha no existe ninguno en El Salvador que proporcione procesos automatizados para la creación de cuentas de “hosting”, entre estos se encuentra el sitio http://www.esornet.com el cual hemos tomado como modelo de referencia para optimizar el proceso actual que éste realiza a la hora de crear cuentas de “hosting” en sus servidores; dicho proceso se puede describir en los siguientes pasos: 1. El cliente entra al sitio http://www.esornet.com 2. El cliente primero se debe de registrar para posteriormente contratar un plan. 3. El cliente completa los datos personales y luego se le envía un correo electrónico a la dirección proporcionada con un enlace para que se verifique que la información registrada es verídica, luego de realizar esta verificación se continúa con el proceso. 4. El cliente luego escoge el plan que mas se adapta a sus necesidades. 5. Luego el sitio http://www.esornet.com redirecciona al cliente a el sitio http://www.2checkout.com con la descripción del plan a adquirir. 6. Luego se procede a solicitar los datos de la tarjeta de crédito para efectuar el pago; en ese momento http://www.2checkout.com verifica dicha información y avala/rechaza la transacción dependiendo de la veracidad de los datos proporcionados. 7. Si la transacción es aprobada http://www.2checkout.com le envía un correo electrónico al cliente y uno al administrador con los datos de la facturación (Ver Anexo 1.1 y 1.2). 8. El administrador del sitio procede a crear la cuenta según las especificaciones que el cliente pidió luego de haber recibido el correo de aprobación de la transacción (Ver Anexo 1.3). 14 9. El administrador procede a mandar un correo electrónico al cliente en el que se proporcionan los respectivos datos de acceso (Usuario y contraseña) a la cuenta de hosting creada anteriormente. Como se puede ver, este proceso está ligado a la eficiencia del administrador del sitio, el cual debe permanecer alerta de las notificaciones que llegan a su correo por parte de las peticiones de los clientes que solicitan sus servicios para poder crear las cuentas de los usuarios. 15 8 . 1 D I A G R A M A D E L F L U J O A C T U A L 16 INICIO CLIENTE ENTRA AL SITIO CLIENTE SE REGISTRA REDIRECCION A 2CO.COM REALIZA PAGO EN 2CO.COM CLIENTE SELECCIONA PLAN TRANSACCION APROBADA SINO INGRESAR DATOS NUEVAMENTE ENVIA EMAIL A ADMINISTRADOR Y USUARIO CON DATOS DE FACTURACIÓN SI NO SE ENVIA CORREO PARA VERIFICAR DA TOS INGRESADOS VERIFICACION CORRECTA SI NO 1 El tiempo promedio que se lleva actualmente el proceso de creación de cuentas es de 6 horas5 21 5 http://www.esornet.com/ 17 ADMINISTRADOR MANDA CORREO A USUARIO CON DATOS DE ACCESO A LA CUENTA ADMINISTRADOR PROCEDE A CREAR LA CUENTA FIN 1 ADMINISTRADOR REVISA SU CUENTA DE CORREO 2 9 . 0 M A R C O T E O R I C O Por Alojamiento en Internet (webhosting) generalmente se entiende el servicio de alquiler de un espacio en disco en un servidor de acceso público, con particulares características, para alojar páginas y aplicaciones de Internet; con disponibilidad de 24 horas los 7 días de la semana. Este alojamiento incluye la provisión de espacio para los equipos informáticos, supervisión del funcionamiento de los equipos, así como provisión de ancho de banda. Las empresas que se dedican a vender los servicios de alojamiento a su vez son clientes de otras empresas que pueden ser vendedores de cuentas de espacio y registro de dominios de Internet. Esta es una cadena que involucra varias empresas que se desenvuelven en un mercado totalmente globalizado considerando que en Internet se dispone de una gran variedad de empresas que compiten en este tipo de servicios, dicha competencia hace que los precios sean cada vez menores y los servicios ofertados de mayor calidad lo cual beneficia a cada una de las empresas involucradas en este proceso y a la vez al usuario final. El nombre de dominio de un sitio es la dirección virtual que lo identifica. Normalmente lleva el nombre de su compañía y una extensión tipo .com (para compañías), .org (para organizaciones), .com.sv (para compañías en El Salvador), etc. Para cada dominio se pueden crear sub- dominios anteponiendo un prefijo; el más común es www. Dentro de cada dominio o sub-dominio van directorios y los archivos HTML de las páginas y así se llega a la URL (Uniform Resourse Locator) completa de una página, que es la dirección que uno escribe en el navegador para dirigirse a ella. Para que cada nombre de dominio sea dirigido a un solo sitio es necesario registrarlo. Cuando se registra un dominio, este le pertenece a la persona o compañía que ha pagado por él, sin embargo puede ser cambiado aunque los métodos para esto varían dependiendo de la compañía que realizo el 18 registro; por ejemplo en la compañía buydomains.com el traspaso se realiza únicamente si el dueño del dominio manda carta por escrito a la compañía además de responsabilizarse por los gastos que implica el nuevo registro necesarios para cambiar al dueño del dominio. Cabe aclarar que estas empresas que realizan el registro de dominios son compañías con una amplia infraestructura tanto organizacional como en recursos tecnológicos y económicos. Cuando se registra un dominio no es posible accesarlo de inmediato ya que se necesitan de 24 a 48 horas para que este nombre de dominio se haya propagado en la Internet específicamente en los servidores de nombres de dominios (DNS), esta propagación consiste en una reacción en cadena ya que estos servidores DNS a su vez transmiten la información recibida a otro servidores DNS hasta que se dan por enterados todos los servidores DNS en Internet de el registro de dominio realizado. Un DNS no es más que un sistema de denominación de dominio. Este sistema es utilizado en Internet para convertir los nombres de los nodos de red en direcciones llamadas IP (Véase Glosario). Definiremos algunos términos que serán de uso común en este documento como lo son: FTP, POP, SMTP, WebMail.  FTP (File Transfer Protocol) : Protocolo de transferencia de archivos, es un protocolo del nivel aplicación, parte de la pila de protocolos TCP/IP, es utilizado como su nombre lo indica para la transferencia de archivos a través de nodos de la red.  POP3 (Post Office Protocol Versión 3): Protocolo utilizado en los servidores de correo ya sean internos (para uso solamente en la compañía donde son instalados) o externos (accesados a través de Internet) para recibir correo en los buzones de los usuarios del servicio. Este protocolo es el más utilizado en la actualidad por liberar recursos del servidor ya que 19 cada vez que un usuario descarga sus correos estos son eliminados del servidor y quedan guardados únicamente en la maquina donde se tenga instalado el cliente de correo.  SMTP (Simple Mail Transfer Protocol): Este es un protocolo muy usado en los servidores de correo y es implementado en la mayoría de los casos en combinación con el POP3, la función del SMTP es enviar mensajes de correo electrónico entre servidores pero generalmente es utilizado para enviar mensajes de un cliente de correo hacia un servidor de correo. SERVIDORES DE HOSTING En el alojamiento en Internet se pueden utilizar servidores (Computadoras con gran capacidad de memoria, almacenamiento y velocidad de procesamiento dedicadas a cumplir con un servicio especifico) con Sistemas Operativos como Unix que son específicamente diseñados para funcionar de manera ininterrumpida durante 24 horas al día los 365 días del año; servidores con Sistema Operativo Linux instalado para la implantación de sistemas de información críticos, ya que poseen una gran flexibilidad, riqueza y versatilidad del sistema lo cual ha venido a favorecer en gran medida teniendo mayor aceptación en el mercado; también servidores con Sistema Operativo Windows que son adecuados para hospedar sitios en Internet que precisan de unas características y funcionalidades solamente disponibles en Windows e IIS, de esta forma también se pueden utilizar servidores “FreeBSD” que ocupan un gran porcentaje de los servidores que corren actualmente para hospedar sitios en Internet. 20 Entre las opciones que pueden prestar estos servidores están:  Alojamiento físico (espacio)  Direcciones IP adicionales  DNS, capaz de resolver local como remotamente  Registro de dominios  Administración y operación  Administración remota mediante puertos como HTTPS, SSH, FTP, Telnet.  Protocolos de envío y recepción de correos SMTP, POP, etc.  Seguridad y disponibilidad  Disco compartido  Base de datos  Copias de seguridad y recuperación ante desastres  Informes y estadísticas  Encriptación y métricas de rendimiento  Servicio de Protección Antivirus 6 Además para que toda esta infraestructura de servicios pueda tener un buen funcionamiento es necesario tener acceso a una red que utiliza el protocolo TCP/IP, el cual fue creado para poder mantener la comunicación ante cualquier circunstancia, ya que el objetivo de este era que los paquetes o datos llegaran a su destino por diferente rutas. A la fecha de desarrollo de este trabajo algunas compañías cuentan con servidores que poseen las siguientes características:  Procesadores Pentium 4 de 1.8 Ghz hasta Duales de 2.8 GHz Xeon  Memoria RAM que va desde 1 Gb hasta 4 Gb 6 http://www.fastservers.net/ 21  Discos duros de 2 x 80 Gb hasta 2 x 200 Gb  Ancho de banda desde los 2000 Gb hasta los 3000 Gb  Bases de datos como MySQL, PostgreSQL y SQL Server 2000  Sistemas Operativos Red Hat, FreeBSD, Windows  Arquitectura de redes con VLAN privadas  Monitoreo del ancho de banda  Servicios de Firewall  Direcciones IP adicionales Entre las compañías que rentan servicios de alojamiento en Internet están:  http://www.theplanet.com  http://www.serverpath.com  http://www.managed.com  http://www.ev1servers.net  http://www.fastservers.net  http://www.servermatrix.com  http://www.rackspace.com  http://www.cihost.com  http://www.ait.com  http://www.valueweb.com  http://www.liquidweb.com  http://www.caitias.com  http://www.1and1.com 22 10.0 BASES TEÓRICAS PARA EL DESARROLLO DEL PROYECTO 10.1 APLICACIONES EN INTERNET Las aplicaciones web son formularios pre-formateados que envían mensajes instantáneos a usuarios o a un servidor y permite a un usuario final acceder a la información contenida en él. Están diseñadas para interactuar con bases de datos con el fin de recoger, almacenar, organizar y distribuir información, creando herramientas poderosas a ser utilizadas en la administración consistente de la información. Las aplicaciones web son aplicaciones basadas en una arquitectura “cliente/servidor”. Este paradigma consiste en un servidor que sabe cómo proporcionar un servicio y un cliente que desea acceder al servicio. 10.2 SERVIDORES WEB Los Servidores Web suministran páginas Web a los navegadores (como por ejemplo, Netscape Navigator, Internet Explorer de Microsoft) que lo solicitan. En términos más técnicos, los servidores Web soportan el Protocolo de Transferencia de Hyper texto conocido como HTTP (Hyper Text Transfer Protocol), el estándar de Internet para comunicaciones Web. Usando HTTP, un servidor Web envía páginas Web en HTML y CGI, así como otros tipos de scripts a los navegadores o browsers cuando éstos lo requieren. Cuando un usuario hace clic sobre un enlace (link) a una página Web, se envía una solicitud al servidor Web para localizar los datos nombrados por ese enlace. El servidor Web recibe esta solicitud y suministra los datos que le han sido solicitados (una página HTML, un script interactivo, una página Web generada dinámicamente desde una base de datos, etc.) o bien devuelve un mensaje de error. 23 SEGURIDAD La seguridad en redes de telecomunicaciones está fundamentada en tres elementos:  La Integridad.- Se refiere a que el contenido y el significado de la información no se altere al viajar por una red, no obstante el número y tipo de equipos que se encuentren involucrados; la infraestructura utilizada debe ser transparente para el usuario.  La Confiabilidad.- Implica que el servicio debe estar disponible en todo momento.  La Confidencialidad.- Es quizá la parte más estratégica del negocio, ya que contribuye a impedir que personas no autorizadas lean y conozcan la información que se transmite. Los Servidores Web son aquellos que permiten a los clientes compartir datos, documentos y multimedia en formato Web. Aunque es parte de la tecnología Cliente-Servidor, el servidor Web aporta algunas ventajas adicionales; como acceso más simple a la información (con un simple clic). En el sentido más estricto, el término cliente/servidor describe un sistema en el que una máquina cliente solicita a una segunda máquina llamada servidor que ejecute una tarea específica. El programa cliente cumple dos funciones distintas: por un lado gestiona la comunicación con el servidor, solicita un servicio y recibe los datos enviados por aquél. Por otro lado, maneja la interfaz con el usuario; presenta los datos en el formato adecuado y brinda las herramientas y comandos necesarios para que el 24 usuario pueda utilizar las prestaciones del servidor de forma sencilla. El programa servidor en cambio, básicamente sólo tiene que encargarse de transmitir la información de forma eficiente. No tiene que atender al usuario final ya que es el cliente el encargado de realizar esta acción. De esta forma un mismo servidor puede atender a varios clientes al mismo tiempo. La mayoría de servidores añaden algún nivel de seguridad a sus tareas. Por ejemplo, si se accesa a alguna página y el navegador presenta una ventana de diálogo que pregunta el nombre de usuario y contraseña, se ha encontrado una página protegida por contraseñas. El servidor deja que el dueño o el administrador del servidor mantenga una lista de nombres y contraseñas para las personas a las que se les permite ver la página, y el servidor deja que sólo esas personas quienes saben la contraseña tengan acceso; a esto comúnmente se le llama autenticación de usuario. El servidor Web Apache está diseñado de forma modular; consiste en muchas porciones de código que hacen referencia a diferentes aspectos o funcionalidades del servidor Web. Esta modularidad es intencionada, con lo cual, cada desarrollador puede escribir su propia porción de código para cubrir una necesidad en particular. Su código, llamado módulo, puede ser integrado en el servidor Web 10.3 SISTEMA OPERATIVO LINUX Linux es un sistema operativo compatible con Unix, dos características muy peculiares lo diferencian del resto de los sistemas que podemos encontrar en el mercado, la primera, es que es libre, esto significa que no se tiene que pagar ningún tipo de licencia a ninguna casa desarrolladora de software por el uso del mismo, la segunda, es que el sistema viene 25 acompañado del código fuente. El sistema lo forman el núcleo del sistema (kernel) mas un gran número de programas / librerías que hacen posible su utilización. En el prototipo en desarrollo se utiliza GNU/Linux Debian 3.0.r1 por el amplio dominio y conocimiento que se tiene sobre tal distribución, la cual posee diferentes interfaces gráficas como KDE, Xfce, WindowMaker, Gnome, etc.; además ofrece temas, barras, menús y muchas opciones gráficas. También contiene un buen número de aplicaciones actualizadas incluyendo la suite de fuente abierta para la oficina, Open Office, así como diferentes clientes de e-mail, navegadores, etc. Generalmente la mayoría de proveedores de hosting7 utilizan Red Hat Linux Enterprise 3.0, Red Hat Linux 9.0, FreeBSD, SuSe, Microsoft Windows 2000 Server, Microsoft Windows 2003 Server y por supuesto Debian. 10.4 BASE DE DATOS Se define una base de datos como una serie de datos organizados y relacionados entre sí, los cuales son recolectados y explotados por los sistemas de información. Las bases de datos proporcionan la infraestructura requerida para los sistemas de apoyo a la toma de decisiones y para los sistemas de información estratégicos, ya que estos sistemas explotan la información contenida en las bases de datos de la organización para apoyar el proceso de toma de decisiones o para lograr ventajas competitivas. Componentes principales de una base de datos.  Datos. Los datos son la Base de Datos propiamente dicha.  Hardware. El hardware se refiere a los dispositivos de almacenamiento en donde reside la base de datos, así como a los dispositivos periféricos (unidad de control, canales de comunicación, etc.) necesarios para su uso. 26  Software. Está constituido por un conjunto de programas que se conoce como Sistema Manejador de Base de Datos (DBMS: Data Base Management System). Este sistema maneja todas las solicitudes formuladas por los usuarios a la base de datos. Clases de usuarios relacionados con una Base de Datos:  El programador de aplicaciones, quien crea programas de aplicación que utilizan la base de datos.  El usuario final, quien accesa la Base de Datos por medio de un lenguaje de consulta o de programas de aplicación.  El administrador de la Base de Datos (DBA: Data Base Administrator), quien se encarga del control general del Sistema de Base de Datos. Ventajas de las bases de datos.  Globalización de la información. Permite a los diferentes usuarios considerar la información como un recurso corporativo que carece de dueños específicos.  Eliminación de información redundante.  Permite compartir información. Varios sistemas o usuarios pueden utilizar una misma entidad.  Permite mantener la integridad en la información. Solo se almacena la información correcta.  Independencia de datos. La independencia de datos implica un divorcio entre programas y datos; es decir, se pueden hacer cambios a la información que contiene la base de datos o tener acceso a la base de datos de diferente manera, sin hace cambios en las aplicaciones o en los programas. 7 http://theplanet.com/, http://servermatrix.com/, http://servepath.com 27 10.5 REDES TCP/IP El protocolo TCP/IP tiene cuatro capas: la capa de aplicación, la capa de transporte, la capa de Internet y la capa de acceso de red. Es importante observar que algunas de las capas del modelo TCP/IP poseen el mismo nombre que las capas del modelo OSI. Capa de aplicación Los diseñadores de TCP/IP sintieron que los protocolos de nivel superior deberían incluir los detalles de las capas de sesión y presentación. Simplemente crearon una capa de aplicación que maneja protocolos de alto nivel, aspectos de representación, codificación y control de diálogo. El modelo TCP/IP combina todos los aspectos relacionados con las aplicaciones en una sola capa y garantiza que estos datos estén correctamente empaquetados para la siguiente capa. Capa de transporte La capa de transporte se refiere a los aspectos de calidad del servicio con respecto a la confiabilidad, el control de flujo y la corrección de errores. Uno de sus protocolos, el protocolo para el control de la transmisión (TCP), ofrece maneras flexibles y de alta calidad para crear comunicaciones de red confiables, sin problemas de flujo y con un nivel de error bajo. TCP es un protocolo orientado a la conexión. Mantiene un diálogo entre el origen y el destino mientras empaqueta la información de la capa de aplicación en unidades denominadas segmentos. Orientado a la conexión no significa que el circuito exista entre los computadores que se están comunicando (esto sería una conmutación de circuito). Significa que los segmentos de Capa 4 28 viajan de un lado a otro entre dos terminales para comprobar que la conexión exista lógicamente para un determinado período. Esto se conoce como conmutación de paquetes. Capa de Internet El propósito de la capa de Internet es enviar paquetes origen desde cualquier red en la “internetwork” y que estos paquetes lleguen a su destino independientemente de la ruta y de las redes que recorrieron para llegar hasta allí. El protocolo específico que rige esta capa se denomina Protocolo Internet (IP). En esta capa se produce la determinación de la mejor ruta y la conmutación de paquetes. Esto se puede comparar con el sistema postal. Cuando envía una carta por correo, usted no sabe cómo llega a destino (existen varias rutas posibles); lo que le interesa es que la carta llegue. Capa de acceso de red El nombre de esta capa es muy amplio y se presta a confusión. También se denomina “capa de host a red”. Es la capa que se ocupa de todos los aspectos que requiere un paquete IP para realizar realmente un enlace físico y luego realizar otro enlace físico. Esta capa incluye los detalles de tecnología LAN y WAN y todos los detalles de la capa física y de enlace de datos del modelo OSI. Gráfico del protocolo TCP/IP El diagrama que aparece en la figura 1 se denomina gráfico de protocolo. Este gráfico ilustra algunos de los protocolos comunes especificados por el modelo de referencia TCP/IP. Estas aplicaciones incluyen las siguientes: 29 FTP: Protocolo de transferencia de archivos (File Transfer Protocol) HTTP: Protocolo de transferencia de hipertexto (Hypertext Transfer Protocol) SMTP: Protocolo de transferencia de correo simple (Simple Mail Transfer Protocol) DNS: Sistema de nombres de dominio (Domain Name System) TFTP: Protocolo de transferencia de archivo trivial (Trivial File Transfer Protocol) El modelo TCP/IP enfatiza la máxima flexibilidad, en la capa de aplicación, para los creadores de software. La capa de transporte involucra dos protocolos: el protocolo de control de transmisión (TCP) y el protocolo de datagrama de usuario (UDP). La capa inferior, la capa de acceso de red, se relaciona con la tecnología específica de LAN o WAN que se utiliza. En el modelo TCP/IP existe solamente un protocolo de red: el protocolo Internet, o IP, independientemente de la aplicación que solicita servicios de red o del protocolo de transporte que se utiliza. Esta es una decisión de diseño deliberada. IP sirve como protocolo universal que permite que cualquier computador en cualquier parte del mundo pueda comunicarse en cualquier momento. 8 8 Curso: Cisco Certified Network Associate (CCNA) 30 (Figura No 9.1) La familia de protocolos TCP/IP fue diseñada para permitir la interconexión entre distintas redes. El mejor ejemplo de interconexión de redes es Internet: se trata de un conjunto de redes unidas mediante encaminadores o “routers”. En una red TCP/IP es posible tener, por ejemplo, “servidores web” y servidores de correo para uso interno. Obsérvese que todos los servicios de Internet se pueden configurar en pequeñas redes internas TCP/IP. Cada ordenador tiene una dirección física que viene determinada por su adaptador de red. Estas direcciones se corresponden con la capa de acceso al medio y se utilizan para comunicar dos ordenadores que pertenecen a la misma red. Para identificar globalmente un ordenador dentro de un conjunto de redes TCP/IP se utilizan las direcciones IP (capa de red). Observando una dirección IP sabremos si pertenece a nuestra propia red o a una distinta (todas las direcciones IP de la misma red comienzan con los mismos números). 31 El concepto de red está relacionado con las direcciones IP que se configuren en cada ordenador, no con el cableado. Es decir, si tenemos varias redes dentro del mismo cableado solamente los ordenadores que pertenezcan a una misma red podrán comunicarse entre sí. Para que los ordenadores de una red puedan comunicarse con los de otra red es necesario que existan enrutadores que interconecten las redes. Un “router” o encaminador no es más que un ordenador con varias direcciones IP, una para cada red, que permita el tráfico de paquetes entre sus redes. La capa de red se encarga de fragmentar cada mensaje en paquetes de datos llamados datagramas IP y de enviarlos de forma independiente a través de la red de redes. Cada datagrama IP incluye un campo con la dirección IP de origen y destino. Esta información se utiliza para enrutar los datagramas a través de las redes necesarias que los hagan llegar hasta su destino. Direcciones IP La dirección IP es el identificador de cada ordenador dentro de su red de redes. Cada ordenador conectado a una red tiene una dirección IP asignada, la cual debe ser distinta a todas las demás direcciones que estén vigentes en ese momento en el conjunto de redes visibles por el ordenador. En el caso de Internet, no puede haber dos ordenadores con 2 direcciones IP (públicas) iguales. Pero sí podríamos tener dos ordenadores con la misma dirección IP siempre y cuando pertenezcan a redes independientes entre sí (sin ningún camino posible que las comunique). 32 Las direcciones IP se clasifican en:  Direcciones IP públicas. Son visibles en todo Internet. Un ordenador con una IP pública es accesible (visible) desde cualquier otro ordenador conectado a Internet. Para conectarse a Internet es necesario tener una dirección IP pública.  Direcciones IP privadas (reservadas). Son visibles únicamente por otros ordenadores de su propia red o de otras redes privadas interconectadas por enrutadores. Se utilizan en las empresas para los puestos de trabajo. Los ordenadores con direcciones IP privadas pueden salir a Internet por medio de un enrutador (o proxy) que tenga una IP pública. Sin embargo, desde Internet no se puede acceder a ordenadores con direcciones IP privadas. A su vez, las direcciones IP pueden ser:  Direcciones IP estáticas (fijas). Un ordenador que se conecte a la red con dirección IP estática siempre lo hará con una misma IP. Las direcciones IP públicas estáticas son las que utilizan los servidores de Internet con objeto de que estén siempre localizables por los usuarios de Internet. Estas direcciones hay que contratarlas.  Direcciones IP dinámicas. Un ordenador que se conecte a la red mediante dirección IP dinámica, cada vez lo hará con una dirección IP distinta. Las direcciones IP públicas dinámicas son las que se utilizan en las conexiones a Internet mediante un módem. Los proveedores de Internet utilizan direcciones IP dinámicas debido a que tienen más clientes que direcciones IP (es muy improbable que todos se conecten a la vez). Las direcciones IP están formadas por 4 bytes (32 bits). Se suelen representar de la forma a.b.c.d donde cada una de estas letras es un número comprendido entre el 0 y el 255. 33 10.6 TARJETAS DE CREDITO Para el manejo del pago electrónico por los servicios prestados se dispone de una amplia cantidad de proveedores de transacciones de tarjetas de crédito entre los cuales se encuentran:  http://www.2checkout.com  http://www.worldpay.com  http://www.paypal.com  http://www.ccbill.com  http://www.verisign.com  http://www.ibill.com El sistema que usan la mayoría de emisores de tarjetas de crédito es el mismo que en la actualidad ocupan las compañías grandes, el cual es el sistema Estándar de ANSI X4.13-1983. Que significan los números 1. 2. 3. 4. 5. 1. Número de Sistema 2. Número de Banco 3. Número de Cuenta 4. Digito Verificador 5. Valor de Verificación de Tarjeta (Card Verification Value - CVV2) 34 A continuación una breve explicación para cada uno de los dígitos de los cuales está compuesto el número de la tarjeta de crédito:  La estructura de la tarjeta de crédito varía dependiendo del sistema. Por ejemplo, para las tarjetas American Express los números comienzan con 37; las tarjetas Diners Club y Carte Blanche comienzan con el número 38. o American Express. Los dígitos tres y cuatro son el tipo y moneda circulante que ocupa el país donde ha emitido la tarjeta de crédito, los dígitos cinco al once son el número de la cuenta, los dígitos del doce al catorce son el número de tarjeta dentro de la cuenta y el digito quince es un número de verificación o Visa. Los dígitos del dos hasta el seis son el número del banco, los dígitos del siete al doce o del siete al quince son el número de la cuenta y el dígito trece o dieciséis es el número de verificación. o MasterCard. Los dígitos dos y tres, dos hasta el cuatro, dos hasta el cinco o dos hasta el seis son el número del banco (dependiendo de si el digito dos es un uno, dos, tres u otro). Los dígitos después del número de banco hasta el dígito quince son el número de la cuenta, y el dígito dieciséis es el número de verificación. 35  El CVV2 es una importante característica de la seguridad para las transacciones con tarjetas de crédito en Internet. “CVV” es el estándar para “Valor de Verificación de Tarjeta” (en las tarjetas Discover es llamado “Cardmember ID”). Son los últimos tres números impresos en la parte posterior de la mayoría de las tarjetas de crédito, tales como Visa, Mastercard y Discover. El número CVV2 es generalmente el último grupo de números en el espacio de la firma en la parte posterior de la tarjeta y además no es parte del número regular de la tarjeta de crédito. En las tarjetas American Express es un número de cuatro cifras en el frente. Se imprime en plano y no en alto relieve como el número de la tarjeta. El número CVV2 realiza la protección del fraude y ayuda a validar dos cosas:  El cliente tiene la tarjeta de crédito en su posesión.  El número de la tarjeta de crédito es legítimo. Ayudando a prevenir fraudes con tarjetas de crédito, el número CVV2 mantiene los costos bajos. 36 1 1 . 0 T E C N O L O G I A Para lograr seleccionar la herramienta con la cual se va a desarrollar el sistema, se han tomado en cuenta los siguientes criterios: 1. La tendencia en el mercado a utilizar este tipo de tecnología para este tipo de proyectos. 2. La utilización de software libre no generará costo en cuanto a su adquisición. Estos criterios harán más fácil y menos costoso el desarrollo del sistema. Haciendo referencia a la utilización de software libre, es de enmarcar, específicamente, cuatro herramientas indispensables que en los últimos tiempos, gracias a su perfecta interacción entre sí, forman una plataforma de trabajo muy sólida y segura. Junto al sistema gestor de bases de datos MySQL, se encuentra el lenguaje de generación dinámica de contenidos web PHP y LINUX y además el servidor Apache, los cuales forman la plataforma LAMP (LINUX-Apache-MySQL-PHP), que, dada su potencia y gratuidad, viene empujando muy fuerte en el campo de los servidores en Internet. A continuación se detallan las herramientas (Software) a utilizar para el desarrollo de la aplicación, listando las características y ventajas que ofrecen cada una de ellas. 37 GNU/LINUX Características  Es un sistema operativo libre, muy eficiente y tiene un excelente diseño.  Soporta redes tanto en TCP/IP como en otros protocolos.  Proporciona una interacción sencilla y transparente con otros sistemas.  Servidor de comunicaciones: puede trabajar como gateway, firewall, proxy o servidor de módems, entre otros, ofreciendo además otros servicios populares como caché WWW o autentificación de usuarios. Ventajas  Los sistemas de permisos hacen de LINUX un sistema robusto y no permiten el contagio más allá del propio usuario: si un usuario resulta infectado, la mayor pérdida serán sus archivos pero el ordenador y el sistema operativo no sufrirán ningún daño (a menos que este sea el root).  Existe una buena comunicación entre programas. Una de las máximas en la filosofía de diseño de LINUX es la "modularidad". Es decir, cada programa cumple una función sencilla (o compleja, pero una) pero la cumple bien. A partir de ahí, se van "encadenando" los programas.  LINUX no se limita a ejecutar sus propias aplicaciones y programas, sino que se extiende y adapta a otras plataformas, esto lo hace por medio de programas de emulación para que dentro de LINUX se puedan correr aplicaciones y programas de otros sistemas operativos.  Sigue la filosofía de los sistemas UNIX y esta basado en un robusto sistema de permisos y usuarios  Otras de las ventajas que el sistema operativo LINUX tiene son la estabilidad del sistema, la confiabilidad, la seguridad y es liviano. 38 APACHE Características  Independencia de plataforma, es decir que no importa el sistema operativo en el que funcione.  Autenticación de diferentes tipos.  Permite personalizar la respuesta ante los posibles errores que se puedan dar en el servidor.  Es posible configurar Apache para que ejecute un determinado Script cuando ocurra un error en concreto. Ventajas  Fiabilidad, Alrededor del 90% de los servidores con más alta disponibilidad funcionan con Apache.  Apache es totalmente gratuito, y se distribuye bajo la licencia Apache Software License, que permite la modificación del código.  Extensibilidad, se pueden añadir módulos para ampliar las, ya de por sí, amplias capacidades de Apache. MySQL MySQL es un manejador de base de datos, una base de datos es una colección estructurada de datos. Para agregar, acceder y procesar datos almacenados en una base de datos de una computadora, se necesita un sistema administrador de base de datos tal como MySQL. MySQL es un sistema administrador de base de datos relacional. Una base de datos relacional almacena datos en tablas separadas en vez de poner todos los datos en un gran almacén. Esto agrega rapidez y flexibilidad. Las tablas están unidas mediante relaciones definidas haciendo posible el combinar datos de una variedad de tablas en una búsqueda. 39 Las Siglas SQL de MySQL provienen de “Structured Query Language”. El lenguaje estandarizado más común para accesar a las bases de datos. MySQL es un software de código abierto. Código abierto quiere decir que es posible para cualquier persona el hacer uso de él y de modificarlo. Cualquiera puede bajar MySQL de Internet y hacer uso de él sin pagar nada a cambio. MySQL usa la GPL (GNU General Public License)9, para definir que se puede y no se puede hacer con el software en diferentes situaciones. Ventajas  Es que consume muy pocos recursos, tanto de CPU como de memoria.  Posee mayor rendimiento, mayor velocidad tanto al conectar con el servidor como al servir selects y demás sentencias transact SQL.  Posee mejores utilidades de administración (backup, recuperación de errores, etc.).  Aunque se falle, no suele perder información ni corromper los datos.  Posee mejor integración con PHP. 9 http://www.gnu.org 40 Preprocesador de Hipertexto (PHP) El lenguaje PHP es un lenguaje de programación de estilo clásico, es decir, es un lenguaje de programación con variables, sentencias condicionales, ciclos (bucles), funciones, etc. No es un lenguaje de marcado como podría ser HTML, XML o WML. Está más cercano a JavaScript o a C, pero a diferencia de JavaScript que se ejecuta en el navegador, PHP se ejecuta en el servidor, por eso nos permite acceder a los recursos que tenga el servidor como por ejemplo podría ser una base de datos. El programa PHP es ejecutado en el servidor y el resultado enviado al navegador. El resultado es normalmente una página HTML pero igualmente podría ser una pagina WML. Al ser PHP un lenguaje que se ejecuta en el servidor no es necesario que su navegador lo soporte, es independiente del navegador, pero sin embargo para que las páginas PHP funcionen, el servidor donde están alojadas debe soportar PHP. Ventajas  Se ejecuta a través de una interfaz que le resulta familiar al usuario del cliente web.  No es necesario tener que instalar algún software adicional en la estación del cliente para usar un programa de PHP aparte del propio navegador web.  La ejecución de un programa PHP se puede realizar desde un cliente web de cualquier plataforma; el usuario puede escoger su sistema operativo y su cliente web preferidos. 41  El programa se ejecuta en un servidor al cual se puede acceder desde cualquier puesto de una red.  Al tener el código ejecutable albergado en un servidor, este código está protegido tanto de la manipulación de los usuarios como de la presencia de virus.  La integración del PHP es muy buena con Apache. JavaScript Javascript es el lenguaje de programación más utilizado en Internet para añadir interactividad a las páginas Web, no hay que confundir el JavaScript con el Java. El Java es un lenguaje de programación de propósito general como lo son el C++ o el Visual Basic. Un programa en JavaScript se integra en una página Web (entre el código HTML) y es el navegador el que lo interpreta (ejecuta). Es decir el JavaScript es un lenguaje interpretado, no compilado (no se genera ningún tipo de fichero objeto o exe). Para programar en JavaScript sólo necesitamos un editor de texto (utilizaremos PHPEdit el mismo con el cual desarrollaremos las paginas PHP/Web) y un navegador para ejecutarlo. En este proyecto se ha decidido ocupar esta tecnología con la única finalidad de realizar las validaciones respectivas en los procesos involucrados en el funcionamiento del sistema. ¿Por qué el JavaScript y no otro lenguaje de programación?  Es sencillo  Es útil (el desarrollo de Internet, se prevé muy rápido en los próximos años)  Es potente: permite la moderna POO (programación orientada a objetos)  Es barato: sólo necesitamos un editor de textos y un navegador.  Es visual: permite la moderna “programación visual” (ventanas, botones, colores, formularios, etc.). 42 HTML Características  HTML es el lenguaje con el que se definen las páginas web. Básicamente se trata de un conjunto de etiquetas que sirven para definir la forma en la que presenta el texto y otros elementos de la página. Ventajas  Puede incorporar abundante información descargada de Internet: Hasta sitios completos.  Es universal. Puede leerse prácticamente con cualquier computador y cualquier navegador.  Su lectura no tiene costos adicionales.  Los archivos se leen directamente en su equipo. Pueden ser grandes y leerse más rápidamente. 43 1 2 . 0 D E S A R R O L L O D E L P L A N D E T R A B A J O . A C T I V I D A D E S 1 2 . 1 T É C N I C A D E P R O G R A M A C I Ó N . Las técnicas de programación que mas se usan para poder desarrollar este tipo de sistemas orientados a Internet son generalmente dos, la programación estructurada y la modular; la ultima de ellas es con la que se ha realizado este proyecto, en la estructurada el diseño es lo más claro posible, haciendo uso de tres estructuras lógicas de control:  Secuencia: Sucesión simple de dos o mas operaciones.  Selección: Bifurcación condicional de una o mas operaciones.  Interacción: Repetición de una operación mientras se cumple una condición. Estos tres tipos de estructuras lógicas de control pueden ser combinados para producir las partes del sistema, que manejarán cualquier tarea de procesamiento de información. El sistema estará compuesto de segmentos, los cuales puedan estar constituidos por unas pocas instrucciones o por una página o más de codificación. Ventajas  Los programas son más fáciles de entender. La estructura del programa es más clara puesto que las instrucciones están más ligadas o relacionadas entre sí, por lo que es más fácil comprender lo que hace cada función.  Reducción del esfuerzo en las pruebas.  Detectar y corregir errores más fácilmente. 44  Reducción de los costos de mantenimiento.  Los programas quedan mejor documentados internamente. La segunda es la programación modular siendo esta la técnica de programación que se utilizó en el desarrollo de este proyecto, ya que es uno de los métodos utilizados para realizar sistemas completos. La idea consiste en dividir el prototipo del sistema en partes más pequeñas, llamadas módulos, de ahí viene el nombre de programación modular. De esta manera, en lugar de resolver una tarea compleja y tediosa, se resuelven otras más sencillas y a partir de estas se llega a una solución. Esta técnica se usa mucho y se le suele llamar diseño descendente, metodología del divide y vencerás o programación top- down. Ventajas  Disminuye la complejidad del algoritmo.  Facilidad en la depuración: comprobación individual de los programas.  División de la programación entre el equipo de programadores (reducción del tiempo de desarrollo).  Programas más fáciles de modificar. 1 2 . 2 D I S E Ñ O D E L S I S T E M A 1 2 . 2 . 1 D I S E Ñ O D E L A B A S E D E D A T O S El siguiente recuadro reúne todas las tablas que componen la base de datos que se ha creado para el Prototipo del Sistema. 45 1 2 . 2 . 1 . 1 D I C C I O N A R I O D E D A T O S TABLA REGISTRO: Esta tabla sirve para guardar la información general de los clientes o prospectos para poder tener un mejor control de sus datos a medida que se necesite contactarlos. Campo Tipo de Dato Descripción idregistro PK, Entero(10), auto numérico. Identificador único para cada registro de clientes/prospectos. iduser FK, Entero(10) Llave foránea la cual está relacionada con el identificador único de la tabla usuarios. nombre Caracter(30) Para registrar los nombres de los prospectos/clientes. apellido Caracter(30) Para registrar los apellidos de los prospectos/clientes. email Caracter(70) Guarda las direcciones de correos de los clientes para poder contactarlos. empresa Caracter(75) Almacena el nombre de la empresa en dado caso se digita. 46 direccion Caracter(150) Guarda la dirección física del lugar de residencia del cliente. ciudad Caracter(30) Guardar la ciudad de residencia del cliente. pais Caracter(30) Sirve para almacenar el país de residencia del cliente. telefono Caracter(8) Almacena el teléfono del cliente para poder contactarlo en caso sea necesario. fax Caracter(8) Almacena el número de fax del cliente. dominio Caracter(64) Este campo almacena el nombre del dominio que el cliente desea. formato Caracter(4) Sirve para almacenar el formato en el que se le enviarán los correos electrónicos a los clientes, el formato por defecto es “html”. Tabla 1. Tabla Registro 47 TABLA DOMINIOS: Esta tabla sirve para hacer la simulación de verificación de dominios disponibles cuando un cliente desea adquirir uno en particular. Campo Tipo de Dato Descripción iddominio PK, Entero(5), auto numérico. Identificador unico que sirve para verificar si un dominio se encuentra disponible o no (Proceso simulado). dominio Caracter(64) En esta campo solo se almacena la primera parte que conforma el nombre del dominio sin las terminaciones . com, .org, .biz, etc. dom1 Caracter(1) Registra si el dominio seleccionado es del tipo .com dom2 Caracter(1) Registra si el dominio seleccionado es del tipo .net dom3 Caracter(1) Registra si el dominio seleccionado es del tipo .org dom4 Caracter(1) Registra si el dominio seleccionado es del tipo .info 48 dom5 Caracter(1) Registra si el dominio seleccionado es del tipo .biz dom6 Caracter(1) Registra si el dominio seleccionado es del tipo .ws dom7 Caracter(1) Registra si el dominio seleccionado es del tipo .cc dom8 Caracter(1) Registra si el dominio seleccionado es del tipo .us dom9 Caracter(1) Registra si el dominio seleccionado es del tipo .nu dom10 Caracter(1) Registra si el dominio seleccionado es del tipo .tv Tabla 2. Tabla Dominios 49 TABLA USUARIOS: Esta tabla sirve para guardar la información general de las cuentas de alojamiento en internet (hosting) que se han creado. Campo Tipo de Dato Descripción iduser PK, Entero(10), auto numérico Identificador unico de una cuenta de alojamiento en internet (hosting). usuario Caracter(30) Nombre de usuario con el cual el cliente ingresa al panel de control personalizado. clave Caracter(30) Contraseña de la cuenta creada, por medio de la cual se verifica el acceso válido hacia el panel de control. dominio Caracter(64) Nombre de dominio, el cual esta relacionado inequívocamente con el usuario de la cuenta de alojamiento en internet (hosting). 50 Idplan FK, Entero(5) Llave foránea que permitirá relacionar la tabla usuarios con la tabla planes para llevar el control del plan que haya contratado el usuario. Email Caracter(70) Correo electrónico de el cliente para información de contacto. Tipo Caracter(1) Tipo de usuario del sistema, por defecto es ‘0’. Tabla 3. Tabla Usuarios TABLA PLANES: Esta tabla sirve para guardar la información general de los distintos tipos de planes que se han creado. Campo Tipo de Dato Descripción Idplan PK, Entero(5), auto numérico Identificador único para plan creado en el sitio web. 51 Nombre Caracter(255) Nombre de el plan escogido por el cliente, el cual esta relacionado con las características que posee la cuenta de alojamiento en internet. descripcion Caracter(255) Descripción completa del plan creado en el sitio. Precio Caracter(255) Precio de venta del plan a clientes o prospectos. Tabla 4. Tabla Planes TABLA TARJETAS: Esta tabla guarda números de tarjetas de crédito que sirven para hacer la simulación de pago y la comprobación de datos. Campo Tipo de Dato Descripción id_card PK, Entero(5), auto numérico Identificador único de una tarjeta de crédito en particular. Numero Caracter(16) Número de la tarjeta de crédito. Cvv Caracter(3) Código de seguridad o de confirmación de la tarjeta de crédito. Fechen Caracter(6) Fecha de expiración de la tarjeta de crédito. Tabla 5. Tabla Tarjetas 52 TABLA SESION: Esta tabla sirve para saber si un usuario en específico ha ingresado a la cuenta de alojamiento en Internet, con el propósito de mantener una elevada seguridad en el sistema. Campo Tipo de Dato Descripción Iduser Entero(5) Identificador de usuario que ha ingresado al sistema. Status Caracter(1) Estado para determinar si un usuario ha ingresado o no al sistema, por defecto es ‘0’. Tabla 6. Tabla Sesión 53 1 2 . 2 . 1 . 2 D I A G R A M A E N T I D A D - R E L A C I O N PLAN pln_idplan pln_nombre pln_descripcion pln_precio DOMINIO dom_iddominio dom_dominio dom_dom1 dom_dom2 dom_dom3 dom_dom4 dom_dom5 dom_dom6 dom_dom7 dom_dom8 dom_dom9 dom_dom10 1 REGISTRO reg_idregistro reg_iduser reg_nombre reg_apellido reg_correo reg_empresa reg_direccion reg_ciudad reg_pais reg_telefono reg_fax reg_dominio reg_formato TARJETA tar_idtarjeta tar_numero tar_cvv tar_fecven SESION ses_iduser ses_estado USUARIO usr_iduser usr_usuario usr_clave usr_dominio usr_idplan usr_correo usr_tipo 1 2 . 2 . 2 D I S E Ñ O D E L M O D U L O D E W E B H O S T I N G En esta fase se elabora un detalle de los elementos básicos y necesarios que debe tener toda aplicación que brinde servicios de alojamiento en Internet para un funcionamiento óptimo del sistema y de la manera más sencilla posible para facilitar el uso a los usuarios del sistema de este proyecto. Los procesos que involucran a estos elementos básicos se detallan a continuación:  Diseño de los planes a ofertar.  Interfase de registro de usuarios.  Verificación de Dominios e Informe de Disponibilidad.  Proceso de cobro.  Notificación vía correo electrónico en dado caso se apruebe la transacción con la tarjeta de crédito. 1 2 . 2 . 3 D I S E Ñ O D E L M O D U L O D E R E G I S T R O D E D O M I N I O S . En esta parte el proveedor de alojamiento para el sitio UDBHosting (http://www.esornet.com) ha proporcionado una cuenta para la venta y registro de nombres de dominios. 1 2 . 2 . 4 D I S E Ñ O D E D I A G R A M A D E F L U J O D E L S I S T E M A D E A U T O M A T I Z A C I Ó N SE ENVIA CORREO A USUARIO Y ADMINISTRADOR DE FORMA AUTOMATICA CON DATOS DE LA CUENTA Y FACTURA EL SISTEMA CREA AUTOMATICAMENTE LA CUENTA Y CONFIGURA TODOS LOS SERVICIOS NO INICIO CLIENTE ENTRA AL SITIO CLIENTE SE REGISTRA REDIRECCION A 2CO.COM REALIZA PAGO EN 2CO.COM TRANSACCION APROBADA SINO CLIENTE SELECCIONA PLAN INGRESAR DATOS NUEVAMENTE SISTEMA RECIBE DATOS DE 2CO SI 56 1 2 . 2 . 5 D I S E Ñ O D E L A S I N T E R F A C E S G R A F I C A S D E L S I S T E M A Y D E L A S S A L I D A S D E L M I S M O INTERFACES PARA VISITANTES/CLIENTES PANTALLA PRINCIPAL. 1 . - Á r e a d e M e n ú P r i n c i p a l Figura 12.1 2 . - Á r e a d e E n c a b e z a d o Figura 12.2 FIN Figura 12.3 Para poder entrar al sistema hay que ingresar a http://209.51.158.210/~esornet/index.php dirección que se está ocupando para el prototipo del sistema; la cual está comprendida en diferentes áreas de trabajo que se detallan a continuación: 1. Menú principal. El Menú Principal (Figura 12.1) contiene todas las opciones del Sistema, las cuales se presentan en siete opciones principales: Inicio, Planes, Hosting, Dominio, Chat, Soporte y Acerca de. Estas opciones serán descritas más adelante en esta sección. 3 .- rea d e T rab ajo d e lo s fo rm u lario s 58 Es importante mencionar que la figura 12.1 muestra el menú estándar para cualquier usuario que visite la pagina web. 2. Encabezado. La figura 12.2 muestra la imagen representativa del sistema (logo). 3. Área de trabajo de los formularios. La figura 12.3 muestra el área en el cual son desplegados los formularios con los cuales trabajan los usuarios del sistema. Al seleccionar una de las opciones del Menú principal, el formulario respectivo, cuando aplica, es mostrado en esta parte de la Pantalla principal. MENÚ PRINCIPAL La figura 12.1 muestra el Menú Principal. Las opciones principales del Menú no varían de usuario a usuario. Inicio. Tal y como se lo indica el nombre, esta opción simplemente sirve para regresar al inicio de la página, y ver el contenido general del sitio. Planes. En esta opción se presentan los distintos planes ofertados con todas las características que estos poseen así como su precio y ofertas especiales. Esto se puede apreciar en la figura 12.4. Figura 12.4 Hosting. Esta parte del menú es la que sirve para que un usuario que ingrese al sitio pueda adquirir los servicios de alojamiento en línea, como podemos ver en la figura 12.5 para que un usuario realice la compra del alojamiento primero debe registrarse, esta es una manera en que se lleva un mejor control sobre las personas que están interesadas en adquirir los servicios, en dado caso la persona no termine la transacción siempre queda registrada en la base de datos y es considerada prospecto para adquirir los servicios posteriormente y convertirse así en un cliente. Posteriormente del registro se presenta una descripción detallada de los planes que se ofertan para alojamiento, (Véase Figura 12.6) en esta misma pantalla se habilita la opción para que el cliente escoja el plan de su preferencia y que cumpla con sus expectativas 60 Figura 12.5 Figura 12.6 Para esta etapa de elaboración de tesis se habilitaran solamente 2 diferentes planes o paquetes para que el cliente escoja el que mas se adecua a sus necesidades. La siguiente etapa de este proceso es el detalle al prospecto de el producto (plan) que esta a punto de adquirir (Figura 12.7) como parte de un proceso de verificación que garantice a las personas que el producto que se procederá a facturar es realmente el que se solicitó previamente. 62 En esta parte se muestra el código que identifica el plan en la base de datos, seguido de una breve descripción del mismo, además de la duración del plan para que la persona este al tanto del intervalo de tiempo en el que se le hará un recargo automático para mantener activa su cuenta. Figura 12.7 Este recargo seguirá siendo efectivo hasta que el cliente comunique la suspensión del servicio adquirido. Además de esta información aquí se registra el nombre de usuario y contraseña que se utilizará para que el cliente tenga acceso a su cuenta. También se proporciona un enlace al correo electrónico del “contacto de venta“, en caso que se haya generado alguna duda con respecto al proceso hasta ese momento. Si la información del registro de datos personales es correcta se procede al cobro mediante la tarjeta de crédito para lo cual se solicita cierta información adicional de la tarjeta, tal y como puede verse en la figura 12.8, esta información es la necesaria para poder hacer una verificación completa y de esta manera poder minimizar el riesgo de fraudes. Figura 12.8 64 Los campos que se han considerado necesarios son los siguientes: 1. Número de tarjeta 2. Fecha de Expiración (Mes – Año) 3. Código de seguridad (CVV) 4. Nombre del propietario (tal y como aparece en la tarjeta) 5. Dirección del propietario 6. Ciudad 7. Estado 8. Código Postal 9. País 10.Teléfono 11.Correo Electrónico Una vez que se completa la información solicitada y se decide continuar con la transacción aparece un mensaje de alerta para el cliente (Véase Figura 12.9) ; en el que se le aclara que No debe presionar mas de una vez el botón “Comprar” ya que se incurriría en cobros duplicados. Figura 12.9 Si los datos introducidos en la pantalla anterior son correctos, entonces la transacción es aprobada y se crea la cuenta de hosting en un proceso transparente al usuario, además se muestra el detalle de la factura que se la cargará a la tarjeta de crédito del cliente (Figura 12.10), la breve descripción del plan que se escogió y el número de la orden, cabe destacar también que toda esta información que se presenta en pantalla se le envía por correo electrónico al cliente (Véase figura 12.11) para que esté pueda saber exactamente el detalle y el monto de la factura. Figura 12.10 66 Figura 12.11 Si por alguna razón la información introducida en la pantalla de toma de datos de la tarjeta de crédito esta incorrecto, entonces la transacción será denegada y se presentará un mensaje como el de la figura 12.12. Figura 12.12 Dominio. En este proceso se realiza el trámite de selección, registro y compra del dominio que el cliente desee, hay que aclarar que esta cuenta para vender dominios ha sido proporcionada por la entidad que brinda el alojamiento en línea a UDBHosting (http://www.esornet.com) por lo que en el desarrollo de este modulo se ha creado una pagina que realiza un redireccionamiento al sitio facilitado por www.esornet.com. (Véase figura 12.13) 68 Figura 12.13 En este proceso se permite verificar si el dominio que necesita el cliente este realmente disponible para proceder con la compra del mismo, en el caso que ya este siendo utilizado se provee de alternativas para el nombre deseado cambiando solo el dominio por ejemplo .com, .org, .tv, etc (Véase figura 12.14). Figura 12.14 Luego de haber seleccionado el dominio deseado se procede a la fase de registro de datos del usuario y el cobro por el servicio del registro de Dominio (Véase Figura 12.15) 70 Figura 12.15 Foro. En este modulo se ha implementado una aplicación externa la cual no tiene costo para su obtención e implementación, esta aplicación consiste en la administración de foros para sitios web, con la cual se ha creado un foro especial para que los clientes de los servicios que presta UDBHosting puedan discutir entre ellos y con los administradores del sitio las dudas o comentarios que tengan con respecto a la amplia variedad de prestaciones que se ofrecen (Figura 12.16). Figura 12.16 72 Soporte. Este modulo se ha desarrollado con la intención de ofrecer el mejor servicio al cliente, de tal forma que este pueda tener contacto con los administradores de UDBHosting para solventar las dudas que tenga con respecto a los servicios que se prestan y que no haya encontrado solución en el foro que se ofrece. (Figura 12.17) Figura 12.17 INTERFACES PARA ADMINISTRACIÓN PANTALLA PRINCIPAL. 1 . - Á r e a d e M e n ú P r i n c i p a l Figura 12.18 2 . - Á r e a d e E n c a b e z a d o Figura 12.19 74 Figura 12.20 Para poder entrar al área administrativa del sistema hay que ingresar a http://209.51.158.210/~esornet/admin.php, al momento de cargar esta página se realiza una autenticación de tipo HTTP, para verificar que el usuario dispone de los privilegios necesarios para ingresar al área administrativa del sitio (Figura 12.21) Figura 12.21 3 .- A rea d e T rab ajo d e lo s fo rm u lario s Las pantallas administrativas están comprendidas en diferentes áreas de trabajo que se detallan a continuación: 1. Menú principal. El Menú Principal (Figura 12.18) contiene todas las opciones administrativas del Sistema, las cuales se presentan en cuatro opciones principales: Lista de Cuentas, Suspensión de Cuentas, Reactivación de Cuentas y Eliminación de Cuentas. Opciones que son descritas más adelante en esta sección. Es importante mencionar que la figura 12.18 muestra el menú estándar para los usuarios administradores del sitio Web. 2. Encabezado. La figura 12.19 muestra la imagen representativa del sistema (logo). 3. Área de trabajo de los formularios. La figura 12.20 muestra el área en el cual son desplegados los formularios con los cuales trabajan los administradores del sistema. Al seleccionar una de las opciones del Menú principal, el formulario respectivo, cuando aplica, es mostrado en esta parte de la Pantalla principal. Lista de Cuentas. Esta opción es utilizada con la finalidad de tener un informe de las cuentas que han sido creadas en el sitio de UDBHosting.com (Véase figura 12.20), en dicho informe se detalla la siguiente información:  Nombre de dominio registrado por el cliente  Nombre del usuario con el que ingresa al panel de control personalizado 76  Dirección de correo electrónico para contactar al cliente  Espacio Asignado a la Cuenta (en Megabytes)  Plan Seleccionado por el cliente Suspensión de Cuentas. Este módulo permite que se pueda realizar la suspensión de cuentas (Figura 12.22), esto debido principalmente a la falta de cumplimiento de las normas establecidas en “términos de servicio” o a otras faltas que no estén consideradas dentro de los términos pero que a criterio del administrador del sitio sea merecedor de la suspensión. Cuando se realiza esta operación el administrador contacta al dueño de la cuenta para ponerlo sobre aviso del estado de su cuenta y detallando los motivos por los cuales se ha efectuado la suspensión. Figura 12.22 Reactivación de Cuentas. Este proceso permite que el administrador del sitio le reactive la cuenta a un cliente (Figura 12.23) con el que se haya visto en la necesidad de suspenderle la cuenta por las razones mencionadas en el apartado anterior, como se había dicho anteriormente a los clientes que se les suspende la cuenta se les envía un aviso con el motivo de suspensión y en caso de que el cliente haya dejado de incurrir en faltas que merezcan la suspensión se procede con la reactivación de la cuenta. Figura 12.23 78 Terminación de Cuentas. Mediante este modulo es posible realizar la eliminación de una cuenta (Figura 12.24) que por diversas razones tenga que finalizar la prestación de los servicios de UDBHosting, razones como por ejemplo faltas graves a las normas establecidas en los términos de servicio, finalización de contrato, etc. Figura 12.24 PANEL DE CONTROL DE CUENTAS Este completo modulo permite que el cliente tenga una mejor administración y control de los recursos que se le han asignado a su cuenta dependiendo de el plan que haya seleccionado; la forma en que se puede acceder a este panel de control (Figura 12.25) es por medio de la siguiente dirección: http://209.51.158.210/cpanel/, donde se realiza otra autenticación de tipo HTTP, con el fin de validar que el usuario y contraseña sean efectivamente los correctos para acceder al panel (Véase figura 12.26), dependiendo de el usuario y contraseña ingresados así será el panel de control que se cargará para realizar las labores administrativas a nivel de los clientes de UDBHosting. Figura 12.26 80 Figura 12.25 A continuación se describen las funciones principales de las que disponen los usuarios de UDBHosting mediante el panel de control personalizado que se ofrece: Correo Electrónico El área del correo permite que usted administre todos los aspectos de sus correos electrónicos, agregar nuevas cuentas, manejar listas de correo, y configurar los filtros del spam. (Figura 12.27) Figura 12.27 FTP El área del FTP trata de todas las herramientas referentes a las cuentas del FTP con respecto a la administración, así como el manejo de sesiones FTP. El FTP (File Transfer Protocol) es un método por el cual se pueden transferir archivos entre las computadoras, usando generalmente el Internet. Hay una cantidad de información enorme almacenada en los servidores del FTP alrededor del mundo que puede ser alcanzado solamente usando el FTP. Al usar el FTP se utiliza un programa llamado "cliente" para conectarse con una máquina llamada "servidor". 82 Hay una gran cantidad de paquetes de software de FTP disponibles. Algunos de ellos vienen incluidos en los navegadores (tal como Internet Explorer), otros son de uso dedicado (por ejemplo CuteFTP o WS_FTP), mientras que otros están incluidos dentro de aplicaciones web. Recomendablemente, si se va a pasar mucho tiempo con el FTP o se tiene una cantidad grande de archivos a subir/descargar, un cliente FTP dedicado es la mejor opción. (Figura 12.28) Figura 12.28 La figura 12.29 muestra la pantalla de configuración de las cuentas FTP. Figura 12.29 Estadísticas El área de estadísticas Web/FTP presenta una amplia variedad de información sobre el sitio Web, por ejemplo un resumen mensual de los últimos visitantes, además provee un registro de errores. Lo recomendable es utilizar las herramientas de estadísticas para no perder de vista qué páginas se están visitando más a menudo, y de donde se están refiriendo. (Figura 12.30) Figura 12.30 Administración del Sitio (Véase figura 12.31) Respaldos El área de Respaldos (Backup) permite descargar a diario, semanalmente o mensual un archivo conteniendo la configuración y contenido de su sitio Web completo, o de una base de datos MySQL en particular. Si la computadora llega a sufrir un percance, o se destruyen los datos personales, estos archivos permiten que se recupere el sitio web de una manera conveniente (se podría también utilizar el FTP para descargar cada archivo, pero tardaría mucho pues los archivos no se comprimen). Lo aconsejable sería guardar una copia del sitio Web. No confiar solamente en el respaldo proporcionada por el proveedor de el alojamiento en línea. Tener respaldos múltiples en diversas ubicaciones proporciona seguridad contra perdidas de información. 84 Cambiar Contraseña Su contraseña de la cuenta de alojamiento en línea es la contraseña que se utiliza para entrar a su panel de control personalizado. Se debe de cambiar la contraseña de vez en cuando para maximizar la seguridad del sitio web. Visor de uso del disco El visor de uso del disco duro permite ver exactamente cuánto espacio del disco está siendo utilizado por el contenido del sitio Web. Entre las opciones disponibles están:  Vista de los directorios padres - Muestra los directorios padres como carpetas individuales así como el espacio utilizado por estos en el disco.  Vista de mayor profundidad de los directorios - Muestra los directorios que están en el nivel más profundo de la estructura de directorios del sitio web como archivos individuales y el espacio que utilizan en disco.  Vista de menor profundidad de los directorios - Muestra los directorios que están en el nivel menos profundo de la estructura de directorios del sitio web como archivos individuales y el espacio que utilizan en el disco.  Vista de los directorios raíces - Muestra los directorios raíces del sitio Web.  Limpiar Cache de uso de archivos - Elimina toda la información de uso de archivos de la cache y recalcula toda la información de uso de disco.  Vista de los archivos pequeños - Muestra los archivos más pequeños.  Vista de tamaño de los archivos en bytes/Megabytes - Muestra el tamaño de los archivos en bytes o megabytes. Figura 12.31 La figura 12.32 muestra la pantalla para generar los respaldos del sitio web. Figura 12.32 86 Guiones CGI Esta área de administración de CGI´s permite utilizar algunos guiones (scripts) CGI´s pre-instalados en la cuenta de alojamiento en línea. Esta sección contiene información general sobre como usar estos scripts. (Figura 12.33) Figura 12.33 Dominios (Véase Figura 12.34) Subdominios Los subdominios es una manera de crear cuentas separadas dentro de la cuenta principal, que pueden ser accesadas como URLs diferentes. Por ejemplo, usted se podría configurar un subdominio "defensa1" en la cuenta principal "udbhosting.com", la cuál sería accesada como "defensa1.udbhosting.com". Muchos de los negocios más grandes en la actualidad utilizan subdominios para establecer y concentrar la atención en líneas de productos separadas ya que un subdominio crea una presencia separada del URL en la Web. Sin embargo, cuando se crea un subdominio nuevo no se crea un panel de control diferente, sino que este subdominio se administra desde el panel de control existente. Estadísticas de Subdominios Se pueden las estadísticas específicamente para cada subdominio utilizando la herramienta Webalizer. Figura 12.34 Avanzado (Véase Figura 12.35) Tareas Cron Los trabajos de Cron permiten automatizar tareas repetitivas en el servidor que recibe el sitio web. Ésta es una herramienta de gran alcance que permite llevar un acercamiento de manos libres aprovechando al máximo las tareas repetitivas. Por ejemplo, se podría agregar un trabajo del cron el cual copia automáticamente una base de datos de MySQL a una ubicación diferente en el sitio web como respaldo. Herramientas de Red El área de las herramientas de la red tiene dos funciones disponibles:  Las operaciones de búsqueda de dominio (Domain Lookup) - permite buscar información sobre un dominio en particular.  Ruta del rastro (Trace Route) - permite trazar la ruta de la IP (Internet Protocol) tomada por el servidor para alcanzar al ISP actual (Internet Service Provider). 88 Figura 12.35 Bases de Datos SQL es el estándar para "Lenguaje Estructurado de Consultas". SQL es un estándar internacional en consultas y recuperación de la información de bases de datos. MySQL es esencialmente un servidor SQL - responde a las peticiones de la información que se escribe en el SQL. Se puede comunicar con MySQL usando una variedad amplia de los lenguajes de programación (PHP que es uno de los más comunes). El software MySQL es de uso libre y código abierto. (Figura 12.36) Figura 12.36 La figura 12.37 muestra la pantalla para administrar las bases de datos en MySQL. Figura 12.37 90 Administrador de Archivos El Administrador de Archivos permite manejar el sitio web a través del HTML, más bien que la herramienta del FTP u otra aplicación de terceras personas. Se pueden subir, crear o eliminar archivos, organizar archivos en carpetas, y cambiar permisos de los archivos. El Administrador de Archivos es de uso libre y proporciona toda la funcionalidad básica necesaria para manejar el sitio web. (Véase figura 12.38) Figura 12.38 La figura 12.39 muestra la interface del administrador de archivos. Figura 12.39 VALIDACIONES REGISTRO DE USUARIOS Esta sección muestra las diferentes validaciones que se realizan durante el proceso de adquisición de alojamiento, a continuación se presentan las validaciones en la pantalla de registro de Clientes/Prospectos: Figura 12.40 La figura 12.40 muestra el mensaje de alerta que se despliega al usuario para informarle que no puede dejar vació el campo “Nombre” ya que es uno de los datos necesarios para realizar el registro, al igual que el campo “Apellido” como se ve en la Figura 12.41. Figura 12.41 El correo electrónico de los clientes por ser el medio de contacto más común en este tipo de transacciones se le aplican validaciones que en primer lugar no permiten que se deje en blanco y además hace obligatorios los caracteres “@” y “.”, como se puede apreciar en la Figura 12.42 92 Figura 12.42 Además de verificar que el correo este en un formato válido también se realiza un proceso que obliga a la persona a introducir nuevamente su correo electrónico (Véase Figura 12.43) como una manera de asegurar que el que digitó anteriormente haya sido el correcto; de no hacerlo se presenta un mensaje alertándolo de realizar la verificación. Figura 12.43 En la siguiente pantalla solo se realiza la elección del plan, ya que se maneja en un control de lista desplegable los tipos de planes que se ofertan, de igual forma en la misma pantalla se muestra el detalle completo de cada uno de estos; para que los clientes puedan ver las características y diferencias que tienen unos con otros. Figura 12.44 En dado caso que el dominio escrito por el usuario ya este asignado a otra entidad, se presentará un mensaje indicando que dicho dominio ya ha sido asignado (Véase figura 12.44) y luego el usuario tendrá que escribir otro nombre de dominio no existente o podrá hacer uso de la herramienta de verificación para determinar si un dominio se encuentra disponible o no. Figura 12.45 Luego que el cliente ha seleccionado el plan que mas se adapte a sus necesidades, le prosigue la siguiente pantalla en la cual se muestra el código del plan, así como una breve descripción de este y el precio. En la misma pantalla el usuario tiene que escribir un nombre de usuario y contraseña, el cual le servirá para posteriormente entrar a su cuenta de hosting. En dado caso que el cliente no escriba ningún nombre de usuario aparecerá una alerta advirtiéndole que tiene que rellenar el nombre de usuario (Véase figura 12.45) y luego tendrá que rellenar el campo de usuario. 94 Figura 12.46 De igual manera que el proceso anterior, el cliente tendrá que escribir una contraseña con la cual podrá ingresar a la cuenta de “hosting” que está adquiriendo. Si en dado caso el cliente no escribe ninguna contraseña en el campo que debe, entonces se mostrará en pantalla una alerta advirtiéndole que tiene que escribir una contraseña (Véase figura 12.46). Figura 12.47 En dado caso que el cliente haya escrito un nombre de usuario que ya existía en la base de datos, entonces se le advertirá a este por medio de una alerta (Véase figura 12.47) que tendrá que escribir otro nombre de usuario, ya que el que había escrito anteriormente le ha sido asignado a otro usuario, esta verificación se hace para evitar conflictos entre nombres de usuarios existentes ya que estos están relacionados con los nombres de dominios existentes. Figura 12.48 Luego que se haya completado de manera satisfactoria el proceso anterior de validación de usuario y contraseña, el siguiente proceso es el de la introducción de los datos personales y de la tarjeta de crédito para proceder con el pago. La primer opción que tendrá que llenar el cliente es el número de la tarjeta de crédito, si en dado caso se deja en blanco esta casilla, el proceso de pago no podrá continuar y aparecerá un mensaje indicando que se tiene que introducir dicho dato (Véase figura 12.48). Figura 12.49 De igual forma, para que el proceso de pago se pueda procesar de forma correcta se tiene que introducir la fecha de expiración de la tarjeta de crédito, la cual esta separada por dos listas desplegables, una en la que se selecciona el mes de expiración y en la otra lista se selecciona el año de expiración de la tarjeta de crédito, si en dato caso no se le establece un valor a cualquier de las dos lista, se mostrará en pantalla un mensaje advirtiéndole al cliente que tiene que rellenar dicha información (Véase figura 12.49). 96 Figura 12.50 Posteriormente para seguir con el proceso de pago, se tiene que escribir el nombre del tarjetahabiente tal y como aparece grabado en la tarjeta de crédito para efectos de correcta verificación de la entidad que se asegura que los datos proporcionados no sean erróneos o falsos, si dicho campo se deja en blanco, entonces aparecerá una alerta advirtiéndole que debe de rellenar ese dato (Véase figura 12.50). Figura 12.51 De la misma manera, el cliente se verá obligado a digitar la dirección de el tarjetahabiente, la cual sería en este caso la dirección con la cual tiene registrada la tarjeta de crédito, por lo general está dirección es la dirección de facturación; si este campo se deja en blanco, entonces se mostrará un mensaje alertándole que tiene que rellenar dicho dato (Véase figura 12.51). Figura 12.52 Luego que se haya escrito la dirección de facturación, se tiene que escribir la ciudad, este campo también es obligatorio, si se deja vació se presentará un mensaje avisándole que tiene que rellenarlo (Véase figura 12.52). Figura 12.53 Además de verificar la dirección y la ciudad, también se verifica que el cliente escoja el estado o provincia, si dicho país no posee estados o provincias, entonces tendrá que seleccionar la primera opción de la lista, sino selecciona ninguna aparece un mensaje alertándole (Véase figura 12.53). Figura 12.54 98 Otra validación que se hace es que el cliente introduzca el código postal para efectos de facturación, si en dado caso no se introduce dicho campo aparece un mensaje advirtiendo tal acción (Véase figura 12.54). Figura 12.55 Luego otro campo que necesita ser rellenado es el país, para poder introducir datos válidos en este campo, el cliente tendrá que seleccionar el país de una lista desplegable, si en dado caso el cliente no selecciona un país entonces aparecerá un mensaje advirtiendo dicha acción (Véase figura 12.55). Figura 12.56 Para completar el proceso de verificación, el cliente tiene que proporcionar un teléfono para efectos de contacto, por lo general este teléfono es el de facturación del tarjetahabiente, si en dado caso dicha información no es proporcionada aparece un mensaje alertando que debe rellenar el campo (Véase figura 12.56). Figura 12.57 Luego de haber introducido todos los datos personales y de la tarjeta de crédito, el cliente tiene que aceptar las condiciones y términos de la compañía que hace la verificación de los datos para luego proceder con el pago, para aceptar las condiciones el cliente tiene que chequear la casilla de verificación (Véase figura 12.57) donde se hace constar que el estado de cuenta de la factura o recibo aparecerá bajo el nombre de 2CO.com; (compañía que realiza la verificación de datos y el cobro), si en dado caso el cliente presiona el botón de “Comprar Ahora” y no ha seleccionado la casilla en la cual se aceptan los términos, entonces aparecerá un mensaje (Véase figura 12.58) donde se le advierte que si desea proceder con el pago debe seleccionar dicha casilla de verificación. Figura 12.58 Por otra parte, con lo que respecta a las autenticaciones tanto para el nivel administrativo y el panel de control personalizado de los clientes/usuarios se validan los permisos necesarios para que estos puedan ingresar, en caso contrario se niega el acceso y se presenta un mensaje. (Figura 12.59) Figura 12.59 100 En lo que respecta al proceso de eliminación de cuentas, se verifica que el administrador este completamente seguro de la acción que llevará a cabo, por lo que se le solicita completar una frase como medida de seguridad, si en dado caso el administrador no completa dicha frase se cancela el proceso de eliminación de cuenta y se presenta un mensaje de error. (Figura 12.60) Figura 12.60 1 2 . 3 D E S A R R O L L O D E L S I S T E M A En esta etapa se ponen en marcha los módulos propuestos durante la fase de diseño del sistema. En lo que corresponde a este periodo se han llevado a cabo una serie de tareas necesarias para concretar el diseño propuesto siguiendo un plan organizado que facilite las actividades durante esta fase, estas tareas involucran preparar los servidores necesarios, es decir; la configuración del servidor web, servidor de correo, servidor FTP, también la creación de la base de datos además de las interfaces con las que el usuario puede interactuar, esto por medio de programación de ambiente Internet (Web Enabled) usando PHP. 1 2 . 3 . 1 I N S T A L A C I Ó N D E L S O F T W A R E A U T I L I Z A R Y C O N F I G U R A C I Ó N D E L S E R V I D O R . Para la selección del software a utilizar se tomaron en cuenta los siguientes criterios:  Software libre  Utilización por los proveedores lideres en el ramo de servicios de alojamiento en Internet. Además se tuvo que considerar la función que desempeñaría el servidor para seleccionar el software necesario para el desarrollo del proyecto, entre las funciones que debe tener el servidor son:  Servidor Web  Servidor de Base de Datos  Soporte para generador de contenido Web dinámico  Soporte para editar páginas Web y Scripts 102 Tomando en cuenta todo lo anterior, se ha determino que el software necesario para el desarrollo del prototipo del sistema es el siguiente: Tipo Nombre y Versión Sistema Operativo Linux Debian Woody ver. 3.0.r1 Servidor Web Apache 2.0 Servidor de Base de Datos MySql 3.23.52 Generador de Contenido Web dinámico PHP 4.2.2 Servidor FTP PureFTPd ver. 1.0.12 Aplicación que administra recursos del servidor (Web host Manager) WHM 9.4.0 Servidor de Correo Exims Editor de páginas y Script Dinámico Quanta Plus 3.0 Tabla 7. Para el proceso de instalación del software en el servidor se requirió los discos (en total 8) de instalación de Debian que contienen todo el software necesario para el desarrollo. Primero se preparo la computadora destinada para funcionar como servidor, esto se refiere a tener el suficiente espacio en disco duro, asegurarse que todo el hardware funcione, tener la tarjeta de red instalada, etc. Una vez lista la computadora, se prosiguió a la instalación de todo el software, para esto se utilizó el asistente durante todo el proceso, y al asistente se le especificó que la instalación sea personalizada con el fin de instalar el software requerido detallado anteriormente. Se ha asegurado que los servicios que se requieren inicien con el sistema operativo los cuales son:  HTTPD (servidor web)  MYSQLD (servidor de base de datos)  PureFTPd (Servidor para transferencia de archivos)  WHM (Aplicación que maneja recursos del servidor) 1 2 . 3 . 2 R E G I S T R O D E U S U A R I O S La primera etapa para la parte de alojamiento es el registro de los usuarios el cual sirve para tener un control de las personas interesadas en el servicio que se proporciona, aunque estas personas no lleguen a realizar la compra de los diferentes servicios a través de los tipos de planes que proponen es de suma importancia mantener el registro para tener en la base de datos los prospectos que en un futuro próximo puedan convertirse en clientes. Además de la información general del prospecto se registra también el nombre de dominio con el que se direccionará al servidor del alojamiento web; para este registro el usuario puede realizar los siguientes procesos: V E R I F I C A C I O N D E D O M I N I O S Este proceso se realiza a través de una empresa dedicada a la verificación de este tipo de información10 y su objetivo es corroborar que el nombre de dominio deseado no este siendo utilizado en la Internet, de esta manera se evitan conflictos evidentes en caso de 104 dominios múltiples o duplicados, mejorando por lo tanto el funcionamiento de nuestro sistema. I N F O R M E D E D I S P O N I B I L I D A D Este proceso es de vital importancia para los clientes, si en dado caso el nombre de dominio que la persona solicitó existe, se presentan todas las opciones disponibles con el nombre deseado, cambiando solo el dominio (por ejemplo: .com, .net, .org, etc…); de esta manera se ahorra tiempo en esta parte del proceso global de alta de dominio y hace que el sistema sea más eficiente, además se le comunica que dicho nombre no esta disponible, de esta manera proporcionaremos un mayor nivel de operatividad. 1 2 . 3 . 3 S E L E C C I Ó N D E L P L A N La siguiente etapa en el ámbito del alojamiento web, es la selección del plan que se contratará para tener derecho al servicio, se presentan los diferentes tipos de planes a escoger detallados minuciosamente a manera que el prospecto tenga la información necesaria para tomar la mejor decisión orientada a solventar las necesidades que este presente, los precios dependen de la cantidad de opciones, complejidad y características con las que cuente cada plan. 1 2 . 3 . 4 D E T A L L E D E O R D E N D E C O M P R A En esta etapa del proceso de compra se inicia la interacción con la entidad externa encargada y especializada en realizar los cobros a través de tarjetas de crédito internacionalmente aceptadas, como lo son VISA, MASTERCARD y CREDOMATIC, entre otras. Pero la función primordial de esta etapa es mostrarle al cliente una breve descripción de los servicios a adquirir y el total a pagar proporcionándole de esta manera la oportunidad de verificar que su orden de compra este correcta y en caso de no ser así poder cancelar la transacción redireccionándolo a la parte del proceso en la que puede escoger los servicios que realmente necesite. En caso de existir una petición del mismo dominio por parte de dos usuarios a la vez –suceso extremadamente inusual-, se procederá a darle el dominio al cliente que efectué primero el pago por dicho servicio. 1 0 http://dn.esornet.com , www.internic.net 106 1 2 . 3 . 5 P R O C E S O D E C O B R O Como se ha visto anteriormente, no se tiene un control directo de la información que se maneja, ya que por medidas de seguridad y falta de experiencia en el campo de cobro electrónico es recomendable dejar en manos de una entidad especializada un proceso tan delicado como es esté. La entidad encargada de este tipo de proceso de transacción electrónica es http://www.2checkout.com, dicha firma verificadora posee un gran respaldo y es una de las más utilizadas a nivel mundial por empresas que ofertan servicios y productos en el Internet. Es importante aclarar que hasta este momento solo se está haciendo una simulación del proceso de cobro; ya que será hasta la última etapa de este proyecto de tesis la habilitación del sistema en la Internet. 1 2 . 3 . 6 R E S U L T A D O D E L A V E R I F I C A C I O N En esta etapa del proceso es donde se muestra el resultado de la transacción electrónica que se realizó, además se le comunica a los clientes vía correo electrónico el resultado de la orden de compra efectuada con la tarjeta de crédito proporcionada, en caso de que la transacción haya sido aprobada se le enviará el nombre de usuario y contra