3.- JUSTIFICACIÓN DE LA SOLUCIÓN ADOPTADA JUSTIFICACIÓN DE LA SOLUCIÓN ADOPTADA 3.1.- Plataformas tecnológicas disponibles Del análisis realizado en apartados anteriores acerca de la problemática que nos ocupa así como de los objetivos a lograr, se desprende que las necesidades del Departamento de Organización Industrial y Gestión de Empresas son muy específicas, por lo que en el mercado no existe ninguna aplicación de base de datos que satisfaga dichas necesidades. Es necesario, por tanto, recurrir al diseño personalizado de la aplicación, utilizando para ello un entorno de desarrollo adecuado que facilite la creación de la misma. Un entorno de desarrollo integrado (IDE o Integrated Development Environment) no es más que una aplicación que reúne varios programas necesarios para el desarrollador: editor, compilador, depurador, etc. A aquéllos que ofrecen herramientas para la construcción de interfaces de usuario se les suele llamar herramientas de desarrollo rápido de aplicaciones (RAD o Rapid Application Development). En el mercado podemos encontrar varias herramientas de este tipo que son adecuadas para la creación de aplicaciones de bases de datos, siendo las más destacadas: Microsoft Office Access Es la herramienta más conocida y utilizada para la creación de aplicaciones de bases de datos. Permite al programador llevar a cabo desarrollos rápidos y crear aplicaciones de acuerdo a necesidades específicas. Cuenta con un interfaz de usuario muy amigable, a través del cual podemos crear: o Bases de datos, por medio de la construcción de tablas y relaciones. o Consultas, diseñándolas gráficamente o haciendo uso del lenguaje de consulta estructurado (SQL o Structured Query Language). o Formularios, que constituyen el interfaz de usuario de la aplicación de base de datos. o Módulos, que contienen código Visual Basic. El motor de base de datos que posee Access recibe el nombre de motor Jet, y es un sistema de bases de datos personal pensado para manejarse desde un único ordenador o Página 12 de 197 JUSTIFICACIÓN DE LA SOLUCIÓN ADOPTADA a lo sumo una red local pequeña. Además, está dirigido sobre todo a bases de datos pequeñas, pues el tamaño máximo de archivo de una base de datos Jet es de 2 gigabytes. Desde Access también existe la posibilidad de crear y gestionar bases de datos de Microsoft SQL Server tan fácilmente como se hace con las bases de datos Jet. SQL Server es un servidor de bases de datos, es decir, un programa que almacena datos estructurados en forma de tablas relacionales, escucha un puerto TCP/IP a través del cual acepta conexiones de clientes autentificados, admite comandos en lenguaje SQL, y devuelve al cliente a través de la red los datos resultantes del procesamiento de los comandos SQL. Microsoft SQL Server es un software que no está incluido en Microsoft Access. Sin embargo, el motor Jet es un sistema de base de datos que viene integrado en Access y está formado por una serie de archivos DLL de distribución gratuita que se instalan en el directorio de sistema de Windows. Veamos a continuación cuáles son las semejanzas y diferencias entre Jet y SQL Server. Las semejanzas son: 9 Ambos son sistemas de almacenamiento de datos en forma de tablas relacionales. 9 Ambos admiten comandos en lenguaje SQL, aunque el de SQL Server está mucho más desarrollado. En cuanto a las diferencias, éstas son más complejas: 9 Potencia en el manejo de datos y conexiones simultáneas. El motor Jet está pensado para ser manejado desde un único ordenador o a lo sumo una red local pequeña, y está dirigido sobre todo a bases de datos pequeñas. De hecho, el tamaño máximo de archivo de una base de datos Jet es de 2 gigabytes. Para Jet, el acceso simultáneo a los datos es una excepción más que algo habitual. Dispone de un sistema de bloqueo, pero no está pensado para que intenten acceder simultáneamente muchos clientes a los datos. Por el contrario, SQL Server puede manejar perfectamente bases de datos de terabytes con millones de registros y funciona sin problemas con miles de conexiones simultáneas a los Página 13 de 197 JUSTIFICACIÓN DE LA SOLUCIÓN ADOPTADA datos. Es un servidor y está pensado para gestionar tantos clientes simultáneos como admita la potencia del hardware del equipo en el que esté instalado. 9 SQL Server admite la programación cliente-servidor, y Jet no. La programación cliente-servidor se utiliza cuando queremos realizar aplicaciones que utilicen redes y que comuniquen entre sí a varios ordenadores. Básicamente, consiste en que el programa se divide en dos partes: la parte cliente, que reside en el equipo donde está el usuario y se encarga de la interacción con éste, y la parte servidor, que reside en un ordenador conectado a la red permanentemente y se encarga de manipular los datos. Ambas partes de la aplicación se comunican entre sí utilizando algún protocolo de red TCP/IP. La justificación de este paradigma es la minimización del tráfico de red, sobre todo para evitar ralentizaciones. 9 SQL Server es un ejecutable autónomo, y Jet son archivos DLL. Los archivos DLL contienen bibliotecas: funciones que han de ser llamadas desde otros ejecutables y se ejecutan en el espacio de memoria de ellos. Por tanto, si utilizamos bases de datos Jet, las sobrecargas que se produzcan debido al manejo de los datos recaerán en último extremo sobre la aplicación que llama al motor Jet. Sin embargo, SQL Server es una aplicación completa que realiza toda la gestión relacionada con los datos. Una aplicación que interactúe con SQL Server sólo tiene que enviarle una cadena de caracteres (la sentencia SQL) y esperar a que le devuelvan los datos, pues SQL Server se encarga de todo. Esta división de papeles es mucho más conveniente cuando queremos realizar aplicaciones que utilicen redes. Por otro lado, Access dispone del lenguaje de programación Visual Basic para aplicaciones (VBA o Visual Basic for Applications) que le permite extender su funcionalidad y mejorar su rendimiento. VBA no es más que un descendiente de Visual Basic destinado a la edición del comportamiento de las aplicaciones de Microsoft Office. Se trata de un lenguaje potente y fácil de usar, pues las funciones de VBA se derivan en gran parte de Visual Basic. De hecho, el entorno de desarrollo integrado (IDE) en el que podemos introducir, modificar y probar nuestro código VBA se asemeja mucho al utilizado por Visual Basic, y recibe el nombre de editor de Visual Basic (VBE o Visual Basic Editor). Página 14 de 197 JUSTIFICACIÓN DE LA SOLUCIÓN ADOPTADA Para poder ejecutar una aplicación desarrollada con Access el usuario de la aplicación tendrá que tener instalado Access en su equipo. No obstante, existe la posibilidad de generar un programa de instalación personalizado con todas las funciones necesarias para instalar una aplicación desarrollada con Access. Además de instalar los archivos de la aplicación en los sistemas de los usuarios, el programa de instalación puede instalar los archivos run-time de Access (la versión run-time de Access permite ejecutar aplicaciones, pero no cambiarlas o crearlas), crear accesos directos de Windows y configurar los sistemas de los usuarios de muchas otras formas. Microsoft Visual Basic .NET Es una herramienta basada en un lenguaje de programación potente y fácil de usar: Visual Basic. Un lenguaje de programación sirve para crear programas o aplicaciones, y está formado por un conjunto de sentencias (comprensibles por los humanos) que representan órdenes que se le dan a la computadora. Visual Basic es un lenguaje de propósito general con el que pueden crearse todo tipo de aplicaciones. Visual Basic .NET cuenta con un entorno de desarrollo integrado (IDE) muy eficaz, así como con numerosas herramientas para la creación visual de interfaces de usuario. Además, el acceso a datos es flexible y sencillo, siendo posible obtener acceso a alta velocidad a Microsoft SQL Server, Oracle, DB2, Microsoft Access y muchos más. Los programadores puede utilizar Visual Basic .NET para: 9 Crear aplicaciones basadas en Windows rápidas y eficaces. 9 Crear aplicaciones Web sofisticadas y seguras. 9 Crear aplicaciones para Pocket PC rápidas y eficaces. 9 Crear aplicaciones Web inteligentes, sofisticadas y seguras para dispositivos móviles. 9 Utilizar servicios Web XML en cualquiera de las aplicaciones mencionadas. Se trata, por tanto, de una herramienta de propósito múltiple con la que podemos abordar cualquier tipo de proyecto. Página 15 de 197 JUSTIFICACIÓN DE LA SOLUCIÓN ADOPTADA Microsoft Visual C# . NET Visual C# .NET posee características similares a Visual Basic .NET con la salvedad del lenguaje de programación en el que se basa: C# en lugar de Visual Basic. El lenguaje C# ha sido diseñado a partir de la sintaxis de C++ e incluye nuevas construcciones de lenguaje intuitivas que simplifican las tareas de programación. Tanto Visual Basic como C# están basados en la misma plataforma (.NET) y hacen uso de los mismos recursos (.NET Framework), por lo que podemos obtener los mismos resultados con uno y otro. En general, C# es para los programadores a los que les gusta escribir y controlar todo su código. En cambio, Visual Basic es mas RAD (Rapid Application Development) y fácil de usar. Microsoft Visual FoxPro Se trata de una herramienta basada en un lenguaje de programación centrado en datos: Visual FoxPro. Este estrecho acoplamiento entre lenguaje y datos hacen de Microsoft Visual FoxPro una gran herramienta para construir soluciones de base de datos de todas las dimensiones. Visual FoxPro le ofrece al desarrollador un conjunto sólido de herramientas para crear aplicaciones de bases de datos en el equipo de escritorio, en el servicio cliente/servidor o en la Web, a través de componentes y servicios Web XML. Aunque Visual FoxPro posee un motor de base de datos propio, la tendencia es que cada vez más aplicaciones basadas en Visual FoxPro utilicen Microsoft SQL Server para almacenar datos de la solución. Por supuesto, esto no es algo exigido; depende de los requisitos de la aplicación. Mientras SQL Server ofrece seguridad, confiabilidad, posibilidad de manejar grandes volúmenes de datos y muchas otras características típicas de un completo motor de base de datos relacional, el sistema de base de datos de Visual FoxPro es un sistema DBF basado en archivos abiertos que carece de muchas de aquellas características. Por ejemplo, el tamaño máximo de una base de datos de Visual FoxPro es de 2 gigabytes, mientras que SQL Server puede manejar perfectamente bases de datos de terabytes con millones de registros. Página 16 de 197 JUSTIFICACIÓN DE LA SOLUCIÓN ADOPTADA Borland Delphi Delphi es un lenguaje de programación y un entorno de desarrollo rápido de software diseñado para la programación visual. El principal uso de Delphi es para el desarrollo de bases de datos cliente-servidor y multicapas. Debido a que es una herramienta de propósito múltiple, se usa también para proyectos de casi cualquier tipo. En la actualidad, Delphi incluye en el mismo entorno de desarrollo los lenguajes Delphi y C#. El lenguaje de programación Delphi está basado en una versión moderna de Pascal, denominada Object Pascal, que expande las funcionalidades del primero. Por otro lado, el lenguaje de programación C# ha sido diseñado a partir de la sintaxis de C++ e incluye nuevas construcciones de lenguaje intuitivas que simplifican las tareas de programación. Los programadores puede utilizar Delphi para crear todo tipo de aplicaciones, al igual que sucede con Visual Basic .NET o Visual C# .NET, al ser herramientas de propósito múltiple. Destacar, además, que existe una versión de Delphi para sistemas Unix y Linux, llamada Kylix. Página 17 de 197 JUSTIFICACIÓN DE LA SOLUCIÓN ADOPTADA 3.2.- Solución tecnológica adoptada Recordemos cuáles son las características principales que debe tener la aplicación de base de datos que queremos construir: 9 Monousuario, es decir, será manejada desde un único ordenador. 9 Basada en Windows, o sea, se instalará en equipos que tienen el sistema operativo Microsoft Windows. 9 Debe permitir una gestión eficaz del sistema de información asociado a los proyectos fin de carrera en el Departamento de Organización Industrial y Gestión de Empresas de la Universidad de Sevilla 9 Ha de estar dotada de un interfaz gráfico de usuario atractivo e intuitivo, para que pueda ser utilizada por el personal administrativo del Departamento. 9 El volumen de datos a manejar será pequeño. Teniendo en cuenta todas estas características, la herramienta de desarrollo elegida para construir la aplicación de base de datos ha sido Microsoft Office Access. Las motivaciones de esta decisión han sido las siguientes: 9 Puesto que no hay que manejar grandes volúmenes de datos, podemos utilizar una base de datos nativa de Access, es decir, una base de datos Jet. El tamaño máximo de una base de datos Jet es de 2 gigabytes, más que suficiente para el caso que nos ocupa. De hecho, si tenemos en cuenta que introducir seis proyectos fin de carrera evaluados por un tribunal de tres profesores supone un incremento en el tamaño de la base de datos de unos 20 kilobytes, se deduce que podrían gestionarse sin problemas medio millón de proyectos con 2 gigabytes de capacidad, o sea, unos cinco mil proyectos al año durante cien años, lo cual supera con creces el ritmo actual y cualquier previsión al alza. 9 Al ser una aplicación de base de datos monousuario, no tendrá que utilizar redes ni comunicar entre sí a varios ordenadores. Por tanto, resulta innecesario recurrir a un servidor de base de datos como Microsoft SQL Server. En este caso, es más Página 18 de 197 JUSTIFICACIÓN DE LA SOLUCIÓN ADOPTADA apropiado utilizar un sistema de base de datos como el motor Jet integrado en Microsoft Access. 9 La principal dificultad a la hora de construir la aplicación de base de datos que nos ocupa reside en programar la secuencia utilizada para designar a los profesores de los tribunales. Para ello, es imprescindible diseñar primero de forma adecuada las tablas y relaciones que componen la base de datos. En este sentido, Access es la herramienta que posee el interfaz de usuario más amigable y más cómodo para el diseño de bases de datos relacionales. Además, Access dispone del lenguaje programación Visual Basic para Aplicaciones (VBA o Visual Basic for Applications), potente y fácil de usar, pues las funciones de VBA se derivan en gran parte de Visual Basic. Utilizaremos VBA para programar la secuenciación de los tribunales, pues se trata de un lenguaje muy potente y más fácil de comprender que otros lenguajes como C# o Delphi. 9 Microsoft Access permite la creación de interfaces de usuario al estilo Windows de modo rápido y fácil. 9 Al ser un producto de Microsoft, las aplicaciones desarrolladas con Access están basadas en Windows. Por todo ello, se considera que Microsoft Office Access es la herramienta de desarrollo más adecuada para abordar la realización del presente proyecto. Página 19 de 197