Professional Documents
Culture Documents
ERP y su Arquitectura
Implantando un ERP:
Proceso Distribuido, Cliente Servidor y
Agrupaciones.
Al pensar en las arquitectura actual que poseen la mayoría de los ERP en el mundo, solo nos
queda pensar en la arquitectura mas próxima que hasta hoy es pionera en sistemas en
producción.
En el detalle siguiente, se plantea una serie de estructuras de implantación, sobre las cuales
sólo se comentan sus principales características y beneficios. Ya que como lo hemos dicho; la
selección de la mejor arquitectura dependerá de muchos factores; siendo de decisivo la el
gusto personal y particular de cada Empresa.
ARQUITECTURA DE COMUNICACIONES:
Este es el software que da soporte a una red de computadores independientes. Ofrece
soporte para aplicaciones distribuidas, tales como correo electrónico, transferencia de
archivos y acceso a terminales remotas. Sin embargo, los computadores conservan una
identidad diferenciada para el usuario y para las aplicaciones, las cuales se deben comunicar
con otros computadores mediante una referencia explícita. Cada computador tiene su propio
sistema operativo y es posible una mezcla heterogénea de computadores y sistemas
operativos, siempre que todas las máquinas soporten la misma arquitectura de
comunicaciones (Ejemplo: el conjunto de protocolos TCP/IP).
Lo más significativo en los sistemas de información, en los últimos años, ha sido el avance
del proceso cliente / servidor. Este modo de procesamiento esta remplazando a gran
velocidad tanto a los métodos de procesamiento basados en computadores centrales, como
al proceso centralizado y otras formas alternativas del proceso distribuidos de datos.
En un entorno cliente / servidor, cada servidor ofrece una serie de servicios de usuario
compartidos a los clientes. El tipo más común de servidor es el servidor de base de datos
que permite el acceso a los clientes y el uso de un sistema de computación para gestionar la
base de datos.
La diferencia de una configuración cliente / servidor de cualquier otro distribuido normal y
corriente es una serie de características:
• Hay una gran confianza en depositar aplicaciones amigables para los usuarios en sus
propios sistemas. Esto da a los usuarios un alto grado de control sobre la medida del
tiempo y el estilo de utilización del computador y ofrece a los directores de
departamentos la posibilidad de responder a sus necesidades locales.
• Al mismo tiempo que las aplicaciones se dispersan se produce un énfasis en la
centralización de las bases de datos corporativas y de muchas funciones de utilidad y de
gestión de la red. Esto habilita una gestión corporativa para mantener un control global
de la inversión total en sistemas de información e informática y, además permite una
gestión corporativa que ofrezca interoperatividad, de manera que los sistemas queden
vinculados. Al mismo tiempo alivia a los departamentos individuales y divisiones de gran
parte de la carga de mantener servicios de computación, permitiéndoles elegir cualquier
tipo de máquina e interfaz que necesitan para acceder a los datos y a la información.
• Existe un compromiso, tanto por parte de las organizaciones de usuarios como de los
fabricantes, hacia los sistemas abiertos y modulares. Esto significa que los usuarios
disponen de ofertas mejores en la elección de productos y en la combinación de equipos
de varios fabricantes.
• El trabajo en red es fundamental para la operación. De este modo, la gestión y seguridad
de la red tienen una prioridad alta en la organización y operación de los sistemas de
información.
Como el ejemplo que ilustra el “concepto de división de la lógica de una aplicación entre
cliente y servidor” considérese la familia más común de aplicaciones cliente / servidor:
aquellas que utilizan base de datos relaciónales. La interacción entre el cliente y el servidor
se hace en forma de transacciones, donde el cliente realiza una petición a la base de datos y
recibe una respuesta de aquella.
El servidor mantiene la base de datos mediante complejos sistemas gestores de base de
datos.
En las maquinas clientes se pueden guardar una variedad de aplicaciones que hagan uso de
la base de datos. El software que enlaza al cliente con el servidor es el que le permite al
cliente realizar peticiones de acceso a la base de datos del servidor (Ej. SQL).
Supongamos que contamos con un servidor que solo se debe ocupar de la gestión de la base
de datos -una base de datos de 1 millón de archivos por ej.- y que toda la lógica de la
aplicación –el software de tratamiento numérico u otras clases de análisis de datos- resida en
el cliente. Y el cliente realiza una serie de consultas, que da como resultados 1 solo archivo.
Esta aplicación se adapta bien a la arquitectura cliente / servidor por dos razones:
1. Contener la base de datos requiere de un disco grande o una serie de discos, una PC y
una arquitectura de E/S de alta velocidad.
2. Mover todo el archivo de la base de datos al cliente para realizar la búsqueda introducirá
una carga de trafico demasiado grande en la red. Por lo tanto no es suficiente con que el
servidor solo sea capaz de recuperar archivos en nombre del cliente, el servidor debe
disponer de la lógica de la base de datos que permita realizar búsquedas de parte del
cliente.
Ahora consideremos que el cliente realiza una sola consulta que da como resultado la
transmisión de 300.000 archivos por la red, esto es inaceptable. Una solución al problema
que conserva la arquitectura cliente / servidor es mover parte de la lógica de la aplicación al
servidor, que permita a este realizar análisis de datos, así como recuperación y análisis de
datos.
Los modelos con las configuraciones en las que gran parte de la carga esta en el cliente son
llamados cliente grueso, soportan entre 25 y 150 usuarios. El mayor beneficio de esta
configuración es que saca provecho del computador de escritorio, descargando a los
servidores del procesamiento de aplicaciones, haciéndolos más eficientes y disminuyendo la
posibilidad de que sean un cuello de botella.
Si embargo existen barios inconvenientes pues la utilización de mas funciones sobrecarga
rápidamente la capacidad de las maquinas de escritorio.
Esta configuración es difícil de mantener, actualizar o reemplazar aplicaciones distribuidas
entre cintos de maquinas de escritorio. Los modelos con las configuraciones en las que la
menor parte de la carga esta en el cliente son llamados cliente delgado, este enfoque casi
imita al enfoque de host centralizado.
La arquitectura tradicional cliente / servidor implica dos niveles o capas: una capa cliente y
una servidor. En la arquitectura de tres capas el software de aplicación esta distribuido en
tres tipos de maquinas: una maquina de usuario, un servidor de capa intermedia y servidor
final (Backend).
MIDDLEWARE:
Es un conjunto de interfaces y protocolos estándares de comunicación. Con interfaces
estándares de programación, es fácil de implementar una misma aplicación en una variedad
de tipos de servidores y de puestos de trabajo. Esta tiene un beneficio para los clientes
puesto que estos compran aplicaciones no servidores, los clientes solo elegirán entre
aquellos servidores donde se ejecuten las aplicaciones que ellos deseen.
Se necesitarán protocolos estándares para enlazar las distintas interfaces de servidor con los
clientes que necesiten acceder a ellos.
Existe una gran variedad de paquetes middleware, simples o complejos. Todos tienen en
común la capacidad de ocultar las complejidades y diferencias de los diferentes protocolos
de red y sistemas operativos.
ARQUITESTURA MIDDLEWARE:
La figura propone el papel del middleware en una arquitectura cliente/servidor. El papel
exacto del componente middleware dependerá del estilo del proceso distribuido que se
utilice.
Por ejemplo considérese el caso de un sistema distribuido en el que los datos principales
están guardados en una base de datos Gupta, mientras que otro tipo de información
adicional, pero necesaria está en una base de datos Oracle. Cuando un usuario necesite
acceder a determinados registros, no deberá preocuparse del fabricante de la base de datos
que contiene los registros que necesite. El middleware proporciona una capa software que
permite un acceso uniforme a estos sistemas diferentes.
Es interesante considerar el papel del middleware desde un punto de vista lógico más que
desde la implementación . El middleware permite cumplir la promesa del proceso distribuido.
El sistema distribuido entero puede verse como un conjunto de aplicaciones y recursos
disponibles para los usuarios. Estos no necesitan preocuparse de la ubicación de los datos ni
de la ubicación de las aplicaciones. Todas las aplicaciones operan sobre una interfaz
uniforme de programación de aplicaciones (API). Todas las aplicaciones operan sobre una
interfaz uniforme de programación de aplicaciones (API). El middleware, que atraviesa todas
las plataformas clientes y servidoras, es el responsable de encaminar las peticiones de los
clientes al servidor aprEsta instalación es un ejemplo de cómo se aplica el middleware para
integrar productos dispares, en este caso, se usa el middleware para soslayar las
incompatibilidades de redes y sistemas operativos. Una red central conecta redes DECnet.
Novell y TCP/IP. El middleware, que se ejecuta en cada componente de la red, asegura que
todos los usuarios de la red disponen de un acceso transparente a las aplicaciones y los
recursos de cualquiera de las tres redes.
Aunque hay una amplia variedad de productos del middleware, estos se basan normalmente
en uno de los mecanismos básicos: el paso de mensajes o llamada a procedimiento remoto.
En los sistemas de procesos distribuidos reales se suele dar el caso de que los computadores
no compartan una memoria principal: cada una es un sistema aislado. Por lo tanto, no es
posible, emplear técnicas de comunicación entre procesadores basadas en memoria
compartida, como son los semáforos y el uso de un área de memoria común. En su lugar, se
usa técnicas basadas en el paso de mensajes. Entre los procedimientos más usuales está la
aplicación directa de los mensajes, tal como se hace en un sistema único. El segundo es una
técnica distinta que se basa en el paso de mensajes como función básica: la llamada a
procedimiento remoto.
Los procesos hacen uso de los servicios de un módulo de paso de mensajes. Las solicitudes
de servicios pueden expresarse en forma de primitivas y parámetros. Una primitiva
especifica la función a realizar y los parámetros se usan para pasar datos e información de
control. El formato real de las primitivas depende del software de paso de mensajes. Pueden
ser llamadas a procedimientos o mensajes a un proceso que forme parte del sistema
operativo.
La primitiva Send la utiliza el proceso que quiere enviar el mensaje. Sus parámetros son el
identificador del proceso de destino y el contenido del mensaje. El módulo de paso de
mensajes construirá una unidad de datos que incluya estos dos elementos. Esta unidad de
datos se envía a la máquina que alberga el proceso de destino mediante algún tipo de
servicio de comunicaciones, como TCP/IP. Cuando se recibe la unidad de datos en el sistema
de destino, se encaminará, mediante el servicio de comunicaciones, hacia el módulo de paso
de mensajes. Este módulo examina el campo IdProceso y almacena el mensaje en el buffer
de dicho proceso.
En este escenario, el proceso receptor debe anunciar su intención de recibir mensajes,
designando un área de almacenamiento intermedio e informando al módulo de paso de
mensajes por medio de una primitiva Receive. Una solución alternativa consiste en no exigir
dicho anuncio. En su lugar, cuando el módulo de paso de mensajes, avisará al proceso de
destino con algún tipo de señal de recepción y después hará que el mensaje recibido esté
disponible en un buffer compartido.
Cuando el mensaje se aya trasmitido o se aya copiado a un lugar seguro para su posterior
trasmisión, se interrumpe al proceso emisor para informarle de que el buffer del mensaje
puede reciclarse. De forma similar Receive no bloqueante lo emite un proceso para después
seguir ejecutándose. Cuando llega un mensaje se informa al proceso mediante interrupción o
bien este puede comprobar periódicamente su estado.
Las primitivas no bloqueantes ofrecen un empleo eficiente y flexible del servicio de paso de
mensajes. Las desventajas de este enfoque es que los programas que emplean esta
primitivas son difíciles de probar y depurar. Las secuencias irreproducibles dependientes del
tiempo pueden originar problemas sutiles y complicados.
La otra alternativa es emplear primitivas bloqueantes, o síncronas. Un Send bloqueante no
devuelve el control al proceso emisor hasta que el mensaje se haya trasmitido (servicio no
fiable) o hasta que el mensaje se haya enviado y obtenido un acuse de recibo (servicio
fiable).Un Receive bloqueante no devuelve el control hasta ubicado en el buffer asignado.
Una variante del modelo básico de paso de menaje es la llamada a procedimiento remoto
(RPC).
Es un método común muy aceptado actualmente para encapsular la comunicación en un
sistema distribuido. Lo fundamental de la técnica es permitir que programas de máquinas
diferentes interactúen mediante la semántica de llamadas retorno a simples procedimientos,
como si los dos programas estuvieran en la misma máquina. Es decir, se va a usar la llamada
a procedimiento para acceder a servicios remotos. La popularidad de este enfoque se debe a
las siguientes ventajas.
CALL P(X,Y)
Donde: P = nombre del procedimiento.
X = argumentos pasados.
Y = valores devueltos.
PASO DE PARÁMETROS:
La mayoría de los lenguajes de programación permiten pasar parámetros como valores
(llamada por valor) o como un puntero a la ubicación que contiene el valor (llamada por
referencia). La llamada por valor es sencilla para una llamada a procedimiento remoto: los
parámetros simplemente se copian en el mensaje y se envían al sistema remoto. Las
llamadas por referencia son más difíciles de implementar. Hace falta un único puntero para
cada objeto, válido en todo el sistema. El costo de este servicio puede ser muy alto y no
valer la pena.
REPRESENTACION DE PARAMETROS:
Otra cuestión es cómo representar los parámetros y los resultados en los mensajes. Si el
programa llamador y el llamado están escritos en el mismo lenguaje de programación tienen
el mismo tipo de máquina y el mismo sistema operativo, los requisitos de representación no
representan un problema. Pero si existen diferencias en estos aspectos, habrá diferencias en
la manera en que se representan los datos numéricos e incluso los textos. Si se emplea una
arquitectura de comunicaciones, este problema será resuelto por el nivel de presentación.
Pero el costo de estas arquitecturas, ha llevado al diseño de servicios de llamada a
procedimiento remoto que ofrecen servicios de comunicaciones básicos. En este caso la
conversión la realiza el servicio de llamada a procedimiento remoto.
La mejor solución para este problema es ofrecer un formato estándar para los objetos
comunes, como los enteros, números en coma flotante, caracteres y cadenas de caracteres.
Así los parámetros propios de cualquier máquina pueden convertirse a la representación
estándar.
recursos. Por otro lado el costo de establecer las conexiones hace que los enlaces no
persistentes no sean adecuados para procedimientos remotos que se invocan con
frecuencia.
Con enlaces persistentes, una conexión establecida para una llamada a procedimiento
remoto, se mantiene después que el procedimiento termina. Esta conexión podrá ser
utilizada para futuras llamadas a procedimientos remotos; pero esta finalizará si transcurre
un determinado período de tiempo y no es utilizada para aplicaciones que realizan llamadas
a procedimientos repetidamente, el enlace persistente, mantiene la conexión lógica y
permite que una secuencia de llamadas y retornos utilice la misma conexión.
El algunos esquemas las RPC asíncronas no exigen una respuesta al servidor, otros requieren
o permiten una respuesta, pero el llamador no queda a la espera de la misma.