Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

92
DISEÑO E IMPLEMENTACION DE UN SISTEMA DE ADMINISTRACION PARA LA ACTIVACION Y SEGUIMIENTO DE CLIENTES DE HOSTING Y DOMINIOS PARA IMAGINAMOS.COM PRESENTADO POR: JAIRO ENRIQUE CELIS CARRILLO UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA 1

Transcript of Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

Page 1: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

DISEÑO E IMPLEMENTACION DE UN SISTEMA DE ADMINISTRACION PARA LA ACTIVACION Y SEGUIMIENTO DE CLIENTES DE HOSTING Y DOMINIOS

PARA IMAGINAMOS.COM

PRESENTADO POR:

JAIRO ENRIQUE CELIS CARRILLO

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD DE INGENIERÍA

PROYECTO CURRICULAR DE SISTEMAS

BOGOTÁ D.C.

2011

1

Page 2: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

DISEÑO E IMPLEMENTACION DE UN SISTEMA DE ADMINISTRACION PARA LA ACTIVACION Y SEGUIMIENTO DE CLIENTES DE HOSTING Y DOMINIOS

PARA IMAGINAMOS.COM

Presentado Por:

JAIRO ENRIQUE CELIS CARRILLO COD 20022020160

Proyecto de pasantía

FERNANDO MARTINEZ RODRIGUEZ

Director Interno

JOSE JAIR BONILLA

Director Externo

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD DE INGENIERÍA

PROYECTO CURRICULAR DE SISTEMAS

BOGOTÁ D.C.

2011

2

Page 3: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

TABLA DE CONTENIDO

INTRODUCCION........................................................................................9

CAPITULO I PROBLEMA DE INVESTIGACION.....................................11

1. FORMULACION DEL PROBLEMA....................................................11

1.1. DESCRIPCION DEL PROBLEMA...................................................12

1.2. FORMULACION DEL PROBLEMA.................................................12

2. JUSTIFICACION.................................................................................14

3. OBJETIVOS........................................................................................16

3.1. OBJETIVO GENERAL.....................................................................16

3.2. OBJETIVOS ESPECIFICOS.............................................................16

4. ALCANCES Y LIMITACIONES...........................................................17

4.1. ALCANCE........................................................................................17

4.2. LIMITACIONES................................................................................17

5. FACTORES DIFERENCIALES O DE VALOR AGREGADOS DE LA

PROPUESTA............................................................................................19

CAPITULO II MARCO TEORICO DEL PROBLEMA A INVESTIGAR.....20

6. ASPECTO GENERALES....................................................................20

3

Page 4: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

7. MARCO REFERENCIAL.....................................................................22

8. MARCO TEORICO..............................................................................26

8.1. SERVICIOS WEB.............................................................................26

8.2 SERVIDOR WEB...............................................................................30

8.3. APACHE...........................................................................................31

8.4. MySQL..............................................................................................33

8.5. PHP...................................................................................................34

8.6. SOFTWARE LIBRE..........................................................................35

8.7. METODOLOGIA DE PROGRAMACION XP....................................36

9. MARCO METODOLOGICO................................................................40

9.1. TIPO DE ESTUDIO...........................................................................40

9.2. METODO Y/O DISEÑO DE LA INVESTIGACION...........................41

9.3. PARTICIPANTES.............................................................................43

9.4. RECURSOS......................................................................................44

9.5. INSTRUMENTOS Y EQUIPOS.........................................................45

9.6. INGENIERIA DEL PROYECTO........................................................45

4

Page 5: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

10. RESULTADOS OBTENIDOS............................................................51

10.1. FASE DE PLANIFICACION............................................................51

10.2. FASE DE DISEÑO...........................................................................54

10.3. FASE DE DESARROLLO...............................................................57

10.4. FASE DE PRUEBAS.......................................................................58

11. RECOMENDACIONES PARA PROYECTOS FUTUROS..................63

12. CONCLUSIONES...............................................................................64

13. BIBLIOGRAFIA.................................................................................65

13.1. REFERENCIAS ELECTRONICAS..................................................65

ANEXOS...................................................................................................68

5

Page 6: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

ANEXOS

ANEXO A: Mockups de diseño.

ANEXO B: Formato de revisión de código.

ANEXO C: Formato de prueba Beta y pruebas de funcionalidad.

ANEXO D: Manual de Usuario.

6

Page 7: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

LISTA DE TABLAS

TABLA 1. Recurso Tecnológico................................................................45

TABLA 2. Formato Revisión de Código....................................................61

TABLA 3. Formato Prueba Beta...............................................................63

TABLA 4. Formato de Pruebas de Funcionalidad.....................................63

7

Page 8: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

LISTA DE FIGURAS

Figura 1. Los servicios Web en funcionamiento.......................................29

Figura 2. Bucle basico de un servidor Web..............................................32

Figura 3. Libertades del Sofware Libre.....................................................38

Figura 4. Revision de código..........49Figura 6. Historia de Usuario ingreso

.............................................53Figura 5. Anotaciones usuario Prueba Beta 51

Figura 7. Historia de Usuario pagina inicial...............................................54

Figura 8. Historia de Usuario adicion de activacion..................................54

Figura 9. Historia de Usuario edicion de activacion..................................54

Figura 10. Historia de Usuario detalle de activacion55Figura 11. Historia de

Usuario generacion de informes55Figura 12. Modelo Entidad-Relacion base de

datos del sistema..............57Figura 13. Pantallas del sistema desarrollado 58

8

Page 9: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

INTRODUCCION

La compañía Imaginamos.com es una empresa de diseño y desarrollo de sitios

web, y aplicaciones en línea, con su sede principal en Bogotá D.C (Colombia),

ampliando su plan de negocios a Estados Unidos y España.

Debido al alto grado de publicidad y marketing que la Gerencia General

implemento durante el último año, y el reconocimiento como consecuencia directa

de este plan ha logrado que las ventas en hosting y registro de dominios crezcan

en un 300% desde finales de 2008 y principios de 20101, por esta razón la

creación de un Departamento de Soporte Hosting y Dominios fue necesario como

reacción de manera anticipada a los cambios que en su interior han surgido.

El Departamento de Soporte Hosting y Dominios está encargado de brindar ayuda

a los clientes en la compra, activación e implementación de su espacio de hosting

y registro de dominios, brindando una plataforma solida de tecnologías de

información enfocadas al usuario final.

En la actualidad se hace necesario que de la misma forma como la compañía en

general está enfocando sus esfuerzos en la organización de los procesos, el

Departamento de Soporte Hosting y Dominios esté en la misma línea, por esta

razón el fin primordial del desarrollo de este trabajo de pasantía es el diseño e

1 Gerencia General Imaginamos.com

9

Page 10: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

implementación de un sistema de administración para la activación y seguimiento

de clientes de hosting y dominios que reemplace al actual y cree una línea de

comunicación más directa con los usuarios, a través del aprovechamiento de la

infraestructura tecnológica que tiene Imaginamos.com.

La metodología utilizada para la elaboración de este proyecto está basada en la

metodología XP, donde su principal beneficio es contar con el usuario final dentro

del equipo de trabajo, además de partir de sus recomendaciones para las buenas

prácticas de desarrollo de software, con lo cual se logra brindar una solución

dinámica y flexible al problema del sistema de administración actualmente utilizado

en la organización.

10

Page 11: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

Capítulo I PROBLEMA DE INVESTIGACIÓN

1. FORMULACIÓN DEL PROBLEMA

1.1 Descripción del problema

A causa del crecimiento en el número de clientes en poco tiempo, se originó un

caos en la administración de los clientes de hosting y registro de dominios,

atención de los requerimientos de los usuarios, el tiempo de respuesta hacia los

clientes se incremento y el manejo de estadísticas en el acuerdo de nivel de

servicio2 se hizo difícil de consolidar, dificultando la tarea de los colaboradores y

siendo una de las razones para cometer errores en las soluciones a usuario final.

Actualmente para llevar el registro y administración de la activación de hosting y

registro de dominio se creó una base primaria en Microsoft Access, donde la

persona encargada debe llenar algunos datos acerca de la activación y el cliente

como Fecha de activación, fecha de pago, Nombre de Dominio, Referencia de

Pago, Nota, Dominio, Hosting (Plan de hosting que activa), Servidor (Se cuenta

con 5 servidores, se especifica donde se activa), NIT – CC, Empresa o Razón

Social, Teléfono 1, Teléfono 2, Direccion, Ciudad, Cliente Encargado, E-mail 1, E-

mail2; esta forma de llevar registro de la información genera entre otros

problemas:

2 Acuerdo de Nivel de servicio: SLA por sus siglas en ingles es una parte de un contrato de servicio donde el nivel de servicio formalmente es definido. http://en.wikipedia.org/wiki/Service_level_agreement [Citado el: 3 de Abril de 2010]

11

Page 12: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

* Errores en la entrada de los datos: Mala precisión principalmente de los datos

de contacto del cliente.

* Errores de precisión en el vencimiento: En ocasiones se le informa al cliente una

fecha de vencimiento de sus servicios y se registra una fecha diferente,

ocasionando malestar entre los clientes.

* Errores de formato de fecha: El formato de fecha establecido en la bitácora está

basado en DD-MM-AAA, lo que origina que en ocasiones se digite la fecha en

otros formatos creando inconsistencias.

* Demora en la actualización de la base: Debido a que constantemente se están

atendiendo activaciones, en algunos casos la persona encargada de la

actualización de la base no digita a tiempo, ocasionando que en un momento dado

no se tenga la información actualizada de las activaciones de hosting y registro de

dominios.3 Lo anterior lleva a tener problemas en la consolidación de estadísticas

de servicio, pues son errores que no permiten tener una información oportuna,

veraz y creíble, que pueda ser presentada a la Gerencia General, y demostrar la

seriedad y responsabilidad del Departamento de Soporte Hosting y Dominios.

1.2 Formulación del problema

El Departamento de Soporte Hosting y Dominios actualmente tiene a su cargo

alrededor de 1500 Clientes a nivel nacional e internacional y esta cifra cada día

crece, por otro lado semanalmente se debe entregar informes a Gerencia General

de las activaciones y renovaciones de clientes en los diferentes servicios que

3 Análisis por parte de Simon Borrero – Gerente General Imaginamos.com

12

Page 13: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

ofrece Imaginamos.com, sin una organización en la base de clientes este informe

se convierte en algo tedioso y difícil de consolidar, generando errores en la

información enviada a Gerencia y dificultando la tarea de la actualización de la

base de clientes.

El envío de mensajes recordatorios de renovación a los clientes que se les ha

cumplido el tiempo adquirido con la compañía en sus servicios, se hace de forma

manual, ocasionando que por la falta de información de contacto de algunos

clientes, debido a que no se tiene un orden en el registro de las diferentes

activaciones, no se les pueda notificar de su vencimiento, ocasionando de esta

manera que algunos clientes vean su sitio suspendido y por ende se molesten por

no ser contactados a tiempo para evitar este tipo de inconvenientes

¿Cómo diseñar e implementar un sistema informático que logre consolidar todos

los registros de las activaciones de hosting y registro de dominios hechos por los

usuarios sin importar el lugar geográfico, que permita obtener mayor control,

seguimiento e información de los clientes?

13

Page 14: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

2. JUSTIFICACIÓN

El Departamento de Soporte Hosting y Dominios, debe presentar regularmente

estadísticas de servicio, renovación y, activación de hosting y registro de dominios,

por esta razón debe existir un mecanismo claro y preciso que permita beneficiar a

todos los involucrados, esto es un Sistema de Administración vía web, de esta

forma todos logran mayor beneficio, los usuarios al tener una respuesta inmediata

a sus requerimientos e inquietudes, el Departamento de Soporte Hosting y

Dominios al poder llevar de forma precisa un sistema de administración de

clientes, en el cual se conozca de forma precisa las activaciones de los servicios

de los cliente, y la Gerencia General de la compañía al tener informes reales y

claros que evidencian la responsabilidad del Departamento Soporte Hosting y

Dominios.

Para alcanzar esta meta fue necesario implementar un Sistema de Administración

vía Web, donde se podía tener mayor organización en las diferentes activaciones

de hosting y registro de dominio, envío de informes semanales y datos de contacto

de los clientes del Departamento de Soporte Hosting y dominios.

Con esta solución el Departamento de Soporte Hosting y Dominios se organizó y

logró dar un nivel de servicio muy alto, donde los clientes lograron obtener

soluciones rápidas y efectivas, la Gerencia General logró obtener informes reales

y a tiempo; por otro lado el ambiente en el Departamento de Soporte Hosting y

14

Page 15: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

Dominios mejoró al disminuir los niveles de presión que se ocasionaban por la

mala administración de las activaciones, así como los problemas originados por la

falta de datos de contacto de los clientes que ocasionaban la suspensión de los

servicios.

15

Page 16: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

3. OBJETIVOS

3.1 OBJETIVO GENERAL

Diseñar e implementar un sistema web de administración, para la activación y

seguimiento de clientes de hosting y dominios para Imaginamos.com, que permita

obtener mayor control, seguimiento e información de los clientes y las estadísticas

de activación y renovación de los servicios.

3.2 OBJETIVOS ESPECÍFICOS

Diseñar un modulo que genere reportes, los cuales permitan el análisis de

sus servicios en la activación de servicios de hosting y dominios, para la

toma de decisiones en marketing, dirigidos a aumentar el número semanal

de activaciones.

Diseñar una interfaz de manejo intuitivo y amigable, donde se lleve un

orden en las activaciones de los clientes, datos de contacto e información

importante para el Departamento de Soporte Hosting y Dominios.

Definir una arquitectura de información ordenada y con diferentes formas de

acceso, poniendo énfasis en la usabilidad y el uso estándares

internacionales de desarrollo web.

Reforzar el área de información contingente (activaciones y datos de

contacto) con reportes, envío de ventanas de mantenimiento, de acuerdo a

la comunicación con los clientes.

16

Page 17: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

4. ALCANCES Y LIMITACIONES

4.1 ALCANCE

El sistema de administración para la activación y seguimiento de clientes de

hosting y dominios para Imaginamos.com brinda la información necesaria en

aspectos como: Fecha de Activación, Fecha de Pago, Nombre del dominio,

Referencia de Pago, Plan de Hosting, Servidor de activación, Nit – CC, Nombre o

Razón Social, Teléfono 1, Direccion, Ciudad, Cliente encargado, E-Mail.

El proyecto se entrega con el código fuente, el cual posee licencia GNU GPL, esto

quiere decir que “El autor conserva los derechos de autor (copyleft), y permite la

redistribución y modificación bajo términos diseñados para asegurarse de que

todas las versiones modificadas del software permanecen bajo los mismos

términos”4; manual de usuario, actas de aprobación firmadas al momento de las

pruebas por parte del usuario final. El sistema resultante se montó en el Hosting

de la compañía y allí queda bajo la administración del Departamento de Soporte

Hosting y Dominios5.

4.2 LIMITACIONES

Las limitaciones que se encontraron en el momento del desarrollo de este

proyecto de pasantía fueron las siguientes:

La visualización correcta de la aplicación depende de las versiones de los

navegadores, aunque esto fue independiente de la plataforma de Sistema

4 http://es.wikipedia.org/wiki/C%C3%B3digo_libre#Licencias_GPL [Citado el: 3 de Abril de 2010] SOFTWARE LIBRE5 http://www.imaginamos.com/sacgydo/ [Citado el: 8 de Mayo de 2011] DISEÑO DE PAGINAS WEB Y SOFTWARE WEB DESDE COLOMBIA

17

Page 18: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

Operativo donde estén montadas, se sugirió que se utilizara las últimas

versiones de los navegadores actuales.

La disponibilidad de tiempo del Departamento de Soporte Hosting y

Dominios, quienes por su trabajo habitual demoraron el desarrollo, las

pruebas y aceptación del sistema implementado.

Se dependió de la información inicial de contacto que los clientes brindaban

en el momento de su activación, por lo que en ocasiones la información no

era completa y era necesario contactarlos de nuevo para complementar

esta información.

18

Page 19: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

5. FACTORES DIFERENCIALES O DE VALOR AGREGADO DE LA

PROPUESTA

Esta implementación de un sistema de administración para la activación y

seguimiento de clientes de hosting y dominios, fue una puesta en práctica de

lineamientos bien definidos para lograr que los tiempos de activación fuesen más

cortos, el conocimientos de los clientes de Imaginamos.com pudiera ser más

amplio y se lograra el objetivo de aumentar el nivel de servicio.

Por ser un desarrollo a la medida logró diferenciarse de software genéricos, que

limitaban, por su cantidad de herramientas llegar a la información importante,

además que esta herramienta es modular, lo que permitió que en el futuro, de ser

necesario pueda seguir puntualizándose hacia los requerimientos del

Departamento de Soporte Hosting y Dominios, y la compañía en General.

19

Page 20: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

Capítulo II MARCO TEORICO DEL PROBLEMA A INVESTIGAR

6. ASPECTOS GENERALES

Imaginamos.com nace de la iniciativa de su actual Gerente General, Simon

Borrero Posada, quien es graduado de Administración de Empresas de la

Universidad de los Andes.

Su anhelo de construir una empresa solida dirigida hacia servicios de internet hace

que en el año 2007 inicie labores Imaginamos.com, su enfoque fue hacia el diseño

y desarrollo de páginas web, enfocado en empresas de reconocimiento nacional

entre las que se puede contar, Alcaldía de Palmira, Alcaldía Menor de Tunjuelito,

Meals de Colombia, Frito Lay, Hoteles Dann Carlton, Teletón Colombia, entre

otros.

A finales del año 2008 se comenzó la comercialización de servicio de hosting y

dominios, logrando que en un año se logre la cifra de cerca de 800 clientes

satisfechos6 en estos servicios, no se tenía en Abril de 2009 un Departamento que

se encargara de las activaciones y seguimiento de los clientes, lo que impulso la

necesidad de crear un Departamento especializado en este tema.

6 http://www.imaginamos.com [Citado el: 28 de Abril de 2010] DISEÑO PAGINAS WEB A LA MEDIDA

20

Page 21: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

En este momento uno de los principales motivos que tiene el Departamento de

Soporte Hosting y Dominio, es fidelizar a sus clientes y aumentar el número de

activaciones nuevas en hosting y dominio, para lo cual se buscaba consolidar

herramientas que facilitaran esta tarea.

21

Page 22: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

7. MARCO REFERENCIAL

Actualmente, las organizaciones empresariales de servicios ven la necesidad de

construir medios, a través de los cuales puedan evidenciar de forma clara las

necesidades y opiniones de sus usuarios, la tecnología les está dando día a día

mecanismos en los cuales basarse y conseguir este objetivo.

Dentro del servicio al cliente se encuentran los niveles de servicio que la empresa

debe alcanzar y en los cuales todos sus esfuerzos se enfocan, de esta manera

encontramos diversos medios de conseguir la comunicación desde y hacia los

usuarios, que permitan conocer de forma clara las expectativas y conclusiones de

los principales clientes. Las empresas privadas, más que las del estado en

nuestro país, toman muy en serio la forma como los usuarios se sienten con el

servicio que ellas ofrecen, para estas empresas una parte de la publicidad se basa

en dar buen servicio al cliente, según la filosofía existente en este aspecto, un

usuario satisfecho trae consigo muchos usuarios mas; sin embargo un usuario

molesto con el servicio puede llevarse consigo muchos más potenciales usuarios,

por esta razón el enfoque es darse a conocer como empresas que consiguen

satisfacer las necesidades y expectativas.

Las empresas de servicios son las que más buscan tener un registro de todas las

incidencias, su solución y tiempo invertido, además de llevar una evaluación por

parte del usuario de la respuesta dada, a partir de datos como estos logran

22

Page 23: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

consolidar estadísticas de servicio y compararlas con la curva de Nivel de Servicio

establecida, de esta forma reorientan sus actividades e idean nuevos métodos de

respuesta para aumentar la buena imagen hacia los usuarios; sin embargo, se

encuentra que la mayoría de las empresas colocan en manos de terceros esta

responsabilidad, debido a que según las cifras es mejor pagar un outsourcing que

tener un departamento interno dedicado por completo a resolver incidencias.

En el pasado el Departamento de Soporte Hosting y Dominios, manejaba su

registro de activaciones de hosting y dominios, de forma manual, esto era una

tabla de Access similar a un hoja de cálculo en Excel, donde se registraba cada

activación de hosting que se realizaba en el día y el registro del dominio, no existía

una metodología y procedimiento en el registro de estas activaciones, la mayoría

de las ocasiones al finalizar el día no se contaba con la totalidad de los datos de

contacto de los clientes, así como se hacía difícil el envío de notificaciones a los

clientes del vencimiento de sus servicios con la compañía, por la falta de

consolidación de datos de contacto de los clientes.

Actualmente en el mercado existen múltiples soluciones para registrar y tener

seguimiento de sus clientes, incluso algunas empresas han desarrollado sus

propias soluciones, y por ende son soluciones privativas, costosas y poco

adaptadas a las necesidades propias de la empresa, son las empresas en este

caso quienes se deben adaptar a estas aplicaciones, por este motivo no se

conoce el funcionamiento, los módulos que pueden tener y la flexibilidad con que

23

Page 24: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

se desarrolló, por esta razón, una documentación libre que pueda dar alguna

dirección no existe, solo con el comienzo de la acogida del software libre se está

intentando iniciar la documentación propia del tema en esta área en particular.

Podemos encontrar, que en el mercado existen muchas opciones de software

basado en relación con los clientes (CRM, Customer Relationship Management,

por sus siglas en Ingles), entre las cuales podemos encontrar por ejemplo

PeopleSoft, el cual según las características descritas permite llevar registro de los

clientes e identificar a los clientes que realmente están interesados en interactuar

con la compañía y cuáles no desean hacerlo7. Sin embargo esta solución solo

está encaminada a la relación con los clientes, desde un enfoque de

mercadotecnia, lo cual no es el objetivo del desarrollo que se desea, sin contar

con la licencia que se debe pagara Oracle por la utilización de esta aplicación.

Dentro de las herramientas de código libre, se encuentra SugarCRM8, ésta

herramienta se enfoca en el seguimiento de clientes pero se aleja de los

propósitos del Departamento de Soporte Hosting, debido a que es una

herramienta desde el punto de vista del Departamento Comercial y se maneja

para llevar el registro de ventas potenciales, esta herramienta presenta un

desarrollo en código abierto bastante robusto y esto hace que la parametrización a

las necesidades propias de las empresas no se pueda realizar de buena forma,

por lo que son éstas últimas quienes deben seguir los parámetros de esta

7 http://www.oracle.com/global/lad/applications/peoplesoft-enterprise.html [Citado el: 9 de Marzo de 2010] PEOPLESOFT ENTERPRISE8 http://www.sugarcrm.com/crm/ [Citado el: 9 de Marzo de 2010] SUGARCRM – COMMERCIALOPEN SOURCE CRM

24

Page 25: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

herramienta, tienen un foro para la comunidad donde se expresan dudas y a partir

de la experiencia de los usuarios son ellos mismos los que responden las

incertidumbres de los demás, si se solicita soporte oficial por parte de SugarCRM,

éste soporte tiene un costo.

Como se observa, las anteriores aplicaciones daban un buen campo de análisis y

desarrollo de nuevas aplicaciones para sistema de incidencias IT.

25

Page 26: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

8. MARCO TEÓRICO

“Toda la información disponible para cualquier persona, en cualquier lugar, a través de cualquier dispositivo.”9

Para el desarrollo del proyecto se tomaron aspectos y referencias claras de las

herramientas que se utilizarán para lograr el fin establecido, el diseño e

implementación de un sistema de administración para la activación y seguimiento

de clientes de hosting y dominios para Imaginamos.com

8.1 SERVICIOS WEB

Se debe tener un concepto claro a trabajar y es Servicio Web, que según la W3C10

lo define como “…un sistema de software diseñado para soportar interacción

interoperable máquina a máquina sobre una red”11 basándose en el protocolo

http12; la importancia de este concepto hoy en día, está basado en la potente

masificación que ha tenido internet y en el impacto que las tecnologías de

información están causando en la forma de vida de las personas, en el comercio y

en las comunicaciones, cambiándolas de forma rotunda, bajo este escenario, es

cada vez mayor la necesidad de poder integrar y compartir información entre

diferentes plataformas de software y hardware, originando de esta forma los

actualmente llamados servicios Web.

9 http://www.desarrolloweb.com/articulos/1535.php [Citado el: 3 de Abril de 2010] SERVICIOS WEB EN PLATAFORMA .NET10 W3C:World Wide Consortium, por sus siglas en ingles.11 W3C Consortium. Web Services Architecture. [En línea] 11 de Febrero de 2004. [Citado el: 28 de Marzo de 2010.] http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/#whatis.12 HTTP. HyperText Transfer Protocol, por sus siglas en inglés.

26

Page 27: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

Los Servicios Web implementan algunos estándares establecidos firmemente hoy

día, por nombrar algunos:

Web Services Protocol Stack: Así se denomina al conjunto de servicios y

protocolos de los servicios Web.

XML (Extensible Markup Language): Es el formato estándar para los

datos que se vayan a intercambiar.

SOAP (Simple Object Access Protocol) o XML-RPC (XML Remote

Procedure Call): Protocolos sobre los que se establece el intercambio.13

La profundización en estos estándares, va mas allá del objetivo de este proyecto,

por lo que se toman a concepto de consulta.

En el grafico siguiente se observa un ejemplo del funcionamiento de los Servicios

Web, y la forma de interacción de los estándares anteriormente mencionados.

13 http://es.wikipedia.org/wiki/Servicio_Web [Citado el: 28 de Marzo de 2010] SERVICIO WEB

27

Page 28: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

Figura 1. Los Servicios Web en funcionamiento

Según el ejemplo del grafico, contextualizándolo a este proyecto, un usuario (que

juega el papel de cliente de los Servicios Web), a través de una aplicación, solicita

información sobre un cliente al cual debe contactar haciendo una petición a un

sistema de registro de activaciones de hosting y dominios que ofrece sus

servicios a través de Internet. El sistema de registro de activaciones de hosting y

dominios ofrece a su cliente (usuario) la información requerida. Para proporcionar

al cliente la información que necesita, este sistema solicita a su vez información a

otros recursos (otros Servicios Web) en relación con el número y tipo de

activaciones, los datos del cliente, valor pagado, etc. El sistema de registro obtiene

información de estos recursos, lo que la convierte a su vez en cliente de esos

otros Servicios Web que le proporcionan la información solicitada sobre el número

y tipo de activaciones, los datos del cliente, etc. Por último, el usuario puede que

solicite información acerca del pago realizado en línea, éste sistema sirve de

intermediario entre el usuario y el servicio Web que gestiono el pago. 14

Las ventajas identificadas al utilizar Servicios Web en el desarrollo del proyecto es

“la gran interoperabilidad entre las aplicaciones de software independientemente

de sus propiedades o de las plataformas sobre las que se instalen” 15 debido a que

trabaja sobre estándares libres que permiten la flexibilidad; “al apoyarse sobre

14 http://www.w3c.es/Divulgacion/GuiasBreves/ServiciosWeb [Citado el: 28 de Marzo de 2010]GUIA BREVE DE SERVICIOS WEB - ¿COMO FUNCIONAN?15 http://es.wikipedia.org/wiki/Servicio_Web [Citado el: 28 de Septiembre de 2008] SERVICIO WEB

28

Page 29: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

HTTP permiten salir por el puerto 80 y de esta forma no se deben cambiar las

reglas de filtrado del firewall” 16 aprovechando al máximo la seguridad que esto

puede brindar a la organización; algo importante es que “permiten que servicios y

software de diferentes compañías ubicadas en diferentes lugares geográficos

puedan ser combinados fácilmente para proveer servicios integrados” 17 esto

debido a los protocolos estándar y abiertos, definidos por la W3C.

Ahora, se aprecia que los servicios Web son muy prácticos debido a que aportan

gran independencia entre la aplicación que usa el Servicio Web y el propio servicio

en sí, de esta forma, los cambios que se hagan a través del tiempo no afectan al

otro directamente, haciéndolo flexible en la construcción de grandes aplicaciones,

además, en la actualidad la tendencia es a construir estas aplicaciones a través de

componentes distribuidos más pequeños que puedan ser fácilmente modificados,

obteniendo más calidad y funcionalidad de las aplicaciones construidas bajo este

panorama. 18

8.2 SERVIDOR WEB

Cuando se habla de Servicios Web, es necesario hablar también de Servidor Web,

quien es el primer actor. Se define al Servidor Web como “un programa que

implementa el protocolo HTTP (o HTTPS, la versión cifrada y autenticada), este

protocolo pertenece a la capa de aplicación del modelo OSI y está diseñado para

16 IBID17 IBID18 http://es.wikipedia.org/wiki/Servicio_Web [Citado el: 28 de Marzo de 2010] RAZONES PARA CREAR SERVICIOS WEB

29

Page 30: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

atender y responder a las diferentes peticiones de los navegadores a través de los

Servicios Web, proporcionando los recursos que soliciten” 19.

Un servidor Web básico cuenta con un esquema de funcionamiento muy simple,

basado en ejecutar infinitamente el siguiente bucle:

Figura 2. Bucle básico de un servidor WebLa figura anterior muestra la funcionalidad básica y principal del Servidor Web, sin

embargo debemos considerar que de éste parten diferentes aplicaciones Web,

que son porciones de código que se ejecutan cuando se realizan algunas

peticiones o respuestas HTTP definidas, dentro de estas aplicaciones están:

- Aplicaciones en el lado del cliente: El cliente Web es el encargado de

ejecutarlas en la maquina del usuario. Son las aplicaciones tipo Java o

JavaScript, el servidor proporciona el código de las aplicaciones al cliente y

este, mediante el navegador las ejecuta.

19 http://www.cibernetia.com/manuales/instalacion_servidor_web/1_conceptos_basicos.php [Citado el 28 de Marzo de 2010] CONCEPTOS BASICOS DEL SERVIDOR WEB

Espera peticiones en el puerto TCP indicado (el estándar por defecto para HTTP es el 80).

Recibe una petición.

Envía el recurso utilizando la misma conexión por la que recibió la petición.

Busca el recurso.

30

Page 31: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

- Aplicaciones en el lado del servidor: El servidor Web ejecuta la

aplicación; esta, una vez ejecutada, genera cierto código HTML; el servidor

toma este código recién creado y lo envía al cliente por medio del protocolo

HTTP. 20

Lo anterior demuestra, que en muchas ocasiones la mejor alternativa es conseguir

que las aplicaciones sean en el lado del servidor, debido a que el cliente no debe

tener capacidades añadidas para poder interactuar con la aplicación solicitada.

8.3 APACHE

Cuando se habla de aplicaciones en el lado del servidor, viene a nuestra mente

PHP, debido a que “es un software servidor HTTP de código abierto para

diferentes plataformas” 21 lo hace bastante utilizado y modular, por ser de código

abierto, cualquier vulnerabilidad encontrada es rápidamente solucionada por la

comunidad, además es muy liviana en las transacciones realizadas por éste

convirtiéndolo en el principal socio de las actuales aplicaciones que están basadas

en los Servicios Web.

Algunas ventajas encontradas en este servidor son:

Modular

Open Source22

20 http://es.wikipedia.org/wiki/Servidor_web [Citado el 28 de Marzo de 2010] SERVIDOR WEB21 http://es.wikipedia.org/wiki/Apache_http_server [Citado el: 28 de Marzo de 2010] SERVIDOR HTTP APACHE22 Open Source: Código libre

31

Page 32: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

Multi-plataforma

Extensible

Popular (fácil conseguir ayuda/soporte)

Gratuito

Debido a su modularidad se basa en una sección core que es el núcleo principal

donde se encuentra la funcionalidad básica de cualquier Servidor Web, y de allí se

compone de diferentes modulo que le aporta funcionalidad a este núcleo, con el

solo hecho de configurar algunas directivas del modulo en particular y sin

necesidad de volver a instalar el software. Los módulos del Apache se pueden

clasificar en tres categorías:

módulos Base: Modulo con las funciones básicas del Apache.

módulos Multiproceso: Son los responsables de la unión con los puertos

de la maquina, aceptando peticiones y enviando a los hijos a atender a las

peticiones.

módulos Adicionales: Cualquier otro modulo que le añada una

funcionalidad al servidor23.

8.4 MySQL

Dentro del proyecto a realizar se utilizo MySQL como motor de base de datos

relacional, multihilo y multiusuario. MySQL es un sistema de gestión de base de

23 http://es.wikipedia.org/wiki/Apache_http_server [Citado el: 28 de Marzo de 2010] SERVIDOR HTTP APACHE

32

Page 33: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

datos con licenciamiento GNU GPL, lo que significa que es libre en algunas partes

del código, sin embargo la compañía Sun Mycrosystems posee el copyright.

“La popularidad como aplicación Web está muy ligada a PHP, que a menudo

aparece en combinación con MySQL” 24, lo que hace que esté presente en muchas

aplicaciones Web transaccionales, debido a que en estos entornos “hay baja

concurrencia en la modificación de datos y en cambio el entorno es intensivo en

lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones” 25.

8.5 PHP

El objetivo del proyecto era lograr tener una aplicación dinámica vía Web, y es en

este punto donde se pensó en PHP como lenguaje de programación, la razón

primordial es que “PHP es un lenguaje de programación interpretado, diseñado

originalmente para la creación de páginas Web dinámicas. Es usado

principalmente en interpretación del lado del servidor (Server-side scripting)” 26.

“PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor” 27,

diseñado primordialmente para desarrollo Web y que se complementa con HTML,

debido a que se toma el código PHP como entrada y se crea páginas Web como

24 http://es.wikipedia.org/wiki/MySQL [Citado el: 28 de Marzo de 2010] MySQL25 IBID26 http://es.wikipedia.org/wiki/.php [Citado el: 3 de Abril de 2010] PHP27 IBID

33

Page 34: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

salida; además puede ser utilizado en la mayoría de los sistemas operativos y

plataformas sin costo alguno, debido a su licencia PHP License, que es

considerada software libre por la Free Software Foundation, máximo organismo

del software libre.

Algunas ventajas a resaltar de este lenguaje de programación es que, como se

menciona anteriormente, es multiplataforma, la capacidad de conexión con los

gestores de bases de datos del mercado es alta, y aun mas, destaca la facilidad

de conectividad con MySQL, su documentación es amplia lo que facilita su

implementación, permite las técnicas de Programación Orientada a Objetos, que

es considerada la mejor técnica en la actualidad para el desarrollo de software. 28

Sin embargo, también se encuentra que una de las falencias máximas

encontradas es que permite la creación de código desordenado y complejo de

mantener, si no se lleva una técnica definida por parte del programador.

8.6 SOFTWARE LIBRE

Uno de los factores que las compañías toman en cuenta en el desarrollo de los

proyectos, es el tiempo que se va a invertir y el dinero necesario para sacar

adelante el proyecto, por esta razón uno de los factores a tener en cuenta son las

bondades que brinda el software libre, al eliminar el pago de licencias y en enfocar

los esfuerzos en las aplicaciones y plataformas necesarias en el proyecto a

realizar.

28 IBID

34

Page 35: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

El “Software Libre” es un asunto de libertad, no de precio. Para entender el

concepto debes pensar en “libre” como en “libertad de expresión”, no como en

“cerveza gratis” [N. del T.: en ingles una misma palabra (free) significa tanto libre

como gratis, lo que ha dado lugar a cierta confusión].29

Software libre es la definición del software que le brinda a los usuario la libertad de

usar el producto como ellos dispongan, cuando lo adquieren pueden usarlo,

copiarlos, estudiarlo, modificarlo y distribuirlo libremente, sin cobrar patentes o

licencias, el único costo que se puede, o no, tener en cuenta es aquel relacionado

con el medio de distribución (medios magnéticos, medios digitales o medios

ópticos, entre otros).

LIBERTADES DEL SOFTWARE LIBRE

De acuerdo con tal definición, el software es “libre” si garantiza las siguientes libertades:

Libertad 0 Libertad 1 Libertad2 Libertad 3

Ejecutar el programa con

cualquier propósito (privado,

educativo, publico,

comercial, militar, etc.)

Estudiar y modificar el

programa (para lo cual es necesario acceder al código

fuente)

Copiar el programa de

manera que se pueda ayudar al

vecino o a cualquiera.

Mejorar el programa y publicar las

mejoras.

29 http://www.gnu.org/philosophy/free-sw.es.html [Citado el: 3 de Abril de 2010] LA DEFINICION DE SOFTWARE LIBRE

35

Page 36: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

Es importante señalar que las libertades 1 y 3 obligan a que se tenga acceso al código fuente.

La “libertad 2” hace referencia a la libertad de modificar y redistribuir el software libremente licenciado bajo algún tipo de licencia de software libre que

beneficie a la comunidad.Figura 3. Libertades del Software Libre

8.7 METODOLOGIA DE PROGRAMACION XP

Para el desarrollo del proyecto la base fue la metodología Extreme Programming –

XP (Programación Extrema) que básicamente consiste en “la simplicidad, la

comunicación y la realimentación o reutilización del código desarrollado”30, la cual

consta de 4 fases que son:

Fase de Planificación.

Fase de Diseño.

Fase de Desarrollo.

Fase de Pruebas.

FASE DE PLANIFICACION

Su objetivo es determinar las causas, efectos, el porqué y cómo del proyecto, se

escriben los relatos de los usuarios, esto es la forma como ellos ven las

necesidades del sistema, cumple la misma finalidad que los casos de uso, con la

30 http://www.info-ab.uclm.es/asignaturas/42551/trabajosAnteriores/Presentacion-XP.pdf [Citado el: 3 de Abril de 2010] INTRODUCCION A EXTREME PROGRAMMING

36

Page 37: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

diferencia que los escriben los usuarios de forma precisa y con un lenguaje no

técnico, se utiliza en la fase de pruebas para determinar si el programa cumple

con lo que especifica el usuario.

En esta fase también se busca “el plan de publicaciones” (release planning) donde

se indiquen las historias de usuario que se crearan para cada versión del

programa, de esta forma se establecen los tiempos de implementación y la

prioridad de las historias implementadas.

Se busca la forma de establecer las iteraciones, por regla general cada iteración

tendrá una duración aproximada de 3 semanas y depende del plan de

publicaciones para la implementación de las historias que no pasaron el test por

parte de los usuarios.

Se hace necesario de las reuniones diarias donde se expongan los problemas,

soluciones e ideas de forma conjunta. Estas reuniones deben ser fluidas y todo el

mundo debe tener voz y voto.

FASE DE DESARROLLO

En esta etapa se define el código a implementar, durante todas las etapas de la

metodología se cuenta con el usuario, en esta etapa su presencia es aun más

importante porque es quien define la manera de implementar su historia de

usuario. El objetivo de esta fase es realizar la codificación y compilación de la

37

Page 38: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

estructura del aplicativo, de acuerdo a las especificaciones funcionales definidas

en la etapa anterior.

Una vez los programas sean modificados, se debe comenzar con la última fase.

FASE DE PRUEBAS

Uno de los pilares de la metodología XP es el uso de test para comprobar el

funcionamiento de los códigos que vayamos implementando. El uso de los test en

X.P es el siguiente.

Hay que someter a test las distintas clases del sistema omitiendo los métodos

las triviales.

El uso de test es el método de garantizar la refactorización, porque el cambio

en el código no tiene que significar el cambio en su funcionamiento.

Los diversos test se deben subir al repositorio con el código, no se debe subir

un código sin que haya sido evaluado y aprobado su respectivo test.

38

Page 39: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

9. MARCO METODOLOGICO

9.1 TIPO DE ESTUDIO

La metodología de investigación aplicada en el presente proyecto de pasantía se

baso en un estudio de tipo desarrollo tecnológico, donde se pretendía aplicar los

conocimientos adquiridos durante la formación profesional propia de la Ingeniería

de Sistemas, para dar como resultado un producto tecnológico para solucionar un

problema que se encontraba presente en el ambiente de aplicación.

El presente trabajo es de corte transversal, debido a que toda la información se

recopilo en un tiempo específico, para lograr, a partir de esta información,

desarrollar la solución implantada y de esta manera dar respuesta a las

expectativas del Departamento de Soporte Hosting y Dominios.

El sector que afectó el presente trabajo son los usuarios que requieren el soporte

en las tecnologías de información brindado por el Departamento de Soporte

Hosting y Dominios. La variable a que se estudió, fueron las activaciones hechas

por el Departamento de Soporte Hosting y Dominios, donde se determinaron los

puntos críticos para facilitar la atención brindada. Este proyecto se desarrolló a

través de seis meses, en los cuales se cumplieron las etapas establecidas en el

cronograma de trabajo, para facilitar el desarrollo de la solución a implantar y

lograr consolidar los objetivos planteados. Toda la información, estudio y

desarrollo del proyecto se desarrolló en Bogotá D.C – Colombia, sin embargo su

39

Page 40: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

impacto se vio reflejado en todos los clientes que maneja la compañía a nivel

mundial.

9.2 METODO Y/O DISEÑO DE LA INVESTIGACION

El diseño de la investigación se basó en un diseño cualitativo, donde se estructuró

formalmente y se especificó las características del diseño a implantar en la

solución al problema planteado; tomando las variables de investigación: tipos de

datos cliente, tipo de activación (hosting, dominio),

Además dentro de la investigación se pudo evidenciar que se estaba manejando

un sistema de registro basado en “Hojas de registro en Access” para la

consignación de los datos necesarios en el manejo de las activaciones de Dominio

y Hosting, lo cual llevaba a que la información no fuera correctamente consignada,

cometiendo errores en digitación, falta de información del cliente, según cálculo

del Gerente General, cerca del 15% de los cliente registrados que habían hecho

activación no se detallaban en las hojas de registro, y cerca del 60% de los que se

registraban no tienen la información completa, faltando por ejemplo nombre de la

razón social, nombre de la persona de contacto, número telefónico de contacto,

correo electrónico para notificaciones, etc31. De esta forma según las encuestas de

satisfacción que se habían realizado por parte de la compañía a los usuarios, se

31 Según Simon Borrero, Gerente General Imaginamos.com

40

Page 41: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

encontraba que el Departamento de Soporte Hosting y Dominios tenía una imagen

negativa entre los usuarios32.

Se encontró que muchos clientes no eran correctamente contactados para

recordar su renovación, a causa del escenario anteriormente descrito, en

ocasiones estos clientes no tenían datos de contacto y hasta el momento en que

su servicio era suspendido se lograba encontrar la forma de que hicieran su

renovación, generando malestar y una pésima imagen de servicio posventa.

En el pasado la empresa intento utilizar un sistema de CRM para este tipo de

registro pero según el gerente de la compañía este sistema contaba con

herramientas que no se estaban utilizando y generaba que la información no fuera

fácilmente localizada, por esta razón decidieron suspender este CRM y comenzar

a utilizar la hoja de registro en Access, que aunque no fue una muy buena

decisión para ellos logró dar algunas soluciones como el hecho de poder tener un

poco mas fácil la información, conocer y realizar la verificación del servicio de

algunos clientes que se comunicaban para obtener información de su servicio

activo.

En algún momento se evaluó la posibilidad de utilizar un software propietario

llamado WHCMS33, sin embargo la empresa encontró que este sistema aun

32 Dato suministrado por Simon Borrero, Gerente General de Imaginamos.com33 http://www.whmcs.com/features/ [Citado el: 20 de Noviembre de 2011] FEATURES-WHCMS

41

Page 42: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

cuando ofrecía algunas alternativas de organizar la información, su costo/beneficio

no era el mejor para la compañía, Simon Borrero, gerente de la empresa,

manifestó que la licencia mensual era excesiva y algunos módulos eran confusos

para el manejo por parte de los usuarios del Departamento de Soporte, según la

información que se había brindado se uso por dos meses, encontrando que el

beneficio era muy bajo por lo que se desecho.

Sin embargo, algunos módulos que el software descrito tenia, se reciclaron para el

desarrollo final, tales como Datos de contacto del cliente, registro de servidores de

hosting disponibles, fecha de activación y próximo vencimiento, reporte de

activaciones.

9.3 PARTICIPANTES

Estuvo conformado por los ingenieros que conforman el Departamento de Soporte

Hosting y Dominios Imaginamos.com, quienes son los directos responsables de

atender a los clientes y registrar las activaciones que se hacen, además de

garantizar que toda la infraestructura de tecnología funcione sin inconvenientes,

los usuarios quienes activan sus servicios con la compañía y que en ocasiones

solicitan sus datos de acceso a la administración de su hosting, por esta razón

requieren la información de forma casi inmediata, quienes no tienen mucho

conocimiento en los problemas comunes de la infraestructura de sistemas y a

quienes con este proyecto se alcanzó y se evitó que sus registros de activación y

42

Page 43: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

sus datos de contacto no estuvieran completos o no pudiesen ser ubicamos

rápidamente.

9.4 RECURSOS

Analista, Programador, diseñador y desarrollador de aplicaciones

específicas

Jairo Enrique Celis Carrillo, estudiante de Ingeniería de Sistemas, Universidad

Distrital Francisco José de Caldas.

Asesores

Jose Jair Bonilla, Director de Desarrollo Imaginamos.com

Fernando Martínez Rodríguez, Docente de la Universidad Distrital

Francisco José de Caldas.

RECURSO TECNOLÓGICO

Recurso Descripción

Procesamiento Memoria RAM Referencia

ComputadorPentium IV 2.80

Ghz1 GB HP DX2200

Elementos de Red 1 Router Linksys de 8 puertos

Elementos de

oficinaEscritorio, Esferos, tijeras, marcadores

Otros Pantalla auxiliar para conectar al portátil personal

TABLA 1. RECURSO TECNOLOGICO

43

Page 44: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

9.5 INSTRUMENTOS Y EQUIPOS

La recolección de la información se hizo a través de entrevistas y listas de

chequeo con el Director de Desarrollo, a partir de los requerimientos que surgieron

de las reuniones, se estableció los puntos claros a implementar en la solución

planteada.

9.6 INGENIERIA DEL PROYECTO

La metodología utilizada en el proyecto se baso en la metodología de Ingeniería

de Software XP, debido a que es la metodología utilizada en la empresa y brinda

mayor control y agilidad en el desarrollo del sistema planteado. Antes de ejecutar

como cada una de las fases propias de la metodología XP, se considero necesario

hacer algunas reuniones preliminares, dentro de éstas se estableció a grandes

rasgos las historias de usuario que son de interés para el director del

Departamento de Soporte Hosting y Dominios, al mismo tiempo el equipo de

desarrollo se familiarizo con las herramientas, tecnologías y prácticas que se

utilizaron en el proyecto, por otro lado se conoció formalmente los requerimientos

para el sistema implementado.

Por recomendación del Gerente General de la compañía, se hizo necesario

conocer algunos procesos internos de la empresa, además de conocer la directriz

del negocio y las personas encargadas de cada una de las áreas de la compañía.

44

Page 45: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

A continuación se explica cada una de las fases para posteriormente introducir los

resultados obtenidos de acuerdo a cada una de las fases cumplidas en el ciclo de

vida de la Programación Extrema.

FASE DE PLANIFICACION

En esta fase el cliente establece la prioridad de cada historia de usuario, y

correspondientemente, los programadores realizan una estimación del esfuerzo

necesario de cada una de ellas. Se toman acuerdos sobre el contenido de la

primera entrega y se determina un cronograma en conjunto con el cliente.

En esta etapa de planificación se hizo una estimación del tiempo dedicado a cada

fase del desarrollo, tomando como base la cantidad de requerimientos que los

usuarios determinaron para el sistema a implementar (esto es los integrantes del

Departamento de Soporte Hosting y Dominios), además del manejo de la

información (actualización, cambio de datos fuente, cantidad de registros por

procesar, entre otros), se estudio la concurrencia y recurrencia a los datos a

manejar en el sistema para evitar retrasos en la información y caídas eventuales

del sistema; por otro lado se establecieron las prioridades de las funcionalidades a

desarrollar según las historias de usuario entregadas, generando un plan de

entregas para acercarse al desarrollo deseado.

Esta etapa ayudo a conocer la forma de abordar la solución planteada, las

expectativas de la empresa con respecto al sistema de desarrollo planteado,

aterrizó cada uno de los requerimientos planteados.

45

Page 46: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

FASE DE DISEÑO

En ésta etapa se estableció la forma de emplear los relatos o historias de usuario,

de acuerdo a las prioridades dadas a cada uno de los relatos que fueron

entregados se hicieron los prototipos del sistema de incidencias, éstos ayudaron a

establecer la funcionalidad de los módulos a implementar en el proyecto.

Estos prototipos permitieron mostrar al Departamento de Soporte Hosting y

Dominios un acercamiento a la funcionalidad del sistema, de ésta manera se

podía comprender los pasos que sigue el sistema de incidencias y las pantallas

que el usuario observa en cada momento, ayudando a conocer la visión y

requerimiento de los usuarios.

En la fase de diseño se le permitió a los usuarios un acercamiento inicial no

funcional al sistema, se recogieron comentarios del sistema y permitió hacer

ajustes finales al diseño planteado, para llegar a obtener finalmente el sistema

visual deseado.

FASE DE DESARROLLO

En esta etapa se desarrollo el código que se implementa para el sistema de

incidencias, de acuerdo a los prototipos realizados en la fase anterior se

parametrizó el sistema para que cumpla con los requerimientos y observaciones

por parte del Departamento de Soporte Hosting y Dominios, además se

implemento las historias de usuario con base en las prioridades establecidas. El

46

Page 47: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

Director de Desarrollo de Imaginamos.com, estuvo presente en toda esta etapa

para establecer que el desarrollo implementado cumpliera con las expectativas del

proyecto y se ajustara a las historias de usuario entregadas.

Por cada sugerencia por parte del Director de Desarrollo, se hizo la modificación a

los códigos pertinentes, de esta forma se ajustaron los prototipos realizados

llevando a mejoras del sistema final funcional.

FASE DE PRUEBAS

Recordando que uno de los pilares de la metodología XP es el uso de test para

comprobar el funcionamiento de los códigos que vayamos implementando.

Cuando, se establece que el desarrollo cumplió con los ajustes solicitados al

sistema de incidencias, se pasó a la etapa de pruebas; esta etapa nos dio los

puntos principales en los cuales el sistema implementado no estaba cumpliendo

con lo esperado como producto final, se elaborarán diferentes pruebas:

Pruebas al código fuente, esta prueba se realizó para limpiar el código

fuente de instrucciones que no sirven de nada, en ocasiones algunas

instrucciones se comentan debido a los cambios en el código lo que origina

que algunas instrucciones que realmente no funcionan queden allí, además

se verifico que las funcionalidades del sistema de incidencias se ejecutaban

como se desea.

47

Page 48: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

Figura 4. Revisión de código34

Se hizo una prueba alfa, esta prueba consistía en que los usuarios finales

elegidos por el Director de Desarrollo, hacían pruebas de funcionalidad y

realizaban preguntas acerca del sistema de registro para lograr registrar las

activaciones y hacer seguimiento de las mismas, durante esta etapa todos

contaron con la presencia del programador, para despejar dudas y

responder a las sugerencias hechas por los usuarios.

Se hizo una prueba beta, esta prueba consistía en que los usuarios

definidos tenían la oportunidad de verificar el sistema, esta vez sin la

presencia del programador, donde se evaluaba la disposición de la

información, la facilidad para registrar su incidencia, la visualización del

seguimiento que se le hace a la incidencia, y pasaron por escrito en un

formato como el siguiente, los errores encontrados al sistema.

34 http://www.willydev.net/descargas/oguzman-diseno_pruebas.pdf [Citado el: 3 de Abril de 2010]

48

Page 49: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

Figura 5. Anotaciones Usuario Prueba Beta35

35 http://www.willydev.net/descargas/oguzman-diseno_pruebas.pdf [Citado el: 3 de Abril de 2010]

49

Page 50: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

10.RESULTADOS OBTENIDOS

Durante el desarrollo del proyecto se utilizo la metodología de programación XP,

donde se implementaron las fases que la componen, obteniendo los resultados a

continuación descritos en cada una de las fases.

10.1 FASE DE PLANIFICACION

REQUERIMIENTOS PROYECTOSISTEMA DE ADMINISTRACION PARA LA ACTIVACION YSEGUIMIENTO DE CLIENTES DE HOSTING Y DOMINIOS

A través del siguiente documento se establecen los requerimientos o

funcionalidades que el sistema debe cumplir a satisfacción:

1. Tener acceso desde cualquier navegador a la aplicación web

garantizando disponibilidad 24/7/365.

2. Lograr organizar la información de clientes actuales y futuros

permitiendo disponibilidad de información detallada de cada uno en cualquier

instante.

3. Ofrecer la posibilidad de obtener resultados en poco tiempo, esto es

informes semanales, mensuales o en fechas especificas.

4. Ofrecer una herramienta sencilla para registrar activaciones o

renovaciones de clientes, brindando por ende orden y estructura de los datos.

5. Permitir mostrar información primordial para el Departamento de

Soporte, tales como: Clientes vencidos, clientes por vencer, clientes

potenciales, clientes a llamar antes de 3 meses.

Se crean diagramas iniciales de cómo podría ser la aplicación.

Historias de Usuario

50

Page 51: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

Dentro de la planeación se estableció la forma como se debía mostrar la

información, aspectos que eran importantes para la funcionalidad del sistema y

como los datos a mostrar en principio se debían mostrar.

Para esto se crearon unos diagramas iniciales de las vistas de diseño como punto

de partida, a continuación adjunto vistas realizadas preliminarmente:

Figura 6. Historia de usuario ingreso

Figura 7. Historia de usuario pagina inicial

51

Page 52: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

Figura 8. Historia de usuario adición de activación

Figura 9. Historia de usuario edición de activación

Figura 10. Historia de usuario detalle de activación

52

Page 53: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

Figura 11. Historia de usuario generación de informes

10.2 FASE DE DISEÑO

Se determino con el Director de Desarrollo crear diagramas iniciales de cómo

podría ser el diseño de la aplicación a nivel de usuario final, es decir se crearon

pantallas del sistema de acuerdo a la información que se requería y como se

debía mostrar, además fue un punto de partida para el staff de diseñadores y

desarrolladores, estableciendo parámetros de vista con los cuales regirse.

A diferencia de los diagramas de la fase de planeación, estas vistas se orientaban

más hacia la disposición final, vistas reales y secuencia especifica de la aplicación,

fueron diseños que en la empresa se llaman "mockups de vistas de diseño",

metodología propia de la compañía.

Ver Anexo A.

53

Page 54: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

Estas vistas fueron entregadas al staff de diseño para ser diseñadas en HTML y

ser maquetadas finalmente, para posterior desarrollo por parte del staff de

desarrolladores.

Igualmente se entregaron al staff de desarrollo para que junto con la maquetación

del diseño HTML se tuviera en cuenta la secuencia de vistas de acuerdo a las

opciones y se constituyo en un prototipo del desarrollo.

Antes de pasar a la etapa de Desarrollo se construyo el modelo de la base de

datos, para establecer los parámetros iniciales del desarrollo, luego de verificar los

distintos modelos de la entidad – relación se estableció como el modelo final el

siguiente modelo, de esta forma se diseña la estructura de la base de datos.

Figura 12. Modelo Entidad – Relación Base de datos del sistema

Como finalización del diseño se logro obtener los resultados esperados para el

usuario final, a continuación se presentan algunos pantallazos del sistema

desarrollado donde se observa el diseño planteado:

54

Page 55: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

Figura 13. Pantallas del sistema desarrollado

55

Page 56: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

10.3 FASE DE DESARROLLO

Al tener los requerimientos iniciales, las historias de usuario y el prototipo del

sistema, se estableció la fase de desarrollo, donde se desarrollaron los códigos

correspondientes a cada parte del diseño estableció en HTML y la estructura de la

base de datos.

Se utilizo un desarrollo orientado a objetos, donde se establece la capa de

aplicación que es finalmente lo que el usuario final observa e interactúa con él, de

establecen “DAO’s” que son los objetos establecidos en el código del proyecto y

desarrollados a través de entidades, este tipo de desarrollo y la metodología de

programación XP es una práctica implementada por la empresa en todos sus

proyectos de aplicación.

Dentro de la codificación por ejemplo podemos encontrar un ejemplo muy sencillo

para conectarse a la base de datos:

Archivo daoConnection.php

<?php session_start();?><?php

if( isset($_SESSION['admin']) ){ header("location: ./../../admin/menuAdmin.php"); exit;}

include '../dao/daoConnection.php';include '../dao/usersDAO.php';include '../entities/user.php';

$login = $_POST['usuario'];$pass = $_POST['pass'];

$location = "location: ./../../admin/index.php?";

if($login == "" || $pass == ""){ header($location."&errorL1"); exit;}

56

Page 57: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

$userDAO = new userDAO;$thisUser = $userDAO->getUserByLogin($login);

if( $thisUser == null){ header($location."&errorL2"); exit;}

$passCrypt = mhash(MHASH_MD5, $pass);

if($thisUser->getPass() != $passCrypt){ header($location."&errorL3"); exit;}

//everything fine!$_SESSION['admin'] = serialize($thisUser);

header("location: ./../../admin/menuAdmin.php");exit;?>

Donde se puede observar de forma muy sencilla como se crean los objetos y se

trabaja con las entidades.

Este tipo de metodología de programación nos permitió poder desarrollar el

sistema de forma rápida, buscando una mejora continua de las diferentes

interacciones y logrando obtener resultados que nos llevan al cumplimiento de los

diferentes objetivos finales.

10.4 FASE DE PRUEBAS

Dentro de la fase de pruebas se hizo una prueba o revisión al código fuente

desarrollado, esto nos ayudo a quitar líneas de código que se habían comentado,

ordenar el código para ser fácilmente interpretado por un desarrollador a futuro,

como finalidad se limpio el código fuente.

Una de las pruebas que se realizo estuvo establecida por el siguiente formato:

57

Page 58: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

REVISION DEL CODIGO

FORMATO DE REVISION DEL CODIGO

Fecha: ______________________

Reporte:__________________ Descripción: ____________________

Analista: __________________ Revisor: _______________________

REVISION DEL CODIGO

Actividad Si NoNo

AplicaInformación Adicional

¿Se he hecho revisión por pares?

¿Se ha realizado el proceso de afinamiento sql?

¿Está la mayor cantidad de código en la base de datos?

¿El código cumple con los estándares de la compañía?

¿El código está organizado de tal forma que pueda ser interpretado?

¿La relación de lo que ejecuta el código y la salida obtenida, es la esperada?

TABLA 2. FORMATO REVISION DE CODIGO

El formato nos ayuda a hacer una revisión al código enfocándonos en el registro

de las mejoras que se deben establecer en el desarrollo del sistema, cuando se

58

Page 59: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

detecta una falla o se establece una recomendación se llena el formato en la

sección de Información adicional, logrando que se puedan hacer mejoras en el

código fuente final.

Al final se hizo una prueba de Usuario Prueba Beta, donde algunos usuarios

seleccionados escribieron los errores u observaciones encontradas en el sistema:

REVISION PRUEBA BETA

FORMATO DE PRUEBA BETA

Fecha: ______________________

Revisor:______________________ Prueba No:

_______________________

Tabla de tipos estándar de defectos

Código Nombre Descripción10

20

30

40

50

60

70

80

Documentación

Sintaxis

Manejo de Versiones

Asignación

Interfaces

Validación

Datos

Funciones

Comentarios, mensajes

Ortografía de los comandos, puntuación,errores de tecleo, formato de las instrucciones

Manejo de cambios, librerías,control de versiones

Declaraciones, identificadores duplicados,alcance y límites de los mismos

Llamadas y referencias a procedimientos,I/O, interfaz de usuario

Mensajes de error, validaciones incorrectas

Estructuras, contenidos, inicializaciones

Defectos de lógica, puntero, ciclos,recursividad, cálculo y funcionamiento

59

Page 60: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

90

100

Sistema

Entorno

Configuración, memoria, tiempo de respuesta

Problemas de diseño, compilación, pruebas del ambiente de desarrollo

Listado de defectos encontrados

Código

DefectoLocalización Descripción del defecto encontrado

TABLA 3. FORMATO PRUEBA BETA

El anterior formato se ha complementado con un formato de pruebas de

funcionalidad:

FORMATO DE PRUEBAS DE FUNCIONALIDAD

Analista: Ejecución 1 2 3 4 5

Fecha: Aprobado

Descripción/observaciones/reportes

Pantallas:

60

Page 61: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

TABLA 4. FORMATO DE PRUEBAS DE FUNCIONALIDAD

Esto ayudo a conseguir que los posibles errores encontrados cuando los usuarios

interactúan con el sistema se lograran subsanar de forma rápida y ayudar a

conseguir los objetivos planteados del sistema.

61

Page 62: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

11.RECOMENDACIÓNES PARA PROYECTOS FUTUROS

Dentro de las recomendaciones para futuros proyectos podemos encontrar

algunos aspectos que considero importantes:

- Como mejora del sistema se recomienda que se complemente el sistema

empleado para utilización en otros aspectos en los que se registren

servicios cuyo pago sea regularmente en tiempos largos (mes, semestre,

año).

- Para futuros proyectos de esta rama se recomienda utilizar más iteraciones

en las fases de la metodología de programación XP, para obtener sistemas

más robustos sin dejar de lado las libertades que ofrece este tipo de

metodología.

- Variar los módulos que se emplearon tales como clientes, servicios,

renovación de servicios, llamadas a clientes, registro de soporte, etc, esto

ayudara a obtener un sistema a la medida de forma sencilla, pero dejando

libertad de poder obtener resultados a la medida.

62

Page 63: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

12.CONCLUSIONES

- Se diseño en implemento un sistema web de administración que ha

permitido la activación y seguimiento de clientes de hosting y dominios para

imaginamos.com, permitiendo obtener mayor control, seguimiento e

información de los clientes y las estadísticas de activación y renovación de

los servicios.

- Se implementó un modulo de reportes, el cual permite analizar los servicios

en la activación de los servicios de hosting y dominios, ayudando en la

toma de decisiones de marketing, dirigidos a aumentar el número de

activaciones semanales.

- Se implemento un modulo de registros de activaciones, clientes, servicios,

permitiendo de forma rápida y sencilla llevar los registros correspondientes

de las activaciones y organizando la forma de realizar esta operación por

parte del Departamento de Soporte.

- Se diseño una interfaz intuitiva y amigable, ayudando a obtener orden en

las activaciones de los clientes, datos de contacto e información relevante

para el Departamento de Soporte Hosting y Dominios.

- Se logro conseguir que el departamento de Soporte obtuviera una visión

amplia de las activaciones realizadas, organizando el proceso de obtener

los datos de los clientes y dar de alta el servicio, así como lograr tener la

información de forma más rápida y sencilla.

63

Page 64: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

13.BIBLIOGRAFIA

PRESSMAN, Roger S. Ingeniería del software, 6ª edición. McGraw-Hill,

España, 2005.

SOMMERVILLE, Ian. Ingeniería de Software, 7ª Edición. Ed. Pearson

Educación, España, 2005.

SILBERSCHATZ, Abraham. Fundamentos de Bases de Datos, 5ª Edición.

McGraw-Hill, España, 2006.

13.1 REFERENCIAS ELECTRÓNICAS

Imaginamos.com – Diseño Páginas Web A La Medida

http.//www.imaginamos.com

Service Level Agreement

http://en.wikipedia.org/wiki/Service_level_agreement

Servicios Web en plataforma .NET

http://www.desarrolloweb.com/articulos/1535.php

Guía Breve de Servicios Web

http://www.w3c.es/Divulgacion/GuiasBreves/ServiciosWeb

W3C Consortium. Web Services Architecture. [En línea]

http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/#whatis.

Servicio Web

http://es.wikipedia.org/wiki/Servicio_Web

64

Page 65: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

Conceptos básicos del servidor Web

http://www.cibernetia.com/manuales/instalacion_servidor_web/1_conceptos

_basicos.php

Servidor HTTP Apache http://es.wikipedia.org/wiki/Apache_http_server

RFC 2616

http://www.ietf.org/rfc/rfc2616.txt

NETCRAFT

http://news.netcraft.com/

Arquitectura del servidor Apache

http://www.desarrolloweb.com/articulos/1112.php

MySQL

http://es.wikipedia.org/wiki/MySQL

MySQL :: Dispelling the myths

http://dev.mysql.com/tech-resources/articles/dispelling-the-myths.html

La definición del software libre

http://www.gnu.org/philosophy/free-sw.es.html

Software Libre

http://es.wikipedia.org/wiki/C%C3%B3digo_libre

Free Software Foundation

http://es.wikipedia.org/wiki/FSF

PHP

http://es.wikipedia.org/wiki/.php

65

Page 66: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

Sitio web official de PHP

http://www.php.net/

Manual de referencia de PHP

http://es.php.net/manual/es/

66

Page 67: Diseño e implementacion de un sistema de registro y activacion de clientes de hosting y dominios

ANEXOS

67