CAPITULO I 1. PLANTEMIENTO DEL PROBLEMA EN EL DEPARTAMENTO DE PERSONAL DE LA BASE AEREA COTOPAXI DE LA FUERZA AEREA ECUATORIANA 1.1. CONTEXTUALIZACION Hoy en día con los avances en el desarrollo de las tecnologías de las telecomunicaciones, de la informática y en un mundo globalizado, los empresarios que conducen las grandes empresas, han debido actualizarse de acuerdo a las exigencias que la época demanda, para lograr así ventajas competitivas y comparativas. En esta era se ha observado una gran innovación y desarrollo de tecnologías de la información que ha permitido la evolución de computadores que son capaces de producir sistemas de información a la sociedad con aportes a los distintos sectores económicos, sociales, políticos, educativos, entre otros. Los procesos rutinarios en forma manual procesan información lenta, llevarla a un sistema automatizado garantiza un mejor trato de información. 1 La presente investigación aborda una de las problemáticas que desde hace años afectan a muchas Instituciones Gubernamentales, como es llevar un control automatizado efectivo sobre su personal. La Base Aérea Cotopaxi de la Fuerza Aérea Ecuatoriana sirvió como base para la investigación elaborándose una consulta sobre el actual proceso para la concesión de guardias, permisos y vacaciones, la cual tiene como objetivo determinar qué tanta eficacia, confiabilidad, veracidad y rapidez tendría el control automatizado de su personal. Por ende el principal objetivo de esta investigación es realizar un estudio para desarrollar e Implementar un Sistema de Control para la Concesión de Permisos, Guardias y Vacaciones, en una institución de esta índole y las herramientas necesarias para erradicar los problemas más comunes en cuanto a los procesos de control semiautomatizado, entre ellos se pueden destacar: pérdida o duplicación de información debido a la trascripción manual y/o forma de almacenamiento. 1.1.1. Sistemas de Información Un sistema de información es un conjunto de elementos que interactúan entre sí con el fin de apoyar las actividades de una empresa o negocio. El equipo computacional: el hardware necesario para que el sistema de información pueda operar. El recurso humano que interactúa con el Sistema de Información, el cual está formado por las personas que utilizan el sistema. Un sistema de información realiza cuatro actividades básicas: entrada, almacenamiento, procesamiento y salida de información. 2 1.1.2. Tipos y usos de los Sistemas de Información Los Sistemas de Información cumplen tres objetivos básicos dentro de las organizaciones: 1. Automatización de procesos operativos. 2. Proporcionar información que sirva de apoyo al proceso de toma de decisiones. 3. Lograr ventajas competitivas a través de su implantación y uso. Los tipos de Sistemas de Información y sus principales características son: Sistemas Transaccionales. A través de éstos suelen lograrse ahorros significativos de mano de obra, debido a que automatizan tareas operativas de la organización. Son fáciles de justificar ante la dirección general, ya que sus beneficios son visibles y palpables. Sistemas de Apoyo de las Decisiones. Suelen introducirse después de haber implantado los Sistemas Transaccionales más relevantes de la empresa, ya que estos últimos constituyen su plataforma de información. 3 No suelen ahorrar mano de obra. Debido a ello, la justificación económica para el desarrollo de estos sistemas es difícil, ya que no se conocen los ingresos del proyecto de inversión. Sistemas Estratégicos. Su función primordial no es apoyar la automatización de procesos operativos ni proporcionar información para apoyar la toma de decisiones. Apoyan el proceso de innovación de productos y proceso dentro de la empresa debido a que buscan ventajas respecto a los competidores y una forma de hacerlo en innovando o creando productos y procesos. 1.2. Bases de Datos Una base de datos es un conjunto de datos que pertenecen al mismo contexto almacenados sistemáticamente para su uso posterior. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. En informática existen los sistemas gestores de bases de datos (SGBD), que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las propiedades de los sistemas gestores de bases de datos se estudian en informática. Las aplicaciones más usuales son para la gestión de empresas e instituciones públicas. También son ampliamente utilizadas en entornos científicos con el objeto de almacenar la información experimental. 4 1.2.1. Tipos de bases de datos Las bases de datos pueden clasificarse de varias maneras, de acuerdo al criterio elegido para su clasificación: Según la variabilidad de los datos almacenados Bases de datos estáticas.- Son bases de datos de sólo lectura, utilizadas primordialmente para almacenar datos históricos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a través del tiempo, realizar proyecciones y tomar decisiones. Bases de datos dinámicas.- Son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones como actualización y adición de datos, además de las operaciones fundamentales de consulta. Según el contenido Bases de datos bibliográficas.- Contienen un representante de la fuente primaria, que permite localizarla. Un registro típico de una base de datos bibliográfica contiene información sobre el autor, fecha de publicación, editorial, título, edición, de una determinada publicación, etc. Bases de datos numéricas.- Su contenido son cifras o números. Bases de datos de texto completo.- Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las ediciones de una colección de revistas científicas. 5 Directorios.- Un ejemplo son las guías telefónicas en formato electrónico. Banco de imágenes, audio, video, multimedia, etc.- Almacenan información en distintos formatos. Bases de datos o "bibliotecas" de información Biológica.Almacenan diferentes tipos de información proveniente de las ciencias de la vida o médicas. 1.2.2. Modelos de bases de datos Además de la clasificación por la función de las bases de datos, éstas también se pueden clasificar de acuerdo a su modelo de administración de datos. Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de datos, así como de los métodos para almacenar y recuperar información de esos contenedores. Los modelos de datos no son cosas físicas: son abstracciones que permiten la implementación de un sistema eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos matemáticos. Algunos modelos con frecuencia utilizados en las bases de datos: • Bases de datos jerárquicas • Bases de datos de red • Bases de datos relacionales • Bases de datos orientadas a objetos • Bases de datos documentales 6 1.2.3. MySql MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones.1 MySQL AB desde enero de 2008 una subsidiaria de Sun Microsystems y ésta a su vez de Oracle Corporation desde abril de 2009 desarrolla MySQL como software libre en un esquema de licenciamiento dual. Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una licencia específica que les permita este uso. Está desarrollado en su mayor parte en ANSI C. Al contrario de proyectos como Apache, donde el software es desarrollado por una comunidad pública y el copyright del código está en poder del autor individual, MySQL es patrocinado por una empresa privada, que posee el copyright de la mayor parte del código. Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Además de la venta de licencias privativas, la compañía ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet. MySQL AB fue fundado por David Axmark, Allan Larsson y Michael Widenius. 7 Gráfico: 1.1: Pantalla de Instalación de MySQL Fuente: Los Investigadores SQL (Lenguaje de Consulta Estructurado) fue comercializado por primera vez en 1981 por IBM, el cual fue presentado a ANSI y desde entonces ha sido considerado como un estándar para las bases de datos relacionales. Desde 1986, el estándar SQL ha aparecido en diferentes versiones como por ejemplo: SQL:92, SQL:99, SQL:2003. MySQL es una idea originaria de la empresa opensource MySQL AB establecida inicialmente en Suecia en 1995 y cuyos fundadores son David Axmark, Allan Larsson, y Michael "Monty" Widenius. El objetivo que persigue esta empresa consiste en que MySQL cumpla el estándar SQL, pero sin sacrificar velocidad, fiabilidad o usabilidad. Michael Widenius en la década de los 90 trató de usar mSQL para conectar las tablas usando rutinas de bajo nivel ISAM, sin embargo, mSQL no era rápido y flexible para sus necesidades. Esto lo llevó a crear una API SQL denominada MySQL para bases de datos muy similar a la de mSQL pero más portable. La procedencia del nombre de MySQL no es clara. Desde hace más de 10 años, las herramientas han mantenido el prefijo My. También, se cree que tiene relación con el nombre de la hija del cofundador Monty Widenius quien se llama My. 8 Por otro lado, el nombre del delfín de MySQL es Sakila y fue seleccionado por los fundadores de MySQL AB en el concurso “Name the Dolphin”. Este nombre fue enviado por Ambrose Twebaze, un desarrollador de software de código abierto africano, derivado del idioma SiSwate, el idioma local de Swazilandia y corresponde al nombre de una ciudad en Arusha, Tanzania, cerca de Uganda la ciudad origen de Ambrose. Existen varias APIs que permiten, a aplicaciones escritas en diversos lenguajes de programación, acceder a las bases de datos MySQL, incluyendo C, C++, C#, Pascal, Delphi (via dbExpress), Eiffel, Smalltalk, Java (con una implementación nativa del driver de Java), Lisp, Perl, PHP, Python, Ruby,Gambas, REALbasic (Mac y Linux), (x)Harbour (Eagle1), FreeBASIC, y Tcl; cada uno de estos utiliza una API específica. También existe una interfaz ODBC, llamado MyODBC que permite a cualquier lenguaje de programación que soporte ODBC comunicarse con las bases de datos MySQL. También se puede acceder desde el sistema SAP, lenguaje ABAP. MySQL es muy utilizado en aplicaciones web, como Drupal o phpBB, en plataformas (Linux/Windows-Apache-MySQL- PHP/Perl/Python), y por herramientas de seguimiento de errores como Bugzilla. Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en combinación con MySQL. MySQL es una base de datos muy rápida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificación. En aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones. Sea cual sea el entorno en el que va a utilizar MySQL, es importante adelantar monitoreos sobre el desempeño 9 para detectar y corregir errores tanto de SQL como de programación. MySQL funciona sobre múltiples plataformas, incluyendo: • AIX • BSD • FreeBSD • HP-UX • GNU/Linux • Mac OS X • NetBSD • Novell Netware • OpenBSD • OS/2 Warp • QNX • SGI IRIX • Solaris • SunOS • SCO OpenServer • SCO UnixWare • Tru64 • eBD • Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Vista, Windows 7 y Windows Server (2000, 2003 y 2008). • OpenVMS Características de la versión 5.0.22 • Un amplio subconjunto de ANSI SQL 99, y varias extensiones. • Soporte a multiplataforma. • Procedimientos almacenados • Disparadores (triggers). 10 • Cursores • Vistas actualizables. • Soporte a VARCHAR • INFORMATION_SCHEMA • Modo Strict • Soporte X/Open XA de transacciones distribuidas; transacción en dos fases como parte de esto, utilizando el motor InnoDB de Oracle. • Motores de almacenamiento independientes (MyISAM para lecturas rápidas, InnoDB para transacciones e integridad referencial). • Transacciones con los motores de almacenamiento InnoDB, BDB Y Cluster; puntos de recuperación (savepoints) con InnoDB. • Soporte para SSL. • Query caching • Sub-SELECTs (o SELECTs anidados). • Réplica con un maestro por esclavo, varios esclavos por maestro, sin soporte automático para múltiples maestros por esclavo. • indexing y búsqueda de campos de texto completos usando el motor de almacenamiento MyISAM. • Embedded database library • Soporte completo para Unicode. • Conforme a las reglas ACID usando los motores InnoDB, BDB y Cluster. • Shared-nothing clustering through MySQL Cluster. Inicialmente, MySQL carecía de elementos considerados esenciales en las bases de datos relacionales, tales como integridad referencial y transacciones. A pesar de ello, atrajo a los desarrolladores de páginas web con contenido dinámico, justamente por su simplicidad. 11 Poco a poco los elementos de los que carecía MySQL están siendo incorporados tanto por desarrollos internos, como por desarrolladores de software libre. Entre las características disponibles en las últimas versiones se puede destacar: • Amplio subconjunto del lenguaje SQL. Algunas extensiones son incluidas igualmente. • Disponibilidad en gran cantidad de plataformas y sistemas. • Diferentes opciones de almacenamiento según si se desea velocidad en las operaciones o el mayor número de operaciones disponibles. • Transacciones y claves foráneas. • Conectividad segura. • Replicación. • Búsqueda e indexación de campos de texto. MySQL es un sistema de administración de bases de datos. Una base de datos es una colección estructurada de tablas que contienen datos. Esta puede ser desde una simple lista de compras a una galería de pinturas o el vasto volumen de información en una red corporativa. Para agregar, acceder a y procesar datos guardados en un computador, usted necesita un administrador como MySQL Server. Dado que los computadores son muy buenos manejando grandes cantidades de información, los administradores de bases de datos juegan un papel central en computación, como aplicaciones independientes o como parte de otras aplicaciones. MySQL es un sistema de administración relacional de bases de datos. Una base de datos relacional archiva datos en tablas separadas en vez de colocar todos los datos en un gran archivo. Esto permite velocidad y flexibilidad. Las tablas están conectadas 12 por relaciones definidas que hacen posible combinar datos de diferentes tablas sobre pedido. MySQL es software de fuente abierta. Fuente abierta significa que es posible para cualquier persona usarlo y modificarlo. Cualquier persona puede bajar el código fuente de MySQL y usarlo sin pagar. Cualquier interesado puede estudiar el código fuente y ajustarlo a sus necesidades. MySQL usa el GPL (GNU General Public License) para definir que puede hacer y que no puede hacer con el software en diferentes situaciones. Si usted no se ajusta al GPL o requiere introducir código MySQL en aplicaciones comerciales, usted puede comprar una versión comercial licenciada. Hay tres tipos de compilación del servidor MySQL: • Estándar: Los binarios estándares de MySQL son los recomendados para la mayoría de los usuarios, e incluyen el motor de almacenamiento InnoDB. o Max (No se trata de MaxDB, que es una cooperación con SAP): Los binarios incluyen características adicionales que no han sido lo bastante probadas o que normalmente no son necesarias. • MySQL-Debug: Son binarios que han sido compilados con información de depuración extra. No debe ser usada en sistemas en producción porque el código de depuración puede reducir el rendimiento. 1.3. PHP PHP es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. Es usado principalmente en interpretación del lado del servidor (server-side scripting) pero 13 actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz gráfica usando las bibliotecas Qt o GTK+. PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor (inicialmente PHP Tools, o, Personal Home Page Tools). Fue creado originalmente por Rasmus Lerdorf en 1994; sin embargo la implementación principal de PHP es producida ahora por The PHP Group y sirve como el estándar de facto para PHP al no haber una especificación formal. Publicado bajo la PHP License, la Free Software Foundation considera esta licencia como software libre. PHP es un lenguaje interpretado de propósito general ampliamente usado, diseñado especialmente para desarrollo web y que puede ser incrustado dentro de código HTML. Generalmente se ejecuta en un servidor web, tomando el código en PHP como su entrada y creando páginas web como salida. Puede ser desplegado en la mayoría de los servidores web y en casi todos los sistemas operativos y plataformas sin costo alguno. PHP se encuentra instalado en más de 20 millones de sitios web y en un millón de servidores, el número de sitios en PHP ha compartido algo de su preponderante sitio con otros nuevos lenguajes no tan poderosos desde agosto de 2005. Este mismo sitio web de Wikipedia está desarrollado en PHP. Es también el módulo Apache más popular entre las computadoras que utilizan Apache como servidor web. La versión más reciente de PHP es la 5.3.3, del 22 de julio de 2010. El gran parecido que posee PHP con los lenguajes más comunes de programación estructurada, como C y Perl, permiten a la mayoría de los programadores crear aplicaciones complejas con una curva de aprendizaje muy corta. También les permite involucrarse con aplicaciones de contenido dinámico sin tener que aprender todo un nuevo grupo de funciones. 14 Aunque todo en su diseño está orientado a facilitar la creación de página web, es posible crear aplicaciones con una interfaz gráfica para el usuario, utilizando la extensión PHP-Qt o PHP-GTK. También puede ser usado desde la línea de órdenes, de la misma manera como Perl o Python pueden hacerlo; a esta versión de PHP se la llama PHP-CLI (Command Line Interface). Cuando el cliente hace una petición al servidor para que le envíe una página web, el servidor ejecuta el intérprete de PHP. Éste procesa el script solicitado que generará el contenido de manera dinámica (por ejemplo obteniendo información de una base de datos). El resultado es enviado por el intérprete al servidor, quien a su vez se lo envía al cliente. Mediante extensiones es también posible la generación de archivos PDF, Flash, así como imágenes en diferentes formatos. Permite la conexión a diferentes tipos de servidores de bases de datos tales como MySQL, Postgres, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite. 1.4. XAMPP XAMPP es un servidor independiente de plataforma, software libre, que consiste principalmente en la base de datos MySQL, el servidor Web Apache y los intérpretes para lenguajes de script: PHP y Perl. El nombre proviene del acrónimo de X (para cualquiera de los diferentes sistemas operativos), Apache, MySQL, PHP, Perl. El programa está liberado bajo la licencia GNU y actúa como un servidor Web libre, fácil de usar y capaz de interpretar páginas dinámicas. Actualmente XAMPP está disponible para Microsoft Windows, GNU/Linux, Solaris, y MacOS X. PHP también tiene la capacidad de ser ejecutado en la mayoría de los sistemas operativos, tales como UNIX (y de ese tipo, como Linux o Mac 15 OS X) y Windows, y puede interactuar con los servidores de web más populares ya que existe en versión CGI, módulo para Apache, e ISAPI. PHP es una alternativa a las tecnologías de Microsoft ASP y ASP.NET (que utiliza C# VB.NET como lenguajes), a ColdFusion de la compañía Adobe (antes Macromedia), a JSP/Java de Sun Microsystems, y a CGI/Perl. Aunque su creación y desarrollo se da en el ámbito de los sistemas libres, bajo la licencia GNU, existe además un IDE (entorno de desarrollo integrado) comercial llamado Zend Studio. Recientemente, CodeGear (la división de lenguajes de programación de Borland) ha sacado al mercado un entorno integrado de desarrollo para PHP, denominado Delphi for PHP. También existen al menos un par de módulos1 para Eclipse, uno de los IDE más populares. 1.5. phpMyAdmin phpMyAdmin es una herramienta escrita en PHP con la intención de manejar la administración de MySQL a través de páginas web, utilizando Internet. Actualmente puede crear y eliminar Bases de Datos, crear, eliminar y alterar tablas, borrar, editar y añadir campos, ejecutar cualquier sentencia SQL, administrar claves en campos, administrar privilegios, exportar datos en varios formatos y está disponible en 50 idiomas. Se encuentra disponible bajo la licencia GPL. Este proyecto se encuentra vigente desde el año 1998, siendo el mejor evaluado en la comunidad de descargas de SourceForge.net como la descarga del mes de diciembre del 2002. Como esta herramienta corre en máquinas con Servidores Webs y Soporte de PHP y MySQL, la tecnología utilizada ha ido variando durante su desarrollo. 16 1.6. Joomla! Joomla! es un sistema de gestión de contenidos, y entre sus principales virtudes está la de permitir editar el contenido de un sitio web de manera sencilla. Es una aplicación de código abierto programada mayoritariamente en PHP bajo una licencia GPL. Este administrador de contenidos puede trabajar en Internet o intranets y requiere de una base de datos MySQL, así como, preferiblemente, de un servidor HTTP Apache. En Joomla! se incluyen características como: mejorar el rendimiento web, versiones imprimibles de páginas, flash con noticias, blogs, foros, polls (encuestas), calendarios, búsqueda en el sitio web e internacionalización del lenguaje. Su nombre es una pronunciación fonética para anglófonos de la palabra swahili jumla, que significa "todos juntos" o "como un todo". Se escogió como una reflexión del compromiso del grupo de desarrolladores y la comunidad del proyecto Joomla surge como el resultado de una bifurcación o mejora de Mambo, de la corporación Miro de Australia, quien mantenía la marca del nombre Mambo en esa época y el grupo principal de desarrolladores. Joomla nace con esta división el 17 de agosto de 2005. La corporación Miro formó una organización sin ánimo de lucro con el propósito inicial de fundar el proyecto y protegerlo de pleitos. El grupo de desarrollo reclamó que muchas de las cláusulas de la estructura de la fundación fueron acuerdos previos hechos por el comité directivo de Mambo, el cual no tiene la consultoría necesaria de quienes mantienen el proyecto e incluye cláusulas que violan los valores principales del código abierto. El grupo de desarrollo creó un sitio Web que se llamó OpenSourceMatters para distribuir información a los usuarios, desarrolladores, diseñadores Web y a la comunidad en general. En ese momento el líder Andrew Eddie, conocido como "MasterChief", escribió una carta abierta para la comunidad, que apareció en la sección de anuncios del foro público en mamboserver.com. Al siguiente día, 1000 personas ingresaron al sitio 17 web opensourcematters.org para expresar su apoyo y estímulo por las acciones ejecutadas por el grupo de desarrollo. El sitio web recibió un aviso de temporalmente fuera de servicio debido al excesivo tráfico. Este evento apareció en newsforge.com, eweek.com, y ZDnet.com. Peter Lamont CEO de Miro dio una respuesta en el artículo titulado "The Mambo Open Source Controversy - 20 Questions with Miro". Durante ese período, Joomla se hizo más grande. El 1 de septiembre de 2005, el nuevo nombre, "Joomla", que es la pronunciación en inglés de la palabra Jumla que significa "todos juntos" o "en su conjunto" 1.7. Servidor HTTP Apache El servidor HTTP Apache es un servidor web HTTP de código abierto para plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP/1.11 y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre se debe a que Behelendorf quería que tuviese la connotación de algo que es firme y enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que pronto se convertiría en gobierno de EEUU, y en esos momentos la preocupación de su grupo era que llegasen las empresas y "civilizasen" el paisaje que habían creado los primeros ingenieros de internet. Además Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. Era, en inglés, a patchy server (un servidor "parcheado"). El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation. 18 Apache presenta entre otras características altamente configurables, bases de datos de autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su configuración. Apache tiene amplia aceptación en la red: desde 1996, Apache, es el servidor HTTP más usado. Alcanzó su máxima cuota de mercado en 2005 siendo el servidor empleado en el 70% de los sitios web en el mundo, sin embargo ha sufrido un descenso en su cuota de mercado en los últimos años. (Estadísticas históricas y de uso diario proporcionadas por Netcraft). La mayoría de las vulnerabilidades de la seguridad descubiertas y resueltas tan sólo pueden ser aprovechadas por usuarios locales y no remotamente. Sin embargo, algunas se pueden accionar remotamente en ciertas situaciones, o explotar por los usuarios locales malévolos en las disposiciones de recibimiento compartidas que utilizan PHP como módulo de Apache. Apache es usado principalmente para enviar páginas web estáticas y dinámicas en la World Wide Web. Muchas aplicaciones web están diseñadas asumiendo como ambiente de implantación a Apache, o que utilizarán características propias de este servidor web. Apache es el componente de servidor web en la popular plataforma de aplicaciones LAMP, junto a MySQL y los lenguajes de programación PHP/Perl/Python (y ahora también Ruby). Este servidor web es redistribuido como parte de varios paquetes propietarios de software, incluyendo la base de datos Oracle y el IBM WebSphere application server. Mac OS X integra apache como parte de su propio servidor web y como soporte de su servidor de aplicaciones WebObjects. Es soportado de alguna manera por Borland en las herramientas de desarrollo Kylix y Delphi. Apache es incluido con Novell NetWare 6.5, donde es el servidor web por defecto, y en muchas distribuciones Linux. 19 Apache es usado para muchas otras tareas donde el contenido necesita ser puesto a disposición en una forma segura y confiable. Un ejemplo es al momento de compartir archivos desde una computadora personal hacia Internet. Un usuario que tiene Apache instalado en su escritorio puede colocar arbitrariamente archivos en la raíz de documentos de Apache, desde donde pueden ser compartidos. Los programadores de aplicaciones web a veces utilizan una versión local de Apache con el fin de previsualizar y probar código mientras éste es desarrollado. Microsoft Internet Information Services (IIS) es el principal competidor de Apache, así como Sun Java System Web Server de Sun Microsystems y un anfitrión de otras aplicaciones como Zeus Web Server. Algunos de los más grandes sitios web del mundo están ejecutándose sobre Apache. La capa frontal (front end) del motor de búsqueda Google está basada en una versión modificada de Apache, denominada Google Web Server (GWS). Muchos proyectos de Wikimedia también se ejecutan sobre servidores web Apache. 1.8. Adobe Dreamweaver Adobe Dreamweaver es una aplicación en forma de estudio (basada en la forma de Adobe Flash) enfocada a la construcción y edición de sitios y aplicaciones Web basados en estándares. Creado inicialmente por Macromedia (actualmente producido por Adobe Systems). Es el programa de este tipo más utilizado en el sector del diseño y la programación web, por sus funcionalidades, su integración con otras herramientas como Adobe Flash y, recientemente, por su soporte de los estándares del World Wide Web Consortium. Su principal competidor es Microsoft Expression Web y tiene soporte tanto para edición de imágenes como para animación 20 a través de su integración con otras. Hasta la versión MX, fue duramente criticado por su escaso soporte de los estándares de la web, ya que el código que generaba era con frecuencia sólo válido para Internet Explorer, y no validaba como HTML estándar. Esto se ha ido corrigiendo en las versiones recientes. Se vende como parte de la suite Adobe Creative Suite 3 y 4. La gran ventaja de este editor sobre otros es su gran poder de ampliación y personalización del mismo, puesto que en este programa, sus rutinas (como la de insertar un hipervínculo, una imagen o añadir un comportamiento) están hechas en Javascript-C, lo que le ofrece una gran flexibilidad en estas materias. Esto hace que los archivos del programa no sean instrucciones de C++ sino, rutinas de Javascript que hace que sea un programa muy fluido, que todo ello hace, que programadores y editores web hagan extensiones para su programa y lo ponga a su gusto. Las versiones originales de la aplicación se utilizaban como simples editores WYSIWYG. Sin embargo, versiones más recientes soportan otras tecnologías web como CSS, JavaScript y algunos frameworks del lado servidor. Dreamweaver ha tenido un gran éxito desde finales de los 90 y actualmente mantiene el 90% del mercado de editores HTML. Esta aplicación está disponible tanto para la platafoma MAC como para Windows, aunque también se puede ejecutar en plataformas basadas en UNIX utilizando programas que implementan las API's de Windows, tipo Wine. Como editor WYSIWYG que es, Dreamweaver permite ocultar el código HTML de cara al usuario, haciendo posible que alguien no entendido pueda crear páginas y sitios web fácilmente sin necesidad de escribir código. 21 Algunos desarrolladores web criticaban esta propuesta ya que crean páginas HTML más largas de lo que solían ser al incluir mucho código inútil, lo cual va en detrimento de la ejecución de las páginas en el navegador web. Esto puede ser especialmente cierto ya que la aplicación facilita en exceso el diseño de las páginas mediante tablas. Además, algunos desarrolladores web han criticado Dreamweaver en el pasado porque creaba código que no cumplía con los estándares del consorcio Web (W3C). No obstante, Adobe ha aumentado el soporte CSS y otras maneras de diseñar páginas sin tablas en versiones posteriores de la aplicación, haciendo que se reduzca el exceso de código. Dreamweaver permite al usuario utilizar la mayoría de los navegadores Web instalados en su ordenador para previsualizar las páginas web. También dispone de herramientas de administración de sitios dirigidas a principiantes como, por ejemplo, la habilidad de encontrar y reemplazar líneas de texto y código por cualquier tipo de parámetro especificado, hasta el sitio web completo. El panel de comportamientos también permite crear JavaScript básico sin conocimientos de código. Con la llegada de la versión MX, Macromedia incorporó herramientas de creación de contenido dinámico en Dreamweaver. En lo fundamental de las herramientas HTML WYSIWYG, también permite la conexión a Bases de Datos como MySQL y Microsoft Access, para filtrar y mostrar el contenido utilizando tecnología de script como, por ejemplo, ASP (Active Server Pages), ASP.NET, ColdFusion, JSP (JavaServer Pages) y PHP sin necesidad de tener experiencia previa en programación. Un aspecto de alta consideración de Dreamweaver es su arquitectura extensible. Es decir, permite el uso de "Extensiones". Las extensiones, tal y como se conocen, son pequeños programas, que cualquier desarrollador web puede escribir (normalmente en HTML y Javascript) y que cualquiera puede descargar e instalar, ofreciendo así funcionalidades 22 añadidas a la aplicación. Dreamweaver goza del apoyo de una gran comunidad de desarrolladores de extensiones que hacen posible la disponibilidad de extensiones gratuitas y de pago para la mayoría de las tareas de desarrollo web, que van desde simple efectos rollover hasta completas cartas de compra. También podría decirse, que para un diseño más rápido y a la vez fácil podría complementarse con fireworks en donde podría uno diseñar un menú o para otras creaciones de imágenes (gif web, gif websnap, gif adaptable, jpeg calidad superior, jpeg archivo más pequeño, gif animado websnap) para un sitio web y después exportar la imagen creada y así utilizarla como una sola, en donde ya llevara los vínculos a un dicho sitio en especifico que uno le haya dado.(MRR - U.P.C.) 1.9. Sistemas de Control Control: Proceso para asegurar que las actividades reales se ajusten a las actividades planificadas. Permite mantener a la organización o sistema en buen camino. La palabra control ha sido utilizada con varios y diferentes sentidos: Control como función coercitiva y restrictiva, para inhibir o impedir conductas indeseables, como llegar con atraso al trabajo o a clases, hacer escándalos, etc. Control como verificación de alguna cosa, para apreciar si está correcto, como verificar pruebas o notas. Control como comparación con algún estándar de referencia como pensar una mercadería en otra balanza, comparar notas de alumnos etcétera. 23 Control como función administrativa, esto es, como la cuarta etapa del proceso administrativo. Constituye la cuarta y última etapa del proceso administrativo. Este tiende a asegurar que las cosas se hagan de acuerdo con las expectativas o conforme fue planeado, organizado y dirigido, señalando las fallas y errores con el fin de repararlos y evitar que se repitan. 1.9.1. Factores del Control Existen cuatro factores que deben ser considerados al aplicar el proceso de control. • Cantidad • Tiempo • Costo • Calidad Los tres primeros son de carácter cuantitativo y el último es eminentemente cualitativo. El factor cantidad se aplica a actividades en la que el volumen es importante. A través del factor tiempo se controlan las fechas programadas. El costo es utilizado como un indicador de la eficiencia administrativa, ya que por medio de él se determinan las erogaciones de ciertas actividades. 24 La calidad se refiere a las especificaciones que deben reunir un cierto producto o ciertas funciones de la empresa. 1.9.2. Importancia del Control Establece medidas para corregir las actividades, de tal forma que se alcancen los planes exitosamente. Se aplica a todo: a las cosas, a las personas y a los actos. Determina y analiza rápidamente las causas que pueden originar desviaciones para que no vuelvan a presentarse en el futuro. Localiza los sectores responsables de la administración, desde el momento en que se establecen medidas correctivas. Proporciona información acerca de la situación de la ejecución de los planes, sirviendo como fundamento al reiniciarse el proceso de la planeación. Reduce costos y ahorra tiempo al evitar errores. Su aplicación incide directamente en la racionalización de la administración y consecuentemente, en el logro de la productividad de todos los recursos de la empresa. 1.9.3. Tipos de Controles Control preliminar. Este control tiene lugar antes de principiar operaciones e incluye la creación de políticas, procedimientos y 25 reglas diseñadas para asegurar que las actividades planeadas serán ejecutadas con propiedad. La consistencia en el uso de las políticas y procedimientos es promovida por los esfuerzos del control. Control concurrente. Este control tiene lugar durante la fase de la acción de ejecutar los planes e incluye la dirección, vigilancia y sincronización de las actividades, según ocurran. Control de retroalimentación. Este tipo de control se enfoca sobre el uso de la información de los resultados anteriores, para corregir posibles desviaciones futuras del estándar aceptable. 1.9.4. Áreas del Control El control, actúa en todas las áreas y en todos los niveles de una empresa. Prácticamente todas las actividades de una empresa están bajo alguna forma de control o monitoreo. Preferentemente debe abarcar las funciones básicas y áreas clave de resultados como: • Control de producción • Control de calidad. • Control de inventarios. • Control de compras. • Control de mercadotecnia. • Control de ventas. • Control de finanzas. • Control de recursos humanos 26 1.9.5. Técnicas de Control Técnica: Conjunto de procedimientos propios de un arte, ciencia u oficio. Habilidad con que se utilizan esos procedimientos. Método habilidad, táctica. Tomando en cuenta la definición de la palabra técnica, se puede definir a las técnicas del control como todos los procedimientos o métodos usados un una organización para controlar o supervisar un proceso automatizado o actividad humana. Presupuesto:- Un mecanismo ampliamente usado para el control administrativo es el presupuesto. La presupuestación es la formulación de planes para un determinado periodo futuro en términos numéricos. Como tales los presupuestos son estados de resultados anticipados, en términos financieros o en aspectos no financieros. Se dice que los presupuestos es la monetización de los planes. Los presupuestos obligan a la planeación y permiten que la autoridad sea delegada sin pérdida de control. Es decir, la reducción de los planes a números definitivos obliga a usar una clase de método que permite al administrador ver claramente qué capital será necesario, para quién, dónde y qué costo, ingreso o unidades de insumo o producto físico incluirán sus planes. Una vez hallado esto, puede delegar más libremente la autoridad para efectuar el plan dentro de los límites del presupuesto. 27