UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERIA ESCUELA DE INGENIERIA EN COMPUTACION DISEÑO Y ELABORACIÓN DE UN SOFTWARE PROTOTIPO PARA LA CREACIÓN DE UN SERVIDOR WEB, ORIENTADO A LA MEDIANA EMPRESA DE EL SALVADOR TRABAJO DE GRADUACION PARA OPTAR AL GRADO DE INGENIERO EN CIENCIAS DE LA COMPUTACION PRESENTADO POR: BR. DAYSI ELIZABETH MINEROS VALENCIA CIUDADELA DON BOSCO DICIEMBRE 2003 UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERIA RECTOR ING. FEDERICO MIGUEL HUGUET RIVERA VICERECTOR PRESBÍTERO VICTOR BERMÚDEZ SECRETARIO GENERAL LIC. MARIO RAFAEL OLMOS ARGUETA DECANO DE LA FACULTAD DE INGENIERIA ING. CARLOS GUILLERMO BRAN UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERIA ESCUELA DE INGENIERIA EN COMPUTACION JURADO EVALUADOR DEL TRABAJO DE GRADUACIÓN: DISEÑO Y ELABORACIÓN DE UN SOFTWARE PROTOTIPO PARA LA CREACIÓN DE UN SERVIDOR WEB, ORIENTADO A LA MEDIANA EMPRESA DE EL SALVADOR Lic. Santiago Abarca Fuentes Ing. Carlos Alberto Reyes Quintero JURADO JURADO Lic. Fidias Edgardo Alfaro Arévalo Ing. Guillermo Antonio Valencia JURADO ASESOR AGRADECIMIENTOS A Dios Padre Todopoderoso; por haberme brindado la confianza, el conocimiento y la fortaleza para culminar mi trabajo de graduación y mi carrera universitaria, gracias por no haberme abandonado durante los momentos difíciles y haber escuchado todas mis oraciones. A mis Padres y Hermanos; por el apoyo, la confianza, las palabras de aliento, la paciencia que tuvieron en los momentos difíciles, por sus oraciones y consejos, en fin por toda la ayuda que me brindaron de una u otra forma les agradezco de todo corazón. A mis amigos especiales, por su apoyo incondicional, su ayuda desinteresada, por sus palabras de aliento y su plena confianza en mi capacidad. Un agradecimiento especial a todas las personas que de alguna manera me proporcionaron su ayuda y su apoyo durante mi carrera universitaria y durante el proceso de graduación. Daysi Elizabeth Mineros Valencia. INDICE INTRODUCCIÓN .................................................................................................... 1 CAPITULO I. PLANTEAMIENTO DEL PROBLEMA ............................................. 3 1.1 ANTECEDENTES.......................................................................................... 3 1.2 SITUACION PROBLEMÁTICA ...................................................................... 7 1.3 JUSTIFICACIÓN............................................................................................ 9 1.4 ENUNCIADO DEL PROBLEMA .................................................................. 12 1.5 DELIMITACION ........................................................................................... 12 1.5.1 DELIMITACION ESPACIAL .................................................................. 12 1.5.2 DELIMITACION GEOGRAFICA ............................................................ 12 1.5.3 DELIMITACION ESPECIFICA .............................................................. 12 1.5.4 DELIMITACION TEMPORAL ................................................................ 12 1.6 OBJETIVOS ................................................................................................ 13 1.6.1 OBJETIVO GENERAL .......................................................................... 13 1.6.2 OBJETIVOS ESPECÍFICOS ................................................................. 13 1.7 ALCANCES Y LIMITACIONES .................................................................... 14 1.7.1 ALCANCES ........................................................................................... 14 1.7.2 LIMITACIONES ..................................................................................... 15 1.8 BENEFICIOS ............................................................................................... 16 1.9. MARCO TEÓRICO ..................................................................................... 19 1.9.1 INTERNET ............................................................................................ 19 1.9.1.1 CONCEPTO ................................................................................... 19 1.9.1.2 ESTRUCTURA DE LA RED INTERNET ........................................ 19 1.9.1.3 PROTOCOLO TCP/IP .................................................................... 19 1.9.1.4 DIRECCIONES IP Y NOMBRES DE DOMINIO ............................. 20 1.9.1.5 CONEXIÓN A LA RED ................................................................... 21 1.9.1.6 PROVEEDORES DE INTERNET ................................................... 21 1.9.1.7 SEGURIDAD EN INTERNET Y FIREWALL ................................... 22 1.9.1.8 PÁGINAS WEB .............................................................................. 23 1.9.1.9 HTTP (HYPER TEXT TRANSFER PROTOCOL) ........................... 24 1.9.1.10 TIPOS MIME ................................................................................ 31 1.9.2 SERVIDOR ........................................................................................... 32 1.9.2.1 CONCEPTO ................................................................................... 32 1.9.2.2 TIPOS DE SERVIDORES .............................................................. 32 1.9.2.3 SERVIDOR WEB ............................................................................ 33 1.9.2.4 PLATAFORMAS DE SERVIDORES WEB ..................................... 34 1.9.2.5 TIPOS DE SERVIDORES WEB ..................................................... 35 1.9.2.6 FUNCIONAMIENTO DE LOS SERVIDORES WEB ....................... 36 1.9.2.7 SERVIDORES WEB MÁS POPULARES ....................................... 37 1.9.2.8 WEB HOSTING .............................................................................. 38 1.9.3 SISTEMAS DE INFORMACIÓN (SI) ..................................................... 39 1.9.3.1 DEFINICIÓN ................................................................................... 39 1.9.3.2 OBJETIVOS GENERALES DE LOS SI .......................................... 39 1.9.4 DISEÑO DE SISTEMAS ....................................................................... 39 1.9.4.1 DEFINICIÓN ................................................................................... 39 1.9.4.2 FASES DEL DISEÑO DE SISTEMAS ............................................ 40 1.9.5 TECNICAS DE PROGRAMACION ....................................................... 40 1.9.5.1 PROGRAMACION ESTRUCTURADA ........................................... 41 1.9.5.2 PROGRAMACION MODULAR ....................................................... 41 1.9.6 PROTOTIPOS ...................................................................................... 42 1.9.6.1 DEFINICIÓN ................................................................................... 42 1.9.6.2 DISEÑO MEDIANTE PROTOTIPOS .............................................. 42 1.9.7 MEDIANA EMPRESA ........................................................................... 44 1.9.7.1 DEFINICIÓN ................................................................................... 44 1.9.7.2 CARACTERÍSTICAS ...................................................................... 45 1.10 TEORIA ADOPTADA ................................................................................. 46 CAPITULO II. INVESTIGACIÓN DE CAMPO ...................................................... 47 2.1 OBJETIVO ................................................................................................... 47 2.2 METODOLOGIA DE INVESTIGACION ....................................................... 47 2.2.1 METODO DE INVESTIGACIÓN ........................................................... 47 2.2.2 TIPO DE ESTUDIO ............................................................................... 47 2.2.3 TÉCNICAS DE INVESTIGACIÓN ........................................................ 48 2.2.3.1 RECOPILACIÓN DE DATOS ......................................................... 48 2.2.3.2 ANÁLISIS DE LA INFORMACIÓN .................................................. 51 2.2.3.3 DISEÑO PROPUESTO .................................................................. 51 2.2.3.4 DOCUMENTACIÓN ....................................................................... 51 2.2.4 MARCO MUESTRAL ............................................................................ 51 2.2.4.1 POBLACIÓN................................................................................... 51 2.2.4.2. MUESTRA ..................................................................................... 52 2.3 INTERPRETACION DE LOS RESULTADOS .............................................. 54 2.3.1 ENTREVISTAS ..................................................................................... 54 2.3.2 OBSERVACIÓN .................................................................................... 55 2.3.3 ENCUESTAS ........................................................................................ 56 2.3.3.1 OBJETIVO GENERAL .................................................................... 56 2.3.3.2. PRESENTACIÓN DE LOS RESULTADOS ................................... 56 2.4 ANÁLISIS DE LOS RESULTADOS ............................................................. 78 CAPITULO III. DISEÑO DEL PROTOTIPO .......................................................... 80 3.1 OBJETIVO ................................................................................................... 80 3.2 ESTRUCTURA ............................................................................................ 80 3.2.1 DESCRIPCION DE LOS MÓDULOS .................................................... 82 3.3 FUNCIONAMIENTO .................................................................................... 95 3.4 DISEÑO DE LA INTERFAZ DEL SERVIDOR WEB .................................. 108 3.4.1 REQUERIMIENTOS ........................................................................... 108 3.4.2 DESCRIPCION DE LA INTERFAZ EN MODO TEXTO ...................... 109 3.4.3 DESCRIPCION DE LA INTERFAZ EN MODO GRAFICO .................. 113 3.5 DISEÑO DEL MECANISMO DE AUTORECUPERACION EN CASO DE FALLAS DEBIDAS A FACTORES EXTERNOS .............................................. 120 3.5.1 MECANISMO ADOPTADO ................................................................. 120 3.5.2 TOLERANCIA DE FALLAS ................................................................. 121 3.5.3 RAID ................................................................................................... 122 3.5.4. CONFIGURACIÓN DE RAID SOFTWARE ........................................ 128 3.5.5 SAI (UPS) ........................................................................................... 138 3.5.6. CONFIGURACION DEL SAI .............................................................. 141 3.6 COSTOS ................................................................................................... 146 CAPITULO IV. DESARROLLO DEL PROTOTIPO ............................................ 149 4.1 DESARROLLO DE LA INSTALACIÓN Y CONFIGURACIÓN ................... 149 4.2 DESARROLLO DE LA LECTURA DE CONFIGURACIÓN ........................ 152 4.3 DESARROLLO DEL PROGRAMA PRINCIPAL ........................................ 156 4.4 DESARROLLO DE LA ATENCION DE PETICIONES ............................... 159 4.5 DESARROLLO DE LIBRERÍA SERVER2 ................................................. 168 4.6 DESARROLLO DE LIBRERÍA LOGS ........................................................ 170 4.7 DESARROLLO DEL MODULO_CGI ......................................................... 172 CONCLUSIONES ............................................................................................... 175 RECOMENDACIONES ....................................................................................... 177 BIBLIOGRAFÍA .................................................................................................. 179 GLOSARIO ......................................................................................................... 181 ANEXOS I. MODELO DE CUESTIONARIO PARA ENTREVISTAS A EXPERTOS II. MODELOS DE ENCUESTAS III. LISTADO DE EMPRESAS ENCUESTADAS IV. MANUAL DEL USUARIO V. MANUAL DEL PROGRAMADOR 1 INTRODUCCIÓN Vivimos en una era de globalización y la tendencia mundial es la de abrir mercados en países lejanos. Dentro de este proceso, los medios masivos de comunicación juegan un papel crucial. El Internet cabe dentro de estos medios, pero ofrece ventajas que los demás no tienen; reducción de costos y una cobertura mundial las 24 horas del día y los 365 días del año. Internet cobra una gran importancia dentro de las empresas. Por un lado se ofrece una imagen adaptada a las nuevas tecnologías, necesaria en la sociedad de la información, y por otro le supone ahorro en costos de comunicaciones y de tiempos de desarrollo, producción y disposición del producto. Un gran número de comercios y empresas, conocedoras de la relevancia que día a día asume la importancia de contar con un Sitio Web, no se han aventurado en este proceso, aun sabiendo que traería importantes beneficios para sus negocios; lo anterior debido a que consideran que este tipo de servicios utilizan tecnologías avanzadas pudieran resultar caras, y a que no cuentan con una idea clara y concreta de como iniciarse en el proceso. La mayor parte del sector empresarial salvadoreño, en especial las Medianas Empresas, no esta integrado a Internet, debido a que la mayoría de las alternativas actuales no son completamente compatibles con su capacidad de inversión y mantenimiento, sobrepasando el valor de su presupuesto; o porque simplemente, no conocen los beneficios que pueden obtener. Por estas razones, se plantea la necesidad de proporcionar alternativas orientadas a construir o mejorar la infraestructura tecnológica del sector empresarial de El 2 Salvador. En el presente documento se estructura una propuesta de solución al problema. En el Capitulo I, se plantean la problemática acontecida y la situación actual, así como se destaca la importancia de realizar esta investigación, identificando los sectores objetivo hacia los cuales se enfoca el desarrollo de la misma. Por otra parte, se establece la finalidad del estudio a través de la definición de objetivos, alcances y limitaciones, así como se define, el marco teórico relacionado a la problemática establecida. En el Capitulo II, se demuestra mediante una investigación de campo, las causas y efectos ocasionados por la problemática planteada a través de la presentación y el análisis de los resultados obtenidos. De igual manera, se detallan los procedimientos involucrados en dicha investigación, haciendo referencia a las técnicas de ingeniería utilizadas. En el Capitulo III, se presenta el Diseño del Prototipo de Software de Servidor Web elaborado, describiendo la estructura y funcionamiento del mismo, así como la herramienta para gestionar su administración y control. Finalmente, en el Capitulo IV, se describe el Desarrollo del Prototipo de Software de Servidor Web, utilizando los diagramas de flujo, para describir cada proceso elaborado. 3 CAPITULO I. PLANTEAMIENTO DEL PROBLEMA 1.1 ANTECEDENTES Internet es un moderno y versátil medio de comunicación que conecta a millones de personas en todo el mundo, a través de sus computadoras permitiéndoles intercambiar mensajes, accesar a bases de datos, efectuar consultas y transacciones de todo tipo. El origen de Internet se remonta hacia mediados de la década de los 60 y se basó en una red de comunicaciones creada por el ministerio de defensa de los Estados Unidos, durante la guerra fría contra la antigua Unión Soviética. En 1969 se consiguió por primera vez, conectar cuatro computadoras mediante líneas de alta velocidad, es el nacimiento de ARPANET (Advanced Research Project Agency Network ). Para 1972, aproximadamente 40 universidades ya formaban parte de la ARPANET, y sus computadoras tenían la capacidad de intercambiar mensajes y archivos, además de controlar computadoras a distancia. En 1984, quince años después de su aparición, la ARPANET contaba con sólo 1024 servidores. A finales de 1989 eran 160.000 los servidores, en 1992 eran ya 1.000.000 y más de 8.000 las redes que funcionaban en el mundo. En 1990 se creó el World Wide Web por un grupo de investigadores bajo la dirección de Tim Berners-Lee en el Laboratorio Europeo de Física de Partículas, CERN, situado en Suiza. La primera demostración pública del WWW se realiza en diciembre de 1991 en "Hypertext'91" en San Antonio, Texas, con un navegador instalado en un IBM con sistema VM/CMS. En 1992 aparece uno de los primeros navegadores (browsers) de Web en el CERN, se llamaba viola y funcionaba en 4 modo texto. A principios del 1993, Marc Andreessen de la universidad de Illinois, junto a otros desarrolladores, trabajó en un proyecto cuyo propósito era crear un navegador capaz de leer las Páginas Web pero no en modo texto, sino en forma gráfica, utilizando las capacidades de hipertexto e hipermedia, creando uno de los navegadores más conocidos el NCSA Mosaic, precursor de otros como Netscape, Internet Explorer. El Mosaic apareció para el público en Abril de 1993, y en octubre de ese mismo año existían 200 Servidores Web utilizando el protocolo HTTP. A partir de 1994 Internet empezó a convertirse en lo que ahora conocemos: una red que permite la transferencia de todo tipo de información: texto, imágenes, dibujos, vídeo, sonido, animaciones creadas por computadora. A partir de 1995 se produce el “Boom Internet” que es considerado como el nacimiento de la Internet comercial. Desde ese momento el crecimiento de la red ha superado todas las expectativas. Este hecho se produce porque es en este año cuando la WWW supera a ftp-data, transformándose en el servicio más popular de la red. Durante un año y medio, hasta la mitad del 2000, el ámbito económico occidental se vio sacudido por la fiebre de las empresas puntocom, por las inversiones apabullantes en start-up, por el nacimiento de millonarias y fugaces iniciativas virtuales, y por la consideración global de la red como el escenario principal donde la nueva economía interpretaría su papel estelar en los mercados globalizados del nuevo siglo. Durante los últimos años, Internet ha revolucionado el campo de la informática como un tema de interés nacional. Lo que solía ser una red informática reservada para investigadores, gobiernos e instituciones educacionales se ha convertido en 5 algo disponible para las empresas e incluso para los usuarios particulares. En el siguiente cuadro1 se detallan las etapas de la evolución de Internet. CUADRO N° 1. Etapas de evolución de Internet. 1975-1992 1993-1997 1998 a la fecha No. Usuarios (Mill) < 0.1 Decenas Centenas Servicios Mensajería, FTP Web Interactividad, Videoconferencia Media Texto Hipertexto, Audio, Fotos, Multimedia Vídeo, Animaciones, Realidad Virtual Velocidad .4 – 14.4 Kbps 28.8 –128 Kbps > 1Mbps Entorno de acceso mayoritario UNÍX PC’s Terminal Internet (TV, Consola de Juegos, Agendas de Bolsillo.) Uso Principal Académico Comercial y fuente de información Relación interpersonal, información, entretenimiento Implantación geográfica Norteamérica y Europa América, Europa, Australia, Sudeste asiático y países en desarrollo Mundial Internet es literalmente la red de redes que actualmente enlaza computadoras de todo el mundo. Todas las computadoras están interconectadas de forma que pueden compartir entre ellas archivos de datos, programas. Normalmente, estas redes disponen de una o varias computadoras llamadas servidores que almacenan la información y controlan los periféricos a compartir, y otras llamadas clientes disfrutan de estos servicios. Un Servidor Web es un programa que corre sobre el servidor que escucha las peticiones HTTP que le llegan y las satisface. Dependiendo del tipo de petición, el Servidor Web buscará una Página Web o bien ejecutará un programa en el servidor. De cualquier modo, siempre devolverá algún tipo de resultado HTML al cliente o navegador que realiza la petición. 1 Fuente: Documento Tecnologías de Información Turística. http://www.turismo.uma.es 6 Hoy en día, por muy pequeña que sea una empresa, la mejor forma de relacionarse y promocionar sus productos o servicios, con sus clientes o proveedores es disponer de un Sitio Web o portal Intranet / Internet. En muchos casos las empresas contratan los servicios de otras empresas dedicadas a proveer servicios de esta naturaleza, desde el diseño del sitio, hasta proporcionar el Hosting en un Servidor Web. Otras empresas, desarrollan sus propios sitios y el software adecuado para servir sus páginas, y como es normal, genera un costo adicional a la empresa. Para el desarrollo de un proyecto, siempre se buscan los métodos que permitan obtener la máxima funcionalidad posible por el menor precio, manteniendo además un elevado nivel de calidad. A la hora de sumar los costos de las computadoras, las licencias de los productos y los desarrollos a medida, y querer encajar los cálculos con el presupuesto disponible puede resultar una inversión un poco elevada. El software libre o de fuentes abiertas, permite reducir los costos, porque eliminan el gasto de las licencias y en muchas ocasiones proporciona un grado de calidad mayor. La prueba es el Servidor Web Apache, que dispone de una cuota de mercado del 60% y ha sido integrado dentro de diversos paquetes comerciales. El problema muchas veces con el software libre es el soporte técnico, ya que por su naturaleza gratuita, no se cuenta con la garantía que ofrecen los productos no gratuitos. Se puede encontrar el soporte adecuado en el medio, pero siempre incurre en gastos que van acorde a la complejidad del proyecto. 7 1.2 SITUACION PROBLEMÁTICA La incorporación de las tecnologías de información y de las comunicaciones en las empresas y en la sociedad esta influyendo de forma significativa en el entorno competitivo actual. El impacto de las nuevas tecnologías cada vez va adquiriendo mayor importancia y se integra en todos los aspectos que involucra el desempeño de las labores de una empresa. Como consecuencia de esto, será indispensable que estás extiendan sus operaciones a nuevos mercados y que busquen nuevas estrategias para aumentar su competitividad. Internet es una de las alternativas para conseguir estas metas. Internet es un medio de comunicación que influye en gran manera en el modo de vida de las personas y las sociedades, esto como consecuencia de un fuerte proceso de desarrollo tecnológico que esta cambiando el panorama global de las comunicaciones, debido a las grandes redes mundiales de datos que pretenden integrar el teléfono, computadoras, televisión, vídeo. Esto abre un mundo con enormes posibilidades y utilidades, para las personas que desean obtener información desde sus hogares, oficinas o Universidades así como a las empresas que buscan completar su ciclo de ventas. Conscientes de esto, algunas empresas se han integrado al mundo de Internet instalando Servidores Web para publicar Páginas Web, ya sea para publicidad o para gestión de ventas y servicios. Sin embargo, la mayoría de Empresas Salvadoreñas, no cuentan con un espacio en el Internet, debido a que no conocen los beneficios y ventajas que este proporciona, o porque no cuentan con alternativas acordes a sus posibilidades económicas y tecnológicas. Esto disminuye su competitividad en el mercado y su desarrollo económico en gran medida, impidiendo que puedan expandir sus operaciones, dejando fuera de su alcance un mercado potencial que podría ubicarse tanto dentro como fuera del país. 8 En este sentido es necesario proporcionar alternativas, encaminadas a construir o mejorar la infraestructura tecnológica de las empresas de El Salvador, para que a través de un análisis y una evaluación de las mismas, puedan elegir la que más se adapte a sus necesidades informáticas, y a sus capacidades de inversión y mantenimiento. De este modo se contribuirá a aumentar su competitividad en el mercado, impulsando así el desarrollo económico, social y tecnológico del país. Por esta razón se concibe la idea de diseñar y elaborar software para servir páginas en Internet, a través de una estructura física como un servidor conectado a Internet, de tal manera que la mediana empresa salvadoreña, pueda tener una amplia gama de alternativas, entre las cuales pueda seleccionar la que más se adecue a sus capacidades de inversión y a su presupuesto. 9 1.3 JUSTIFICACIÓN La publicidad en Internet a través del mundo es una de las herramientas de mayor difusión y utilidad, ya que permite la publicación de cantidades de información que en otros medios, como la radio, televisión o periódico, no sería posible, por el alto costo de publicación. A continuación se enumeran algunos beneficios que las empresas adquieren al tener un sitio en Internet.  Interactividad  Marketing y Publicidad  Reducción de Costos  Ampliación de Mercado  Información Actualizada En el cuadro N° 22 se observan estadísticas sobre las razones por las cuales los empresarios deciden hacer presencia en Internet. CUADRO N° 2. Razones para tener presencia en Internet. Con el propósito de hacer publicidad y mercadeo 65 % Ser percibido como líder 62% Mejorar el Servicio al Cliente 53% Proveer métodos alternativos de compra 41 % Mantenerse competitivo 30% Aumentar las ganancias 20% Reducir el tiempo en el proceso de ordenes 9% Vender productos directamente a través de Internet 8% Empezar a mejorar el proceso de ordenes a través de e-mail 7% Rebajar el costo promedio de venta 4% Reclutar empleados 1% 2 http://www.ExitoExportador.com, tomado de The Grant Thornton Survey of American Manufaturers 10 Internet y las tecnologías de información son las nuevas opciones generadoras de eficiencia en la introducción al mercado global, al incrementar los ingresos y potenciar la satisfacción de las personas con el acceso a mejores comunicaciones, bienes y servicios. Por la importancia que tiene la economía de Red para América Latina, y para El Salvador se dan a conocer las posibilidades estratégicas y las realidades comerciales de ese sector. En el cuadro N° 3 se destacan las Estadísticas del Uso de Internet en América Central y El Salvador. Esto informa sobre las expectativas levantadas por el medio, dando una idea de la fortaleza de los diversos sectores informáticos y de telecomunicaciones. CUADRO N° 3. Usuarios de Internet en América Central. AMERICA CENTRAL (%) Población Actual (2002) Usuarios, dato más reciente Usuarios, año 2000 Crecimiento (2000-2002) Penetración (% usuarios) Belice 2.2 % 251,600 18,000 15,000 20.0 % 7.2 % Costa Rica 46.2 % 4,050,100 384,000 250,000 53.6 % 9.5 % El Salvador 6.0 % 6,076,800 50,000 40,000 25.0 % 0.8 % Guatemala 24.0 % 13,730,900 200,000 65,000 207.7 % 1.5 % Honduras 4.8 % 6,438,100 40,000 40,000 0.0 % 0.6 % Nicaragua 6.0 % 5,579,400 50,000 50,000 0.0 % 0.9 % Panamá 10.8 % 2,939,800 90,000 45,000 100.0 % 3.1 % Tot. Am. Central 100 % 39,066,700 832,000 505,000 64.8 % 2.1 % 3Datos actuales a julio 31 del 2,002. Datos actuales de Gazetteer.de se tomaron como base para las cifras de población actual. Diversas fuentes locales y datos de Nielsen-NetRatings corresponden a los datos más recientes del número de usuarios. La determinación de las cifras de crecimiento se hizo comparando el 3 Fuente: http://www.ExitoExportador.com 11 dato actual de usuarios con el dato del año 2,000, tomado de las estadísticas del ITU. Como se puede observar el Internet en El Salvador ha mostrado ritmos de crecimiento aceptables, que han llevado a la red a constituirse en una oportunidad de negocios, para que las empresas puedan desplegar sus fortalezas competitivas, incrementar su capacidad de producción y satisfacer sus necesidades. Las empresas Salvadoreñas tienen posibilidades estratégicas para gozar de los beneficios que el Internet proporciona a través de los Sitios Web, si se proveen alternativas funcionales y que reduzcan los costos a la hora de su implementación, es aquí donde tienen el papel principal los Servidores Web. Los Servidores Web permiten a los clientes compartir datos, documentos y multimedia en formato web para uso tanto de una Intranet, como en Internet. En este sentido, con el desarrollo de este proyecto, se presenta una alternativa más para las empresas salvadoreñas, en especial para la Mediana Empresa, que garantice su presencia en Internet y que le permita reducir sus costos de inversión, ofreciendo un Prototipo de Software para servir páginas en Internet, acorde a las necesidades que una empresa de este tipo pueda tener. 12 1.4 ENUNCIADO DEL PROBLEMA La falta de alternativas de software, acordes a las capacidades tecnológicas y económicas, de las Medianas Empresas de El Salvador que les impide tener presencia en Internet e innovar sus procesos a través de Sitios Web. 1.5 DELIMITACION 1.5.1 DELIMITACION ESPACIAL Se tomarán para este estudio, todas aquellas empresas categorizadas como Medianas Empresas en El Salvador, que se encuentren legalmente registradas en “La Dirección General de Estadísticas y Censos” (DIGESTYC) hasta el año 2,000. 1.5.2 DELIMITACION GEOGRAFICA Para la investigación se visitaran las Medianas Empresas ubicadas en la zona paracentral, específicamente los departamentos de San Salvador y La Libertad. 1.5.3 DELIMITACION ESPECIFICA Las empresas que serán objeto de estudio se encuentran ubicadas en la Zona Industrial de Merliot, Zona Industrial de Santa Elena, Zona Industrial Plan de la Laguna y Empresas ubicadas sobre la Avenida Roosvelt. 1.5.4 DELIMITACION TEMPORAL El tiempo estimado para la realización del proyecto es de nueve meses, comenzando en el mes de Marzo y terminando en Diciembre de 2003. 13 1.6 OBJETIVOS 1.6.1 OBJETIVO GENERAL Diseñar y elaborar un Software prototipo para la creación de un Servidor Web, orientado a la Mediana empresa de El Salvador, el cuál proporcione una herramienta útil para la gestión de sus operaciones. 1.6.2 OBJETIVOS ESPECÍFICOS 1. Establecer el marco teórico conceptual relacionado a la problemática ocasionada por la falta de utilización de tecnología apropiada de informática, para la utilización de Internet como medio de publicidad y herramienta en el desarrollo de actividades laborales de la Mediana Empresa en El Salvador. 2. Determinar mediante una investigación de campo, la situación tecnológica actual de las Medianas Empresas de El Salvador, para conocer sus tendencias y sus capacidades informáticas. 3. Diseñar y Elaborar el Software Prototipo para la creación de un Servidor Web, orientado a la Mediana Empresa de El Salvador. 4. Diseñar un mecanismo por medio del cual, el Software Prototipo, pueda autorecuperarse en caso de fallas debidas a factores externos. 14 1.7 ALCANCES Y LIMITACIONES 1.7.1 ALCANCES 1. Manejo de requerimientos sobre el protocolo HTTP, a través de una Línea dedicada. 2. Se incluye una gestión de autenticación para impedir el acceso al servidor de usuarios no deseados, y la opción de sólo atender peticiones de usuarios que estén registrados. Los usuarios registrados tienen un nombre de usuario y una contraseña y se almacenan en un fichero o directorio especifico. 3. El Software del Servidor incluye un archivo HTML que se visualizará en el navegador en caso de error. 4. El Servidor Web manejará de manera eficiente la presentación de Páginas Web con imágenes y texto. 5. Diseño de un prototipo de un Sitio Web y Una Página Web para evaluar y demostrar la operabilidad del software del Servidor. El Prototipo del sitio ejemplo para efectos de demostración, está orientado a una Empresa de ventas de suministros para computadoras. 6. En cuanto a la seguridad del tráfico de información que entra y sale de la red, únicamente se contempla la inclusión de Firewall basado en las herramientas de administración de Firewalls del Sistema Operativo a utilizar (Linux), a nivel teórico. Entre la documentación se incluirá un apartado para explicar la configuración del mismo. Por otra parte, algunos Proveedores de Servicios de Internet (ISP) proporcionan el servicio de Firewall básico para redes, esto se toma en cuenta a la hora de recomendar uno de ellos para la adquisición de la línea dedicada. 7. Diseño a nivel teórico, de un mecanismo de recuperación del Servidor en caso de fallas debidas a factores externos. 15 1.7.2 LIMITACIONES 1. El Diseño del Servidor esta orientado a cubrir los requerimientos de una Mediana Empresa, en lo que se refiere a cantidad de accesos y cantidad de información, por lo que su funcionamiento no será óptimo para empresas que tienen un flujo de accesos mayor. 2. No se profundiza sobre el soporte para software de seguridad que encripte los mensajes que se envían por la red, tales como los protocolos SSH (Secure Shell), SSL (Secure Socket Layer) , TLS(Transport Layer Secure), Kerberos, sin embargo entre la documentación se incluirán recomendaciones para su implementación. 3. El Diseño del software no incluye soporte para CGI, o para interpretes de otros lenguajes de programación diferentes a Perl. 4. El Diseño del servidor está hecho para trabajar sólo bajo la plataforma Linux, distribución Red Hat 8.0 (Servidor). 5. El mecanismo mediante el cuál el Servidor Web podrá recuperarse por fallas debidas a factores externos, se realizará a nivel de diseño. Existen limitantes económicas y de tiempo, para llevar a cabo la implementación del mecanismo a diseñar, ya que se requiere una inversión en hardware que para el desarrollo del presente proyecto, no esta contemplada en el presupuesto del trabajo de graduación. Por otra parte, el tema de la autorecuperación, suele ser bastante amplio, por lo que no se profundizará en el mismo ya que no se cuenta con el tiempo necesario para realizar las implementaciones y las pruebas correspondientes. Sin embargo, el diseño podrá servir como pauta para que otros grupos de trabajo, lo puedan retomar y realizar las pruebas correspondientes, además de que podrán ampliarlo o mejorarlo. 6. Existe poca información técnica disponible, sobre la construcción o el diseño de Servidores Web, la información disponible es más que todo de tipo comercial. 16 1.8 BENEFICIOS Con el Diseño del Software Prototipo para la creación de un Servidor Web, se proporcionará una alternativa más a las Empresas Salvadoreñas, en especial a la Mediana empresa, que garantice su presencia en Internet y que les permita gozar de los beneficios que Internet proporciona a través de la publicidad, marketing, gestión de ventas y servicios, ofreciendo un Software para servir páginas en Internet, que les ayude a reducir sus costos de inversión a través del uso de herramientas de libre distribución, y que satisfaga los requerimientos y las necesidades informáticas que las empresa de este tipo puedan tener. A continuación se enumeran los Beneficios que se esperan obtener con el desarrollo de este proyecto. a) Bajo Costo de Instalación y Adquisición El diseño del software estará hecho para trabajar bajo una plataforma de libre distribución, ahorrando los costos de inversión en licencias, así mismo, el software podrá ser comercializado de manera accesible, a través de la universidad. Por otra parte el Sistema Operativo, incorpora una lista de servicios que se pueden configurar para aumentar la eficiencia de el Servidor mismo, entre ellas la de utilidad para el proyecto es la herramienta iptables4, que permite agregar la funcionalidad de contrafuegos o firewall a un servidor. De igual manera este servicio contribuye a reducir los costos de instalación y adquisición, ya que no será necesario invertir en software especializado y de alto costo para el filtrado de paquetes. b) Reducción del Costo de Mantenimiento El diseño del software del servidor será lo más flexible posible, enfocándose en hacer un servidor pequeño pero eficiente que pueda autorecuperarse en caso de 4 Es una Herramienta de Linux, para la Administración de Firewalls y filtros de paquetes de IP 17 fallas debidas a factores externos. Esto minimizará la necesidad de contratar personal adicional o innecesario para vigilancia y mantenimiento del mismo. c) Facilidad de operación y configuración El Software del Servidor Web incluirá una interfaz amigable, que facilitará la interacción con el usuario o la persona que lo administre. Los procesos que incluirá serán diseñados lo más eficiente posible, de manera que el usuario tenga que complicarse lo menos posible a la hora de interactuar con el mismo. Esto ayudara a reducir los costos de mantenimiento, ya que no se requerirá personal especializado para la operación o gestión del servidor. Por otra parte, se incluirá entre la documentación una guía que cubra todos los aspectos relacionados con la configuración del software y para la configuración del Firewall. d) Independencia de un proveedor para futuras adaptaciones o mejoras Esto gracias, a que el diseño del software del servidor estará bajo el esquema de código abierto y a la comercialización del software de manera accesible. La Persona o Empresa que lo adquiera, podrá adaptarlo, actualizarlo o modificarlo, según sus necesidades informáticas. e) Manejo de Requerimientos sobre el Protocolo HTTP El Software de Servidor Web manejará eficientemente la presentación de Páginas Web con imágenes y texto, así como Páginas Web que representen formularios con información determinada. f) Servidor Seguro Gracias a que el servidor incorporará la opción de atender sólo las peticiones de usuarios que estén registrados se obtendrá un servidor seguro. De la misma forma se impedirá el acceso a usuarios no deseados. Por otra parte se podrán recomendar el uso e implementación de software adecuado para el transporte 18 seguro de los datos por la red, tal como los protocolos SSL, SSH, Kerberos. De igual manera se proporcionará la documentación y recomendaciones necesarias para la configuración del Firewall. 19 1.9. MARCO TEÓRICO 1.9.1 INTERNET 1.9.1.1 CONCEPTO Internet es una Red de Redes porque está hecha a base de unir muchas redes locales de computadoras, es decir de unas pocas computadoras en un mismo edificio o empresa. Además, ésta es La Red de Redes porque es la más grande. Entre las funciones más relevantes del Internet se tienen: Compartir información, comercio electrónico, publicidad, entretenimiento, búsqueda de información. 1.9.1.2 ESTRUCTURA DE LA RED INTERNET Internet es una red de alcance mundial que une una gran cantidad de redes grandes de computadoras. Esto afecta al usuario de Internet, puesto que le permite contactar con gente y computadoras de todo el mundo desde cualquier lugar donde él se encuentre. Internet funciona bajo el esquema Cliente/Servidor, lo que significa que en la Red hay computadoras Servidores que dan una información concreta en el momento que se solicite, y por otro lado están las computadoras que piden dicha información, los llamados Clientes. Existe una gran variedad de lenguajes que usan las computadoras para comunicarse por Internet. Estos lenguajes se llaman Protocolos. Se ha establecido que en Internet, toda la información ha de ser transmitida mediante el Protocolo TCP/IP. 1.9.1.3 PROTOCOLO TCP/IP TCP/IP son las siglas de "Transfer Control Protocol / Internet Protocol". Éste es el lenguaje establecido para la Red Internet. Antes de su creación, este protocolo tuvo mucho éxito en el campo de las grandes computadoras máquinas UNIX. El protocolo TCP/IP se ha establecido como estándar en la red Internet debido a las ventajas y características que presenta. 20 La principal característica del TCP/IP es que establece la comunicación por medio de paquetes de información. Cuando una computadora quiere enviar un fichero de datos, lo primero que hace es partirlo en trozos pequeños (alrededor de unos 4 Kb) y posteriormente envía cada trozo por separado. Cada paquete de información contiene la dirección en la Red donde ha de llegar, y también la dirección de remite, por si hay que recibir respuesta. Los paquetes viajan por la Red de forma independiente. Entre dos puntos de la Red suele haber muchos caminos posibles. Cada paquete escoge uno dependiendo de factores como saturación de las rutas o posibles atascos. Otra notable y muy positiva consecuencia del uso del TCP/IP es que admite la posibilidad de que algún paquete de información se pierda por el camino. Al transmitir el protocolo TCP, compensa la perdida de paquetes con un esquema de retransmisión. Cuando TCP recibe datos, devuelve un acuse de recibo (ACK) al transmisor. Cuando los envía, inicia un cronometro, si este expira antes de llegar el acuse de recibo, envía de nuevo los datos. De esta manera se garantiza que no existirá la duplicación ni la perdida de paquetes. 1.9.1.4 DIRECCIONES IP Y NOMBRES DE DOMINIO Cada computadora que se conecta a Internet se identifica por medio de una dirección IP. Ésta se compone de 4 números comprendidos entre el 0 y el 255 ambos inclusive y separados por puntos. Así, por ejemplo una dirección IP podría ser: 156.215.11.35. No está permitido que coexistan en la Red dos computadoras distintas con la misma dirección, puesto que de ser así, la información solicitada por una de las computadoras no sabría a cual de ellos dirigirse. Cada número de la dirección IP indica una subred de Internet. Hay 4 números en la dirección, lo que quiere decir que hay 4 niveles de profundidad en la distribución jerárquica de la Red Internet. 21 Esta distribución jerárquica de la Red Internet, permite enviar y recibir rápidamente paquetes de información entre dos computadoras conectadas en cualquier parte del Mundo a Internet, y desde cualquier subred a la que pertenezcan. Un usuario de Internet, no necesita conocer ninguna de estas direcciones IP. Las manejan las computadoras en sus comunicaciones por medio del Protocolo TCP/IP de manera invisible para el usuario. Sin embargo, se necesita nombrar de alguna manera las computadoras de Internet, para poder elegir a cual pedir información. Esto se logra por medio de los Nombres de Dominio. Los nombres de dominio, son la traducción para las personas de las direcciones IP, las cuales son útiles sólo para las computadoras. Así por ejemplo, yahoo.com es un nombre de dominio. Como se puede ver, los nombres de dominio son palabras separadas por puntos, en vez de números en el caso de las direcciones IP. Estas palabras pueden darnos idea de la computadora a la que nos estamos refiriendo. Por medio de lo que se llaman, "Servidores de Nombres de Dominio (DNS)", Internet es capaz de averiguar la dirección IP de una computadora a partir de su nombre de dominio. 1.9.1.5 CONEXIÓN A LA RED Para poderse conectar a Internet se necesitan cuatro cosas: una computadora, un módem (Modulador – Demodulador) o DTU(Digital Terminal Unit), un programa que efectúe el enlace con el proveedor, y un programa para navegar por la red. 1.9.1.6 PROVEEDORES DE INTERNET Un Proveedor Internet permite conectar una computadora a la Red Internet. No se puede conectar directamente, puesto que las líneas de comunicaciones que forman Internet en sí, sólo las pueden manejar las grandes empresas de las 22 telecomunicaciones a nivel Mundial: Telefónica, British Telecom. Un dato importante a tener en cuenta es lo que se llama el Ancho de Banda del Proveedor. El ancho de banda mide la capacidad de transmitir datos entre Internet y los usuarios. Es importante que un Proveedor tenga el máximo ancho de banda posible para que un módem alcance la máxima velocidad posible, y sea posible recoger la información de Internet solicitada en el menor tiempo posible, y de esta manera ahorrar en tiempo de operación. 1.9.1.7 SEGURIDAD EN INTERNET Y FIREWALL La seguridad ha sido el principal aspecto a tratar cuando una organización desea conectar su red privada al Internet. Sin tomar en cuenta el tipo de negocio, se ha incrementado el número de usuarios de redes privadas por la demanda del acceso a los servicios de Internet tal es el caso del World Wide Web (WWW), Internet Mail (e-mail), Telnet, y File Transfer Protocol (FTP). Adicionalmente los corporativos buscan las ventajas que ofrecen las páginas en el WWW y los servidores FTP de acceso publico en el Internet. Los administradores de red tienen que incrementar todo lo relacionado a la seguridad de sus sistemas, debido a que se expone la organización privada de los datos así como la infraestructura de la red a los Expertos de Internet (Internet Crakers). Para superar estos temores y proveer el nivel de protección requerida, la organización necesita seguir una política de seguridad para prevenir el acceso no autorizado de usuarios a los recursos propios de la red privada, y protegerse contra la exportación privada de información. Todavía, aun si una organización no esta conectada al Internet, esta debería establecer una política de seguridad interna para administrar el acceso de usuarios a porciones de red y proteger sensitivamente la información secreta. 23 Un Firewall en Internet es un sistema o grupo de sistemas que impone una política de seguridad entre la organización de red privada y el Internet. El firewall determina cual de los servicios de red pueden ser accesados dentro de esta por los que están fuera, es decir quien puede entrar para utilizar los recursos de red pertenecientes a la organización. Para que un firewall sea efectivo, todo trafico de información a través del Internet deberá pasar a través del mismo donde podrá ser inspeccionada la información. El firewall podrá únicamente autorizar el paso del trafico, y el mismo podrá ser inmune a la penetración. desafortunadamente, este sistema no puede ofrecer protección alguna una vez que el agresor lo traspasa o permanece entorno a este. 1.9.1.8 PÁGINAS WEB Es un documento o archivo, al igual que un archivo de Word, Excel o PowerPoint. La diferencia es que utiliza un lenguaje llamado Hiper Texto el cual le permite a estos archivos contener otros, como los antes mencionados. La idea central de las Páginas Web consiste en que un grupo de computadoras están conectadas y pueden intercambiar archivos específicos con las demás computadoras. Pero la red es tan grande que sería muy difícil conectar a todas las computadoras de todo el mundo directamente. Por esto existen los servidores. Un grupo de computadoras están conectadas a un servidor y éste a el resto de servidores de todo el mundo. Las Páginas Web son archivos almacenados en la memoria de estos servidores (la mayoría de los dueños de los servidores cobran por esto, pero existen algunos que dan éste servicio gratis como geocities, angelfire, xoom, go.to, latinmail). El servidor además de almacenar las páginas administra el acceso a ellas. 24 1.9.1.9 HTTP (HYPER TEXT TRANSFER PROTOCOL) El Protocolo de Transferencia de HiperTexto (Hypertext Transfer Protocol) es un protocolo cliente-servidor que se basa en sencillas operaciones de solicitud/respuesta. Un cliente establece una conexión con un servidor y envía un mensaje con los datos de la solicitud. El servidor responde con un mensaje similar, que contiene el estado de la operación y su posible resultado. Todas las operaciones pueden adjuntar un objeto o recurso sobre el que actúan; cada objeto Web (documento HTML, fichero multimedia o aplicación CGI) es conocido por su URL. HTTP se soporta sobre TCP, que es el protocolo de transporte de TCP/IP para comunicaciones orientadas a conexión y utiliza el esquema cliente-servidor. El servidor HTTP permanece activo esperando conexiones de los clientes HTTP. Una vez solicitada una conexión, el servidor responde dejando la posibilidad de que clientes logren conexiones simultáneamente. Las principales características del protocolo HTTP son:  Toda la comunicación entre los clientes y servidores se realiza a partir de caracteres de 8 bits. De esta forma, se puede transmitir cualquier tipo de documento, respetando su formato original.  Permite la transferencia de objetos multimedia. El contenido de cada objeto intercambiado está identificado por su clasificación MIME.  Existen tres verbos básicos que un cliente puede utilizar para dialogar con el servidor: GET, para recoger un objeto, POST, para enviar información al servidor y HEAD, para solicitar las características de un objeto.  Cada operación HTTP implica una conexión con el servidor, que es liberada al término de la misma. Es decir, en una operación se puede recoger un único objeto. 25  No mantiene estado. Cada petición de un cliente a un servidor no es influida por las transacciones anteriores. El servidor trata cada petición como una operación totalmente independiente del resto.  Cada objeto al que se aplican los verbos del protocolo está identificado a través de la información de situación del final de la URL. Estructura de los mensajes HTTP El diálogo con los servidores HTTP se establece a través de mensajes formados por líneas de texto, cada una de las cuales contiene los diferentes comandos y opciones del protocolo. Sólo existen dos tipos de mensajes, uno para realizar peticiones y otro para devolver la correspondiente respuesta. La estructura general de los dos tipos de mensajes se puede ver en el siguiente esquema. Esquema N° 1. Estructura general de los dos tipos de mensajes HTTP. Mensaje de solicitud Mensaje de respuesta Comando HTTP + parámetros Cabeceras del requerimiento (línea en blanco) Información opcional Resultado de la solicitud Cabeceras de la respuesta (línea en blanco) Información opcional La primera línea del mensaje de solicitud contiene el comando que se solicita al servidor HTTP, mientras que en la respuesta contiene el resultado de la operación, un código numérico que permite conocer el éxito o fracaso de la operación. Después aparece, para ambos tipos de mensajes, un conjunto de cabeceras (unas obligatorias y otras opcionales), que condicionan y matizan el funcionamiento del protocolo. 26 La separación entre cada línea del mensaje se realiza con un par CR-LF (retorno de carro más nueva línea). El final de las cabeceras se indica con una línea en blanco, tras la cual se pueden incluir los datos transportados por el protocolo, por ejemplo, el documento HTML que devuelve un servidor o el contenido de un formulario que envía un cliente . Comandos del Protocolo HTTP Los comandos o verbos de HTTP representan las diferentes operaciones que se pueden solicitar a un servidor HTTP. El formato general de un comando es el siguiente: Nombre del comando Objeto sobre el que se aplica Versión de HTTP utilizada Cada comando actúa sobre un objeto del servidor, normalmente un fichero o aplicación, que se toma de la URL de activación. La última parte de esta URL, que representa la dirección de un objeto dentro de un servidor HTTP, es el parámetro sobre el que se aplica el comando. Se compone de una serie de nombres de directorios y ficheros, además de parámetros opcionales para las aplicaciones CGI. El estándar HTTP/1.0 recoge únicamente tres comandos, que representan las operaciones de recepción y envío de información y chequeo de estado:  GET. Recoge cualquier tipo de información del servidor. Se utiliza siempre que se pulsa sobre un enlace o se teclea directamente a una URL. Como resultado, el servidor HTTP envía el documento correspondiente a la URL seleccionada, o bien activa un módulo CGI, que generará a su vez la información de retorno.  HEAD. Solicita información sobre un objeto (fichero): tamaño, tipo, fecha de modificación. Es utilizado por los gestores de cachés de páginas o los servidores proxy, para conocer cuándo es necesario actualizar la copia que se mantiene de un fichero. 27  POST. Sirve para enviar información al servidor, por ejemplo los datos contenidos en un formulario. El servidor pasará esta información a un proceso encargado de su tratamiento. La operación que se realiza con la información proporcionada depende de la URL utilizada. Se utiliza, sobre todo, en los formularios. Un cliente Web selecciona automáticamente los comandos HTTP necesarios para recoger la información requerida por el usuario. Así, ante la activación de un enlace, siempre se ejecuta una operación GET para recoger el documento correspondiente. El envío del contenido de un formulario utiliza GET o POST, en función del atributo de form method. Además, si el cliente Web tiene un caché de páginas recientemente visitadas, puede utilizar HEAD para comprobar la última fecha de modificación de un fichero, antes de traer una nueva copia del mismo. Las cabeceras HTTP Son un conjunto de variables que se incluyen en los mensajes HTTP, para modificar su comportamiento o incluir información de interés. En función de su nombre, pueden aparecer en los requerimientos de un cliente, en las respuestas del servidor o en ambos tipos de mensajes. El formato general de una cabecera es: Nombre de la variable : Cadena ASCII con su valor Los nombres de variables se pueden escribir con cualquier combinación de mayúsculas y minúsculas. Además, se debe incluir un espacio en blanco entre el signo : y su valor. En caso de que el valor de una variable ocupe varias líneas, éstas deberán comenzar, al menos, con un espacio en blanco o un tabulador. 28 Cabeceras comunes para peticiones y respuestas  Content-Type: descripción MIME de la información contenida en este mensaje. Es la referencia que utilizan las aplicaciones Web para dar el correcto tratamiento a los datos que reciben.  Content-Length: longitud en bytes de los datos enviados, expresado en base decimal.  Content-Encoding: formato de codificación de los datos enviados en este mensaje. Sirve, por ejemplo, para enviar datos comprimidos (x-gzip o x- compress) o encriptados.  Date: fecha local de la operación. Las fechas deben incluir la zona horaria en que reside el sistema que genera la operación. No existe un formato único en las fechas; incluso es posible encontrar casos en los que no se dispone de la zona horaria correspondiente, con los problemas de sincronización que esto produce. Los formatos de fecha a emplear están recogidos en los RFC 1036 y 1123.  Pragma: permite incluir información variada relacionada con el protocolo HTTP en el requerimiento o respuesta que se está realizando. Por ejemplo, un cliente envía un Pragma: no-cache para informar de que desea una copia nueva del recurso especificado. Cabeceras sólo para peticiones del cliente  Accept: campo opcional que contiene una lista de tipos MIME aceptados por el cliente. Se pueden utilizar * para indicar rangos de tipos de datos; tipo/* indica todos los subtipos de un determinado medio, mientras que */* representa a cualquier tipo de dato disponible.  Authorization: clave de acceso que envía un cliente para acceder a un recurso de uso protegido o limitado. La información incluye el formato de autorización 29 empleado, seguido de la clave de acceso propiamente dicha. La explicación se incluye más adelante.  From: campo opcional que contiene la dirección de correo electrónico del usuario del cliente Web que realiza el acceso.  If-Modified-Since: permite realizar operaciones GET condicionales, en función de si la fecha de modificación del objeto requerido es anterior o posterior a la fecha proporcionada. Puede ser utilizada por los sistemas de almacenamiento temporal de páginas. Es equivalente a realizar un HEAD seguido de un GET normal.  Referer: contiene la URL del documento desde donde se ha activado este enlace. De esta forma, un servidor puede informar al creador de ese documento de cambios o actualizaciones en los enlaces que contiene. No todos los clientes lo envían.  User-agent: cadena que identifica el tipo y versión del cliente que realiza la petición. Por ejemplo, los navegadores de Netscape envían cadenas del tipo User-Agent: Mozilla/3.0 (WinNT; I). Cabeceras sólo para respuestas del servidor HTTP  Allow: informa de los comandos HTTP opcionales que se pueden aplicar sobre el objeto al que se refiere esta respuesta. Por ejemplo, Allow: GET, POST.  Expires: fecha de expiración del objeto enviado. Los sistemas de cache deben descartar las posibles copias del objeto pasada esta fecha.  Last-modified: fecha local de modificación del objeto devuelto.  Location: informa sobre la dirección exacta del recurso al que se ha accedido. Cuando el servidor proporciona un código de respuesta de la serie 3xx, este parámetro contiene la URL necesaria para accesos posteriores a este recurso.  Server: cadena que identifica el tipo y versión del servidor HTTP. Por ejemplo, Server: NCSA 1.4. 30  WWW-Autenticate: cuando se accede a un recurso protegido o de acceso restringido, el servidor devuelve un código de estado 401, y utiliza este campo para informar de los modelos de autenticación válidos para acceder a este recurso. Códigos de estado del servidor Ante cada transacción con un servidor HTTP, éste devuelve un código numérico que informa sobre el resultado de la operación, como primera línea del mensaje de respuesta. Estos códigos aparecen en algunos casos en la pantalla del cliente, cuando se produce un error. El formato de la línea de estado es: Versión de protocolo HTTP utilizada Código numérico de estado (tres dígitos) Descripción del código numérico Existen cinco categorías de mensajes de estado, organizadas por el primer dígito del código numérico de la respuesta:  1xx : mensajes informativos. Por ahora (en HTTP/1.0) no se utilizan, y están reservados para un futuro uso.  2xx : mensajes asociados con operaciones realizadas correctamente.  3xx : mensajes de redirección, que informan de operaciones complementarias que se deben realizar para finalizar la operación.  4xx : errores del cliente; el requerimiento contiene algún error, o no puede ser realizado.  5xx : errores del servidor, que no ha podido llevar a cabo una solicitud. 31 1.9.1.10 TIPOS MIME El protocolo HTML fue diseñado para transportar por red ficheros en formato ASCII, compuestos por texto plano. Con el progreso de las tecnologías y con la inclusión de diferentes tipos de ficheros no ASCII en las aplicaciones por Internet, surgió la necesidad de transformar estos formatos a tipo ASCII, para su correcta recepción en el navegador web. Este problema se produjo inicialmente en las aplicaciones de correo electrónico, cuando se necesitó enviar por mail ficheros no formados por texto plano, y por tanto, no compatibles con los juegos de caracteres permitidos. Para solucionar este problema el Internet Engineering Task Force (IETF) creó en 1992 los tipos Mime (Multipurpose Internet Mail Extensions), especificaciones para dar formato a mensajes no-ASCII, de forma que pudieran ser enviados por Internet e interpretados correctamente por los programas de correo locales. Fue tan importante la ampliación que se surgió con los tipos Mime al correo, que pronto se aplicaron también a los documentos web, lo que permitió incluir en las páginas HTML ficheros varios, que dieron nueva vida a la web. Los tipos MIME especifican los tipos de datos que los archivos contienen. MIME adjunta a cada fichero un archivo de cabecera donde se indica el tipo y el subtipo del contenido de los datos del mismo. Gracias a esta información, tanto el servidor como el navegador pueden manejar y presentar los archivos correctamente. Los navegadores web traen por defecto configurados una serie de tipos Mime, de tal forma que sabe cómo interpretar y ejecutar los ficheros definidos mediante estos tipos, asociando en una base de datos interna los tríos extensión fichero, tipo Mime, aplicación necesaria. Este es el motivo por el que no es necesario declarar manualmente el tipo Mime asociado a una imagen GIF, ya que el 32 navegador viene configurado para conocer ese tipo de ficheros y saber cómo abrirlo. 1.9.2 SERVIDOR 1.9.2.1 CONCEPTO Un servidor es una computadora con grandes capacidades físicas y una capacidad de almacenamiento de datos alta, que contiene información que puede ser consultada por usuarios. Por el contrario, un cliente es una computadora que no está presentando información, sino que la va buscando; es decir, las computadoras cliente se conectan a los servidores para obtener información. Los servidores han de estar conectados permanentemente a Internet, pues en caso contrario, alguien intentaría acceder a ellos y no los encontraría. 1.9.2.2 TIPOS DE SERVIDORES Existen muchos tipos de servidores, cada uno dedicado a funciones diferentes y cada uno de los cuales es capaz de proporcionar un determinado servicio. Los más importantes son: - Servidor de correo. Una computadora donde se guardan todos los mensajes de correo, en espera de que se conecte el usuario al que van dirigidos y que los recoja. - Servidor de news. Una computadora que contiene las news, es decir, los mensajes de los grupos de noticias, para que una persona pueda conectarse y leerlos. Se suele denominar servidor NNTP. - Servidor Web. Una computadora que presenta información según el estándar Web (WWW). Una persona ejecuta un programa web, se conecta a un Servidor 33 Web y lee su contenido en forma de páginas con colores, texto, fotografías, sonidos, vídeo, animaciones. - Servidor FTP. Una computadora que contiene ficheros que se puede recoger. - Servidor IRC-Chat. Una computadora encargado de permitir a los usuarios mantener conversaciones en tiempo real. - Servidor DNS. Un servidor de nombres de dominio. Todas las acciones que se realizan sobre Internet se reducen siempre a una sola; conectarse a un servidor y examinar la información que contiene. Internet se puede definir como un conjunto de servidores que ofrecen información a computadoras clientes de todo el mundo. 1.9.2.3 SERVIDOR WEB Un Servidor Web es un programa que funciona sobre una máquina en red, esperando conexiones del mundo exterior para servir ciertos documentos pedidos a través de un navegador. Para comunicarse, el servidor y el navegador usan un método de comunicación asíncrono llamado HTTP (Protocolo de Hipertexto), que funciona de la forma siguiente: 1. El usuario arranca el navegador y escribe una dirección URL . 2. El navegador se conecta a un servidor determinado y pide ese documento. 3. El servidor de web maneja la petición y manda la respuesta. 4. Si el documento existe, el servidor lo envía. 34 5. Si no existe o su acceso no esta permitido, el servidor devuelve un documento con un mensaje de error. 6. El documento enviado como respuesta a esta petición puede contener objetos incrustados. Estos pueden ser URL apuntando a recursos, documentos, imágenes, applets, cadenas de audio/ vídeo, es decir cualquier objeto que se pueda direccionar por HTML. 7. El navegador entonces pide todos aquellos objetos incluidos en la página del servidor, usando los métodos 2 y 3 anteriores, antes de mostrar el contenido de la página. El método de comunicación se llama asíncrono, porque el navegador envía las diferentes peticiones a la vez, utilizando diferentes canales de comunicación. 1.9.2.4 PLATAFORMAS DE SERVIDORES WEB Los Servidores Web existen casi para cualquier plataforma computacional en uso hoy en día. Las plataformas más comunes son: Unix, Windows, Linux, Windows NT, MAC. Los primeros Servidores Web se escribieron para las máquinas UNIX. A continuación se describen algunos de ellos.  WINDOWS 3.1 Este resulta útil al correr un Servidor Web. Por el lado negativo, tiene muchas limitaciones dolorosas como Servidor Web, en primer lugar, se tiene que adquirir un paquete TCP/IP y luego buscar un paquete Servidor Web. Bajo cargas pesadas, en especial con scripts CGI, el servidor se desempeñará como deficiente. Esta plataforma sólo funciona para un Servidor Web de bajo volumen.  OS/2 OS/2 de IBM es un sistema operativo tipo Windows que puede correr un Servidor Web. En muchos aspectos es similar al Windows NT. 35  WINDOWS 95 Este acepta nombre de archivos largo. Si se utiliza únicamente aplicaciones de 32 bits, cuando se emplean aplicaciones de 16 bits, los trabajos multitareas funcionan de manera muy similar a aquélla de Windows 3.1.  WINDOWS NT – 2000 SERVER NT es el siguiente escalón de Windows 95, este es aun más robusto, tiene más capacidad multitareas.  MACINTOSH Es una plataforma única para un Servidor Web, ya que es la única sin línea de comandos. Los servidores para Mac por lo general son fáciles de instalar.  LINUX Hoy en día, la aplicación más frecuente de Linux es como servidor de Internet. Además se pueden configuran servicios necesarios para el correcto funcionamiento del servidor así como servidores de nombres y firewall. 1.9.2.5 TIPOS DE SERVIDORES WEB 1. EMPRESARIAL O CORPORATIVO Es el conjunto de información, servicios y herramientas que define la presencia de la empresa en Internet. Es un medio de comunicación con sus clientes y prospectos. También puede convertirse en un canal comercial a través del cual proporcionar productos y servicios. 2. TECNOLÓGICO Es un conjunto de páginas HTML (hypertext Markup Lenguaje) cuyos contenidos están relacionados entre sí, mediante enlaces (hiperenlaces o vínculos). Estas 36 páginas son almacenadas en un equipo servidor, gestionadas por un software especializado que atiende las peticiones de los usuarios y envía las páginas solicitadas. 1.9.2.6 FUNCIONAMIENTO DE LOS SERVIDORES WEB El proceso básico: El navegador genera una conexión a un Servidor Web, solicitará una página y la recibe. Esto se ilustra en la siguiente figura. FIGURA N° 1. Proceso básico de un Servidor Web. Cada vez que un cliente realiza una petición a un servidor, un usuario accede a una URL, seleccionando un enlace de un documento HTML o introduciéndola directamente en el campo Location del cliente Web. El cliente Web descodifica la URL, separando sus diferentes partes. Así identifica el protocolo de acceso, la dirección DNS o IP del servidor, el posible puerto opcional (el valor por defecto es 80) y el objeto requerido del servidor. Se abre una conexión TCP/IP con el servidor, llamando al puerto TCP correspondiente. Se realiza la petición. Para ello, se envía el comando necesario (GET, POST, HEAD) la dirección del objeto requerido (el contenido de la URL que sigue a la dirección del servidor), la versión 37 del protocolo HTTP empleada y un conjunto variable de información, que incluye datos sobre las capacidades del navegador, datos opcionales para el servidor. El servidor devuelve la respuesta al cliente. Consiste en un código de estado y el tipo de dato MIME de la información de retorno, seguido de la propia información. Finalmente, se cierra la conexión TCP. Este proceso se repite en cada acceso al servidor HTTP. Por ejemplo, si se recoge un documento HTML en cuyo interior están insertadas cuatro imágenes, el proceso anterior se repite cinco veces, una para el documento HTML y cuatro para las imágenes. 1.9.2.7 SERVIDORES WEB MÁS POPULARES a) NCSA HTTPD: Tiene un buen desempeño y un agradable conjunto de características, su falla principal es la falta para protocolos de encriptación Web. b) APACHE: es un derivado muy popular del servidor NCSA, una de las diferencias importantes es que hay parches disponibles para soportar SSl (Secure Socket layer). c) NETSCAPE COMMUNICATIONS SERVER: Este es un servidor cargado de características de alto desempeño, sin embargo es caro. (Unix,Windows NT). d) NETSCAPE COMERSE SERVER: Este producto es el mismo que Netscape Communications Server, con la excepción de que soporta SSL, y su precio es más alto. (Unix,Windows NT). e) WEBSITE: Un Servidor Web muy poderoso y popular, pero no intuitivo, es un producto comercial. (Windows NT, Windows 95). 38 f) AOLServer: Es un producto open-source que fue diseñado conociendo varias deficiencias que existían en el modelo inicial utilizado por Apache. Esta desarrollado con Threading ,es decir, comparte la memoria del Proceso general en varios sub-procesos o Threads. g) Zope: Es un servidor de páginas open-source que utiliza Python como su "Scripting Language" y es capaz de accesar un gran número de bases de datos. h) Internet Information Server (IIS): Es el servidor de páginas desarrollado por Microsoft para Windows NT/2000, a diferencia de los dos servidores de páginas mencionados anteriormente, IIS solo puede operar en plataformas Windows. El punto más favorable de este servidor son ASP's que facilitan el desarrollo de aplicaciones y la sencillez de instalación. 1.9.2.8 WEB HOSTING Web Hosting significa el servicio de alojamiento de las Páginas Web que forman un sitio, en un Servidor Web, asignándole una ubicación (dirección) para que pueda ser accesada por todos los usuarios de Internet. Cuando una empresa o persona crea una Página Web, los archivos de la página deben encontrarse en el servidor con una conexión directa hacia Internet, servicio de nombre de dominio, y otras configuraciones técnicas para que el sitio se encuentre accesible en la World Wide Web. 39 1.9.3 SISTEMAS DE INFORMACIÓN (SI) 1.9.3.1 DEFINICIÓN Es el medio por el cual los datos fluyen entre personas o departamentos y puede ser, desde la comunicación interna entre los diferentes componentes de la organización y líneas telefónicas, hasta sistemas de cómputo que generan reportes periódicos para varios usuarios. 1.9.3.2 OBJETIVOS GENERALES DE LOS SI  La principal función de un SI es proporcionar a los encargados de la toma de decisiones, datos oportunos y exactos que les permitan tomar y aplicar las decisiones necesarias que mejoren al máximo la relación que existe entre los recursos de la empresa.  Este sistema tiene el propósito general de ayudar a los gerentes en la planeación, control y toma de decisiones.  Asegurar que la información exacta y confiable esté disponible cuando se necesite y que se le presente en forma fácilmente aprovechable.  Incrementar la productividad operacional.  Hacer que el proceso de información deje de ser información fragmentada, conjeturas inspiradas en la intuición y solución de problemas aislados. 1.9.4 DISEÑO DE SISTEMAS 1.9.4.1 DEFINICIÓN El diseño de sistemas es la evaluación de las distintas soluciones alternativas y la especificación de una solución detallada de tipo informático. También se conoce como diseño físico. Mientras que el análisis de sistemas concentra principalmente su interés en los aspectos lógicos, independientes de la implantación, de un sistema (las necesidades), el diseño de sistemas trata los aspectos físicos o 40 dependientes de la implantación del sistema (las especificaciones técnicas de dicho sistema). 1.9.4.2 FASES DEL DISEÑO DE SISTEMAS 1. Selección Una vez obtenidas las necesidades de la empresa con respecto a la elaboración de un sistema de información mejorado, se puede planear el modo en que funcionará dicho sistema. Durante la fase de selección, es imperativo identificar y analizar las diversas opciones posibles, y solo entonces proponer las soluciones más viables sobre la base del análisis realizado. 2. Adquisición La adquisición de software y hardware (equipo Informático) no es necesario en todos los nuevos sistemas. Por otra parte, cuando se precisa un nuevo software o hardware, la selección de los productos apropiados entraña con frecuencia una cierta dificultad. Las decisiones se complican por consideraciones técnicas, económicas y políticas. Una decisión deficiente puede arruinar cualquier tarea de análisis y diseño que, en caso contrario, habría logrado sus objetivos. 3. Diseño e Integración Dadas las necesidades de diseño y las necesidades de integración del sistema objeto, esta fase implica el desarrollo de las especificaciones técnicas de diseño. 1.9.5 TECNICAS DE PROGRAMACION Para la construcción de programas, es tan importante el conocimiento de las técnicas de programación, como de los conceptos básicos, sin los cuales la creación de los programas es muy difícil o casi imposible. Las nuevas teorías de 41 la programación se centran en las técnicas de programación modular y programación estructurada. El diseño de un programa entraña la descomposición del problema en módulos o partes independientes, es decir, programación modular y la programación de cada módulo mediante métodos estructurados o programación estructurada y su unión posterior. 1.9.5.1 PROGRAMACION ESTRUCTURADA Se refiere a un conjunto de técnicas que han evolucionado. Estas técnicas aumentan considerablemente la productividad del programa reduciendo el tiempo requerido para escribir, verificar, depurar y mantener los programas. La programación estructurada utiliza un número limitado de estructuras de control que minimizan la complejidad de los problemas y que reducen los errores. Esta incorpora: diseño descendente, recursos abstractos y estructuras básicas. La programación estructurada permite la escritura de programas fáciles de leer y modificar. En un programa estructurado el flujo lógico se gobierna por las estructuras de control básicas: secuenciales, repetitivas y selectivas. 1.9.5.2 PROGRAMACION MODULAR Es uno de los métodos de diseño más flexibles y potentes para mejorar la productividad de un programa. El programa se divide en módulos, cada uno de los cuales ejecuta una única actividad o tarea y se codifican independientemente de los demás módulos. Cada uno de estos módulos se analizan, codifican y ponen a punto por separado. Cada programa contiene un módulo llamado programa principal que controla todo lo que sucede; se transfiere el control a submódulos de modo que ellos puedan ejecutar sus funciones. Los módulos son independientes en el sentido en el que ningún módulo puede tener acceso directo a los demás, excepto el módulo al que llama y sus propios submódulos. El esquema de la Programación Modular se ilustra en la Figura N° 2. 42 FIGURA N° 2. Programación Modular. Dado que los módulos son independientes, diferentes programadores pueden trabajar simultáneamente en diferentes partes del mismo programa, de ésta manera se reduce gran tiempo de diseño del algoritmo y la codificación, además una modificación radical dentro de un módulo no afectará a los demás. 1.9.6 PROTOTIPOS 1.9.6.1 DEFINICIÓN Un prototipo es un modelo (representación, demostración o simulación) fácilmente ampliable y modificable de un sistema planificado, probablemente incluyendo su interfaz y su funcionalidad de entradas y salidas. Es un modelo original que sirve de patrón y/o un primer ejemplar a escala real y usualmente funcional de un nuevo tipo o diseño. 1.9.6.2 DISEÑO MEDIANTE PROTOTIPOS En la actualidad, muchos analistas aplican la técnica del uso de prototipos, un moderno método basado en ingeniería. La estrategia de diseño mediante prototipos esta siendo utilizada cada vez por más empresas. El método requerirá en cierta medida un planteamiento diferente al del ciclo de vida tradicional. Programa Principal data Módulo 1 data + data 1 procedim1 Módulo 2 data + data 2 procedim2 procedim3 43 La fase de estudio es crucial, con independencia del método de diseño que se aplique. Deben identificarse, analizarse y comprenderse los problemas y las oportunidades para poder establecer los objetivos del nuevo sistema. Aunque la fase de definición puede simplificarse en los casos en que se use prototipos, deberían especificarse algunos requisitos generales antes de generar los prototipos. Es importante completar la fase de selección antes de hacer los prototipos, de modo que se garantice que el sistema objeto sea la solución más viable para los problemas y necesidades expresados por los usuarios. Dada la solución más viable, puede iniciarse la elaboración de prototipos. La elaboración de prototipos ha surgido como estrategia idónea para el diseño físico. Los prototipos son modelos de trabajo de un sistema. Los analistas pueden construir rápidamente prototipos mediante el empleo de lenguajes de cuarta generación y generadores de aplicaciones. La estrategia del uso de prototipos no es un sustituto del ciclo de vida. Todas las fases del ciclo de vida son esenciales para realizar con éxito el desarrollo de sistemas. Sin embargo, la elaboración de prototipos permite agrupar en una etapa porciones de las fases de definición, diseño físico y construcción del ciclo de vida tradicional. En consecuencia, los prototipos, aumentan la productividad. Ventajas del diseño mediante prototipos  Los prototipos alientan y requieren la participación activa de los usuario finales. Ello sirve para elevar la moral de los usuario finales y aumentar su apoyo al proyecto. 44  La interacción y el cambio son consecuencias naturales del desarrollo de sistemas, es decir, los usuarios suelen cambiar de opinión. La elaboración de prototipos se ajusta mejor a este enfoque, ya que supone que un prototipo puede evolucionar mediante sucesivas iteraciones hasta convertirse en el sistema requerido.  Se ha dicho a menudo que los usuarios finales no conocen completamente sus necesidades hasta que no las ven implementadas. Siendo así, los prototipos se adecuan a esa filosofía.  Los prototipos son modelos activos, no pasivos, que los usuarios finales pueden ver, tocar y sentir, y con los que pueden practicar.  Un prototipo aprobado equivale a las especificaciones de diseño en papel, con la ventaja de que los errores pueden ser detectados mucho antes.  La elaboración de prototipos puede estimular la creatividad, dado que permite al usuario manifestar su opinión con mayor rapidez, lo que se traduce en mejores soluciones. 1.9.7 MEDIANA EMPRESA A continuación se detallan aspectos relacionados con el concepto de Mediana Empresa, se hablará en general de la Pequeña y Mediana Empresa (PYME), ya que el concepto de Mediana Empresa esta íntimamente ligado al concepto de Pequeña Empresa. 1.9.7.1 DEFINICIÓN En El Salvador no existe una definición única del significado de la PYME. Las definiciones y criterios utilizados varían entre las distintas instituciones públicas o privadas que están relacionadas con el desarrollo de este sector empresarial. Estas tienden a utilizar los criterios de clasificación que más se adaptan a la 45 disponibilidad de información estadística generada por las instituciones encargadas. Mediana Empresa es toda unidad económica que emplea entre 50 y 99 trabajadores5. 1.9.7.2 CARACTERÍSTICAS Según estudios de FUNDAPYME, las PYME presentan algunas de las siguientes características:  Las PYME tienen como principal cliente a los consumidores finales. El segmento de mayor importancia para el 54% de las empresas lo constituye el consumidor final.  La mayoría de las PYME son empresas maduras. El 55% de las empresas pequeñas y medianas tienen más de diez años de haber iniciado actividades.  Los empresarios de las PYME tienen una experiencia empresarial relativamente grande. La mayor experiencia empresarial está presente en el sector de la mediana empresa, en donde los propietarios y gerentes propietarios tienen más de 10 años de experiencia.  Las PYME salvadoreñas destinan su oferta fundamentalmente al mercado nacional.  La incidencia de empresas que exportan actualmente es apenas del 14%, y el porcentaje de las que no exportan actualmente, pero tienen interés en hacerlo en el futuro es de apenas el 8%. 5 FUENTE: FUNDAPYME, sobre la base de entrevistas realizadas a las instituciones. 46 1.10 TEORIA ADOPTADA El desarrollo del proyecto se realiza bajo El Sistema Operativo Linux en su distribución Red Hat 8.0. Este es un Sistema Operativo bastante robusto, multiplataforma, multiusuario y que además, es de libre distribución por lo que proporciona la ventaja de no requerir ningún costo de licencias, para su uso. Esto es de gran utilidad en el desarrollo del proyecto, ya que ayuda en gran manera a reducir los costos de instalación y operación. En cuanto a las Herramientas de desarrollo se ha considerado la utilización del lenguaje de programación Perl6, debido a que este incorpora librerías con las que se pueden implementar operaciones con los puertos o programación con sockets, y que al igual que el Sistema Operativo, es de libre distribución. Existen varias librerías de comunicaciones en Perl, el paquete IO::Socket7, específicamente, es una de ellas. Esta será una herramienta bastante útil para el desarrollo del proyecto. Además, se ha considerado el uso de la Programación Modular para el desarrollo del software, debido a las ventajas que esta proporciona, ya que la división en módulos hará mas eficiente y organizado el diseño por lo que las modificaciones y expansiones del mismo serán mucho más fáciles. Por otra parte, se elaborará un prototipo de un Sitio Web para evaluar la funcionalidad y operabilidad del software. 6 Perl que significa "Practical Extraction and Report Language" es un lenguaje de programación que se utiliza principalmente para labores de procesamiento de texto, programación de software de sistemas y como lenguaje para programar aplicaciones para WWW. 7 IO::Socket es una librería de comunicación en Perl que proporciona una interfaz sencilla para crear y operar sockets o puertos. 47 CAPITULO II. INVESTIGACIÓN DE CAMPO 2.1 OBJETIVO Realizar una investigación de campo en las Medianas Empresas Salvadoreñas para cuantificar e interpretar los datos obtenidos de cada una de ellas con el fin analizar el impacto de Internet y los beneficios que ofrece para dichas empresas, así como determinar las tendencias en cuanto al tipo de tecnología que utilizan para el mantenimiento de sus Sitios Web y sus capacidades de inversión. 2.2 METODOLOGIA DE INVESTIGACION 2.2.1 METODO DE INVESTIGACIÓN Es necesario utilizar en toda investigación un método que sirva de camino para lograr el conocimiento. En el presente documento se utiliza el método inductivo ya que de acuerdo a la naturaleza de la investigación es el que más se adapta, debido a que este comienza de lo particular a lo general; en este caso se estudia una muestra representativa de las Medianas Empresas establecidas y registradas legalmente, de acuerdo a la “Dirección General de Estadísticas y Censos” (DIGESTYC) y la “Comisión Nacional de la Micro y Pequeña Empresa” (CONAMYPE), posteriormente se generalizan los resultados del análisis a todas las Medianas Empresas Salvadoreñas. Una de las ventajas de este método es que existe contacto directo con el objeto de investigación, en este caso las Medianas Empresas de El Salvador. 2.2.2 TIPO DE ESTUDIO El desarrollo de la Investigación se caracteriza de acuerdo a los siguientes criterios: 48 Exploratorio: Por la Necesidad esencial de familiarizarse con el tema. Este es novedoso y poco estudiado en nuestro medio. Además es el punto de partida para estudios posteriores de mayor profundidad. Descriptivo: Debido que se analiza e interpreta el funcionamiento de Los Servidores Web en cuanto a software se refiere, y se exponen sus características. De Campo: Ya que este estudia el fenómeno en el escenario donde se manifiestan los hechos, se visitaron Medianas Empresas legalmente establecidas y registradas en El Salvador de acuerdo a DIGESTYC, siendo esta una muestra representativa. 2.2.3 TÉCNICAS DE INVESTIGACIÓN 2.2.3.1 RECOPILACIÓN DE DATOS Para el desarrollo del proyecto se realizó una investigación tanto documental como de campo. La información de carácter documental amplió el conocimiento acerca del funcionamiento y el diseño del Software para servir páginas en Internet y las herramientas que se utilizan para su desarrollo. Así mismo, fue de utilidad para obtener información sobre proyectos similares. Las fuentes de consulta fueron de dos tipos: a. Bibliográfica Que incluyó libros de texto sobre Servidores Web, Manuales Técnicos sobre las herramientas utilizadas para el desarrollo de este tipo de proyectos, Manuales Técnicos de Servidores Web, Tesis relacionadas con el tema. b. Internet Fue una de las principales fuentes de información, ya que de ella se pudo obtener información descriptiva sobre Los Servidores Web y el software que utilizan, 49 Estadísticas de su Uso, estadísticas de publicidad y usos de Internet de las Empresas, Manuales sobre las tecnologías de desarrollo e información sobre proyectos similares de otras Universidades. En la investigación de campo se aplicaron las siguientes técnicas de recopilación de información: a. Entrevistas La entrevista consiste en una conversación entre dos o más personas, sobre un tema determinado de acuerdo a ciertos esquemas o pautas determinadas. Mediante las entrevistas se obtuvo información referente a la situación de las Medianas Empresas en cuanto a usos de Internet y tecnología informática. De igual manera se obtuvo información sobre aspectos relacionados al diseño y desarrollo de software para servir páginas en Internet. Las entrevistas realizadas fueron de dos tipos. a.1 Expertos en el tema Se entrevistó a personas que por su trabajo o experiencia, conocen sobre tecnologías o herramientas de desarrollo, así como detalles de implementación que contribuyeron al desarrollo del proyecto. a.2. Empresas De la misma manera, se realizaron entrevistas con el personal de las Medianas Empresas para recolectar información sobre el uso y administración de Sitios Web y de Servidores Web. La información obtenida de estás fue recopilada en las encuestas. 50 b. Observación Consiste básicamente en utilizar los sentidos para observar los hechos, realidades sociales y a las personas en su contexto cotidiano con el objetivo de obtener información que es difícil obtener a través de una entrevista o encuesta. Se visitaron de forma presencial, Medianas Empresas Salvadoreñas, de esta manera se conocieron los usos de Internet y las tendencias de administración de los Servidores Web y el mantenimiento de dichos Sitios. c. Encuestas Es una metodología que satisface todas las exigencias de investigación, para su realización se necesita una planificación y su objetivo es investigar acontecimientos presentes ocurridos y de opinión; el instrumento utilizado fue el cuestionario, ya que es la traducción de los objetivos de la investigación a preguntas especificas y operacionaliza problemas de investigación. El cuestionario que se utilizó es de carácter genérico, conteniendo una diversidad de preguntas las cuales son de tipo abiertas, cerradas y categorizadas. Se realizaron las encuestas con el objetivo de conocer de manera directa, la forma en que las Medianas Empresas hacen uso de Internet, las tecnologías que utilizan y sus necesidades de uso en cuanto a Sitios Web y Servidores Web. Así mismo, las encuestas permitieron determinar la situación actual de dichas empresas en cuanto a tecnología se refiere. (Ver anexo II, en él se presentan los Modelos Propuestos para la Encuestas, una para el Usuario Técnico y otra para el Usuario Administrativo). 51 2.2.3.2 ANÁLISIS DE LA INFORMACIÓN Utilizando la información obtenida en las encuestas, se determinó la medida en que las Medianas empresas hacen uso de Internet y de Servidores Web, así como se determinó la situación tecnológica actual de las mismas. Se realizó una tabulación de los datos para estimar los beneficios que dichas empresas pueden obtener por medio de la mayor publicidad y la gestión de labores o servicios desde Internet, así como sus necesidades de uso de tipo informáticas. 2.2.3.3 DISEÑO PROPUESTO Se realizó el diseño del software prototipo para la creación del Servidor Web, atendiendo los requerimientos planteados para una Mediana Empresa. 2.2.3.4 DOCUMENTACIÓN La funcionalidad y operabilidad del software del Servidor Web están incluidos en el manual del usuario y del programador. El manual del programador describe los procesos y todo lo referente al servidor en cuanto a programación se refiere. El manual del usuario sirve como una guía detallada para configurar y operar el Software del Servidor, así mismo, se incluirá en dicho manual, un apartado para la instalación del software y la configuración del Firewall. 2.2.4 MARCO MUESTRAL El marco muestral esta determinado por toda la población de la cuál se extrae la muestra en la que se realiza la investigación. Para el análisis de la muestra se utilizó el método estadístico inferencial. 2.2.4.1 POBLACIÓN La población constituye la totalidad de un grupo de elementos u objetos que se quiere investigar, es el conjunto de todos los casos que concuerdan con lo que se pretende investigar. La población que forma el universo en la investigación lo constituyen las Medianas Empresas legalmente registradas en El Salvador, ya que 52 se considera que una empresa de esta categoría, tiene la capacidad de hacer una inversión, de acuerdo a los requerimientos mínimos planteados para el proyecto. Para la obtención de estos datos se consultó a “La Comisión Nacional de la Micro y Pequeña Empresa” (CONAMYPE), quienes facilitaron información sobre el total de Empresa legalmente registradas en El Salvador clasificadas por su tamaño. Por otra parte, se consultó a “La Dirección General de Estadísticas y Censos” (DIGESTYC) para la obtención de las Empresas Legalmente registradas. Es importante mencionar el hecho de que pueden existir muchas Medianas Empresas que no estén legalmente registradas y para efectos de la investigación no se tomaran en cuenta. A continuación se presenta el cuadro N° 4 con los datos recolectados. CUADRO N° 4. Total de Empresas en El Salvador. El Salvador 2000 Tipo No. De establecimientos Microempresas 512,877 Pequeñas empresas 4,327 Medianas empresas 502 Grandes empresas 316 El total de Medianas Empresas legalmente registradas es de 502. Este es el tamaño de la Población a utilizar. La referencia más reciente es del año 2,000. 2.2.4.2. MUESTRA La muestra es un subconjunto de la población o parte representativa de la misma. Se utilizó la siguiente fórmula8 para obtener el tamaño de la muestra; siendo está una recomendación de los métodos estadísticos probabilísticos para población finita. 8 Obtenida de documento en http://www.mrbit.es/hsa/vai/muestreo/ 53 n = N (z ² x P x Q) E ² (N-1) + (z² x P x Q) donde: N = Tamaño del universo z = Nivel de Confianza P x Q = Factores de Variabilidad de fenómeno E = Error n = Tamaño de la muestra operando se tiene: N = 502 Z = Se utilizará el nivel de confianza de 0.95% por lo tanto: 0.95/2=0.475. De acuerdo a la tabla de la curva normal se tiene que: Z = 1.96 P = 0.5 Es la probabilidad de éxito Q = 0.5 Es la probabilidad de fracaso E =10% Utilizando la fórmula para calcular la muestra (n) se tiene: n = 502[(1.96) ² (0.5) (0.5)] [(0.1) ² (502 – 1)] + [(1.96)² (0.5) (0.5)] n = 81 54 2.3 INTERPRETACION DE LOS RESULTADOS Después de haber realizado la investigación de campo por medio de las técnicas establecidas, se procesaron los datos recabados en tablas estadísticas, las cuales proporcionan información del objeto en estudio y, están conformadas por títulos, encabezado, concepto o columna matriz y cuerpo. Los tipos de gráficos que se utilizan son de pastel o circular y el gráfico de barras agrupadas. El gráfico de pastel, consiste en una circunferencia cuya superficie esta dividida en sectores circulares, cada una de las cuales representa la parte proporcional de los datos o la suma de todas las frecuencias. El gráfico de barras agrupadas, consiste en un plano cartesiano en el que se encuentran una serie de barras donde cada una representa una categoría; de tal manera que se pueden comparar los valores entre cada categoría de la serie. La razón por la que se utilizan estos tipos de gráficos, es debido a que por sus características la visualización de los resultados se hace más fácil. 2.3.1 ENTREVISTAS a. Empresas Las entrevistas a empresas se realizaron de manera paralela con las encuestas, ya que para lograr obtener los datos solicitados en las mismas, fue necesario concertar entrevistas con el personal involucrado. Los datos obtenidos se recopilaron en las encuestas. b. Expertos en el tema En esta etapa se realizaron entrevistas con dos personas que por su experiencia y por su trabajo, tienen conocimiento sobre este tipo de proyectos. Esto con el objetivo de tener una base metodológica sobre el desarrollo e implementación de los Servidores Web. 55 De esta parte de la Investigación, se obtuvo información de importancia para el desarrollo del software. Las personas entrevistadas brindaron datos sobre el lenguaje de programación Perl, en cuanto a las librerías con las que se pueden implementar operaciones con los puertos o programación con sockets. Existen varias librerías de comunicaciones en Perl, el paquete IO::Socket, específicamente, proporciona una interfaz muy sencilla para crear y operar con sockets. De igual manera, se obtuvo información acerca de la arquitectura sobre la que trabajan los Servidores Web a nivel de software y recomendaron la programación o el desarrollo modular, de esta manera se tendrá un diseño eficiente, además de que brindará estabilidad, y permitirá la fácil adición de otras funciones al servidor sin que otras dejen de funcionar. Por otra parte, se coincidió en el hecho de que existe muy poca información técnica sobre el diseñó de Servidores Web, y señalan que la implementación de este tipo de proyectos contribuye en gran medida al desarrollo, tanto económico como tecnológico de nuestro país, dando pautas para que se puedan desarrollar a largo plazo, proyectos a mayor escala. 2.3.2 OBSERVACIÓN Esta etapa se realizó en paralelo con las entrevistas y encuestas. Se logro obtener información sobre el tipo de tecnologías y equipos que poseen algunas de las empresas entrevistadas y encuestadas. De igual manera se obtuvo información sobre las actitudes, conocimientos y tendencias de las empresas en cuanto a tecnología informática. Al igual que las entrevistas, la información obtenida se recopiló en las encuestas. 56 2.3.3 ENCUESTAS 2.3.3.1 OBJETIVO GENERAL Recolectar información que permita analizar el impacto de Internet y los beneficios que ofrece a la Mediana Empresa en El Salvador, así como determinar en que medida las empresas tienen presencia en Internet a través de un Sitio Web, el tipo de tecnología que utilizan para el mantenimiento de los mismos y sus capacidades y disponibilidad de inversión. 2.3.3.2. PRESENTACIÓN DE LOS RESULTADOS PREGUNTA N° 1 ¿En su empresa tienen conexión a Internet? OBJETIVO: Determinar el porcentaje de Medianas Empresas que tienen acceso a Internet. RESULTADOS: TABLA N° 1 ALTERNATIVA N° DE EMPRESAS PORCENTAJE a Sí 75 93% b No 6 7% Total 81 100% GRAFICA N° 1 EMPRESAS CON CONEXION A INTERNET No 7% Sí 93% 57 INTERPRETACIÓN DE LOS RESULTADOS: De las 81 empresas encuestadas 93% de éstas afirma que poseen conexión a Internet. Esto nos indica que la mayoría de las empresas encuestadas poseen conexión a Internet. PREGUNTA N° 2 ¿Cuál es el fin principal de acceso a Internet en su Empresa? OBJETIVO: Conocer cuales son los fines de acceso a Internet de las empresas y de esta manera determinar la medida en que ciertas actividades se realizan en las empresas a través de Internet y los beneficios que pueden percibir. (Las empresas pueden seleccionar más de una opción). RESULTADOS: TABLA N° 2 ALTERNATIVA FRECUENCIA (f) (No.Empresas que seleccionaron c/opción) FRECUENCIA RELATIVA (fr) ((f/N)*100) 9 a Correo Electrónico 65 27% b Labores Educativas 7 3% c Compras