Sie sind auf Seite 1von 10

www.monografias.

com

Diseando Aplicaciones Distribuidas. 1.


Resumen. 2. Componentes Software. 3. Entornos normalizados de desarrollo de componentes software. Diseando Aplicaciones Distribuidas. Capa de Presentacin. Capa de Negocios. Capa de Servicios de Datos. 4. Ejemplo de Aplicacin Cliente/Servidor. 5. Conclusiones. 6. Bibliografa. Resumen. En nuestros das el vertiginoso avance de la informtica y las comunicaciones, con sus mayores exponentes Internet e Intranet, y la cada vez ms creciente demanda de la empresa de aplicaciones de calidad que den solucin a sus necesidades, ha hecho que las tcnicas tradicionales de diseo e implementacin de aplicaciones comiencen hacer insuficiente, por lo que un nuevo enfoque de desarrollo se hace necesario. El presente trabajo tiene como objetivo principal lograr introducir al desarrollador en las nuevas tcnicas de diseo de aplicaciones distribuidas, para ello hemos divido el estudio en dos partes. Una primera est orientada al estudio de los componentes software, y al entorno normalizado de desarrollo COM+. En la segunda describimos un diseo de aplicaciones distribuidas cliente/servidor concluyendo con la muestra de un ejemplo. Palabras Claves: Componentes, distribuidas y aplicaciones. Articulo de tipo : Acadmico Componentes Software. Alguna vez ha pensado que un programa pudiera ser como... una bicicleta?. Si es necesario cambiar la cadena de la bicicleta, usted solo se centra en la cadena, no tiene que lidiar con otros componentes ajenos, como por ejemplo, las gomas o tan sencillo como el timbre, sino solo la cadena. Sabe con exactitud donde est el componente y puede modificarlo (engrasar) o actualizarlo (una nueva). Si ahora le dijera que pudiera hacer lo mismo con los software que usted desarrolla, qu dira al respecto?. El objetivo de la tecnologa de componentes software es construir aplicaciones complejas mediante ensamblado de mdulos (componentes) que han sido previamente diseados por otras personas a fin de ser rehusados en mltiples aplicaciones. La ingeniera de programacin que sigue esta estrategia de diseo se le conoce por el acrnimo CBSE 1 y es actualmente una de las ms prometedoras para incrementar la calidad del software, abreviar los tiempos de acceso al mercado y gestionar el continuo incremento de su complejidad. La arquitectura software de una aplicacin basada en componentes consiste en uno o un nmero pequeo de componentes especficos de la aplicacin (que se disean especficamente para ella), que hacen uso de otros muchos componentes prefabricados que se ensamblan entre s para proporcionar los servicios que se necesitan en la aplicacin.

Component Based Software Engineering

En la tecnologa de componentes la interfaz constituye el elemento bsico de interconectividad. Cada componente debe describir de forma completa las interfaces que ofrece, as como las interfaces que requiere para su operacin. Y debe operar correctamente con independencia de los mecanismos internos que utilice para soportar la funcionalidad de la interfaz. Caractersticas muy relevantes de la tecnologa de programacin basada en componentes son la modularidad, la rehusabilidad y componibilidad y en todos ellos coincide con la tecnologa orientada a objetos de la que se puede considerar una evolucin. Sin embargo, en la tecnologa basada en componentes tambin se requiere robustez ya que los componentes han de operar en entornos mucho ms heterogneos y diversos. El desarrollo de software basado componentes es la evolucin natural de la ingeniera software para mejorar la calidad, disminuir los tiempos de desarrollo y gestionar la creciente complejidad de los sistemas. Entornos normalizados de desarrollo de componentes software. Para que una arquitectura de componentes pueda operar es necesario disponer de un entorno normalizado que proporcione soporte a los mecanismos con que se comunican las interfaces. COM (Component Object Model). Los lenguajes de programacin clsicos fueron diseados para desarrollar aplicaciones secuenciales compuestas de mdulos, todos ellos codificados con un solo lenguaje. Sin embargo, hay situaciones en las que no es prctico restringirse al uso de un nico lenguaje. La tecnologa COM aborda la solucin a este problema proporcionando un sencillo, pero a la vez potente modelo para construir sistemas software a partir de la interaccin de objetos (componentes). COM define un estndar binario (esto implica que es independiente del lenguaje de programacin) para objetos y la intercomunicacin entre ellos. Toda comunicacin se realiza a travs de operaciones que son proporcionadas dentro de interfaces. El diseador invoca las operaciones que necesita directamente, incluso si el objeto destinatario est localizado en otro proceso o en otra mquina. El modelo de programacin COM esta basado en la distribucin de cdigo de clases en componentes binarios. Esto significa que el software (componentes) que se adhiere a COM, puede ser rehusado sin ninguna dependencia de cdigo fuente. Los desarrolladores pueden exponer sus trabajos como ficheros binarios sin dar a conocer sus algoritmos. El desarrollo basado en componentes resuelve muchos de los problemas asociados con las aplicaciones monolticas. Permite al grupo de desarrollo exponer ficheros binarios en vez de

cdigo fuente. Los componentes binarios pueden ser actualizados independientemente y reemplazados, lo que se hace mucho ms fcil mantener y extender una aplicacin despus de que esta ha sido puesta en explotacin. MTS (Microsoft Transaction Server). MTS es una pieza de software que fue creada para Windows NT Server. Como su nombre implica, MTS permite a los objetos de la capa media (ms adelante se expone una arquitectura de diseo) correr sobre Windows NT Server y controlar las transacciones distribuidas, es decir, permite a los componentes ser esparcidos por la red y que se ejecuten en otras computadoras con sistema operativo Windows NT Server. MTS provee un entorno de ejecucin para objetos COM, adicionando soporte para la seguridad, soporte para administracin y configuracin. Es posible administrar varios servidores desde una simple computadora. COM+ COM+1, no es ms que la integracin de la arquitectura COM y MTS (Microsoft Transation Server). A diferencia de MTS, esta nueva capa de ejecucin no es opcional 2 , COM+ es parte por defecto de la instalacin del sistema operativo Windows 2000. Como COM, COM+, es basado sobre componentes binarios y programacin basada en interfaces. Los Componentes COM+ pueden ser actualizados y extendidos una vez que estn en explotacin sin afectar a las aplicaciones clientes que los usan en la produccin. De este modo, la combinacin de la tecnologa COM+ junto con las tcnicas de programacin orientada a objeto, nos ofrece una importante simplificacin en el proceso de desarrollo de aplicaciones informticas. Diseando Aplicaciones Distribuidas. El diseo de aplicaciones modernas involucra la divisin de una aplicacin en mltiples capas; la interfase de usuario, la capa media de objetos de negocios, y la capa de acceso a datos. Puede ser til identificar los tipos de procesamiento que podemos esperar que una aplicacin realice. Muchas aplicaciones pueden, al menos, hacer lo siguiente: Clculos u otros procesos de negocios. Ejecucin de reglas de negocios. Validacin de datos relacionados al negocio. Manipulacin de datos. Ejecucin de las reglas de datos relacional. Interactuar con aplicaciones externas o servicios. Interactuar con otros usuarios. Nosotros podemos tomar estos tipos de servicios y generalizarlos dentro de los tres grupos o capas que a continuacin se resumen: Interfase de usuario (Capa de Presentacin) o Interactuar con otros usuarios. o Interactuar con aplicaciones externas o servicios.

Procesos de negocios (Capa de Negocios) o Clculos u otros procesos de negocios. o Ejecucin de reglas de negocios. o Validacin de datos relacionados al negocio. Procesos de datos (Capa de Servicios de Datos). o Manipulacin de datos. o Ejecucin de las reglas de datos relacional.

Se nombra de esta forma para eliminar las confusiones entre los desarrolladores acerca de que MTS solo era para operaciones que envolvan transacciones distribuidas. 2 Se instala como producto independiente del sistema operativo. Fue lanzado al mercado con Windows NT Server.

La divisin de estos procesos de aplicaciones y su distribucin entre diferentes procesos cliente/servidor es conocido como Procesamiento Distribuido. Generalizando estos procesos dentro de estas tres categoras o capas es una distribucin lgica y no refleja necesariamente alguna opcin de diseo fsico sobre computadoras, terminales u otros equipos. Usted puede desarrollar una aplicacin cliente/servidor distribuida basada sobre estas tres capas de Presentacin, Lgica de Negocios y Servicios de Datos y tener la aplicacin entera corriendo sobre una simple computadora. Alternativamente, usted puede esparcir estas tres capas a travs de un gran nmero de diferentes computadoras sobre una red. De cualquier forma usted ha desarrollado una aplicacin cliente/servidor de tres capas. Capa de Presentacin. La capa de Presentacin provee su aplicacin con una interfase de usuario(IU). Aqu es donde su aplicacin presenta informacin a los usuarios y acepta entradas o respuestas del usuario para usar por su programa. Idealmente, la IU no desarrolla ningn procesamiento de negocios o reglas de validacin de negocios. Por el contrario, la IU debera relegar sobre la capa de negocios para manipular estos asuntos. Esto es importante, especialmente hoy en da, debido a que es muy comn para una aplicacin tener mltiples IU, o para sus clientes o usuarios, que le solicitan que elimine una IU y la remplace con otra. Por ejemplo, usted puede desarrollar una aplicacin Win32 (un programa en Visual Basic) y entonces solicitrsele remplazarla con una pgina HTLM., quizs usando tecnologa ASP. Una de las mayores dificultades y factores importantes cuando desarrollamos aplicaciones cliente/servidor es mantener una separacin completa entre la presentacin, la lgica de negocios y los servicios de datos. Es muy tentador para los desarrolladores mezclar una o ms capas; poniendo alguna validacin u otro proceso de negocios dentro de la capa de presentacin en vez de en la capa de negocios. Capa de Negocios. Toda aplicacin tiene cdigo para implementar reglas de negocios, procesos relacionados a los datos o clculos y otras actividades relativas a los negocios. Colectivamente este cdigo es considerado para formar la capa de negocios. Otra vez, uno de los principios del diseo lgico cliente/servidor, la lgica de negocios debe mantenerse separada de la capa de presentacin y de los servicios de datos. Esto no significa necesariamente que la lgica de negocios est en cualquier parte, por el contrario, esta separacin es en un sentido lgico. Hay muchas formas de separar la lgica de negocios. En trminos orientados a objetos, usted debera encapsular la lgica de negocios en un conjunto de objetos o componentes que no contienen presentacin o cdigo de servicios de datos. Teniendo separada lgicamente su lgica de negocios de ambas, la capa de presentacin y servicios de datos, usted ganar en flexibilidad en trmino de donde usted puede almacenar fsicamente la lgica de negocios. Por ejemplo, usted puede seleccionar almacenar la lgica de negocios sobre cada estacin de cliente, u optar por ejecutar la lgica de negocios sobre un servidor de aplicaciones, permitiendo a todos los clientes acceder a un recurso centralizado. Los objetos de negocios son diseados para reflejar o representar sus negocios. Ellos se convierten en un modelo de sus entidades de negocios e interrelaciones. Esto incluye tanto objetos fsicos como conceptos abstractos. Estos son algunos ejemplos de objetos del mundo real: un empleado, un cliente, un producto, una orden de compra. Todos estos son objetos en el mundo fsico, y la idea en su totalidad detrs de usar objetos de negocios de software, es crear una representacin de los mismos objetos dentro de su aplicacin. Sus aplicaciones pueden hacer que estos objetos interacten unos con otros como ellos lo hacen en el mundo real. Por ejemplo, un empleado puede crear una orden de compra a un cliente que contiene una lista de productos. Siguiendo esta lgica usted puede crear objetos de negocios de una orden conteniendo el cdigo necesario para administrarse a si mismo, as usted nunca necesitar replicar cdigo para crear ordenes, usted solo usar el objeto. Similarmente, un objeto cliente contiene y administra sus propios datos. Un buen diseo de un

objeto cliente contiene todos los datos y rutinas necesitadas para representarlo a travs del negocio completo, y puede ser usado a travs de toda la aplicacin de ese negocio. No toda la lgica de negocio es la misma. Alguna lgica de negocio es un proceso intensivo de datos, requiriendo un eficiente y rpido acceso a la base de datos. Otras no requieren un frecuente acceso a los datos, pero es de uso frecuente por una interfase de usuario robusta para la validacin en la entrada de campos u otras interacciones de usuarios. Si nosotros necesitamos una validacin al nivel de pantallas y quizs clculos en tiempos real u otra lgica de negocios, pudiramos considerar este tipo de lgica de negocios para ser parte de la IU, ya que en su mayor parte es usada por la interfase de usuario. Una alternativa de solucin es dividir la capa de lgica de negocios en dos: Objetos de negocios de la IU. Objetos de negocios de datos. Un ejemplo del objeto Empleado de la capa objetos de negocios de la IU proveer propiedades y mtodos para usar por el diseador de la interfase de usuario. Ejemplo de propiedades y mtodos pudieran ser: IDEmpleado, Nombre, Direccin, etc., y como mtodos crear una de compra, etc. El objeto Empleado de la capa de objetos de negocios de datos ser responsable de los mecanismos de persistencias, interactuar con la base de datos. Los objetos de esta capa son considerados sin estado, solo poseen mtodos. Capa de Servicios de Datos. Muchas aplicaciones interactan con datos, los almacenan en alguna forma de bases de datos. Hay algunas funciones bsicas que son comunes a todos los procesos. Estas incluyen: Crear datos, leer datos, actualizar datos y eliminar datos. Adicionalmente, nosotros tenemos servicios ms avanzados disponibles, tales como: bsquedas, ordenamientos, filtrados, etc. Ejemplo de Aplicacin Cliente/Servidor. Especificaciones Tcnicas. Nuestro ejemplo fue desarrollado con Microsoft Visual Basic 6.0 y la base de datos fue elaborada en Microsoft Access 2000. El mismo carece de complejidad, la nica intencin ha sido la de mostrar como se desarrolla una aplicacin cliente/servidor empleando un diseo distribuido. Es suficiente con una sola estacin de trabajo que tenga instalado el sistema operativo Microsoft Windows 2000 para su ejecucin, aunque pudiera esparcirse por varias computadoras en una red. Descripcin. La aplicacin cuenta con una simple interfase como se muestra en la siguiente figura:

Permitiendo dos funciones bsicas la de crear nuevos empleados y borrar, tal como se muestran en las figuras siguientes:

Figure 1 Borrar un empleado

Figure 2 Adicionar un empleado La aplicacin cuenta con una simple interfase permitiendo dos funciones bsicas la de crear nuevos empleados y borrar. Para un mayor control de la aplicacin se le ha incorporado a la capa de negocios la seguridad a travs de un objeto Session. Esto permite aislar al desarrollador de la interfase de usuario de esta responsabilidad. De esta forma logramos una mayor autonoma de la capa de negocios. Cuando se pretende acceder al objeto de negocio Employee, este chequeara si el objeto Session ya ha sido creado, de no estarlo automticamente lanzara una ventana de autenticacin para la creacin del objeto, por lo que al destruirse el objeto Employee se destruir automticamente el objeto Session. Por lo que hemos creado este objeto Session justamente al inicio de la aplicacin, limitando el acceso a usuarios no deseados. El objeto Session puede crearse a travs del siguiente segmento de cdigo al comenzar la aplicacin en un mdulo de cdigo: Set Session = New SecurityObject.Session Una vez ejecutada la sentencia anterior se mostrara la siguiente ventana:

Figure 1 Ventana de autenticacin Diagrama de clases

...
Presentacin

...
Objetos de negocios de la interface de usuario <<Class Module>> ...>> Employee
(f rom Employ eeObject)

...
Obj etos d e negocios de datos

<<Module>> modServer
(f rom Security Serv er)

<<Form>> frmEmployee
(f rom Employ eeUI)

-mobjEmployee

-mobjPersist <<Class Module>> EmployeePersist


(f rom Employ eeS erv er )

<<Module>> EMa in
(f rom Employ eeUI) ...)

-mobjSession +gobjSession <<Class Module>> ...>> Session


(f rom S ecurityO bject)

<<Class Module>> ...>> SessionPersist -mo bjSe rver (f rom Security Serv er)

Diagrama de Componentes

Capa de Presentacin
<<Standard EXE>> Employ eeUI

Objetos de Negocios de la IU
<<Activ eX DLL>> Employ eeObject <<Activ eX DLL>> S ecurity Obj ec t

Objetos de negocios de datos


<<Activ eX DLL>> Employ eeServ er <<Act iv eX DLL>> Sec ur ity Ser ve r

Servicios de datos

E mplo y ee.mdb

Employ ee.mdw

Conclusiones. La adopcin de un diseo distribuido de aplicaciones empresariales, aumenta la reusabilidad, reduce la cantidad de recursos, y los costes necesarios de desarrollo y mantenimiento. Este nuevo enfoque de diseo pone en manos de los desarrolladores no solo la funcionalidad que demandan las aplicaciones, sino tambin la seguridad, rapidez y flexibilidad. Bibliografa. MSDN Library January 2001. o COM+ Overview for Microsoft Visual Basic Programmers.

Rebecca M. Riordan. Designing Relational Database Systems. ISBN 0-7356-0634-X. Rockford Lhotka. Visual Basic 6 Business Objects, Enterprise Design e Implementation. ISBN 1-861001-4-01. Ted Pattison. Programming Distributed Applications with COM+ and Visual Basic 6.0, Second Edition. ISBN 0-7356-1010-X. David A. Solomon, Mark Russinovich. Inside Microsoft Windows 2000. ISBN 0-7356-1021-5 Guy Eddon, Henry Eddon. Inside COM+ Base Services ISBN 0-7356-0728-1

Autores: MsC. Caridad Salazar Alea. MsC. Antonio Cortina Rodrguez. Institucin: Universidad de Pinar del Ro Hnos Saz Montes de Oca. Pas: Cuba csalazar@info.upr.edu.cu

Das könnte Ihnen auch gefallen