Академический Документы
Профессиональный Документы
Культура Документы
I. INTRODUCCIN
Desde que se utiliz la computadora en el mbito del proceso de datos, ha existido
la necesidad latente o reconocida de desarrollar sistemas de informacin robustos
(que no fallen), escalables (que puedan crecer) y de fcil mantenimiento (que se
puedan modificar). El estado actual de las comunicaciones electrnicas, el incremento en el poder de hardware, nuevas tecnologas en el desarrollo de software,
nuevos manejadores de bases de datos y diferentes arquitecturas en el acomodo
de las aplicaciones dentro de la red, han hecho posible crear sistemas que se
acerquen cada da ms, a tener esas caractersticas deseadas.
La tecnologa Cliente Servidor propiciada por la aparicin de las computadoras personales y la tecnologa de redes, estableci una revolucin en la forma
en que se desarrollan las aplicaciones. No bien empez esta revolucin, aparece
otra, la tecnologa de componentes, la cual consiste en partir una aplicacin en
objetos inteligentes que, distribuidos en diferentes computadoras en una red, funcionan juntos y transparentemente para los usuarios, proporcionando una mxima
flexibilidad, un mejor desempeo y generalmente un menor costo.
Preponderantemente existen dos estndares que norman la construccin
de componentes: uno es CORBA (Component Request Broquer Arquitecture) elaborado y promovido por el Object Management Group y el otro es DCOM elaborado y promovido por Microsoft.
En el sector pblico de nuestro pas, es difcil encontrar sistemas de informacin eficientes, robustos y de gran alcance parecidos a los que existen en el
sector privado. En el presente trabajo, resultado de la metodologa en vas de instrumentacin en la Secretara de Educacin y Cultura del Estado de Veracruz para
el desarrollo de sus sistemas de informacin, se intenta justificar las ventajas de
aplicar las nuevas tecnologas en el sector pblico con el fin de utilizar mas eficientemente los recursos de cmputo y para facilitar la implantacin de sistemas y la
utilizacin de los mismos. Se describen los conceptos necesarios para la construccin de una aplicacin con la tecnologa cliente - servidor y la utilizacin de componentes distribuidos en varias capas (tiers). Se sugiere el estndar DCOM de
Microsoft por las razones que se exponen en el apartado correspondiente.
IIESCA
Ensayos
EVOLUCIN DE ARQUITECTURAS
Introduccin
En este captulo se hace una revisin histrica de los cambios que se han dado en
la manera de distribuir y acomodar tanto el hardware como el software utilizados
en la solucin de sistemas de informacin administrativos. Dado que en las empresas an persisten y conviven todas estas arquitecturas1, con la perspectiva actual es posible encontrar en cada una las partes cliente y servidor y concluir
como lo hacen muchos autores, que todas son arquitectura Cliente Servidor. No
obstante la presentacin que hacemos aqu es una presentacin cronolgica conforme a la evolucin que tuvieron con el fin de hacer patentes sus ventajas y desventajas y justificar la aparicin de cada una como la solucin de los problemas de
la anterior.
Consideramos que una arquitectura es un mecanismo para comunicar al equipo de desarrollo o a los usuarios en general,
cmo est construida una aplicacin. Explica la estructura de esta y lista sus piezas. Es parecido a decir: Una casa de
dos pisos con cuatro recmaras, sala recmara y comedor
10
IIESCA
Ensayos
Sistemas Multiusuario
Cara
ctere
s
Pr
es
io
ne
s
de
Te
cl
as
Durante los aos 60 y 70, las empresas que necesitaban tener gran poder de
cmputo utilizaban una arquitectura centralizada. Consista en una computadora
nica o mainframe a la cual, bajo el control de un sistema operativo multiusuario,
se conectaban terminales ahora llamadas tontas por carecer de un procesador
central. (Ver Fig. 1). La nica funcin de las terminales era transmitir a la computadora central, las
Arquitectura Centralizada con un Mainframe
seales
que
el
usuario
introduca
Lgica de la
con la presin de las
Aplicacin
Datos
teclas y presentar en
Servidor
la
pantalla
los
caracteres que el
computador central
enviaba de regreso.
Mainframe
Toda
la
inteligencia,
esto
es, las instrucciones
de los programas o
lgica
de
la
aplicacin, junto con
Clientes
sus datos, resida en
Figura 1
el mainframe, el que
generalmente con un
solo procesador central (CPU) atenda todos los requerimientos introducidos a travs de las terminales. No obstante que en esa poca no existan los conceptos de
cliente o de servidor, podemos ahora decir que se pueden distinguir un servidor en
el sentido de que hay un computador que proporciona servicios y varios clientes,
las terminales, que solicitan servicios.
Las arquitecturas de este tipo todava persisten y tienen como ventaja una
gran seguridad y una fcil administracin; pero en contra, es muy costosa y los
usuarios siempre lamentan la lentitud de los procesos. Adems de esto, su flexibilidad es muy poca o nula porque casi nada se puede hacer, a excepcin de incrementar memoria, para mejorar el desempeo. Nada se le puede modificar a la
aplicacin con respecto a su acomodo dentro del equipo. Esto es, si consideramos
que por lo general toda aplicacin est compuesta de tres partes funcionales, presentacin, lgica y datos, colocar alguna de estas partes en otro lugar que no sea
el computador central era y es imposible.
Servidor de Archivos
A finales de la dcada de los 70, aparecieron las computadoras personales y con
ellas, ya en la dcada de los 80, se hicieron evidentes sus grandes ventajas y
desventajas. Por un lado su facilidad de uso que propici que personas con pocos
11
conocimientos tcnicos las pudieran aprovechar. Tambin importante fue la competencia que se desencaden entre las empresas de cmputo, misma que trajo
consigo una explosin en el poder de cmputo y en la complejidad de los programas. Estos desarrollos acercaron an ms las computadoras a los usuarios finales.
Pero, en contraparte, la dispersin de la informacin hizo su aparicin. En
distintas computadoras haba la misma informacin, la seguridad de su acceso era
mnima; los informes emitidos en computadoras distintas no cuadraban; se perdan archivos; El obtener informes consolidados era difcil. Ante esto, hicieron su
aparicin las redes de rea local y la arquitectura de servidor de archivos (Ver Fig.
2). Esta arquitectura consiste en conectar varias computadoras personales o
workstations a una computadora central (o varias) la cual proporciona acceso a
recursos de cmputo como impresoras y discos duros.
Esta arquitectura trajo un
Arquitectura con Servidor de Archivos
cambio radical comparada
con la del mainframe. Como
Datos
se muestra en la Fig. 2, la
lgica o inteligencia de la
aplicacin reside ahora en
Servidor de Archivos
los clientes en lugar del
e
En
sd
v
ue
a
servidor. El servidor se
oq
l
B
b
o
Di loq
ita isc
sc u e
lic
D
o
o
encarga de enviar archivos
s
S
de
o grandes bloques de datos
conforme le son requeridos.
Entre las ventajas de
esta
arquitectura
se
Workstation 1
Workstation 2
Workstation 3
Workstation 4
Lgica de la
Lgica de la
Lgica de la
Lgica de la
encuentra un costo inicial
Aplicacin
Aplicacin
Aplicacin
Aplicacin
bajo y acomodo flexible; si
hacen falta mas clientes,
solamente se conectan y si sobran se desconectan. Entre las desventajas tenemos que el cliente ejecuta casi toda la aplicacin: interfase con el usuario y reglas
del negocio (se dice que es un cliente gordo), por lo cual se requiere que tenga
suficiente
deServidor
cmputo.
Si es
una un
aplicacin
Proceso depoder
SQL en un
de Archivos
Utilizando
DBF o MDB muy demandante de recursos
quiz sea imposible hacer crecer al cliente a un nivel satisfactorio. Adicionalmente,
* FROM
a largo plazo,SELECT
el costo
deEmpleados
la arquitectura se incrementa considerablemente.
WHERE NumEmp = '1850'
Otra desventaja, de gran importancia, radica
en la forma en que son enviaTabla DBF o
MDF con
dos los datos requeridos desde el servidor hacia el
cliente. Como puede apreciar30,000
registros
se en la Fig. 3, cuando un cliente necesita datos de una persona residentes en el
servidor, elabora un comando de SQL (Structured Query Language), el cual se
procesa todo en el cliente. El cliente lo que enva al servidor es un requerimiento
de la tabla completa. El servidor enva de regreso toda la tabla, la cual podra consistir de miles de registros, y es el cliente tambin quien se encarga de seleccionar
Cliente WS
Servidor de Archivos
los datos del empleado. Esta forma de operacin genera una sobrecarga de la red.
Comando SQL se
Una Elsituacin
como esta se tiene cuando se utiliza Novel en versiones anteriores
evalua del lado del
Figura 2
cliente
Solicitud de Tabla
Figure 3
12
IIESCA
Ensayos
Los clientes siempre inician el dilogo al requerir un servicio. Los servidores esperan pasivamente requerimientos de sus clientes. La interaccin se logra mediante un intercambio de mensajes
Los elementos cliente - servidor pueden existir en diferentes computadoras a travs de la red o en una sola computadora. El software CS oculta
a los clientes la localizacin de los servidores
13
El servidor debe ser un especialista. Un mensaje le indica el servicio requerido y el solo determina como satisfacerlo. Puede mejorarse el desempeo y funciones de un servidor pero no se pude modificar la interfase de comunicacin (interfase publicada)
Los sistemas CS se pueden escalar (hacer crecer) horizontal y verticalmente. El escalamiento horizontal se da cuando aumentamos mas
clientes quiz disminuyendo ligeramente el desempeo del sistema. El
escalamiento vertical quiere decir cambiar el servidor o distribuir la carga en varios servidores
No obstante lo anterior una manera comn de visualizar el modelo (y que es
la que nos ocupar) es asociarlo con una computadora llamada servidor que tiene
recursos que se necesitan compartir, tales como la base de datos de una empresa, y al cliente con una PC que se encarga de manejar la interfase de la aplicacin.
Como se dijo, las aplicaciones CS ms comunes hoy en da se encuentran
alrededor de un manejador de base de datos. Estas aplicaciones conocidas como
back ends, proveen el soporte para el almacenamiento, manipulacin y recuperacin de los datos de la empresa. Estos sistemas utilizan SQL (structured query
language), el lenguaje estndar de acceso a bases de datos, como la herramienta
para enviar las peticiones al servidor desde el cliente.
Es ilustrativo entender mas especficamente algunas diferencias entre las
arquitecturas CS y servidor de archivos. Como vimos antes, en la Figura 3 se
ejemplifica una arquitectura con servidor de archivos y una computadora personal
que le hace peticiones. Suponemos que en el servidor existen archivos tipo dbf o
mdb manejados con dbase o fox o access y se desea encontrar los datos de un
empleado. Cuando se realiza un query (consulta) al servidor, este es evaluado y
procesado en el cliente y nunca se enva al servidor; lo que se enva es una requisicin de un archivo. El servidor enva al cliente bloques de informacin que, una
vez en el cliente y en el espacio de este, son procesados para encontrar la informacin solicitada de los datos del empleado. Muy poca actividad lgica se desarrolla en el servidor. El cliente es el encargado de desarrollarla casi completamente
ya que se ocupa, adems, de la interfase con el usuario y de la ejecucin de la
lgica correspondiente
a
las
reglas
del
Proceso de SQL en un sistema Cliente - Servidor usando un DBMS C/S
negocio, es decir, del
SELECT * FROM Empleados
cdigo que por ejemplo
WHERE NumEmp = '1850'
valida la aprobacin de
Oracle o SQL
Server con
un nuevo crdito o la
30,000
registros
inclusin
de
un
empleado a la nmina.
Adicionalmente
la
carga sobre la red es
muy fuerte.
Cliente WS
Servidor de Archivos
En contraste, en la FiSe enva el comando
Comando SQL
SQL
gura 4 se trata de
Se procesa el Query
del lado del servidor
Se recibe el
resultado
Se devuelve un registro
Figura 4
14
IIESCA
Ensayos
cliente que usualmente es una PC; la capa de en medio que podran ser una estacin de trabajo como servidor o una minicomputadora y en la tercera capa usualmente una minicomputadora o un mainframe para el manejo de los datos. Una
arquitectura CS con hardware en dos capas generalmente incluye solo el cliente y
ya sea un servidor de mediano tamao o un mainframe.
Desde el punto de vista de software, y que tambin es la visin que se plantea en este trabajo, la arquitectura cliente servidor de tres capas est dada por los
tres elementos funcionales bsicos que generalmente tiene una aplicacin, ya sea
CS o no: presentacin, lgica y datos. Cada aplicacin que interacciona con un
usuario necesita una seccin de software que se encargue de establecer la interfase hombre mquina. As mismo, si la aplicacin quiere mantener resultados a
travs del tiempo, se requiere una seccin que maneje los datos y por ltimo, el
proceso de esos resultados requiere una seccin de lgica o una serie de ifs y
dos. Pueden existir algunas excepciones, por ejemplo una aplicacin que consista de una calculadora podra no necesitar almacenar datos y una aplicacin incluida en otra podra no tener una seccin de presentacin; sin embargo, es difcil
concebir una aplicacin, por muy trivial que sea, sin una parte lgica.
Por lo anterior, en un medio ambiente CS tpico (Ver Figura 5), una computadora personal manejara la interfase, un servidor de mediano tamao ejecutara
la lgica del negocio y una minicomputadora contendra la base de datos.
Es posible que dos o ms elementos funcionales se ejecuten en la misma
mquina. Por ejemplo en la Figura 6 tenemos una configuracin que fsicamente
es de dos capas pero lgicamente es de tres capas, porque la presentacin y la
Presentacin
Lgica
Datos
Figura 5
16
Presentacin y Lgica
Figura 6
Datos
IIESCA
Ensayos
ceder a la base de datos. De igual manera es posible dividir la lgica de la aplicacin (quiz la parte que conforma las reglas del negocio) en mltiples computadoras. De esta manera, la aplicacin puede correr en cuatro, cinco o an ms equipos recibiendo el nombre de n capas (ntiers). En la figura 7 se muestra una arquitectura lgica de tres capas en una arquitectura fsica de cuatro capas.
Con un acomodo de este tipo se tendra una mayor flexibilidad y se resolveran los problemas que generaba el modelo de dos capas. Cuando hubiera necesidad de modificar la lgica de la aplicacin no tendra que hacerse en cada cliente
sino solamente en el servidor en el cual est depositada (servidor de negocios) al
cual accederan todos los clientes. De igual manera, si tenemos una base de datos
distribuida en varias computadoras an en diferentes plataformas, podra utilizarse
Presentacin
Lgica
Lgica
Datos
Figura 7
17
En este captulo se explican las razones del porqu es necesario ir ms all del
modelo CS de n capas hasta utilizar componentes. Se habla de la necesidad de un
midleware que los controle y de la necesidad de estndares para lograr una comunicacin entre diferentes plataformas. Se describen los dos estndares dominantes en la industria.
Objetos Distribuidos
Como se vio, con el modelo CS de n capas es posible separar o distribuir una aplicacin de acuerdo a sus funciones resolviendo as los problemas existentes en el
modelo de dos capas. No obstante, algunas limitantes persisten. Por ejemplo, la
aplicacin cliente debe conocer como estn los datos en el servidor. Si se desea
cambiar la ubicacin de las aplicaciones en los servidores sera necesario modificar al cliente para advertirle de los cambios. Debe darse un paso ms para obtener sistemas acordes con los tiempos actuales en los que millones de computadoras se entrelazan intercambiando informacin.
Un nuevo modelo est cambiando la forma de acomodar las aplicaciones y
est revolucionando el desarrollo de las mismas: las aplicaciones Cliente Servidor con Objetos Distribuidos. Esta nueva tecnologa promete la construccin de
aplicaciones eficientes, robustas, escalables y mantenibles. Ser posible con
ella, instalar sistemas de informacin complejos simplemente ensamblando y/o
extendiendo las capacidades de componentes de software reutilizables que trabajan juntos, independientemente del tipo de computadoras, redes, lenguajes y sistemas operativos. Cualquiera de estos componentes de software puede ser modificado o reemplazado sin afectar al resto de los componentes en el sistema y sin
modificar la forma en que interactan.
Componentes
Los componentes son una extensin de los objetos descritos en la programacin
orientada a objetos. Como tales son una fusin de cdigo y datos que funcionan
como una unidad y funcionan tambin como objetos en el sentido de que tienen
herencia por interfase, polimorfismo y encapsulacin. Por el contrario, a diferencia
de los objetos tradicionales, los componentes pueden interoperar entre ellos independientemente de lenguajes, herramientas, sistemas operativos y redes y pueden extenderse utilizando herencia por implementacin.
Un objeto tpico construido con C++ o Java, como dijimos es un programa
inteligente que encapsula cdigo y datos pero, aunque permite una reutilizacin de
cdigo mediante la herencia y la encapsulacin, solo vive dentro de un programa,
solo el compilador que los crea conoce su existencia. El mundo exterior al programa y al compilador no sabe que existe este objeto y no tiene manera de acceder a
l.
En contraste, un componente (objeto distribuido), es un programa inteligente que puede vivir en cualquier lugar en la red. Se empacan como piezas independientes e inteligentes de cdigo, a los cuales pueden acceder clientes remotos va
invocaciones de sus mtodos. El lenguaje y el compilador que se utilizaron para
crearlos (los componentes servidores) no son importantes para los componentes
18
IIESCA
Ensayos
19
Los Componentes:
A) Se pueden ensamblar
B) Operan entre si
D) Coexisten
E) Se autoadministran
Figura 8
20
IIESCA
Ensayos
Igual que los objetos del mundo real, un componente puede ser utilizado en
maneras totalmente impredecibles por su desarrollador. Tpicamente pueden combinarse con otros componentes de la misma familia - llamada suit usando mecanismos de "enchufar y funcionar " (plug-and-play)
Igual que cualquier objeto, un componente solo puede manipularse a travs
de su interfase. Sin embargo, la interfase de un componente est separada
de su implementacin. La interfase es el "contrato" que el componente expone al mundo, Cmo instrumentar interiormente este contrato es asunto
del componente. Se puede instrumentar un componente utilizando objetos,
cdigo procedural2 o mediante la encapsulacin de cdigo existente.
CORBA y COM proveen un Lenguaje de Definicin de la Interfase (IDL), independiente de cualquier otro lenguaje de desarrollo, que se puede utilizar
para especificar las interfases de los componentes. Java soporta interfases
como parte del lenguaje
Procedural significa que se tiene que indicar al computador como hacer las cosas en lugar de decirle que es lo que se
desea
21
Y yo digo
poder a los
componentes
Correccin
Libertad!
Liberacin
de los
componentes
22
IIESCA
Ensayos
Middleware es un trmino genrico no muy preciso, que se utiliza para describir el software necesario para permitir la
interaccin entre clientes y servidores.
Cuando nos referimos a un estndar, no queremos decir que es una norma de aplicacin universal, sino unas reglas de
operacin aplicables en cierto contexto
23
El Estndar DCOM
A principios de los aos 90, Microsoft realiz un gran esfuerzo en promover OLE
en sus siglas en ingls que se podra traducir como incrustacin y vinculacin de
objetos. La necesidad de hacer esto naci del deseo de los usuarios de computadoras personales de elaborar documentos que incluyeran tanto texto como grficas y tablas. Dado que cada programa es especialista en alguna tarea, por ejemplo un procesador de texto sirve para manejar texto, los programas de hojas de
clculo sirven para el manejo de tablas y nmeros y los de diseo para grficas,
etc.; era difcil incrustar los resultados de uno en otro.
Rpidamente Microsoft reconoci la necesidad de un mecanismo estndar
de empaquetamiento de componentes si quera que OLE fuera exitoso. Era crucial
que estos componentes fueran independientes de lenguajes para que se pudieran
desarrollar con cualquier lenguaje e incrustarse en otro componente escrito en otro
lenguaje tal vez.
Microsoft cre COM (Component Object Model) modelo de objetos componentes, que es un estndar para la creacin y comunicacin entre componentes
pero dentro de la misma mquina. Al final de 1996, Microsoft introdujo DCOM (La
D es de distribuido) un conjunto de extensiones a COM que permite distribuir a los
objetos COM en varias computadoras en la red,. Ha existido una lentitud en que
aparezca COM en plataformas diferentes a Windows, debido a esto, regularmente
se identifica a COM como una arquitectura de componentes en lugar de una arquitectura de componentes remotos o distribuidos; sin embargo, COM tiene mucho
que ofrecer en este sentido, especialmente cuando se trabaja en ambientes Windows. Segn Jason Pritchard (Ver ref 9) COM es indudablemente la arquitectura
de componentes mas madura y prolfica actualmente en uso debido al predominio
de Microsoft en las computadoras de escritorio
Object Transaction Monitors (OTM)
Se mencion ya, que el ORB (Object Request Broker) es el mecanismo encargado
de realizar la comunicacin entre los componentes. Encuentra al componente requerido por el cliente, acciona los mtodos de aquel y devuelve a este el resultado; es simplemente un bus de comunicacin entre componentes.
Sin embargo, un ORB no facilita del todo las cosas. Queda pendiente una
administracin efectiva y eficiente de los millones de componentes a los que los
clientes pueden acceder.
Ejemplos de aspectos pendientes seran por ejemplo los aspectos de seguridad, permisos, ciclo de vida de los componentes, cuando y como llamar a todos
los servicios del ORB, Etc. Una alternativa de solucin es cargar a los componentes con kilos de cdigo para que ellos mismos realicen estas funciones. Esta
solucin convertira a los componentes en piezas difciles de manejar y requerira
programadores con mucha experiencia en un ORB en particular, adicionalmente,
los componentes serviran o estaran optimizados para un ORB pero para otros
no, lo cual dificultara la comunicacin entre brokers.
24
IIESCA
Ensayos
De esta manera se intenta crear componentes muy inteligentes que colaboren al nivel semntico entre s para realizar un trabajo. As podramos tener
colecciones de componentes para hotelera, medicina, finanzas, Etc.
Los objetos de negocios son perfectos para crear aplicaciones de tres y
ms capas ya que intrnsicamente estn partidos. En la primera capa se colocan
los componente visuales que tienen que ver con el usuario para el manejo de la
aplicacin. Por lo general estarn en el cliente. En la(s) capa(s) de en medio se
colocan los componentes servidores del negocio que contienen las reglas del negocio y por ltimo, en la tercera capa se encontrarn tpicamente las bases de datos, las aplicaciones viejas. Adems como la colocacin de los componentes es
muy dinmica, a tiempo de ejecucin es posible decidir una nueva localidad para
ellos quiz por razones de un mejor desempeo o alguna otra.
Los componentes de las capas de en medio interactan con sus clientes.
Estos a su vez, pueden obtener sus datos desde mltiples fuentes, por ejemplo
bases de datos SQL, archivos planos de aplicaciones viejas, archivos HTML, Etc.
Estos componentes servidores presentas a sus clientes una visin integrada y uniforme, de tal manera que el cliente no se entera ni se preocupa de donde estn los
datos, a los cuales nunca tiene acceso directamente lo que hace mayor la seguridad. Estas fuentes de datos son totalmente ocultadas a los clientes pudindose
inclusive, partir en varios equipos o cambiar de lugar toda la base de datos.
VI.
Cul estndar se debe seleccionar?. Tanto CORBA como DCOM renen los requisitos para crear componentes reutilizables. En la industria del software los dos
estndares tienen su grupo de seguidores los cuales defienden los mritos de su
eleccin. Existen foros de discusin en Internet con discusiones que llegan al fanatismo, parecidas a las suscitadas con el debate PC contra Mac.
La decisin de elegir DCOM para la Secretara de Educacin de Veracruz
se bas en consideraciones internas a la Secretara, de la regin y del contexto
mundial en la tecnologa de cmputo, a saber:
El nmero de personas capacitadas o susceptibles de capacitarse. No creo
mentir al decir que a la fecha existe poco personal capacitado en la elaboracin de
sistemas distribuidos con componentes, al menos en el estado de Veracruz. Sin el
conocimiento y dominio de la tecnologa es casi imposible desarrollar sistemas
exitosos. Esta falta de capacitacin es an ms acentuada en el sector pblico. El
saber con cuantas personas, ya capacitadas o susceptibles de, se cuenta para
iniciar una migracin de sistemas tradicionales a sistemas distribuidos es fundamental. Estas personas debern ser otras de las dedicadas a la operacin normal
porque la operacin no se puede detener. Hay que considerar que el separar a los
tcnicos entre los que desarrollan lo nuevo y los que operan lo viejo genera
problemas porque al personal de informtica casi siempre le gusta incursionar en
las novedades
Popularidad de la tecnologa, Quiz dentro de las preguntas importantes que
deberan tener una respuesta estara la siguiente: Mantendr Microsoft el incre26
IIESCA
Ensayos
27