Beruflich Dokumente
Kultur Dokumente
RESUMEN
Muchas de las empresas modernas entendieron que sus antiguas unidades de sistemas ya no son
funcionales, y comienzan a subdividirlas en dos grupos de trabajo diferenciadores: el encargado
de la infraestructura y el de los denominados arquitectos de sistemas. Esta decisin lgica la
inspira la actual evolucin de la Ingeniera de Sistemas que, como rea de conocimiento, genera
los mismos subgrupos como agentes para formacin. Adems, la evolucin y complejidad de los
sistemas de informacin en medio de la sociedad del conocimiento, con exigencias y
expectativas muy complejas, tambin determinan la necesidad de esta especializacin. En este
documento, una traduccin casi literal de un white paper que public la empresa Quidnunc -
www.quidnunc.com consultado en abril del ao 2000- especializada en gestin de configuracin,
se detalla la importancia de esta divisin y las pautas a seguir a la hora de disear la
arquitectura de sistemas de una empresa.
A pesar de que hoy existen diversas tcnicas La tnica aplicada hasta el momento por la
de empaquetado de componentes, con mayora de las empresas es buscar la
grandes diferencias segn de donde robustez de los estndares, a travs de
procedan, tambin tienen importantes compra de tecnologa a un nico fabricante o
similitudes: exigiendo el desarrollo de aplicaciones que
Transparencia en cuanto a la localizacin, funcionen sobre una rgida arquitectura. Lo
lo que permite usar un componente sin la primero es crear la direccin de
preocupacin de dnde se encuentra arquitectura, que coordine y se asegure de
fsicamente, incluso si ste se cambia de que la arquitectura del sistema facilita a las
sitio. aplicaciones existentes -y futuras- la
Definicin de la interfaz. Especifican la consecucin de los objetivos de la empresa.
interfaz que el componente proporciona Las tareas del departamento de arquitectura
de forma independiente al lenguaje de implican: amplia visin de la actividad de la
programacin o del sistema operativo organizacin, estar al da de los ms
donde se usar. Normalmente se inspiran relevantes progresos tecnolgicos y
en la sintaxis usada por las DLL, muy asegurarse de que los equipos que trabajan
similar a la usada en las llamadas a fun- en el desarrollo de aplicaciones cumplen las
ciones en C++. directivas oportunas. El jefe del
Invocacin. Soporte para cargar y ejecutar departamento de arquitectura debe jugar
los componentes cuando sean necesarios, entre el punto de vista del empresario y el
~ 100 ~
del tcnico; debe ser pragmtico antes que anteproyecto del sistema que se desea tener,
idealista; evangelista antes que dictador; y de forma que se pueda trazar un camino para
debe, por supuesto, ser de la absoluta llegar hasta l. Cualquier nuevo diseo debe
confianza del director de sistemas de la responder a dos preguntas: de qu servicios
organizacin. existentes se puede hacer uso y a qu nuevo
servicio se puede contribuir. Esto supone no
Para comprender donde no se debe de meter volver a pensar en aplicaciones aisladas, para
el departamento de arquitectura, volvamos comenzar a pensar en trminos de compartir
al modelo de cuatro capas de la servicios de aplicaciones.
organizacin: los desarrolladores son sus
clientes y los responsables de la El ltimo punto es crear un documento con
infraestructura sus proveedores. Los ar- los valores de la arquitectura. Debe ser un
quitectos de sistemas que pasan demasiado documento breve, de menos de 1000
tiempo eligiendo sistemas operativos o palabras, distribuido a todo el personal de
rediseando las lneas de negocio de su sistemas de la empresa. Debe cubrir puntos
organizacin, no invierten el tiempo como: definir cuando se deben usar dos
necesario en su trabajo. capas y cuando tres; qu middleware se
usar y que estndares -sistemas operativos,
De cualquier modo, la lnea de divisin entre de mensajera, etc.- no estn abiertos a
infraestructura y arquitectura puede ser muy debate; ser un documento deliberadamente
difcil de ver: muchos de los elementos que minimalista, permitiendo libertad a la gente
en un momento dado forman parte de la con creatividad para elegir cul es la mejor
arquitectura, posteriormente se consideran solucin para resolver su problema
parte de la infraestructura, como ocurre con particular.
las redes locales y ocurrir con los sistemas
de mensajera. En cualquier caso, es Es necesario concentrarse en tres ventajas
responsabilidad del jefe de arquitectura fundamentales que este documento debe
promover este tipo de progresos, porque aportar: 1) elimina los debates estriles al
como es lgico, con una dbil infraestructura sealar claramente qu puntos no estn
no es posible edificar una slida abiertos a debate, de forma que el personal
arquitectura. se centre en debatir los problemas reales; 2)
ayuda a identificar al personal que cumple
Una importante clave en el enfoque moderno los mejores requisitos para trabajar con la
de la informtica es ver las aplicaciones arquitectura, de forma que se puede utilizar
como una coleccin de servicios. Estos este documento como criterio de seleccin
servicios deberan ser, hasta donde sea de los nuevos tcnicos; y 3) le proporciona a
posible, independientes unos de otros, de los tcnicos la posibilidad de enfocar sus
forma que se puedan sustituir, eliminar o esfuerzos y su creatividad en campos en los
aadir nuevas funcionalidades sin demasiado que realmente sern apreciados.
esfuerzo. Separar de esta forma los servicios
proporciona el valor aadido de poder elegir A continuacin se muestra un ejemplo muy
la mejor tecnologa para cada uno de ellos: simple a partir del cual se podra empezar a
los datos de los clientes en una base de datos trabajar:
relacional, los de los empleados en un Este documento, que muestra nuestra posicin
directorio que cumpla las especificaciones frente a los ms relevantes puntos de la
LDAP y las descripciones de los productos en arquitectura de sistemas de esta empresa, fue
un servidor web. redactado por [el jefe de arquitectura] y
ratificado por [el director de sistemas]. Fue
revisado por ltima vez en [fecha] y, si ha
El problema en este idlico paisaje es que la transcurrido ms de un ao, probablemente
mayora de los servicios con las que ya tienes en tus manos una versin obsoleta.
cuenta la organizacin no estn
correctamente empaquetados y con sus Este documento se redact con la idea de
interfaces bien definidas, sino que se facilitar el trabajo a todo el personal de sistemas
encuentran sepultados bajo aplicaciones de [nombre de la organizacin] y no para
existentes, en paquetes cerrados de sistemas censurarlo ni limitarlo. Si tienes una razn lo
propietarios. Por esto es necesario un suficientemente fuerte como para contravenir
~ 101 ~
alguno de los puntos aqu indicados, documntala servicios de aplicaciones, deberan ser
y hazla llegar. rechazados.
9. Esperamos que la comunicacin entre
1. Nunca olvides que la actividad de nuestra aplicaciones se realice mediante RPC y
empresa est encaminada a [actividad de la productos de mensajera.
empresa] y que en el departamento de 10. Toma como inamovible la actual
sistemas nuestra principal prioridad es infraestructura. En ella incluimos Windows 7
desarrollar sistemas que soporten esa lnea de y Office 2007. No desarrolles nada sobre
negocios. Dejemos a otros la innovacin en la entornos de 32 bits. Utiliza siempre entornos
tecnologa para que nosotros innovemos en de 64 bits.
cmo aplicar esa tecnologa en una aplicacin 11. Considera la inversin en personal
real. especfico cuando investigues nuevas
2. Debemos maximizar el valor de nuestro herramientas. Para la mayora de las
trabajo desarrollando servicios para herramientas, esta inversin excede
aplicaciones en lugar de aplicaciones aisladas, cualquier otra diferencia tcnica de las
permitindonos reutilizar en el futuro esos mismas. Esto significa que tenemos una serie
servicios para crear nuevas aplicaciones rpida de preferencias: Oracle para bases de datos
y fcilmente. Nuestro anteproyecto de relacionales, SQL va ODBC para el acceso a
servicio de aplicaciones define los servicios los datos, Microsoft Windows Server como
que necesitamos y si existen o no en este servidores, C++ o Java como herramientas de
momento. Cuando disees nueva aplicaciones desarrollo de tercera generacin y .NET
te pedimos que uses todos los servicios como herramienta de cuarta generacin.
existentes que necesites y consideres a qu 12. Evita reemplazar aplicaciones actuales a
nuevos servicios puede contribuir tu menos que sea totalmente Indispensable.
aplicacin.
3. En el nivel ms bajo pensamos que todas las LA ARQUITECTURA MODERNA
aplicaciones deben de estar ensambladas por Publicar un conjunto de valores para una
componentes software. La tecnologa que uses arquitectura requiere que estar bien
para ello no es tan importante, pero a menos informados. El punto de vista de un jefe de
que tengas una buena razn para no hacerlo arquitectura debe contemplar los siguientes
preferimos que uses [tecnologa de
puntos:
componentes preferida, por ejemplo ActiveX]
porque [motivos para preferirla, por ejemplo, Estndares. El desarrollo de Internet y
parece que dominar el mercado durante todas las tecnologas que van con ella est
algunos aos]. revolucionando el mundo de la
4. Deseamos que las herramientas y tecnologas informtica. Algunos de sus efectos son
basadas en Web sean estndares en rpidamente visibles, pero otros no lo son
nuestra empresa de aqu a dos aos. Considera tanto. El jefe de arquitectura debe de
esto y realiza una aproximacin siempre que estar bien informado de los estndares
sea posible. emergentes. En algunos casos aparecen
5. Usa tres capas para todas las aplicaciones no problemas serios a la hora de tomar
triviales -por ejemplo, las entradas simples de
partido por dos estndares que,
datos podran ir sobre dos capas. Esto facilita
el mantenimiento y la reutilizacin del cdigo aparentemente, poseen la misma
y mejora el rendimiento de las aplicaciones. funcionalidad; por ejemplo DCOM y
6. Para aplicaciones basadas en objetos CORBA. La decisin debe tomarse
distribuidos, preferimos [nombre de la recopilando informacin claramente
tecnologa, por ejemplo CORBA]. Valoramos el imparcial y, si no es posible o no es lo
tiempo de desarrollo por encima del purismo. suficientemente aclaratoria, deben
7. Excepto para algunos informes especiales, no probarse. Lo peor que se puede hacer es
necesitamos recoger datos de ningn tipo. no usar ninguno de los dos.
Existe una estrategia especial de Data
Warehouse que se encarga de ello.
8. Si puedes encontrar un paquete desarrollado La capa intermedia. Ya se vio que uno de
que realice el 80% de la funcionalidad que los grandes progresos de la arquitectura
buscamos salo, en otro caso considera un moderna es la subdivisin del software. El
desarrollo a medida: la excesiva perso- pegamento que une estas partes para
nalizacin de un paquete conlleva demasiados formar una aplicacin completa, es lo que
riesgos. Los paquetes que no son lo se conoce como middleware. Por ejemplo,
suficientemente abiertos para jugar su papel dos programas A y B corriendo
de colaboracin en nuestro anteproyecto de separadamente cada uno en una mquina:
~ 102 ~
A llama a B con un problema; B trabaja en entonces a enriquecer sus productos con
la resolucin del mismo y cuando acaba nuevas funcionalidades a sus productos,
devuelve la respuesta a A. El middleware gracias a las mejores herramientas de
es el que permite esta funcionalidad, pero desarrollo existentes para los PC. Los
existen algunos problemas derivados de clientes engordaron hacindose ms
esta forma de actuacin qu debera pesados y lentos. La alternativa, meter
hacer el proceso A mientras que B trabaja parte de esta nueva funcionalidad en el
en la resolucin de su problema? esperar? backend no era demasiado atractiva, as
Cmo puede B comunicarle a A algo a que se busc la solucin introduciendo una
menos que ste lo requiera? Cmo puede tercera capa central, situada entre el
B saber dnde se encuentra A? Qu hace cliente y el servidor, para sostener gran
A si B se cae? Si B es reemplazado? Si parte del peso de esta nueva
cientos de As requieren una respuesta de funcionalidad.
una nica instancia de B? Como vemos, los
middlewares deben resolver complejas Pese a sus evidentes ventajas, los
situaciones pero sin aadir excesiva sistemas en tres capas tardaron en
complejidad a la arquitectura. generalizarse debido a que son mucho
ms caros y difciles de desarrollar. La
Existen dos tipos esenciales de arquitectura cliente/servidor a dos capas
middlewares: los basados en Remote sigue siendo til para la mayora de los
Procedure Calls RPC y los basados en casos y ahora aparece la tecnologa web
Message Oriented Middleware MOM. para acercar la arquitectura a tres capas
Middlewares basados en MOM son a las masas.
inherentemente asncronos y lo ms difcil
en ellos es definir correctamente la La web. La tecnologa web cambi
estructura de los mensajes. Los sustancialmente la forma en que las
middlewares basados en RPC son ms aplicaciones se desarrollan. Pero la web
sencillos de usar, puesto que la sintaxis de tiene muchas ms cosas que ofrecer que
las llamadas es prcticamente idntica a meramente la apariencia externa: Internet
la de una llamada en C, pero el pronto conectar a la totalidad de
rendimiento de estos sistemas suele ser computadores, lo que cambiar por
ms pobre. Existen algunos fabricantes completo las reglas del desarrollo de
que distribuyen productos capaces de aplicaciones; las organizaciones que
funcionar en uno u otro modo. La mejores permanezcan aisladas no podrn
herramientas de hoy estn basadas en beneficiarse de estas grandes ventajas:
CORBA, estn orientadas a mensajes y clientes -actuales y potenciales-,
tienen como inconveniente que son ms empleados y proveedores estarn
difciles de usar por los programadores. continuamente conectados. La web
Las herramientas de Microsoft basadas en populariz tambin un gran conjunto de
COM+ son ms limitadas pero muy tecnologas actuales y pasadas -HTML,
sencillas de usar y son recomendables si TCP/IP, Java, etc. Los arquitectos
anteponemos esta caracterstica a la tenemos ahora un mayor conjunto de
longevidad y la calidad del producto. herramientas para jugar.
~ 105 ~