Metodologia de Desarrollo de Sistemas en Ambientes Cliente-servidor

Embed Size (px)

Citation preview

4. METODOLOGIA DE DESARROLLO DE SISTEMAS EN AMBIENTES CLIENTE/SERVIDOR

La descentralizacin de las organizaciones a travs de redes de computadoras y la fuerte tendencia actual de migrar el soporte informtico hacia los ambientes Cliente/Servidor, ha determinado la necesidad de nuevos sistemas de informacin. Los sistemas de informacin modernos requieren cumplir las siguientes caractersticas: y y Uso intensivo de interfaces grficas interactivas e integracin con herramientas de productividad personal tpicas de los ambientes Cliente/Servidor. Manejo de informacin distribuida sobre mltiples sitios de una misma organizacin o sobre sitios pertenecientes a diferentes organizaciones, que interactan entre ellas manejo de objetos complejos como grficos, fotos, sonidos y en general informacin multimedial, adems de la textual.

A pesar de contar hoy en da con mltiples herramientas de desarrollo de aplicaciones en los ambientes Cliente/Servidor (i.e. herramientas para generar interfaces grficas, herramientas para manejar datos u objetos multimediales y herramientas de conectividad), un problema que dificulta el desarrollo de sistemas de informacin modernos, es no contar con metodologas claras para su diseo.

Las metodologas tradicionales de desarrollo de sistemas de informacin se quedan cortas cuando se tratan de aplicar a los sistemas que se requieren en la actualidad. En particular, la metodologa basada en el modelo EntidadRelacin para Bases de Datos Relacionales, ha sido extendida para disear sistemas que manejan informacin distribuida, pero no se adaptan bien al caso de sistemas que requieren un uso intensivo de interfaces grficas y manejo de objetos complejos. Por su parte, las metodologas de Diseo Orientado por Objetos, son adecuadas para disear sistemas que manejen objetos complejos con uso intensivo de interfaces grficas, pero no han sido concebidas para manejar informacin distribuida. Metodologas como la "Frame Object Analysis Diagrams" de Andleigh y Gretzinger, pretende combinar la metodologa Entidad-Relacin con las metodologas de Diseo Orientado por Objetos para disear, de forma adecuada, los sistemas de informacin modernos: a travs de marcos grficos de distintos tipos, el diseador modela simultneamente las Entidades del sistema de informacin, sus relaciones y las funciones desde el punto de vista del usuario en forma de jerarquas de mens que determinarn la interface grfica con el usuario. Despus de este primer modelaje de Entidades y Funciones, esta metodologa contempla su refinamiento a travs de nuevos marcos para poder determinar las clases de Objetos que componen el sistema (incluyendo atributos y comportamiento de estos objetos, relaciones de herencia, composicin, etc.). Proyectos de Desarrollo de Sistemas de Informacin, pretenden soportar la metodologa a travs de plantillas y clases de objetos manejadores de transacciones. Las plantillas reflejan los diferentes tipos de marcos y un orden entre ellos para poder expresar el modelaje de Entidades y Funciones, y su refinamiento posterior en trminos de clases de Objetos que componen el sistema. Las clases de objetos manejadores de transacciones permiten que el diseo del sistema de informacin se pueda hacer de manera transparente a la distribucin de sus componentes, ofreciendo, adems, el manejo automtico de transacciones atmicas y concurrentes sobre objetos de informacin localizados en diferentes sitios de una red. Aunque esta metodologa podra implantarse de manera eficiente, mediante sistemas manejadores de Bases Orientadas a Objetos (BDOO), tambin puede lograrse con herramientas tradicionales, como sistemas manejadores

de Bases de Datos Relacionales, combinadas con herramientas para generar interfaces grficas y con herramientas de conectividad.

4.1 Descripcin de la metodologa

La metodologa propuesta para el diseo de sistemas de informacin para sistemas cliente/servidor, persigue los siguientes objetivos generales: y y y y Definir las clases de objetos que componen el sistema, en trminos de sus atributos y de los servicios que deben ofrecer. Determinar jerarquas entre las clases de objetos del sistema, con miras a lograr un diseo ms rpido mediante reutilizacin de objetos. Incorporar reglas de integridad al sistema. Distribuir los componentes del sistema de informacin.

La metodologa propone realizar el modelaje del sistema de informacin y el modelaje de objetos que componen el sistema en etapas sucesivas, como se describe a continuacin.

4.1.1 Fase de OrganizacinModelamiento del Proyecto a. Se desea construir un Sistema que bajo una arquitectura Cliente/Servidor permita ............... b. Los Objetivos del Presente Proyecto son: y y y Objetivo 1. Objetivo 2. Objetivo 3.

c. Las metas que se desean alcanzar con el presente proyecto son: y y y y y Meta 1. Meta 2. Meta 3. ............................. Meta N.

d. El Proyecto tiene un costo de S/. ...................... e. El presente proyecto se considera factible al permitir alcanzar los siguientes beneficios: y y y y y Beneficio 1 Equivalente a S/. .............. Beneficio 2 Equivalente a S/. .............. Beneficio 3 Equivalente a S/. .............. ................ Equivalente a S/. .............. Beneficio X Equivalente a S/. ..............

f. El proyecto permite obtener las siguientes ganancias en trminos monetarios estimados en S/. ................ (7e-d) g. La Organizacin del presente Proyecto est sustentada en : Comit del Proyecto Presidido por el Jefe, Gerente General o Secretario General. Comit Tcnico

Jefe del Proyecto Asesor Principal Analista de Sistemas - Jefe de Equipo 1 Analista de Sistemas - Jefe de Equipo 2 ................................................................ Analista de Sistemas - Jefe de Equipo M Equipo 1 Encargado de Analista A1 Analista A2 .................. Analista AX Equipo 2 Encargado de Analista B1 Analista B2 .................. Analista BX .................. .................. .................. Equipo M Encargado de Analista M1 Analista M2 .................. Analista MX Modelamiento del Requerimiento Se hace necesario disponer de un Sistema de Informacin que satisfaga los siguientes requerimientos : Requerimiento 1. Requerimiento 2. ......... ......... Requerimiento X. Modelamiento de la Tecnologa Para el desarrollo del Proyecto de Sistemas de Informacin .............., se ha definido utilizar las siguientes herramientas: y y y y Administrador de Base de Datos Relacional : SQL Herramienta Front End Herramienta de Integracin y Rediseo de Sistemas OLAP Metodologa Informtica del INEI

4.1.2 Fase de DesarrolloModelamiento del Requerimiento En esta etapa se quiere modelar el sistema de informacin en trminos de funciones y datos desde la perspectiva del usuario. Para ello, el diseador debe especificar 3 modelos en paralelo: el modelo de Entidades, el Modelo de Procesos y el modelo de Transacciones.

En el modelo de Entidades se identifican las entidades que componen el sistema de informacin, sus atributos y las relaciones entre stas (incluyendo relaciones de generalizacin y de especializacin). y Modelo de Datos

El Modelo de Datos del Sistema est expresado en el siguiente Modelo Entidad - Relacin, el cual viene acompaado de su respectivo Diccionario de Datos :

y

Diccionario de Objetos

Entidad 1. .................................... Entidad 2...................................... Entidad 3...................................... ..................................................... Entidad N..................................... y Modelo de Procesos

y

Diccionario de Objetos

Proceso1. ................................................. Proceso2.0................................................ Proceso2.1................................................ Sub Proceso 2.1.1........................ Sub Proceso 2.1.2........................ Proceso2.2................................................ Proceso2.3................................................ .................................................................. y Modelo de Transacciones

En el modelo de Transacciones se identifican las funciones visibles por el usuario, determinando la jerarqua de mens y submens que el sistema ofrecer a los usuarios. Adems, se deben determinar relaciones entre funciones de tipo jerrquico, secuencial y condicional. La metodologa propone pasos bien determinados para especificar estos modelos. Cada uno de los pasos se expresa grficamente a travs de marcos de diferentes tipos. Para el modelo de Entidades, los marcos de la metodologa toman, fundamentalmente, los elementos ya conocidos en el modelo Entidad-Relacin usado para disear Bases de Datos Relacionales. Al realizar en paralelo el modelo de Entidades y el modelo de Transacciones, las decisiones que se tomen en uno de ellos pueden generar cambios en el otro (por ejemplo, detectar la necesidad de una nueva entidad o de una nueva funcin) logrando de esta manera un modelaje flexible y completo. En contraste, el diseo tradicional de bases de datos relacionales, modela primero las entidades y posteriormente las aplicaciones, siendo costoso realizar modificaciones a las entidades cuando se est diseando las aplicaciones.

y

Modelo de Objetos

Este modelaje refina el anterior para definir completamente las clases de objetos que componen el sistema de informacin. Para ello, la metodologa contempla realizar 2 modelos en paralelo: el modelo Estructural y el modelo de Comportamiento (o modelo dinmico). En el modelo Estructural se establecen las propiedades estructurales de cada clase de objetos y sus relaciones con otras clases. Las clases de objetos del sistema corresponden a las entidades identificadas en la etapa de modelaje del sistema de informacin.

En el modelo de Comportamiento se determinan los mtodos de cada clase de objetos del sistema, derivados a partir del flujo de operaciones que corresponde a cada funcin ofrecida por el sistema. Tambin aqu la metodologa propone pasos bien determinados para especificar estos modelos, expresando cada paso en diversos tipos de marcos grficos. y El Diccionario de objetos

Despus de las dos etapas de modelaje, la metodologa propone materializar el diseo en la forma de un Diccionario de Objetos replicado parcialmente en los sitios en donde van a estar localizados los componentes del sistema de informacin. En este Diccionario se registrar primeramente la definicin de cada clase de objetos del sistema (atributos y comportamiento). Por cada mtodo de una clase de objetos, se debe almacenar en el Diccionario una (11) rutina RPC que permita invocar el mtodo desde cualquier sitio del sistema. Adicionalmente, la metodologa propone registrar en el Diccionario la definicin de clases de objetos auxiliares que cumplirn las siguientes funciones: localizar en forma distribuida los objetos del sistema, chequear los derechos de los usuarios sobre los objetos as como las restricciones de integridad, y manejar transacciones distribuidas que involucren mltiples objetos localizados en diferentes sitios. MODELAMIENTO DE LA TECNOLOGIA y PLANTILLAS PARA APOYAR EL DISEO DE UN SISTEMA

En el proceso de desarrollar un sistema de informacin, siguiendo una metodologa de diseo, se deben tomar decisiones y es muy deseable disponer de una herramienta de apoyo que gue al diseador y registre las decisiones y la informacin de cada etapa del diseo. Es el caso de las herramientas CASE que apoyan el diseo de bases de datos relacionales siguiendo la metodologa Entidad-Relacin. Sin embargo, para la metodologa no existen todava herramientas CASE de apoyo. Por tal razn, se propone, como soporte bsico a esta metodologa, unas plantillas que ayudarn al diseador a seguir las etapas necesarias y servirn igualmente como material de documentacin del diseo realizado. Las plantillas que se proponen pueden servir como medio de comunicacin entre el usuario final y el diseador, y entre el diseador y el programador del sistema. En futuros trabajos las plantillas podran extenderse para incluir facilidades de generacin de cdigo del sistema de informacin en un ambiente especfico. De acuerdo a lo propuesto por Andleigh y Gretzinger, los marcos grficos que reflejan cada uno de los pasos del diseo de un sistema bajo la metodologa corresponden a 6 tipos: y y y y y y Tipo E ("Entities"): modelan entidades del sistema y sus atributos. Tipo ER ("Entity-Relationships"): modelan relaciones entre entidades del sistema. Tipo S ("Structure"): modelan la estructura de las clases de objetos del sistema en trminos de atributos (desnormalizados en un ltimo nivel de refinamiento). Tipo F ("Functions"): identifican las aplicaciones que componen el sistema. Tipo T ("Transaction"): modelan las funciones que una aplicacin ofrece a los usuarios a travs de mens. Tipo B ("Behavior") : modelan una funcin en trminos de operaciones sobre entidades, y a un mayor nivel de refinamiento, identifican los mtodos de cada clase de objetos del sistema.

Cada marco puede refinarse dando lugar a varios niveles de detalle. Por ejemplo, se pueden identificar inicialmente las entidades del sistema en un marco de tipo E de nivel 1, y luego identificar atributos iniciales de esas entidades en un marco de tipo E de nivel 2. Igualmente, puede identificarse el men principal que ofrece una aplicacin del sistema, en un marco de tipo T de nivel 1, y luego refinarlo en submens a travs de marcos de tipo T de nivel 2. Para cada paso de la metodologa se ofrece una plantilla que corresponde a un marco de cierto tipo y de cierto nivel de refinamiento. La plantilla da informacin al diseador sobre lo que debe modelar en ese paso, de acuerdo a la metodologa. Se espera, entonces, que el diseador llene la plantilla de acuerdo a las decisiones que tome en ese paso y registre informacin de documentacin. En la figura 4 se ilustra, como ejemplo, una plantilla con informacin suministrada por el diseador, correspondiente al paso en el que se describe cada funcin que ofrece una aplicacin al usuario, en trminos de operaciones sobre entidades.

Figura 4 : Ejemplo de plantilla que modela la Descripcin de una Funcin ofrecida al usuario En el estado actual, las plantillas de apoyo a la metodologa, constituyen un aporte bsico manual que se pretende sistematizar en el futuro, a travs de una herramienta grfica visual que sea capaz de generar una primera versin del Diccionario de Objetos. Tambin se ampliarn las plantillas con el fin de dar indicaciones precisas y completas al diseador, en cada paso de la metodologa. y CLASES DE OBJETOS DE SOPORTE A LAS TRANSACCIONES DISTRIBUIDAS

Es importante sealar que el mayor esfuerzo del proyecto no ha estado centrado en las plantillas, sino en el desarrollo de una plataforma de soporte a transacciones distribuidas. Esta plataforma, garantiza el manejo distribuido de los objetos de una aplicacin que ha sido diseada de forma centralizada, siguiendo la metodologa. Una vez que se tiene el diseo centralizado, el diseador debe decidir cmo quiere distribuir los objetos de informacin sobre el conjunto de sitios que conforman el sistema (de acuerdo a criterios similares a los contemplados en la teora de distribucin ptima de Bases de Datos Relacionales). Con estas decisiones, el diseador podr alimentar los catlogos del sistema que guardarn informacin de localizacin de cualquier objeto del sistema de informacin. La plataforma que se ha desarrollado consta de clases de objetos especializados que garantizan los siguientes aspectos del manejo distribuido de objetos: a) Localizacin de cualquier objeto del sistema b) Manejo de transacciones distribuidas sobre objetos localizados en distintos sitios del sistema. Se asegura aqu las propiedades que debe cumplir toda transaccin: consistencia, atomicidad, aislamiento, serializacin y durabilidad. La distribucin de los objetos de un sistema de informacin sobre varios sitios, plantea un primer problema de localizacin de estos objetos. Para resolver este problema, la plataforma incluye una clase de objetos Localizadores. Estos objetos deben estar presentes en cada sitio y podrn determinar cul es el sitio de un objeto de aplicacin, dados su clase y el valor de su atributo llave. Los objetos Localizadores manejan catlogos que pueden llegar a ser muy voluminosos y no replicables, por razones de costo de almacenamiento. Para repartir esta carga de localizacin, en la plataforma se ha colocado en cada sitio, un objeto Localizador especializado en saber dnde estn los objetos de aplicacin de algunas clases especficas, y

no de todas. Adicionalmente, cada objeto Localizador sabe cules son los objetos de aplicacin que residen localmente, y sabe en qu sitio est el objeto Localizador asociado a cualquier clase de objeto del sistema. A manera de respaldo se tiene, adems, un objeto Localizador global con informacin sobre todos los objetos del sistema. El manejo de transacciones distribuidas plantea, por otra parte, la necesidad de considerar clases adicionales de objetos especializados en este problema. En la plataforma se contempla una clase de objetos Coordinadores de transacciones, encargados de coordinar el conjunto de acciones desencadenadas por cada transacciones (desde el sitio cliente en donde se ejecuta la aplicacin), y otra clase de objetos Participantes de transacciones, encargados de interactuar en cada sitio servidor con los objetos de aplicacin involucrados por cada transaccin. Estos objetos cumplen los roles previstos en el protocolo "Two phase commit" asegurando atomicidad, mediante acciones de recuperacin ante fallas, y control de concurrencia en caso de conflicto entre varias transacciones. Los objetos Coordinadores y Participantes de transacciones distribuidas, pueden ser utilizados por cualquier aplicacin mediante los mtodos generales que ofrecen, que son los siguientes: empezar una transaccin (begin_trn), ejecutar un pedido de la transaccin consistente en invocar un mtodo sobre un objeto de aplicacin (ejecutar), validar la transaccin (end_trn) o anularla (rollback_trn). En el caso de los Participantes se contempla un mtodo adicional que es el de prevalidar una transaccin (precommit). Un objeto Coordinador tiene como atributo la identificacin de todos los objetos Participantes en la transaccin. Un objeto Participante tiene como atributos la lista de llaves de los objetos locales involucrados en la transaccin y la lista de llaves de copias temporales de esos objetos. Durante la transaccin el Participante modifica las copias y slo cuando la transaccin valide (i.e. haga "commit"), reemplazar los objetos originales por las copias modificadas. En la plataforma se tienen adicionalmente otros objetos que colaboran con la ejecucin de transacciones distribuidas. La clase de objetos Imgenes de Participantes permite representar a los sitios participantes ante el Coordinador de una transaccin. En el sitio cliente de la aplicacin, el Coordinador interacta localmente con estos objetos Imgenes para enviar requerimientos hacia los distintos sitios participantes (por ser local la interaccin Coordinador - Imgenes, se logra un mayor paralelismo y eficiencia, si se compara con una interaccin directa del Coordinador con los Participantes remotos). En cada sitio servidor existe adems un objeto Despachador, encargado de recibir cada requerimiento que llega al sitio y de entregarlo al objeto Participante respectivo. Igualmente, en cada sitio servidor existe un objeto Manejador de Clases que conoce la semntica de los objetos de aplicacin y se encarga de hacer efectiva la invocacin de un mtodo sobre alguno de estos objetos.

Figura 5. Arquitectura de la Plataforma de Soporte en un sitio cliente

En la figura 5, podemos observar la arquitectura de la plataforma metodolgica en un sitio cliente, en donde se est ejecutando una aplicacin: se muestran los procesos y los objetos creados en el sitio cliente cuando la aplicacin acta, lanza una transaccin distribuida t1 que involucra 2 sitios. A nivel ms grueso se tienen dos procesos: y El proceso Localizador: utiliza un Catlogo de objetos para determinar la localizacin de algunos objetos de aplicacin o interacta con procesos Localizadores remotos, va RPC, para resolver la localizacin de todos los objetos del sistema. El proceso de Aplicacin instancia un objeto Coordinador en el momento de lanzar una transaccin t1. El Coordinador encapsula a su vez otros objetos para interactuar va RPC con procesos externos (locales o remotos). Entre estos objetos, las Imgenes de Participantes estn encapsulados como threads (i.e. procesos livianos), con el fin de lograr una mayor eficiencia mediante el paralelismo. Adicionalmente, el Coordinador maneja una base de datos de Estados que registra el estado de transacciones lanzadas en el sitio para efectos de recuperacin ante fallas.

y

Figura 6. Arquitectura de la Plataforma de Soporte en un sitio servidor En la figura 6 se muestra la arquitectura de la plataforma SFOAD en un sitio servidor, cuyos objetos de aplicacin estn involucrados en varias transacciones a la vez. Se muestran los procesos y objetos creados en el sitio servidor cuando est participando en dos transacciones t1 y t2. A nivel ms grueso se tienen dos procesos: y y El proceso Localizador: desempea las mismas funciones del proceso Localizador de un sitio cliente. El proceso Servidor: encapsula un thread Receptor, encargado de recibir todos los requerimientos RPC provenientes de otros sitios, y un objeto Despachador, que entrega cada requerimiento al participante respectivo. El Despachador instancia un nico objeto Manejador de Clases y un objeto Participante por cada nueva transaccin que involucra a los objetos de aplicacin del sitio. Cada Participante solicita la ejecucin de mtodos sobre los objetos de aplicacin a travs del Manejador de clases, quien es el que realmente conoce la semntica de estos objetos de aplicacin. Un Participante puede enviar requerimientos RPC a otros sitios servidores, en el caso de que la ejecucin de un mtodo sobre un objeto local implique la invocacin de un segundo mtodo sobre un objeto remoto .

En el sitio servidor es donde reside la base de objetos de aplicacin, la que es manipulada por el objeto Manejador de Clases para ejecutar los pedidos de los Participantes. Tambin existe una base de datos de Estados de transacciones, con informacin de control que registran los Participantes y que es utilizada para recuperar las transacciones en el evento de fallas. Para que los objetos de aplicacin puedan interactuar en el ambiente transaccional de la plataforma, se requiere que estos objetos posean ciertos atributos que deben heredar de una clase Base. Estos atributos generales de cualquier objeto de aplicacin son, entre otros, los siguientes:

y y y y y

identificador de clase, identificador del objeto (valor de la llave primaria), candado (estampilla de la transaccin que lo est utilizando y modo de acceso), identificador del objeto que es su copia temporal durante la transaccin actual, versin (estampilla de la ltima transaccin que lo modific).

Cuando un programador desea construir su aplicacin sobre la plataforma, debe, primero que todo, invocar dentro de su programa cliente (i.e. programa de interaccin con el usuario), los mtodos que le permiten ejecutar transacciones distribuidas, tal como se ilustra en la figura 7. En este ejemplo se ilustra una operacin de transferencia bancaria realizada como transaccin distribuida, en la cual se debe invocar los mtodos SALDO y DEBITAR sobre la primera cuenta, el mtodo ACREDITAR sobre la segunda cuenta. Adicionalmente, el programador debe agregar al programa servidor-Despachador (que se ejecutar en cada sitio del sistema), especificaciones sobre sus clases de objetos de aplicacin: y Por una parte se debe declarar cada clase de objeto de aplicacin como una especializacin de la clase Base, agregando los atributos propios de la aplicacin, definiendo los mtodos propios y redefiniendo los mtodos virtuales relativos a cmo cargar en memoria principal un objeto de aplicacin que est en memoria residente y viceversa; De otro lado, se debe agregar al objeto Manejador de Clases la semntica propia de los objetos de aplicacin, indicando cul mtodo de aplicacin hay que invocar para cada peticin que le haga un Participante.

y

Figura 7. Ejemplo de programacin sobre la plataforma CONSTRUCCION y SOLUCIONES DE IMPLANTACION DEL SOPORTE

En el estado actual del proyecto, las plantillas que guan al diseador que sigue la metodologa, son puramente manuales. En el futuro, se planea enriquecer las plantillas y sistematizarlas a travs de un programa que interacte con el diseador en cada etapa del modelaje de su sistema de informacin. Las plantillas diligenciadas quedarn como material de documentacin del diseo del sistema y eventualmente se podra generar una primera versin del Diccionario de Objetos, en donde queden las definiciones de las clases de objetos de aplicacin. En la actualidad se ha implantado el soporte de clases de objetos localizadores y manejadores de transacciones distribuidas en una red local de microcomputadores con sistema MS-Windows NT.

Tanto la clase de objetos Localizadores como las clases de objetos Manejadores de transacciones, se materializan en la implantacin como procesos servidores RPC. Tenemos entonces 3 clases de programas (Localizador, Aplicacin y servidor-Despachador), escritos en lenguaje MS-Visual C++. Estos programas ofrecen mtodos generales a las aplicaciones, los cuales pueden ser invocados como rutinas RPC. En la implantacin se ha utilizado MS-RPC para Windows NT, para declarar las interfaces de servicios que ofrecen estos programas. En cada sitio de la red debe estar activo un programa Localizador. En los sitios clientes se instalar el programa de Aplicacin de interaccin con el usuario. Este programa deber incluir la clase de objeto Coordinador de transacciones. En los sitios servidores debe estar activo el programa servidor-Despachador. El conjunto de estos programas siguen la lgica del protocolo "Two phase commit"(12), por lo cual se ha aprovechado soluciones que ya se haba implantado en el proyecto DGDBM(13), que tambin buscaba dar soporte a transacciones distribuidas. Para guardar todos los objetos del sistema de forma persistente, se ha utilizado el manejador relacional MSACCESS, para almacenar los objetos en forma de tuplas(14). Sin embargo, los programas de la plataforma son independientes del manejador relacional utilizado, pues cargan en memoria principal los objetos utilizando las funciones generales de ODBC. Las herramientas utilizadas en la implantacin de la plataforma, demostraron que es posible soportar la metodologa a travs de herramientas tpicas de los ambientes Cliente/Servidor, sin requerir sistemas manejadores de bases orientadas por objetos.

(11) RPC. Remote Procedure Call. Llamada de Procedimiento Remoto. Modelo de comunicacin mediante el cual las funciones hacen solicitudes en forma de llamadas a procedimientos distribuidos en la red. La ubicacin de los procedimientos es transparente a la aplicacin solicitante. (12) Two-Phase Commit. Protocolo necesario para dar Commit (sentencias especializadas en la gestin de transacciones) en BD distribuidas. Para garantizar que todas las BD involucradas quedarn correctamente modificadas, el Commit se divide en dos fases. Primero se comprueba que todas los nodos involucrados estn listos para realizar la actualizacin. En segundo lugar, se modifican las bases de datos si, y slo si todos los nodos estn preparados. (13) La herramienta DGDBM es software libre, componente del laboratorio OSIRIS, desarrollado en la Universidad de los Andes (Bogot - Colombia). El software de DGDBM se puede obtener en la siguiente referencia Internet: http://osiris.uniandes.edu.co/osiris/dgdbm/intro.html Una descripcin inicial del conjunto de herramientas que apoyan el desarrollo de sistemas distribuidos y que componen el laboratorio OSIRIS, se encuentra en la Revista HIDRA de la ACIS, cuya referencia Internet es: http://hidra.uniandes.edu.co/inicio.html (14) Tupla: fila o un registro de una tabla de un SGBD relacional. Representa una Ocurrencia.

4.2 Conclusiones y perspectivas

En este manual se ha descrito la metodologa de diseo de sistemas de informacin, distribuidos en ambientes Cliente/Servidor. Esta metodologa toma los elementos conocidos en el Modelaje Entidad-Relacin para bases de datos relacionales, y le agrega elementos de modelaje orientado por objetos. El resultado es una metodologa adecuada para los sistemas de informacin modernos, los cuales tienden a ser distribuidos y orientados por objetos. El soporte a la metodologa en forma de plantillas, que guan al diseador y en forma de programas, que implantan clases de objetos localizadores, coordinadores y participantes en transacciones distribuidas, ofrece una plataforma que garantiza el comportamiento transaccional de los objetos de aplicacin. Esta plataforma es la que permite que un

diseo de un sistema de informacin se pueda hacer de forma transparente a su futura distribucin y al manejo de transacciones distribuidas que involucran los objetos del sistema. A nivel internacional, existen varios trabajos que buscan desarrollar plataformas para soportar aplicaciones sobre (15) (16) (17) objetos distribuidos. Entre estos trabajos se pueden nombrar RIO , DEDOS , GALAXY , y principalmente los (18) estndares definidos por CORBA . Estos trabajos ofrecen soluciones interesantes para la interaccin entre objetos sobre plataformas heterogneas, ofreciendo mltiples servicios, sin embargo, slo CORBA promete soportar el comportamiento transaccional de los objetos, tal como se ofrece en la plataforma. En el futuro, es posible extender la plataforma para soportar la replicacin de objetos y el chequeo de integridad (19) referencial entre objetos, siguiendo ideas propuestas por Andleigh y Gretzinger . Otras extensiones interesantes seran las siguientes: soporte eficiente de objetos multimediales, manejo dinmico del catlogo de objetos de aplicacin (en el estado actual del proyecto, el catlogo de cada sitio debe ser alimentado manualmente en una inicializacin del sistema), creacin de un lenguaje de definicin de interfaces, que permita una sintaxis ms natural cuando se invocan los mtodos de ejecucin de transacciones. Adicionalmente, la plataforma podra implantarse sobre un ambiente de herramientas libres como es el caso de Linux y TCL/Tk/XF (20).

(15) SzTajnberg, Loques; "Ambiente RIO", Grupo de Sistemas de Computacao, Dpto. De Engenharia Elctrica, Pontificia Universidade Catlica, Rio de Janeiro (Brasil), 1995 (16) Hammer Dieter K., Luit Erik J. et al.; "DEDOS: a Distributed Real Time Environment", IEEE Parallel & Distributed Technology, Winter 1994. (17) Dolberg S.; "Building Distributed Applications with Galaxy", Dr. Dobb's Journal, March 1995 (18) Tomllinson B.; "CORBA: talk by Bob Tomlinson of February 3, 1994"; ste y otros documentos del grupo OMG han sido tomados en la siguiente direccin de correo electrnico [email protected] (19) Andleigh P., Gretzinger M.; "Distributed Object-Oriented Data-Systems Design", Prentice-Hall, 1992 (20) Ousterhout J. K.; "Tcl and the Tk toolkit", Addison-Wesley 1994.

ANEXO 1 Evaluacin de herramientas visuales de desarrollo de aplicaciones Cliente/Servidor

La Subdireccin de Sistemas, perteneciente a la Direccin de Cmputo para la Administracin Acadmica de la Direccin General de Servicios de Cmputo Acadmico de la Universidad Nacional Autnoma de Mxico, realiz una evaluacin de las herramientas de desarrollo visual, que surgieron para facilitar la programacin en el ambiente. En dicha evaluacin se ha tomado en cuenta lo siguiente: Una base de datos cliente/servidor es una combinacin de hardware y software, cuya utilidad se reduce si no se cuenta con medios de acceso a los datos. A pesar de que los proveedores de bases de datos ofrecen, muchas

veces, sus propias herramientas de desarrollo, el verdadero poder de los sistemas cliente/servidor radica en la variedad de aplicaciones cliente y software de desarrollo - tambin llamados front-ends -, disponibles por parte de terceros. Se puede clasificar a los front-ends en cuatro grandes categoras: add-ons a productos ya existentes, herramientas de desarrollo de aplicaciones, reporteadores, y herramientas de anlisis e integracin de datos. A menudo es difcil determinar a qu categora pertenece cierto producto, ya que no es raro que un front-end tenga caractersticas que lo hagan estar en ms de una clasificacin. Por ejemplo, un buen programa de anlisis de datos puede tener un buen reporteador. Para hablar sobre las distintas clasificaciones, mencionaremos que los add-ons a productos ya existentes son mdulos que permiten que una aplicacin - de PC -, consulte al servidor de bases de datos. Ejemplos de add-ons son los existentes para dBASE, Paradox, Access, Superbase, Q&A, Advanced Revelation, DataEase, Clarion, y hojas de clculo tales como Lotus 1-2-3 o Excel, etc. Las herramientas de desarrollo de aplicaciones son usadas principalmente por los programadores y estn diseadas para facilitar el proceso de creacin de aplicaciones front-end customizadas (personalizadas). El presente trabajo presenta evaluaciones sobre productos que caen en esta categora. Los reporteadores tambin permiten hacer consultas, no planeadas, a la base de datos. Facilitan la creacin de consultas y reportes al back-end a los no-programadores. Ejemplos de reporteadores son R&R de Concentric Data Systems y Crystal Reports de Seagate Technology, Inc. Las herramientas de anlisis e integracin de datos estn diseadas para que los tomadores de decisiones examinen los datos a partir de diferentes fuentes, para as construir cuadros de decisiones complejas. Como ejemplos, tenemos a LightShip, InfoAlliance y Forest & Trees. A pesar de que las aplicaciones front-end estn disponibles para casi todas las plataformas, la mayora soporta, principalmente, el ambiente PC basados en procesadores Intel, en los ambientes DOS, Windows y OS/2. Este estudio se concentra en productos que corren bajo Windows. Sin embargo, los principios generales de las aplicaciones front-end se aplican a todas las plataformas. Adems, dado que muchos proveedores de front-ends tienen programada la conversin de sus productos a otras plataformas, este trabajo puede tambin ser til para evaluar los mismos productos cuando se encuentren disponibles para otros ambientes.

PRODUCTOS EVALUADOSDescribir todos los productos front-end disponibles, se llevara mucho ms de un libro entero. En este estudio describimos una muestra representativa de algunos de los productos ms conocidos: Delphi, Omnis 7, PowerBuilder, SQL Windows, Vision y Visual Basic, en orden alfabtico. Si bien Omnis 7 y Vision no son productos tan conocidos, los proveedores de ambos se acercaron a nosotros, por lo que tuvimos, al igual que con los dems, disponible el producto para poder probarlo y evaluarlo. Tanto personal de Unify (Vision) como de Blyth Soft (Omnis 7) brindaron los productos, asesoras y ejemplos que ayudaron a la evaluacin. Las herramientas mencionadas cumplen los siguientes criterios: y y y y Son herramientas de desarrollo visual. Estn orientadas a ambientes cliente/servidor. Corren bajo la plataforma Windows 3.1 o Windows para Trabajo en Grupo (aunque pueden trabajar sobre otras ms). Permiten la conexin a distintos servidores de datos (no estn restringidos a uno en particular).

Se utiliz como referencia para la evaluacin Visual Basic Proffesional 3.0, producto que actualmente utiliza la DCAA. Este, junto con Delphi, son herramientas simples para desarrollo, ya que carecen de facilidades para la programacin de proyectos a nivel corporativo, por lo que se les denomin "low-client". SQL Windows es un producto que cuenta con herramientas de programacin en grupo y capacidad de proyectos grandes, por lo que se le denomin "highclient". Finalmente, se incluyeron herramientas que pueden desarrollar y ejecutar proyectos en diversas plataformas sin estar restringidas a la PC: PowerBuilder, Vision y Omnis 7, por lo que se les denomin "multiplataforma". A continuacin mencionamos algunos productos que no pudieron evaluarse por no entrar en los criterios anteriores, pero que presentan caractersticas muy interesantes y merecen un estudio posterior: y Microsoft Visual Basic 4

y y y y y y y y

Sybase/PowerSoft Power Builder 5 Gupta SQL Windows 6 Unify Accell / SQL -- Unify Accell / IDS Microsoft Visual FoxPro 3 IBM Visual Age Informix New Era Oracle Power Objects (Cliente). El usuario crea su consulta (query).

CRITERIOS DE EVALUACIONEl inters en el estudio se centr sobre la facilidad para desarrollar aplicaciones cliente/servidor, en plataforma Windows, hacia un servidor de base de datos (principalmente Sybase, dado que es el manejador que se recomienda en la UNAM), ejecutndose en plataforma Unix. Algunos aspectos relevantes son la facilidad de aprendizaje y uso, poder de la herramienta y recursos que consume. En el estudio se incluyen los siguientes aspectos: Descripcin del Producto y Caractersticas Generales: En esta seccin se busca dar una descripcin general de la herramienta, as como informacin referente al nombre, marca y conclusiones de la evaluacin. Nombre: Nombre Comercial. Versin: Versin que se evalu Marca: Fabricante, dueo o distribuidor. Categora: Low-end, high-end o multiplataforma. Define el alcance de la herramienta. Medio de Distribucin: Dispositivo de almacenamiento en que se distribuye el producto. Plataformas de Desarrollo Soportadas: Necesidades de hardware y software para el funcionamiento de la herramienta cuando se desarrollan proyectos. Se incluyen los requerimientos mnimos (no recomendados) y ptimos. Plataformas de Implantacin Soportadas en cada una: Necesidades para ejecutar los programas desarrollados con la herramienta. Ventajas: Descripcin de las caractersticas sobresalientes del producto. Desventajas: Listado de las deficiencias de la herramienta. Observaciones: Comentarios o notas que no son directamente ventajas o desventajas. Recomendacin final. Utileras Extra disponibles con el Producto: Herramientas adicionales que se incluyen como un producto integrado. Servidor de BD SQL Local: Manejador de bases de datos incluido con la herramienta, con objeto de desarrollar en caso de no tener un servidor independiente. Reporteador: Programa que elabora reportes comunmente con libreras o "run-time" que permite visualizar o imprimir desde un programa hecho con la herramienta. Capacidades en Programacin: Descripcin del ambiente de programacin. Interface con el Programador: Cmo es el ambiente? Similar o diferente al resto de las aplicaciones? Fcil de usar? CUA: (Common User Access). Similitud con los dems programas de Windows. Apego a los estndares de interface. Modo de Programacin: Caractersticas del sistema de programacin.

Lenguaje de Programacin: Lenguaje o dialecto que utiliza. Tipo: Grupo de lenguajes al que pertenece. Tipo de Cdigo Generado: Tipo de cdigo del programa final: interpretado, Cdigo-P o compilado. POO: (Programacin Orientada a Objetos). Nivel de soporte que provee el producto al uso del paradigma de objetos. POE: (Programacin Orientada a Eventos). Nivel de soporte al paradigma de eventos. Biblioteca o Repositorio de Componentes: Aqu se describen sus facilidades en cuanto a repositorio de componentes. Distribucin de Aplicaciones: Procesos y archivos necesarios para la distribucin de aplicaciones terminadas. Capacidades de Interconexin: Se describen las formas que tiene para conectarse a travs de la red. Mtodo de Conexin a Servidor SQL: Mtodo o protocolo de comunicacin que se requiere para conectarse al servidor. Facilidad de Migracin: Facilidad para cambiar la plataforma de desarrollo, la de destino, y/o el servidor de base de datos. Desarrollo de Aplicaciones con Interconexin: Facilidad para comunicar los programas con otros a travs del sistema operativo.

CMO TRABAJAN LOS FRONT-ENDS?Las aplicaciones cliente se ven y se ejecutan igual que cualquier otra aplicacin que el usuario tenga en su PC, en su Macintosh o en su estacin de trabajo Unix. Si el software del cliente est diseado de manera apropiada, el nico indicio de que el usuario est usando un front-end de un servidor remoto de bases de datos, se da cuando tiene que dar tanto su clave como su password para entrar en sesin con dicho servidor. La secuencia de eventos que ocurren cuando el usuario accesa al servidor de bases de datos puede ser generalizada en los siguientes seis pasos: y y y y y (Cliente). El front-end formatea la consulta en lenguaje SQL y la enva a travs de la red hacia el DBMS. (Servidor). El servidor de bases de datos verifica los derechos del usuario sobre los datos que desea consultar (sistema de seguridad). (Servidor). Si se cuenta con los derechos correspondientes, el servidor de bases de datos procesa la consulta y regresa los resultados de la misma al front-end. (Cliente). El front-end recibe la respuesta y la formatea para su presentacin al usuario. (Cliente). El usuario visualiza y/o manipula los datos y/o reinicia el proceso.

La consulta o query puede ser cualquier accin que el usuario haga sobre la base de datos, como actualizaciones, inserciones, borrados o simples consultas. Cuando el cliente es un add-on a una aplicacin ya existente, la secuencia de eventos para el procesamiento de una consulta se complica un poco. y y y y y y (Cliente). El usuario crea su consulta (query) en el lenguaje nativo de la aplicacin. (Cliente). El add-on traduce la consulta a lenguaje SQL y la enva a travs de la red hacia el DBMS. (Servidor). El servidor de bases de datos verifica los derechos del usuario sobre los datos que desea consultar (sistema de seguridad). (Servidor). Si se cuenta con los derechos correspondientes, el servidor de bases de datos procesa la consulta y regresa los resultados de la misma al front-end. (Cliente). El front-end recibe la respuesta y la traduce al formato nativo de la aplicacin. (Cliente). El usuario visualiza y/o manipula los datos en el lenguaje nativo de la aplicacin.

Todas las traducciones necesarias utilizando un add-on requieren mayor capacidad de memoria y de proceso en el cliente, por lo que es normal requerir mayores recursos de hardware.

Muchos usuarios se preguntan porqu no todas las aplicaciones front-end pueden accesar todas las marcas de bases de datos. Lo anterior es resultado de los diferentes "dialectos" de SQL que existen y de la diversidad de protocolos de comunicacin. SQL no es tan estndar, cada proveedor de bases de datos le agrega extensiones nicas o ciertas interpretaciones de SQL, que hacen que cada versin sea ligeramente incompatible con versiones de proveedores distintos. Por lo que respecta a las comunicaciones, cada DBMS utiliza un protocolo de comunicacin distinto para enlazar a los clientes con el servidor de bases de datos, por lo que se requieren APIs (Application Programming Interfaces) apropiadas en el software cliente, para poder "platicar" con el driver de comunicaciones del DBMS.

HERRAMIENTAS PARA EL DESARROLLO DE APLICACIONES VISUALESEscribir programas en lenguajes de tercera generacin no es la manera ms fcil de desarrollar la mayora de las aplicaciones front-end. Usando una herramienta de desarrollo de aplicaciones visuales, se simplifica de manera significativa el proceso de creacin de una aplicacin cliente/servidor. Una herramienta de desarrollo de aplicaciones visuales es un paquete de software especialmente diseado para crear aplicaciones front-end. Estas herramientas se hacen cargo de incluir en el cdigo del programador algunas rutinas de bajo nivel, que permiten la interaccin con el hardware o con el servidor de bases de datos. De esta forma, el desarrollador de aplicaciones tiene ms tiempo para concentrarse en el diseo de la misma aplicacin y en la interface con el usuario, reduciendo el tiempo total de desarrollo y, por tanto, reduciendo costos. Cada proveedor de bases de datos cliente/servidor tiene su propio conjunto de herramientas (o "toolkit") para crear aplicaciones, por ejemplo, Sybase APT Workbench, Oracle SQL*Forms o INGRES/Tools. Sin embargo, estas herramientas normalmente estn restringidas a la creacin de aplicaciones para el proveedor que las comercializa. Es creciente el nmero de terceros que han venido generando paquetes de desarrollo que pueden conectarse a ms de un servidor de bases de datos. La mayora de ellos corren sobre Windows lo cual, desafortunadamente, puede constituirse en un problema, ya que muchas organizaciones tendran que actualizar sus PCs para poder correr Windows. Claro est que dicha actualizacin tendra que justificarse con algo ms que correr una sola aplicacin..

SQL WINDOWSCARACTERISTICAS GENERALES Nombre: SQL Windows. Versin: 5.0 Corporativo. Marca: Gupta. Categora: High-End Client. Medio de Distribucin: Floppies y CD-ROM. Plataformas de Desarrollo Soportadas: En memoria de 8 MB (mnimo) hasta 12 a 16 MB para una ptima ejecucin. En disco duro 28 MB de espacio para SQL Windows Solo y 45 MB de memoria para SQL Windows Corporativo. Plataformas de Implantacin Soportadas, Tamao del Run Time y Requerimientos en cada una: Slo trabaja en Windows 3.x actualmente, pero se espera una versin para Windows 95, ampliamente integrada a ese nuevo sistema operativo. Ventajas: y Permite conectarse con fuentes de datos, manipular datos y generar aplicaciones enteras, todo sin escribir una lnea de cdigo. Con los Quick Objects, su librera de controles, es posible el generar aplicaciones robustas muy rpidamente. Quizs es el ambiente con mejor relacin poder/facilidad.

y

Tiene una alianza estratgica con Microsoft, por lo que sus productos pueden llegar a ser los ms conocidos del mercado.

Desventajas: y Requerimientos de hardware sumamente elevados, que lo hacen poco competitivo. En el futuro se basarn en controles OCX, que han sido vistos como grandes, lentos e inestables.

Observaciones: Buscando desbancar a PowerBuilder, SQL Windows es una herramienta que cada vez gana ms popularidad, gracias a sus Quick Objects. Sin embargo, la alianza con Microsoft puede no ser del todo buena, al obligarles a usar controles OCX. Tambin requiere una fuerte inversin en hardware. Utileras Extra Disponibles con el Producto: Team Windows, que es un programa de control de trabajo en grupo, incluyendo Control de Versiones y Repositorio de Componentes, Herramientas de Control y Monitores de la Red y del DBMS, compilador de SQL Windows a C, el mismo que mejora enormemente el desempeo, y Report Windows, un pequeo reporteador para usar dentro de las aplicaciones. Servidor de DB SQL Local: Incluye el Engine de la compaa, SQL Base, en su versin SQL Windows Solo, que soporta DB de hasta 5 Mb. Reporteador: Quest es una herramienta de bsquedas y reportes orientado al usuario final y personal directivo, la cual tiene una interface simple, pero una poderosa capacidad. CAPACIDADES EN PROGRAMACION INTERFACE CON EL PROGRAMADOR CUA No es intuitiva, pero despus de usarla un tiempo es fcil aprender su funcionamiento. Modo de Programacin Principalmente visual, quizs es la herramienta que ms permite hacer sin escribir cdigo. En caso de necesitar hacerlo, es en forma jerrquica. LENGUAJE DE PROGRAMACION Trata de ser un ambiente de desarrollo completamente visual, permitiendo incluso crear nuevos componentes heredando de otros. Tambin tiene un poderoso 4GL (SAL). Tipo: Lenguaje 4GL similar a C++. Tipo de Cdigo Generado: Cdigo-P; requiere de un Run-Engine. Tambin es posible "compilarlo" a C++ con una herramienta extra. POO Basndose principalmente en programacin visual, tiene la capacidad de POO. Es posible construir componentes nuevos. POE

Soporta todos los eventos de Windows, pero es posible, con un 3GL, construir Quick Objects que respondan a otros eventos. Biblioteca o Repositorio de Componentes Tiene la capacidad de programacin en grupo, siendo uno de los ms capaces para esta labor. Distribucin de Aplicaciones Cuenta con un generador de discos de instalacin. PROGRAMACION EN GRUPO Cuenta con amplias herramientas para desarrollo en grupo. Estas se incluyen en las versiones Corporativa y Empresarial de sus herramientas. CAPACIDADES DE INTERCONEXION METODO DE CONEXION A SERVIDOR SQL Soporta, a travs de Repositorios especiales, drivers nativos para Sybase, Oracle y otras. Adems puede conectarse por ODBC. FACILIDAD DE MIGRACION Muy simple, al poder desarrollar en un servidor local (SQL Base) y luego migrar a uno remoto. CONTROL DEL BACK END Es posible la creacin y control de la base de datos desde SQL Windows. DESARROLLO DE APLICACIONES CON INTERCONEXION Quizs la ms alta integracin con aplicaciones OLE y DDE. INTEGRACION CON HERRAMIENTAS DE TERCEROS ENLACE ENTRE APLICACIONES Puede conectarse a muchas aplicaciones, con repositorios especiales, como la de Lotus Notes. APLICACIONES DE TERCEROS CASEs Existe una herramienta de ERwin/ERX de Logic Works, diseada exclusivamente para SQL Windows y SQL Base. Adems con PVCS de ESQ Business Services, que es una herramienta muy popular de control de versiones.

POWERBUILDERCARACTERISTICAS GENERALES Nombre: PowerBuilder. Versin: 4.0 Marca: PowerSoft.

Categora: Multiplataforma. Medio de Distribucin: Floppies y CD-ROM. Plataformas de Desarrollo Soportadas: Procesador 386SX, MS-DOS o PC-DOS versin 3.3 o mayor, 8 MB en RAM, Windows 3.1 o Windows NT. 19 MB de espacio en disco duro. Tambin funciona en plataformas OS/2, Mac y UNIX (Motif y Open Look). Plataformas de Implantacin Soportadas, Tamao del Run-Time y Requerimientos en cada una PowerBuilder posee un soporte completo para ambientes Windows de 16 y 32 bits en plataformas Intel, incluyendo Windows 3.1, Windows NT, Win OS/2, Mac y UNIX (Motif y Open Look). Ventajas y PowerSoft ha sido comprado recientemente por Sybase, por lo que la prxima versin debe incluir herramientas y drivers mejorados para este DBMS. Adems, permite el fcil desarrollo y distribucin de aplicaciones en varias plataformas a nivel corporativo.

Desventajas y Su ambiente de programacin difiere del normal. Asimismo, su futuro es incierto al haber cambiado de dueo.

Observaciones Posiblemente es la herramienta de high-end ms exitosa del mercado, con muchos desarrollos y herramientas de terceros. Definitivamente sera la mejor opcin, pero a la fecha tiene un futuro muy incierto para ser una eleccin segura. Utileras Extra disponibles con el Producto PowerBuilder ofrece una familia de herramientas de desarrollo escalable que incrementan la productividad de las aplicaciones. La serie incluye PowerBuilder Enterprise, PowerBuilder Team/PDBS, PowerBuilder Desktop, InfoMaker y PowerBuilder Library for Lotus Notes. Servidor de DB SQL Local Incluye el Engine ms popular en el mercado, Watcom SQL, en su versin Solo, que soporta DB de hasta 5 Mb. 3GL Incluye Watcom C++. Permite hacer mdulos externos y ligarlos a la aplicacin. Reporteador PowerBuilder, a travs de InfoMaker, trae consigo un impresionable arreglo de tipos de reportes: formas libres, tabulares, control break, crosstab, etiquetas, compuesto, y otros, con el acceso ms completo a la informacin y manejo de herramientas para usuarios finales y desarrolladores. InfoMaker habilita la creacin de representaciones, reportes de alta calidad y fciles definiciones de queries sin necesidad de programar. Las consultas se realizan a travs de un constructor grfico y un quickselect multi-tabla. Slo hay que salvar los queries como objetos y entonces usarlos como fuentes de datos para una gran variedad de reportes. CAPACIDADES EN PROGRAMACION INTERFACE CON EL PROGRAMADOR CUA

Sin ajustarse mucho a los estndares de Windows, es relativamente fcil de usar. Modo de Programacin PowerBuilder puede definir, compilar y corregir las clases integradas de C++ basadas en el compilador Watcom C/C++ de alto rendimiento, aparte del 4GL nativo que incluye. LENGUAJE DE PROGRAMACION PowerBuilder ofrece un extenso lenguaje orientado a objetos que provee acceso a miles de funciones. Los desarrolladores pueden escribir sus propias funciones o utilizar las ya existentes escritas en C o en otros lenguajes. Han sido incluidos un compilador incrementado y un debugger completamente novedoso. Tipo Lenguaje 4GL similar a C++. Tipo de Cdigo Generado Cdigo-P, requiere de un Run-Engine. POO A travs de Watcom C++ incluye toda la gama de programacin orientada a objetos, pero es en esta herramienta aparte, y en 3GL. PowerBuilder soporta la definicin de clases para modelados visuales y objetos no visuales. Adems, tambin provee soporte para otras caractersticas de la POO, incluyendo herencia, encapsulamiento de datos y procesos lgicos, y polimorfismo. Estas capacidades aseguran consistencia en aplicaciones, incrementando la productividad y minimizando costos. Es posible usar ventanas de PowerBuilder, mens y objetos creados por los usuarios para definir objetos ancestros con atributos de encapsulamiento, eventos y funciones. Entonces es posible heredar esos objetos para crear objetos descendentes. POE Todo el ambiente de la aplicacin se basa en los eventos de Windows. Biblioteca o Repositorio de Componentes PowerBuilder provee una biblioteca de objetos centralizada y administrador de cdigo fuente, adems, una aplicacin de administracin de configuracin e interfaces para los ms populares programas de administracin de versiones de terceros. Tiene capacidad de Bitcora del uso del Repositorio de componentes, Proyect Painter para mantenimiento y generacin de configuracin de aplicaciones. Distribucin de Aplicaciones Genera discos de instalacin, los mismos que pueden distribuirse libre de regalas. Adems, con el producto PowerBuilder Assistant, se cuenta con soporte para lenguajes mltiples en tiempo de corrida. PROGRAMACION EN GRUPO Cuenta con amplias herramientas para desarrollo en grupo. CAPACIDADES DE INTERCONEXION METODO DE CONEXION A SERVIDOR SQL

Incluye el Watcom SQL ODBC driver que soporta conexiones con bases de datos Watcom SQL creadas con PowerBuilder, InfoMaker o con el propio Watcom SQL. Este driver es multi-tier, el cual procesa funciones de ODBC pero manda las instrucciones SQL dependiendo de la base de datos usada para que se procesen. De esta forma el cdigo est separado del lenguaje de transaccin, optimizando la programacin y el aprendizaje de la herramienta. FACILIDAD DE MIGRACION Con Watcom SQL como servidor local, es muy fcil desarrollar en l para despus migrar a otro servidor SQL, ya sea de Watcom u otros. CONTROL DEL BACK END Es posible la creacin y control de la base de datos desde PowerBuilder. DESARROLLO DE APLICACIONES CON INTERCONEXION Soporte para OLE 2.0, a nivel servidor y cliente, con soporte para automatizacin, DDE (Dynamic Data Exchange), DLLs (Dynamic Link Libraries), y VBXs (Visual Basic Controls). INTEGRACION CON HERRAMIENTAS DE TERCEROS ENLACE ENTRE APLICACIONES Sobresale la existencia de las PowerBuilder Libraries for Lotus Notes. APLICACIONES DE TERCEROS CASEs Existe una herramienta de ERwin/ERX de Logic Works, diseada exclusivamente para PowerBuilder. 3GLs Directamente cuenta con un lenguaje de programacin incluido, el Watcom C++. Escalabilidad El CODE (Client/Server Open Development Environment) expande la tecnologa de los productos de PowerSoft que cubren varios aspectos, como son: llamadas remotas a procedimientos y procesos de transacciones de modelo de datos y pruebas automatizadas. Manejo de Grficos La ingeniera grfica de PowerBuilder provee de grficos de segunda y tercera dimensin, de pastel, de barras, columnas, lneas, scatter y grficas de rea.

DELPHICARACTERISTICAS GENERALES Nombre: Delphi. Versin: 1.0 Marca: Borland. Categora: Low End Client. Medio de Distribucin: Floppies y CD-ROM.

Plataformas de Desarrollo Soportadas: Procesador 80386SX como mnimo, recomendable 80486 o superior. 6 MB de memoria principal como mnimo, y para desarrollar bajo el esquema cliente/servidor mnimo 8, ptimo 12 MB. En el disco duro mnimo 3 MB de espacio en el directorio temporal de Windows, 30 MB de espacio libre para la instalacin mnima y 80 MB para la instalacin completa. Plataformas de Implantacin Soportadas Actualmente slo soporta Windows 3.x, pero se prometi una versin para Windows 95 al mes del lanzamiento de ste. Ventajas y Utiliza como lenguaje de programacin Object Pascal, por lo que muchos programadores pueden utilizarlo sin mucho entrenamiento. Delphi es la primera herramienta en ofrecer un alto desempeo en cdigo nativo compilado, con rapidez de ejecucin y con la capacidad de accesar a bases de datos para cliente/servidor. Tiene una alta productividad, ya que permite reusar el cdigo logrando un producto sumamente competitivo.

Desventajas y Delphi cuenta con un punto negativo en relacin a la desaparicin de la compaa Borland, as como el tipo de ambiente que es (Low End Client), lo que lo hace poco competitivo en el desarrollo de aplicaciones de gran tamao. No posee repositorio de componentes o facilidades de control de versiones.

Observaciones Delphi es la ms novedosa herramienta en el mercado, y presenta caractersticas que ningn otro posee. Lstima que el futuro de Borland yace en el misterio, as como el de Delphi. Utileras Extra disponibles con el Producto Un kit de desarrollo para un servidor de base local. El Reporteador Report Smith SQL. Herramientas para desarrollos en equipo. Constructor de consultas visuales. Una Librera de Componentes Visuales (VCL) con cdigo. Servidor de DB SQL Local Incluye una versin individual del Engine SQL de Borland, Interbase. Reporteador Report Smith es un producto adquirido por Borland con el objeto de ofrecerlo junto a sus herramientas de desarrollo. Es uno de los mejores en el mercado, sobresaliendo por el tamao (ms de 10 MB) que ocupa. CAPACIDADES EN PROGRAMACION INTERFACE CON EL PROGRAMADOR CUA Se ajusta a la interface de Windows, con controles 3-D, siendo uno de los que tiene la interface ms intuitiva de los productos evaluados. Modo de Programacin Delphi introduce el concepto de "lenguaje de dos vas", en el cual la programacin visual va junto a la programacin normal, de forma que existen 2 formas diferentes pero equivalentes de desarrollar una aplicacin. LENGUAJE DE PROGRAMACION

Object Pascal. Es similar a Borland Pascal, pero ha sido escogido por su alto desempeo en el desarrollo visual. Dentro de sus caractersticas incluye Exception Handling, informacin a tiempo de corrida, y mtodos de tablas virtuales, lo que lo hace uno de los mejores lenguajes orientados a objetos que existen. Tipo Es un dialecto de Pascal, altamente compatible con Borland Pascal 7. Tipo de Cdigo Generado Cdigo ejecutable autnomo, de forma que es posiblemente el ms rpido generado por herramientas visuales de la actualidad. POO Object Pascal soporta todos los puntos bsicos de la POO, adems de aspectos avanzados como la excepcin de errores, lo cual lo hace uno de los ms completos en el mercado. POE Facilidad de crear nuevos eventos en clases creadas por el programador, adems de soporte a todos los eventos de Windows. Biblioteca o Repositorio de Componentes Cuenta con una Librera de Componentes Visuales (VCL) que ya tiene implementados algunos o se puede ir aadiendo los del desarrollador. Distribucin de Aplicaciones Es posiblemente el ms simple de distribuir al crear ejecutables autnomos sin necesidad de Run-Engines o libreras. CAPACIDADES DE INTERCONEXION METODO DE CONEXION A SERVIDOR SQL La edicin client/server cuenta con drivers nativos para los DBMS ms conocidos del mercado, asimismo como conectividad a travs de IDAPI, el estndar de conectividad impulsado por Borland. Tambin es posible conectarse a un servidor por medio de ODBC. FACILIDAD DE MIGRACION Muy fcil, gracias al concepto de alias (usado extensivamente en Paradox). Es posible que no se necesite ni recompilar el cdigo para migrar de una fuente local a una remota. DESARROLLO DE APLICACIONES CON INTERCONEXION Soporte para OLE 2.0, a nivel servidor y cliente, con soporte para automatizacin, DDE (Dynamic Data Exchange), DLLs (Dynamic Link Libraries), y VBX (Visual Basic Controls). Se planea soporte para controles OCX en futuras versiones.

VISIONCARACTERISTICAS GENERALES Nombre: Vision. Versin: Release 2.0

Marca: Unify - Visix (Componentes del run-time). Categora: Multiplataforma. Medio de Distribucin: Floppies. Plataformas de Desarrollo Soportadas: Para Windows 3.x, Procesador 386DX como mnimo, recomendable 486 o superior, mnimo 12 MB en RAM, recomendado 16 MB de RAM y de 34 a 40 MB en disco duro. Tambin soporta las plataformas Macintosh y Unix. Ventajas: y Es muy fcil el desarrollar aplicaciones tipo 'Query by Example' para lo que no es necesario ningn cdigo extra. Es fcil configurar en Windows, nos permite la reutilizacin de aplicaciones, adems cuenta con un Repositorio de Datos. La migracin de datos Unix-Windows es sencilla, slo hay que volver a compilar las aplicaciones desarrolladas.

Desventajas: y Ocupa demasiados recursos, ms que cualquier otra herramienta evaluada (5 MB de RAM mnimo para ejecucin, no importando si la aplicacin es chica o grande, y de 5 a 7 MB de RAM para cargar el ambiente de desarrollo). No cuenta con un Reporteador aunque puede utilizar uno externo. No cuenta con capacidades para la creacin de grficos. El editor que utiliza es externo. Debera tener uno propio. Es muy pobre en este aspecto, debido a que puede prestarse a confusin y a un manejo incorrecto del editor.

y y y

Observaciones Si el desarrollo y producto final van a usarse sobre Unix puede ser una buena opcin, pero sera cuestin de revisar Omnis 7, Power Builder y SQL Windows (versin para Solaris). Utileras Extras disponibles con el Producto Accell SQL, un desarrollador de aplicaciones 4GL orientado a objetos para modo caracter y modo grfico, 100% compatible con Vision. ACCELL IDS, para desarrollo de aplicaciones para modo caracter basadas en Unix, para el caso de requerir soluciones rpidas y eficientes. Servidor de BD SQL Local Ninguna, pero es muy accesible el precio de Unify 2000, su DBMS. Otra opcin es Unify RDBMS. Documentacin Impresa: 9 Manuales, desde conceptos generales que maneja Vision, Integracin al DBMS, Diseo de Aplicaciones, Referencia de 4GL, Diseando una Aplicacin, Conexin a Base de Datos, entre otros. En Lnea: Muy buena para explicar los Comandos y Mens utilizados para el diseo de una aplicacin pero sin ejemplos de los comandos 4GL, que slo hay en manuales. CAPACIDADES EN PROGRAMACION INTERFACE CON EL PROGRAMADOR CUA

Se aleja sensiblemente del estndar Windows, puesto que trata de mantener una interface comn entre plataformas. Modo de Programacin Visual, pero el cdigo 4GL se escribe en un editor externo a la herramienta, lo cual no es lo ms adecuado. LENGUAJE DE PROGRAMACION Tipo: Es un 4GL con cierto parecido a C++. Tipo de Cdigo Generado Cdigo-P. Es un cdigo compactado y verificado por sintaxis, el cual es interpretado en tiempo de corrida, restndole eficiencia, velocidad y deteccin de errores, pero facilitando la migracin entre plataformas. POO Se pueden crear nuevos objetos a partir de clases ya existentes. Tambin permite herencia. POE Limitada, se est sujeto a los eventos y parmetros predefinidos, y carece de respuesta a eventos dentro de mtodos. Biblioteca o Repositorio de Componentes Actualizacin automtica: Si se cambia la definicin de la clase para un objeto en el Repositorio, se tiene la opcin de actualizar o sincronizar los nuevos atributos con todas aquellas formas que utilizan el Repositorio, pero se tiene tambin la opcin de que no se sincronice la actualizacin con ciertas formas, es decir, las formas que tenga esta opcin van a seguir trabajando con la versin anterior del Repositorio. Distribucin de Aplicaciones Slo es necesario la instalacin del Run-Time para migrar a otra plataforma. CAPACIDADES DE INTERCONEXION METODO DE CONEXION A SERVIDOR SQL Cuenta con drivers nativos para Unify 2000, Sybase, Oracle, Informix, Ingres, DB-2 y Watcom SQL. Tambin puede conectarse a travs de ODBC, aunque presenta problemas con Access. FACILIDAD DE MIGRACION Muy fcil, slo cuestin de mover la aplicacin y volver a compilar. DESARROLLO DE APLICACIONES CON INTERCONEXION: No. PROGRAMACION EN GRUPO: No cuenta con soporte para programacin en grupo. INTEGRACION CON HERRAMIENTAS DE TERCEROS APLICACIONES DE TERCEROS: No cuenta con mucho soporte de terceros. CASEs: Tampoco se conocen CASEs que lo soporten. Escalabilidad:

Amplia, gracias a la facilidad de migracin. Las aplicaciones inicialmente de Windows pueden ejecutarse en Workstations y Macintosh, as como el cambio a mejores servidores. Manejo de Grficos: No tiene.

OMNISCARACTERISTICAS GENERALES Nombre: Omnis 7. Versin: 3.0 Marca: Blyth Software. Categora: Multiplataforma. Medio de Distribucin: CD-ROM. Plataformas de Desarrollo Soportadas: En una PC compatible, configuracin mnima procesador 386, 8 MB de memoria y Windows 3.1. Idealmente una 486 con 12 MB de memoria RAM. Plataformas de Implantacin Soportadas: Unix ( Open Look y Motif), Windows 3.x, Windows NT, MacOS, incluye Motorola 68K y Power PC. Ventajas: y y Permite desarrollar aplicaciones en una plataforma, y posteriormente migrarlas a toda una variedad de plataformas distintas sin necesidad de modificar el cdigo, slo es necesario compilarlo. Proporciona una mltiple variedad de formatos para la elaboracin de grficos; stos pueden ser escogidos y modificados por el usuario de acuerdo a sus preferencias y necesidades.

Desventajas: y y y y La gran cantidad de operaciones y beneficios que proporciona OMNIS 7, hacen que ste sea una herramienta que consume bastantes recursos fsicos para que pueda trabajar adecuadamente. Las caractersticas de OMNIS 7 lo hacen incompatible con Stacker. En repetidas ocasiones la mquina fall al estar ejecutando OMNIS 7. No posee una interface comn de usuario, ya que en la manipulacin de ventanas cuando estn activas varias al mismo tiempo, algunas teclas iguales tienen un significado diferente para cada ventana. Presenta algunas inconsistencias en cuanto al manejo de su ayuda y sta no es muy completa. No siempre es factible obtener la informacin deseada de las aplicaciones que se realizan, ya que en ocasiones marca errores irreconocibles. Salva automticamente todas las modificaciones que se realicen, lo cual a veces presenta problemas ya que no siempre desean guardarse todos los cambios que se hacen. Quizs su mejor plataforma no es PC, ni de desarrollo ni de ejecucin.

y y

Observaciones: Perteneciente a una categora diferente, no parece ser competencia para los dems productos. Su mejor desempeo puede ser sobre equipos Macintoch (debido a que se desarroll inicialmente sobre esta plataforma), seguido de la versin para estaciones de trabajo Unix. Utileras Extras Disponibles con el Producto: Cuenta con un Control de Versiones y Repositorio de Componentes, adems de un Sistemas de Manejo de Cambios.

Servidor de DB SQL Local OMNIS SQL Client Database, puede ser utilizada para la generacin de prototipos, como base de local o aplicaciones que posteriormente van a migrar a otro servidor de base de datos. OMNIS Database esta disponible para todas las ediciones de Omnis 7 (Omnis Workgroup, Omnis Server, Omnis Enterprise). Reporteador: Cuenta con dos reporteadores: Reports y Ad Hoc Reports. Los dos pueden ser utilizados dentro de OMNIS 7. Reports cuenta con varias opciones para darle presentacin a los datos: en forma horizontal, vertical o en paquete. Por medio de una barra de herramientas se puede disear la presentacin del reporte. Se pueden poner varios encabezados, pie de pgina, nmero de pgina, fecha, sacar subtotales, totales, as como seleccionar el orden en que se quiera que aparezcan los datos, y realizar la seleccin de aquellos que se necesitan. Los reportes pueden ser vistos antes de ser impresos, desplegarlos en la pantalla o mandarlos a un archivo o al clipboard de Windows. Ad Hoc Reports es un generador de uso rpido para realizar fcilmente reportes y queries directamente con OMNIS 7. Para realizar el reporte por medio de una ventana se seleccionan las tablas y los campos que se van a ocupar, posteriormente se le da presentacin y se ejecuta la aplicacin. Este reporteador no corre queries que sean muy complicados, adems de que falla cuando es mucha la informacin a reportar. CAPACIDADES EN PROGRAMACION INTERFACE CON EL PROGRAMADOR CUA: Difiere significativamente del CUA de Windows, lo que lo hace difcil de aprender y usar. Modo de Programacin: OMNIS 7 provee dos formas para construir la aplicacin del cliente: Perform SQL command y SQL scripts. Perform SQL permite una sola lnea para declarar la sesin de SQL. SQL Scripts se utiliza para realizar declaraciones que sean de ms de una lnea. OMNIS 7 cuenta con un Buffer SQL, un rea de memoria que contiene una sola declaracin que se construye con una serie de comandos. LENGUAJE DE PROGRAMACION No es similar al de otro producto (quizs un poco a PowerBuilder). Tipo: Lenguaje 4GL similar a C++. Tipo de Cdigo Generado: Interpretado, requiere de un Run-Engine. Esto permite la portabilidad. Debugger: El Debugger de OMNIS 7 es muy completo, permitiendo correr la aplicacin paso a paso, inspeccionar los procedimientos, y evaluar y alterar los campos y las variables. POE Utiliza eventos propios que permiten la portabilidad. Biblioteca o Repositorio de Componentes: Dentro de OMNIS todo se realiza mediante una biblioteca de componentes, ya sean Mens, Pantallas, Reportes u otros. Cuenta adems con un Control de Versiones y un Sistema de Manejo de Cambios (CMS). Distribucin de Aplicaciones: Se debe copiar la fuente de la aplicacin a la plataforma donde se desee correr, y contar con el intrprete para dicha plataforma. PROGRAMACION EN GRUPO

No cuenta con un soporte formal para programacin en grupo. CAPACIDADES DE INTERCONEXION METODO DE CONEXION A SERVIDOR SQL Hay dos formas de conectarse al servidor, por medio de SQL OBJECT BROWSE y LOGON MANAGER. SQL OBJECT BROWSE se selecciona al abrir la conexin al servidor por medio de iconos, solamente se selecciona el servidor a conectarse y no es necesario darle todos los parmetros, mientras que con LOGON MANAGER se seleccionan los parmetros y cuantos registros, como mximo, se van a traer despus de realizar un query. Por ser multiplataforma, cuenta con drivers nativos adems del ODBC para establecer la conexin con el servidor de base de datos. FACILIDAD DE MIGRACION Quizs la mejor de todos (junto con Vision), al ser capaz no slo de migrar de servidor, sino tambin variar sin necesidad de modificaciones del programa la plataforma del cliente. CONTROL DEL BACK END Es posible la creacin y control de la base de datos desde OMNIS 7. DESARROLLO DE APLICACIONES CON INTERCONEXION Soporte para OLE 2.0, a nivel cliente, DLLs (Dynamic Link Libraries), Creacin de APIs en el cliente para Lotus Notes, MS-Mail y QuickTime, sin soporte para automatizacin, ni DDE (Dynamic Data Exchange). INTEGRACION CON HERRAMIENTAS DE TERCEROS APLICACIONES DE TERCEROS CASEs: Cuenta con integracin de SilverRun, un CASE capaz de interactuar en ambas vas con OMNIS 7. Es uno de los mejores CASEs que hay. Su integracin es muy estrecha. Escalabilidad: La capacidad de cambiar la plataforma de hardware del cliente lo hace muy escalable. Manejo de Grficos: Las grficas de OMNIS 7 son de gran calidad, y se podrn seleccionar diversas caractersticas para realizarlas. Su presentacin es en pay, barras, lneas, entre muchsimas otras, donde se le podrn adicionar diversos atributos como colores, tercera dimensin, rayado en direccin horizontal, vertical, con diferentes rangos, etc.

VISUAL BASICCARACTERISTICAS GENERALES Nombre: Visual Basic Professional Edition. Versin: 3.0 Marca: Microsoft. Categora: Low-End Client. Medio de Distribucin: Floppies (existen nuevas versiones y agregados en CD-ROM).

Plataformas de Desarrollo Soportadas: Procesadores 80386SX como mnimo, recomendable 80486 o superior, 4 MB de memoria principal como mnimo, y para desarrollar bajo el esquema Cliente/Servidor ptimo 8 MB. En el disco duro 30 MB de espacio libre para la instalacin. Windows 3.x. Plataformas de Implantacin Slo puede implantarse en plataformas PC, cuyos requerimientos mnimos son procesador 386SX con 2 MB de Memoria, y Windows 3.0 (Requiere instalar archivos del sistema). El run-time de Visual Basic 3 consiste en un conjunto de DLLs, las cuales van de 350 Kb a 2 MB, dependiendo de lo que requiera el programa. Ventajas y Visual Basic es el producto que permiti la programacin para la plataforma Windows a miles de programadores, fue el primero en su tipo y por ello es el producto ms popular en el mercado. Posee una cantidad increble de add-ons y libreras, ya sea de Microsoft o de terceros. El ser un producto Microsoft asegura una perfecta integracin con Windows. El dialecto de Basic que utiliza es simple de aprender y de usar. Un tamao y requerimientos reducidos ayudan a programar rpidamente sin necesidad de hardware "ltimo modelo". La mayor parte de los dems productos ofrecen, aunque slo parcialmente, un camino de migracin de Visual Basic a ellos. Los controles VBX, que se empezaron a usar con Visual Basic, son ahora el mayor estndar del mercado.

Desventajas: y Este producto NO est diseado para desarrollo de aplicaciones cliente-servidor, aunque ste fue el uso que se le dio desde un principio. Realmente est orientado para aprender programacin en Windows, o prototipado de aplicaciones ms grandes, donde la versin real del programa ser realizada en un lenguaje de programacin ms formal (C o Pascal). Es por ello que slo tiene facilidades bsicas de debug y distribucin de aplicaciones, y carece por completo de facilidades de control de versiones, programacin en grupo y otras caractersticas avanzadas de desarrollo. Actualmente, tras 3 aos en el mercado, Visual Basic es obsoleto, teniendo un desempeo y caractersticas inferiores a cualquier producto posterior nativo de PC. Esto incluye los controles VBX o el uso de 1001 DLLs diferentes como run-time. Basic, aunque fcil de aprender, no es un lenguaje ptimo para un desarrollo profesional. Como cualquier otro producto Microsoft, presenta problemas o "cualidades", las cuales son difciles de ver y controlar. Depende demasiado de addons para desarrollos avanzados, cada uno de los cuales aumenta la posibilidad de que el producto se comporte de forma inesperada.

Observaciones: La utilidad actual de Visual Basic es como base de comparacin para productos posteriores, ya que es el producto ms conocido externa e internamente. Hay que estar atentos a la versin 4, actualmente en fase beta, que ser liberada al mes (esperemos) de que se libere Windows 95. Asimismo, hay que tomar en cuenta que Visual Basic 4 va a incluir cambios fuertes al cambiar de controles VBX a controles OCX (usados por primera vez en Access), y va a traer cambios en la sintaxis del Basic. Utileras Extras disponibles con el Producto: Incluye el "engine" de Access 1.1 (pero lleno de trucos y trampas) junto con 2 aplicaciones de ejemplo que permiten una administracin bsica de las mismas, ODBC 1 (tambin con un pequeo "bug" incluido), un ejemplo de una aplicacin de distribucin, soporte para Pen for Windows, Mapi (limitado) y Telecomunicaciones (an ms limitado). Tambin incluye una versin "crippleware" (limitada) de Crystal Reports for Visual Basic (no opera bien con servidores de bases de datos remotos). Adems incluye informacin (pobre) y ejemplos sobre cmo crear controles VBX con Microsoft Quick C. Servidor de BD SQL Local Las bases de datos de Access responden a algunos comandos de SQL (los de consulta), pero no proveen el desempeo o portabilidad de stas. Reporteador

El Crystal Reports para Visual Basic es un reporteador simple, pero popular, el cual permite el desarrollo de reportes bsicos para bases de datos Access, Paradox, Xbase y Btrieve. Permite el acceso de otros tipos de manejadores o de bases de datos remotas por medio de ODBC, pero su rendimiento en este ltimo caso es muy deficiente. CAPACIDADES EN PROGRAMACION INTERFACE CON EL PROGRAMADOR CUA Se ajusta a la interface de Windows, con controles 3-D como agregados en la versin profesional (sin llegar a ser suficientes), siendo la base de las interfaces de la mayora de los productos actuales. Sin embargo, al ampliar el nmero de formas, el "performance" sufre una degradacin importante. Modo de Programacin Visual Basic es el primer lenguaje de "programacin visual" en el cual se le da una forma visible a cada una de las partes de la aplicacin, y en donde el cdigo est limitado a estos "componentes". El resultado es que la distribucin y apariencia de los componentes, toman precedencia a la creacin de un cdigo orientado a eventos, delimitado a ellos. LENGUAJE DE PROGRAMACION Tipo: Es un dialecto de Basic, supuestamente compatible con Qbasic, de una forma limitada. Tipo de Cdigo Generado Cdigo-P. Es un cdigo compactado y verificado por sintaxis, el cual es interpretado a tiempo de corrida, restndole eficiencia, velocidad y deteccin de errores, pero facilitando el desarrollo. POO Mnima: se utiliza la sintaxis de objeto componente, pero no el uso real de mtodos, herencia, encapsulamiento o polimorfismo. POE Limitada, se est sujeto a los eventos y parmetros predefinidos en Visual Basic, y carece de respuesta a eventos dentro de mtodos. Biblioteca o Repositorio de Componentes Incluye una librera limitada de controles VBX, otra ms til en la versin profesional. La creacin de controles VBX puede ser difcil por la falta de informacin, y debe realizarse en un lenguaje serio de programacin. Distribucin de Aplicaciones Presenta dificultades en aplicaciones grandes, por el gran nmero de DLLs que deben ser incluidos, a pesar de que cuenta con cierta documentacin, adems de la falta de Control de Versiones. CAPACIDADES DE INTERCONEXION METODO DE CONEXION A SERVIDOR SQL La edicin profesional incluye el ODBC versin uno con drivers para Microsoft SQL Server y Oracle 6. Para poder usar el primero con Sybase SQL Server, es necesario realizar modificaciones en el servidor. Tambin existe un agregado que permite conexin nativa a Microsoft SQL Server y a Sybase con las mismas condiciones que con ODBC. FACILIDAD DE MIGRACION

Fcil, en caso de RDBMS, pero es necesario modificar el cdigo y recompilar. Asimismo la sintaxis del SQL de Access presenta diferencias con el SQL estndar. En caso de XBase, no es tan directo, debido a que la sintaxis de SQL que pueden incluir es muy diferente a la del estndar. Esto puede llevar a tener que replantear la estrategia de conexin. DESARROLLO DE APLICACIONES CON INTERCONEXION Soporte para OLE 2.0 a nivel servidor y cliente, con soporte para automatizacin, DDE (Dynamic Data Exchange), DLLs (Dynamic Link Libraries), y VBXs (Visual Basic Controls). Se vende por separado un conjunto de herramientas y documentacin para programar aplicaciones de integracin de Microsoft Office (Word, Excel, Access, Mail, PowerPoint y Proyect). PROGRAMACION EN GRUPO No cuenta con soporte para programacin en grupo. INTEGRACION CON HERRAMIENTAS DE TERCEROS APLICACIONES DE TERCEROS Visual Basic tiene la mayor cantidad de herramientas de terceros disponibles actualmente, la mayora de ellas son add-ons para tratar de paliar las limitaciones inherentes de Visual Basic. CASEs Por la falta de soporte a programacin avanzada o administracin de bases de datos del mismo Visual Basic, no hay gran nmero de CASEs que soporten o aprovechen todo su potencial con l. Escalabilidad: No existe. Manejo de Grficos: Se realizan por medio de un control VBX incluido, y por un gran nmero de herramientas de terceros. Tienen calidad, pero es muy limitada la importacin, exportacin y manejo, nada comparable con las otras herramientas aqu evaluadas cuyas grficas son de muy alta calidad.

EVALUANDO HERRAMIENTAS PARA EL DESARROLLO DE APLICACIONES

Una primera e importante consideracin es el sistema operativo y el hardware con el que cuenta la organizacin, particularmente si el ambiente de cmputo es heterogneo, con PCs y sistemas UNIX que requieran tener acceso a la base de datos. Otro punto importante a ser considerado es el hardware que requiere la herramienta de desarrollo; muchas de ellas corren en una PC con procesador mnimo 80386, y con un mnimo de 8 MB de RAM. Tambin es necesario pensar en el tipo de interface de usuario que se pretende lograr. En Macintosh no hay otra opcin que las interfaces grficas. En PCs y sistemas UNIX se deber elegir entre modo caracter (texto en DOS y UNIX) y una interface grfica. En esta ltima clasificacin, a la vez, se puede elegir entre Microsoft Windows 3.1, Windows 95, Windows para Trabajo en Grupo y NT, Presentation Manager de OS/2 (IBM), para PCs, y Open Look o Motif en estaciones de trabajo UNIX. Windows NT tambin corre en algunas estaciones de trabajo RISC. En un ambiente grfico, las herramientas para desarrollo de aplicaciones adquieren especial importancia, ya que son las responsables de manejar los detalles para que la aplicacin corra en una interface grfica en particular. Esto se traduce en que, por ejemplo, el programador no tenga que aprender a crear pantallas de usuario en dicha interface.

OTRAS CONSIDERACIONES IMPORTANTESQu 3GL usa la herramienta?

Es importante elegir una herramienta de desarrollo que los programadores del equipo de desarrollo conozcan, ya que tener que aprender un lenguaje incrementa el tiempo que un programador necesita para disear y desarrollar la aplicacin. Tambin puede darse el caso de que la herramienta de desarrollo utilice su propio lenguaje de programacin y que no tenga interface con ningn 3GL, en este caso, puede ser que dicho lenguaje "propietario" de la herramienta sea muy poderoso y que se puedan crear aplicaciones muy complejas mediante l, pero al equipo de desarrollo le tomar un tiempo adicional el aprenderlo. Permite la herramienta crear aplicaciones stand-alone? En esta consideracin habr de investigarse si la aplicacin final creada con la herramienta en cuestin puede ser compilada para que corra por s misma, o si ser necesario comprar una copia de una versin "recortada" de la herramienta, usualmente llamada versin run-time, para cada usuario final. Si ste fuera el caso, el costo final de la aplicacin se vera seriamente afectado, por lo que es preferible que la herramienta para desarrollar aplicaciones genere ejecutables, facilitando as la distribucin de aplicaciones. Trabaja la herramienta con otros servidores de bases de datos adems del SQL Server? Puede suceder que la organizacin utilice ms de un servidor de bases de datos, en cuyo caso habr de asegurarse que la herramienta para desarrollo de aplicaciones soporte los otros servidores de bases de datos que puedan existir en el ambiente de cmputo. Cules son las polticas de soporte tcnico del proveedor de la herramienta? Cabe resaltar que no importa cun bueno sea un producto. Si no cuenta con el soporte tcnico adecuado, puede resultar una mala adquisicin.

CONCLUSIONESHay que sealar que el nmero de herramientas cliente/servidor es inmenso, y que todas ellas tienen fortalezas y debilidades. Aun as, hay front-ends que por su poder y facilidad de uso sobresalen del resto. Tras la evaluacin, las conclusiones sobre cada herramienta son: Delphi: Combina la elaboracin de ejecutables de alto desempeo con el primer lenguaje de dos vas, siendo una excelente opcin para programadores de Pascal que no cuenten con un equipo muy poderoso. La tradicin Borland de herramientas de desarrollo se observa en todo su esplendor con este producto. PowerBuilder: Esta herramienta cruza un momento difcil de su historia, pero actualmente es una garanta de capacidad y soporte. Es muy importante para su futuro lo que Sybase logre hacer de ella, pues si logra integrarla con SQL Server y adems mejorar su desempeo, sera la opcin obligada para los usuarios de Sybase. Omnis 7: Pese a que promete ser un ambiente de desarrollo completo, al menos lo que pudimos evaluar de l dej mucho que desear. Quizs si se contase con una excelente plataforma de desarrollo, la capacitacin necesaria y la necesidad de ejecutar las aplicaciones en Unix, Macintosh y Windows, pudiese considerarse como una opcin, aunque posiblemente inferior a Vision. SQL Windows: Esta herramienta promete ser el futuro para el desarrollo de aplicaciones cliente/servidor, gracias a una facilidad de desarrollo inigualable y alianzas estratgicas. De todas formas, es necesario mantenerse atento a la prxima versin, que con su promesa de apoyo a Windows 95, puede implicar un cambio importante respecto a versiones anteriores. Tambin hay que considerar los altos requerimientos en memoria. Vision: Una excelente herramienta multiplataforma, capaz de generar un conjunto de aplicaciones que cubran todas las necesidades de una corporacin de forma rpida y unificada, a travs de las diversas plataformas de hardware. Lstima que ello le impida poder explotar completamente las capacidades particulares de cada una de ellas. Visual Basic 3: Esta herramienta inici el reinado de las herramientas de desarrollo visual, y cuenta con el mayor soporte disponible en la actualidad. Sin embargo, est rezagada por amplio margen con respecto a la

competencia, tanto en capacidades como en desempeo, situacin que pretende remediar en su prxima versin, a liberarse prximamente. La decisin de la herramienta de desarrollo a utilizar debe estar subordinada al sistema operativo a usar, la plataforma de hardware con la que se cuenta y el tipo de programadores que desarrollarn las aplicaciones. Para finalizar este trabajo, se ha incluido una tabla comparativa que resume mucha de la informacin presentada en el mismo. TABLA COMPARATIVA DE HERRAMIENTAS VISUALES SQL Windows Delphi 1.0 Power Builder 4.0 Omnis 7 Ver.3 Vision 2 5 Borland PowerSoft/Sybase Gupta Blyth Software Unify Low-End Multiplataforma High-End Client Multiplataforma Multiplataforma Client Floppies y CD-ROM CD-ROM CD-ROM Floppies CD-ROM 386DX, 8MB 386DX, 8MB 386SX, 6MB, 386SX, 8MB, 386SX, 8MB 35 MB HD 19MB HD 486, 16MB, 45 MB HD Windows 3.x, Windows NT, Plataformas de Windows 3.x Implantacin Soportadas OS/2 , Macintosh, UNIX Herramientas para Power Builder desarrollo en grupo. Enterprise, Team/PDMS, Constructor Desktop y Library de consultas for Lotus Notes. visuales. Muy completa Cdigo fuente gama de de sus herramientas componentes Team Windows (control de trabajo en grupo), herramientas de Silver Run Case control y de dos vas monitoreo, compilador a C, Report Windows ODBC, controles mejorados y ejemplo. Desarrolladores Visual Design 4GL: Accell Guide y la SQL y Accell Microsoft IDS Knowledge Base. Gran cantidad, pobre calidad Windows 3.x Unix (Open Look y Motif), Windows y Macintosh Unix (Open Look y Motif), Windows y Macintosh 28 MB HD 486, 16MB, 45 MB HD (en plataforma PC) (en plataforma PC)

Producto Marca Categora Medio de Distribucin Plataforma de Desarrollo Mnima

Visual Basic 3.0 Microsoft Low-End Client Floppies 386SX, 4MB, 10 MB HD 386DX, 8MB, 40MB HD

Plataforma de 486, 12MB, Desarrollo Recomendada 60 MB HD

486, 16MB (en 486, 16MB (en plataforma PC) plataforma PC)

Windows 3.x

Utileras Extra Incluidas

Servidor de SQL Local

Interbase SQL solo

Reporteador

Report Smith Utiliza como lenguaje de programacin Object Pascal,

Ventajas

Ninguno, pero es muy accesible al precio del SSQL Base Omnis SQL Engine de Watcom SQL solo manejador de solo Client Database Access 1.1 base de datos Unify 2000, otra opcin es Unify RDBMS. Crystal Reports y Ad Reports for InfoMaker Quest Reporter Ninguno Hoc VB. Power Builder es Es quizs el Posible migrar El producto Producto la herramienta producto ms la plataforma de ms flexible de pionero y profesional ms fcil de ejecucin los evaluados, lder en popular del aprender, y de despus de es posible programacin

Desventajas

que es simple pero poderoso. Cdigo compilado de mucha velocidad de ejecucin. Diseado para cliente /servidor Carece de facilidades para control de versiones o creacin de aplicaciones de gran tamao.

mercado. Recientemente adquirida por Sybase, se puede esperar ms integracin con l.

mayor rapidez de desarrollo. Tiene una alianza importante con Microsoft. Es posible generar aplicaciones sin escribir cdigo.

hacer la aplicacin. Soporta una amplia variedad de formatos para grficos.

generar una aplicacin en cualquier plataforma y ejecutarla en cualquier otra interface consistente e intuitiva

general en Windows. Requiere pocos recursos, es rpido y fcil de aprender y usar. Cantidad ilimitada de Add-Ons Servidor. Muy limitado en su diseo y ha quedado obsoleto con el tiempo. Cdigo-P de bajo desempeo.

Primera versin del producto. Una novedosa herramienta, gran velocidad de ejecucin, poderoso lenguaje de programacin Observaciones Borland atraviesa una etapa incierta en su futuro, pero an as ha tenido una gran aceptacin.

Ambiente de programacin jerrquico, un poco diferente al normal. Cambiar de dueo es una incertidumbre.

Requerimientos de hardware sumamente elevados. Su prxima versin usar controles OCX. Su interface es poco intuitiva.

Cdigo interpretado, de bajo desempeo. Altos requerimientos e incompatibilidad con Stacker. No est orientado a PCs.

Su interface choca con el CUA de la plataforma de ejecucin. Requerimientos de hardware sumamente elevados.

Quizs la ms difundida herramienta del mercado, cuenta con un gran soporte de terceros. Si Sybase sabe integrar su DBMS con sta, la prxima versin ser una excelente opcin.

Present Se perfila para muchos problemas para dominar el instalarse y mercado de nunca funcion herramientas cliente/servidor, a satisfaccin. Una PC no es la gracias a su facilidad de uso.