Академический Документы
Профессиональный Документы
Культура Документы
CAPITULO 2
2.
Internet / intranet
2.1.1
2.1.2
2.2
2.2.1
Sockets
2.2.2
HTML
2.2.3
Servicios Web
2.2.4
2.3
2.3.1
CORBA
2.3.2
2.3.3
Java / RMI
2.3.4
2.4
2.4.1
OPC
2.4.2
Profinet
2.5
2.5.1
Cortafuegos
2.5.2
2.5.3
2.5.4
2.5.5
Kerberos
2.5.6
Mecanismos de autenticacin
2.6
Conclusiones
2-1
INTERNET / INTRANET
2-2
comunicaciones. Sin embargo, al ser los protocolos TCP / IP previos al modelo OSI
de ISO los nombres y funcionalidades de las capas involucradas son distintos.
Entre los protocolos definidos en TCP / IP caben sealar los protocolos de red,
transporte y aplicacin:
2-3
2-4
2-5
La siguiente versin de los protocolos TCP / IP, IPv6 (RFC 2460, 1998; Stallings,
W., 2000; Huitema, C., 1996), est disponible desde hace ya algn tiempo. Aunque
introduce interesantes ventajas sobre su antecesor, IPv4, su implantacin est
2-6
resultando bastante lenta (de momento slo est disponible en dominios locales o
islas). Las razones de esta implantacin tan lenta hay que buscarlas en el propio xito
de IPv4. Este xito ha creado una situacin de inercia provocada por la amplia base
de aplicaciones sobre IPv4 existentes. Adems, se han introducido una serie de
mecanismos que han permitido exprimir al mximo el protocolo IPv4. Un buen
ejemplo de estos mecanismos es NAT (Network Address Translation, RFC 1631, 1994).
Este mecanismo permite utilizar direcciones IP dinmicas entre un computador y un
servidor NAT, de forma que hacia el exterior todo el trfico se enmascara como
generado por el servidor NAT siendo necesaria una nica direccin IP externa.
No obstante, como se ha comentado anteriormente, las perspectivas inmediatas
indican que el nmero de dispositivos conectados a Internet seguir creciendo,
incluso a mayor velocidad. Como ejemplo, en los entornos industriales ya se ha
apuntado la tendencia de que cada dispositivo de control, incluso los ms pequeos,
requerir una direccin IP. Esto est aumentando la necesidad de direcciones IP, lo
que har en breve plazo inevitable el paso a IPv6.
Este protocolo introduce las siguientes mejoras sobre IPv4:
2-7
ARQUITECTURAS
DISTRIBUIDAS
NO
ORIENTADAS
OBJETOS
2.2.1 Sockets
Se trata del mtodo de comunicacin entre dos mquinas proporcionado por los
protocolos TCP / IP ms primitivo. Los sockets fueron introducidos en 1981 para
proporcionar comunicaciones entre sistemas UNIX sobre TCP / IP. Hoy en da los
sockets son soportados por la inmensa mayora de los sistemas operativos.
Aunque, en teora, se pueden crear nuevos tipos de sockets, las alternativas ms
extendidas son las siguientes:
2-8
(datagramas), sin garantizar que stos llegan a destino. UDP incluye cdigos
para detectar errores aunque no intenta detectar paquetes duplicados ni
establecer ningn mecanismo de secuencia. Por tanto, los datos pueden
perderse, duplicarse o recibirse en un orden incorrecto. Como ventajas, se
trata de un protocolo muy rpido y que aade una sobrecarga mnima.
Estas caractersticas hacen a los sockets de este tipo adecuados para algunas
aplicaciones de control. Podrn utilizarse en aquellas aplicaciones en las que
se requiera introducir una sobrecarga mnima y la prdida de algunos datos
no sea un inconveniente severo. En Flammini y otros (2002) puede
encontrarse un ejemplo de cmo el protocolo UDP es utilizado por sensores
inteligentes para enviar informacin a otros nodos en aplicaciones de control.
2-9
2.2.2 HTML
Los documentos HTML (HyperText Markup Language) constituyen una alternativa
interesante para ser utilizada en el rea de control. Se trata de documentos
autodescriptivos de hipertexto que permiten ser utilizados junto a navegadores Web
(Internet Explorer, Netscape, etc) para lanzar comandos sobre servidores remotos
que a su vez pueden efectuar determinadas acciones sobre plantas industriales.
Para enviar y recibir los documentos HTML sobre una red TCP / IP es necesario
usar el protocolo HTTP (Hypertext Transfer Protocol, RFC 2616, 1999). La primera
versin de este protocolo est disponible desde 1990, con lo que se trata de un
protocolo ya maduro. Este protocolo se usa para acceder a recursos que reciben el
nombre de URLs (Uniform Resource Locators, RFC 1630, 1994).
A continuacin se describe, a grandes rasgos, el funcionamiento bsico del protocolo
HTTP. Los clientes (que normalmente reciben el nombre de Navegadores Web)
solicitan una pgina Web indicada por un URL a un servidor HTTP. Cuando reciben
el documento HTML solicitan todos los recursos (imgenes, etc) asociados a la
pgina. Una vez que tras cierto nmero de peticiones el navegador ha recibido toda la
informacin relacionada con el documento se encargar de reconstruirlo para
mostrarlo sobre la pantalla del ordenador cliente acorde al lenguaje HTML (que es
autodescriptivo). El usuario remoto tendr entonces la opcin de solicitar otro
recurso URL pinchando sobre cualquier otro enlace. HTTP establece una conexin
por cada peticin de forma que el nuevo recurso URL solicitado puede estar
localizado en otro servidor Web. El cliente debe esperar a recibir una respuesta antes
de enviar otra peticin.
Como se puede ver en la Figura 2-1 los servidores Web pueden aceptar comandos
(incluso con parmetros, a travs de formularios) de forma que deleguen las acciones
solicitadas de forma remota sobre dispositivos determinados.
De hecho, existen en el mercado diversos dispositivos industriales que ya ofrecen
servidores Web empotrados. Por ejemplo, existen servidores Web que pueden
integrarse en PLCs (P.e. la gama de procesadores de comunicaciones de Siemens CP
443-1 IT / 343-1 IT, http://www.ad.siemens.de). Tambin existen servidores Web
2-10
para los sistemas empotrados construidos sobre los sistemas operativos de tiempo
real
ms
habituales:
VxWorks
(http://www.windriver.com),
QNX
Navegador
Web
Servidor
Protocolo
HTTP
Internet
Documentos
HTML
Servidor Web
Disco
Incluso entre los dispositivos de campo ms sencillos, como son los sensores y
actuadores de campo, se pueden encontrar Web empotrados. En Schneeman (1999),
o Coelho, C.N. y otros (2002) pueden encontrarse ejemplos de ello.
Documentos estticos vs. documentos dinmicos
Los documentos HTML pueden ser estticos o dinmicos. En el primer caso, el
contenido del documento es siempre el mismo. Los documentos estticos slo
permiten mostrar datos en un formato previamente creado por los diseadores del
documento con lo que slo resultan interesantes en aplicaciones muy sencillas o para
obtener informacin que no cambia frecuentemente como son, por ejemplo, las
caractersticas de los dispositivos.
2-11
Ms interesantes son los documentos dinmicos. En este caso se permite una mayor
interaccin entre los clientes remotos y los servidores Web. La capacidad de
procesamiento que sustenta las pginas dinmicas se puede llevar a cabo siguiendo
alguno de los siguientes modelos:
2-12
2-13
pueden configurar para que utilicen alguna. Los applets Java estn escritos en
el lenguaje Java, muy extendido en Internet. Esta caracterstica los convierte
en un mecanismo bastante habitual en el cliente.
2-14
HTML que se descargarn los clientes. Por tanto, siempre que se utilice HTML, parte
del proceso se ejecutar obligatoriamente en los servidores de pginas Web.
Entre las alternativas disponibles ms utilizadas se encuentran:
escritos
en
diversos
lenguajes
de
programacin
2-15
2-16
2-17
2-18
UDDI
WSDL
2. Registrar
3. Buscar
1. Crear
4. SOAP
Cliente Web
Servicio Web
2-19
protocolo http, normalmente no suele haber problemas para que el trfico pueda
atravesar los cortafuegos sin requerir ningn cambio en la configuracin de los
mismos. El trfico sobre HTTP seguro (utilizando SSL, Secure Socket Layer) se
gestiona de igual forma.
Lee, C. y otros (2002) proponen el uso de los servicios Web en sistemas distribuidos
de control en base a sus similitudes con otras arquitecturas distribuidas orientadas a
objetos como CORBA o DCOM. En este caso, se sustituiran las referencias a los
objetos por los URLs de los correspondientes servicios Web. Sin embargo, no
existen servicios estandarizados de seguridad ni de distribucin de eventos como en
el caso de CORBA o DCOM. Por tanto, estos aspectos de seguridad debern ser
tratados de forma propietaria. Existen diversas soluciones propuestas por algunas
empresas aunque todava ninguna ha sido estandarizada.
Ventajas e inconvenientes de los servicios Web
A continuacin se resumen las principales ventajas e inconvenientes de los servicios
Web cuando se aplican a entornos industriales (Lee, C. y otros, 2002).
Por un lado cabe sealar su interoperabilidad. Cualquier servicio Web puede
interactuar con cualquier otro servicio Web. El protocolo SOAP permite que
cualquier servicio pueda ser ofrecido o utilizado independientemente del lenguaje en
que se haya desarrollado.
Adems, los servicios Web cuentan con la ventaja de estar apoyados por un gran
nmero de empresas, incluyendo IBM y Microsoft. Esta caracterstica, junto al hecho
de basarse en tecnologas ampliamente extendidas como HTTP y XML hacen
suponer que ser adoptar por la comunidad de sistemas abiertos.
El hecho de que los servicios Web utilicen HTTP como protocolo de transporte les
proporciona un buen funcionamiento a la hora de trabajar sobre Internet ya que las
infraestructuras actuales, incluyendo la configuracin de los cortafuegos, etc, est
diseada fundamentalmente para el trfico de dicho protocolo.
2-20
2-21
cuentan con la ventaja de ofrecer una excelente integracin con el protocolo HTTP,
incluso en aquellas aplicaciones distribuidas separadas por cortafuegos.
2.2.4 Protocolos de gestin de red
En redes complejas se hace necesario utilizar herramientas que faciliten la gestin de
las mismas. Estas herramientas, que colaboran en la deteccin y resolucin de
problemas, normalmente se integran en los llamados sistemas de gestin de red. Los
sistemas de gestin de red consideran la totalidad de una red como una arquitectura
unificada. As, se asigna a cada nodo una direccin y una serie de etiquetas. Para
ilustrar el funcionamiento de los sistemas de gestin de red, a continuacin se indican
cules son las operaciones ms relevantes:
2-22
En realidad, los protocolos de gestin de red no fueron diseados para ser utilizados
en entornos industriales. Sin embargo, como veremos, presentan una serie de
caractersticas que hacen interesante su aplicacin en entornos industriales. De
hecho, existen trabajos que proponen el uso de estos protocolos como mecanismo
sencillo de monitorizacin de plantas industriales.
Existen diversos protocolos de red propietarios que no se analizan en este estudio
porque se consideran fuera de mbito de inters del presente trabajo. El protocolo de
gestin de red ms extendido, sin duda, es SNMP diseado el entorno TCP / IP. El
modelo OSI de ISO tambin propuso su propio protocolo de gestin de red, CMIP,
aunque ste cuenta con escasa aceptacin.
2.2.4.1
SNMP
SNMP (Simple Network Management Protocol, RFC 1157, 1990) es el principal protocolo
de gestin de red empleado en redes de tipo TCP / IP (Stallings, W., 2000). El
principio bsico sobre el que se elabor fue la creacin rpida y eficiente de un
protocolo de gestin simple, que fuera capaz de hacer frente a las necesidades de
monitorizacin y control que pudieran surgir en una red de tipo Internet.
Este protocolo representa los datos de gestin de red en una estructura de rbol
llamada Management Information Base (MIB) en la que cada rama y cada hoja tienen un
indentificador nico llamado Object Identifier (OID). A cada hoja se le asigna un valor.
Los clientes SNMP (gestores) al conectarse a un dispositivo monitorizado que
soporte SNMP (agentes) usan la MIB para obtener informacin acerca de l.
La MIB es una representacin esttica de todos los agentes gestionados. Dado que
SNMP no proporciona mecanismos para descargar la estructura completa de la MIB
2-23
SET: Comando que permite que un gestor pueda solicitar a un agente que
modifique un dato de su MIB a partir de su OID. Permite hacer operaciones
de escritura en un OID de un agente.
TRAP: Permite que los agentes informen sin previa solicitud a los gestores
para informarles de que se han dado determinadas condiciones en el agente.
Aunque existe un conjunto de condiciones predefinidas tambin es posible la
definicin de nuevas condiciones. Puede utilizarse para comunicar alarmas.
Tal y como se apunta en Maciel, C. D. y Ritter, C. M. (1998) SNMP puede ser usado
para interconectar dispositivos de plantas industriales. La MIB puede ser utilizada
para representar los datos de proceso controlados por un dispositivo (p.e. un PLC).
Por otra parte, los comandos descritos anteriormente (GET, SET y TRAP) permiten
enviar datos a otros dispositivos.
2-24
2-25
2.2.4.2 CMIP
El protocolo de gestin de red propuesto en el modelo OSI de ISO recibe el
nombre de CMIP (Common Management Information Protocol, ISO 9596; 1998,
http://www.iso.org).
El diseo de CMIP intenta solucionar los errores y fallos que aparecan en SNMP
cuando el tamao y detalle de los gestores de red aumentaba. Su diseo es similar a
SNMP por lo que se usan PDUs (Protocol Data Unit) como variables y para
monitorizar la red.
En CMIP las variables son unas estructuras de datos complejas con muchos
atributos, que incluyen:
2-26
en
comunicaciones
frente
al
modelo
de
Internet,
su
implementacin es mnima.
Agentes muy complejos: Requiere agentes muy pesados con gran capacidad
de proceso y recursos elevados de memoria por lo que no parece ser la
opcin ms indicada para equipos sencillos como algunos de los encontrados
en los entornos industriales.
2.3
2-27
2-28
2-29
Interfaces
de
dominio
Facilidades
comunes
Servicios
comunes de
objetos
Desde sus orgenes, la mayor parte del trabajo realizado por el OMG se ha centrado
en la especificacin del componente central de la arquitectura: el ORB. Esto ha sido
as debido a que el resto de los componentes de la OMA dependen del
funcionamiento del ORB.
Common Object Request Broker Architecture (CORBA)
Una de las primeras especificaciones que fueron adoptadas por el OMG fue la
especificacin CORBA. sta detalla las interfaces y caractersticas del componente
ORB dentro de la arquitectura de la OMA. Hay varias especificaciones de CORBA,
siendo la ltima de ellas la especificacin CORBA 3.0 (OMG, 2004a).
2-30
Cliente
Interfaz de
invocacin
dinmica
Soporte IDL
Cliente
(Stub)
Interfaz
del
ORB
Esqueleto
dinmico IDL
(DSI)
Esqueleto
esttico IDL
(Skeleton)
Adaptador de Objetos
Ncleo del ORB
2-31
Como se puede ver en la Figura 2-4 el ORB no interacta directamente con los
clientes y objetos servidores sino que en el caso de invocacin esttica lo hace a
travs de una serie de interfaces (Stubs y Skeletons) y en el caso de invocacin dinmica
a travs de los correspondientes interfaces dinmicos.
Interface Definition Language (IDL)
Para que los clientes puedan hacer peticiones sobre los objetos distribuidos CORBA
es necesario que conozcan las operaciones que se pueden llevar a cabo sobre dichos
objetos. En el enfoque orientado a interfaces que propone el OMG resulta necesario
el uso de un lenguaje comn de definicin de interfaces que especifique las
operaciones y tipos que los objetos CORBA soportan. Este lenguaje de interfaces
recibe el nombre de Interface Definition Language (IDL).
Hay que resaltar que se trata de un lenguaje puramente declarativo (que no define
detalles de implementacin) cuya sintaxis resulta similar a la de las clases en C++ o
las interfaces de Java. Independientemente de esta definicin los objetos servidores
estarn implementados en sus respectivos lenguajes de programacin (C/C++, Java,
Ada...). As, lo nico que un cliente necesita para invocar un mtodo de un objeto
CORBA es conocer su definicin en trminos del lenguaje IDL. Detalles tales como
el lenguaje de programacin usado, la localizacin fsica del objeto en la red o el
sistema operativo utilizado permanecen transparentes para los clientes.
Para dar una idea de la estructura de IDL a continuacin se muestra el esqueleto IDL
para una interfaz: (Para ms informacin se puede acudir a Henning, M. y Vinosky,
S., 1999).
// Nombre de un mdulo que agrupa varias interfaces
Module <identifier> {
<type declarations>;
<constant declarations>;
<exception declarations>;
2-32
2-33
Gestin de las peticiones sobre los objetos CORBA por parte de mltiples
clientes remotos evitando posibles interbloqueos.
2-34
Un conjunto de tipos de mensaje bsicos con los que se efectuarn todas las
operaciones CORBA (Peticin de un servicio, respuesta, mensajes de
error...)
IIOP (Internet Inter-ORB Protocol) Se trata de un caso particular del protocolo GIOP.
En el caso de IIOP los protocolos subyacentes utilizados pertenecen a la familia de
protocolos TCP / IP. IIOP es un protocolo obligatorio para cualquier
implementacin CORBA desde la especificacin CORBA 2.0. Es el principal
protocolo usado por los ORB CORBA en la actualidad.
ESIOPs (Environment-Specific Inter-ORB Protocol) Son protocolos que se usan para la
integracin con redes especficas. Hay varias implementaciones. Algunos de estos
protocolos se utilizan en ORBs que tienen misiones crticas. Tambin incluyen
opciones avanzadas como la seguridad Kerberos, directorios globales, tiempo
distribuido etc. Algunas versiones de estos protocolos permiten usar tanto
protocolos orientados a conexin como no orientados a conexin.
2-35
2-36
2-37
2-38
2-39
2-40
2-41
ofertados
como
software
libre,
ver
http://www.omg.org
2-42
2-43
Posteriormente se desarroll DCOM que es una extensin de COM para trabajar con
objetos distribuidos. Ms adelante cambi el nombre de la tecnologa COM /
DCOM por COM+ (Lwy, J. 2001) de forma que integrase una serie de servicios
(transacciones, concurrencia, seguridad, gestin de colas, eventos,...) que
anteriormente funcionaban por separado como Microsoft Transaction Service (MTS) o
Microsoft Queuing Service (MSMQ). Sin embargo, se trata de la misma tecnologa en
todos los casos.
Estructura y funcionamiento de COM / DCOM
Es interesante resaltar que el enfoque de COM / DCOM no es exactamente
orientado a objetos sino orientado a componentes. El trmino orientacin a
componentes lleva asociadas diferentes prioridades que el trmino orientacin a
objetos. As, mientras que en la orientacin a objetos se hace especial hincapi en la
herencia, encapsulacin y reutilizacin de objetos dentro del cdigo de nuevas
aplicaciones, la orientacin a componentes se centra en la instalacin y uso de
componentes binarios que son insertados en las aplicaciones que los usan.
Por consiguiente, las propiedades de los componentes COM son distintas de los
objetos CORBA. Por ejemplo, COM no proporciona herencia autntica sino que usa
un modelo de reutilizacin de los objetos antiguos incorporndolos dentro de los
nuevos.
Los componentes llevan la encapsulacin a un nivel mximo al exponer slo una
interfaz pblica. El cdigo fuente de un componente es totalmente desconocido para
las aplicaciones que lo usan. De forma que, aspectos, como el lenguaje de
programacin o la localizacin fsica del componente, permanecen desconocidos
para el cliente.
Este enfoque permite que los componentes tengan su propia independencia de
forma que desde el punto de vista externo el beneficio radique en que cualquier
componente pueda ser insertado en un conjunto diverso de aplicaciones cliente.
En una situacin ideal dos componentes distintos que soporten la misma interfaz
podran ser intercambiados. La principal prioridad en este caso es la insercin de
2-44
2-45
Servidor COM
Proxy (*.DLL)
Stub (*.DLL)
RPC
COM / DCOM
COM / DCOM
Al igual que en CORBA se definen ciertas interfaces que permiten el acceso a los
objetos (que reciben el nombre de Stubs y Skeletons) en DCOM se definen unas
interfaces equivalentes que en este caso reciben los nombres de Proxies y Stubs. En la
2-46
2-47
Servicios de DCOM
El hecho de que COM sea una arquitectura de componentes madura tiene sus
ventajas. As, miles de componentes ya han sido desarrollados y pueden ser utilizados
para crear nuevas aplicaciones. Adems, existen diversas herramientas que aceleran el
desarrollo de nuevos componentes y aplicaciones basadas en componentes ya
existentes.
De forma similar a CORBA, Microsoft tambin proporciona servicios avanzados
tales como el Microsoft Transaction Service (MTS) o el Microsoft Queuing Service (MSMQ)
que facilitan la creacin de aplicaciones complejas con COM. Estos servicios han
sido integrados junto a DCOM en la plataforma COM+ donde, entre otros, reciben
los nombres de servicios de transacciones, concurrencia, seguridad o eventos.
Concretamente, MTS gestiona el entorno de ejecucin de COM. Adems de iniciar y
sealar la finalizacin de transacciones colabora en otros aspectos importantes en
sistemas distribuidos como son la seguridad, gestin de recursos y la monitorizacin
de los sistemas. En COM+ este servicio ha sido dividido entre los servicios de
seguridad, concurrencia y control de transacciones.
Por su parte, MSMQ proporciona un servicio de mensajera en COM. Su
funcionalidad es equivalente al servicio de Eventos de CORBA. Este servicio
resuelve las necesidades de comunicacin de forma asncrona desde los servidores
hacia los clientes. COM+ introduce mejoras con el denominado servicio de eventos
al proporcionar un servicio de mensajera ms potente y sencillo de manejar. El
modelo propuesto en COM+ es ms cercano al servicio de notificaciones de
CORBA. Se basa en el modelo publicista / subscriptor de forma que los
subscriptores que quieran recibir eventos se registran en un objeto comn que est
encargado de distribuir los eventos recibidos desde el publicista.
Puentes CORBA-DCOM
Una vez que se han analizado las caractersticas de COM y CORBA, las dos
arquitecturas distribuidas ms extendidas, se puede observar que tanto una como la
otra proporcionan distintas ventajas, lo que las convierte en ms idneas en un
2-48
entorno u otro. Es por ello que resulta interesante utilizar puentes que permitan la
interoperatibilidad entre CORBA y DCOM. En sistemas pequeos se pueden utilizar
soluciones diseadas ad hoc sin embargo, en sistemas grandes es conveniente el uso
de soluciones comerciales.
En la especificacin de CORBA 2.2 se puede encontrar una descripcin detallada de
los mecanismos que se han propuesto para conseguir la interoperatibilidad entre las
arquitecturas CORBA y DCOM.
DCOM en entornos industriales
As como CORBA es directamente utilizado en entornos industriales, DCOM suele
ser usado de forma indirecta, fundamentalmente a travs de los componentes OPC o
Profinet. En Blanco, P.M. y otros (2003) es posible encontrar una comparativa entre
diversos fabricantes de sistemas de control de la produccin (Manufacturing Execution
Systems, MES). Algunos de estos fabricantes tambin ofrecen paquetes SCADA. En el
estudio se concluye cmo en los paquetes comerciales analizados se usan
mayormente los objetos DCOM / OPC frente a CORBA. Esta preeminencia de
COM en soluciones cerradas se justifica sobre todo debido a la excelente integracin
de DCOM en entornos Windows. Sin embargo, CORBA parece ms adecuado en
aquellos casos que hay que construir aplicaciones distribuidas abiertas o en aquellos
casos en los que estn involucradas diferentes plataformas.
Ventajas e inconvenientes de DCOM
La principal ventaja de COM / DCOM es su excelente integracin con la gama de
sistemas operativos Microsoft Windows, que no hay que olvidar que son los ms
extendidos en la actualidad. Por otra parte, esta excelente integracin con los
entornos Windows se basa en soluciones especficas que no son vlidas para otras
plataformas, por lo que tambin es su principal debilidad.
Por otra parte, COM es la arquitectura basada en componentes ms madura en la
actualidad. Esto junto a la excelente integracin con soluciones Windows ha
convertido a esta arquitectura en la ms popular a nivel comercial, dado que muchas
soluciones de los fabricantes se basan en entornos Windows. Este hecho se ha
2-49
traducido en que sea adoptada como ncleo de estndares industriales como OPC o
Profinet (evaluados ms adelante), lo que le otorga una ventaja adicional.
Brevemente, OPC es un estndar de comunicacin, basado en componentes DCOM
que proporciona una serie de servicios bsicos tpicamente utilizados en plantas
industriales. OPC est adquiriendo gran relevancia en la industria. Por su parte
Profinet es una arquitectura que pretende integrar en redes de tipo Ethernet diversos
dispositivos industriales.
Sin embargo, DCOM presenta varias debilidades para ser considerada una solucin
ideal. La mayora de stas limitaciones vienen dadas precisamente por la naturaleza de
tecnologa propietaria de DCOM. Por un lado, las limitaciones en el nmero de
plataformas en las que esta tecnologa est disponible. Microsoft no ha mostrado
signos de proporcionar servicios como MTS o MSMQ en plataformas distintas de
Windows. Adems, el uso de COM con Java requiere el uso de la mquina virtual de
Microsoft, no soportada en otras plataformas. Por ltimo, estratgicamente, el hecho
de depender de un nico fabricante puede ser tambin un inconveniente adicional.
Adems, no existen especificaciones de DCOM que permitan el desarrollo de
sistemas distribuidos con unas caractersticas de tiempo real (como s sucede con
CORBA-RT) con lo que su uso no resulta adecuado en aquellos sistemas que
presenten tales requisitos.
2.3.3 Java / RMI
La tercera arquitectura distribuida orientada a objetos en liza es Java / RMI (Sun
Microsystems; Grosso W., 2001; Rusty, E., 1997). Como su nombre indica, esta
arquitectura est ntimamente ligada al lenguaje de programacin Java. Esta
arquitectura se integra en la plataforma J2EE y se beneficia de todas las herramientas
que esta plataforma ofrece: servicios de objetos (eventos, seguridad, transacciones,
etc.), modelo de componentes EJBs (Enterprise Java Beans), integracin con la
tecnologa Web, etc. A pesar de que Java est popularizndose cada vez ms, el
hecho de que esta arquitectura quede limitada nicamente a este lenguaje limita en
cierto modo su rango de aplicacin, ya que no siempre es posible emplear dicho
lenguaje. Esta afirmacin es an ms cierta en entornos industriales.
2-50
Al igual que CORBA, RMI (Remote Method Invocation) fue diseada desde el principio
para soportar llamadas a mtodos de objetos remotos. RMI integra directamente un
modelo distribuido orientado a objetos con la mquina virtual Java (JVM, Java Virtual
Machine) desde el kit de desarrollo JDK 1.1 (Java Developer Kit).
Un objeto RMI es un objeto codificado en Java cuyos mtodos son llamados desde
otra mquina virtual Java que puede localizarse dentro del mismo computador o en
una red de ordenadores. Los clientes pueden invocar mtodos de los objetos remotos
RMI como si se tratara de objetos Java locales a la mquina virtual.
En el caso de Java / RMI es la propia mquina virtual de Java quien se encarga de
tareas como la activacin de los objetos o la localizacin de los objetos dentro de una
red.
Las aplicaciones distribuidas basadas en Java / RMI permiten:
Al igual que sucede en las dems arquitecturas remotas, los clientes RMI interactan
con los objetos remotos a travs de unas interfaces que stos publican. Sin embargo,
2-51
RMI
Cliente
registro rmi
RMI
RMI
Servidor
Protocolo HTTP
Protocolo HTTP
Servidor Web
Figura 2-6 Uso del registro para obtener referencias a objetos remotos.
2-52
Servicios Java
Nombres
Al igual que en otras arquitecturas distribuidas resulta conveniente un servicio que
permita obtener referencias a objetos sin tener que utilizarlas explcitamente en el
cdigo. En el caso de Java / RMI, el servicio de Nombres es implementado por el
registro RMI.
Seguridad
Es evidente que una de las preocupaciones de una aplicacin distribuida es la
consecucin de un entorno de ejecucin seguro. As, puede ser necesario el uso de
canales seguros entre los clientes y servidores. RMI proporciona factoras de sockets
de diversos tipos, incluyendo sockets encriptados. A partir del JDK 1.2 se pueden
especificar requisitos para los servicios proporcionados por los sockets del servidor.
Por otra parte, la seguridad tambin debe afectar a las clases descargadas. Para
solucionar este problema se utiliza un gestor de seguridad (RMISecurityManager) que
se encarga de habilitar todas aquellas operaciones que puedan ser sensibles como la
descarga de clases de otros nodos distribuidos, la apertura / escritura de ficheros, la
gestin de las conexiones de red, etc. Como parte de la configuracin de seguridad
tambin resulta necesario configurar correctamente las polticas de seguridad de la
JVM para permitir ejecutar las correspondientes acciones.
2-53
Servidor
proxy
Servidor
Web
WWW
Cliente
RMI
Servidor
RMI
Cortafuegos
Cliente
Cortafuegos
Servidor
Eventos
Java cuenta con un servicio de mensajes: Java Message Service (JMS). Se trata de un
servicio de mensajera que permite que los componentes de una aplicacin basados
en la plataforma Java 2 (J2EE, Java 2 Enterprise Edition) puedan crear, enviar, recibir y
2-54
2-55
Parte
Servidor
Escenario 1
HTTP
Servidor
Web
Objeto
Distribuido 1
Navegador
Web
Aplicacin
sobre el
navegador
Objeto
Distribuido 2
Por su parte, el segundo caso, Figura 2-9, ilustra una aplicacin cliente que se ejecuta
sobre un navegador Web que interacciona directamente con los objetos distribuidos.
En este caso el navegador Web primero descarga una aplicacin cliente ejecutable
sobre un navegador (p.e. un applet Java) al navegador. Luego la aplicacin cliente en
ejecucin utiliza directamente los objetos distribuidos.
Cada estrategia tiene sus ventajas e inconvenientes. El primer caso proporciona un
acceso limitado a los objetos distribuidos. As se aumenta la seguridad al ser el
servidor Web el nico punto de entrada desde los clientes. Adems, las aplicaciones
2-56
clientes son ms sencillas dado que no requieren acceso directo a los objetos
distribuidos, resultando ms sencillas de desarrollar y mantener. Sin embargo, este
enfoque est ms limitado en cuanto a posibilidades y prestaciones. Todas las
operaciones se hacen va trfico HTTP con lo que se sobrecarga de forma
importante el servidor Web.
Adems, este primer enfoque requiere que los servidores Web ejecuten pginas
activas (ASP, Active Server Pages, si se utiliza tecnologa de Microsoft, y por tanto
utilizadas con objetos DCOM o JSP Java Server Pages, si se utiliza tecnologa Java,
compatible con las arquitecturas distribuidas Java / RMI y CORBA) que en ltima
instancia realizan la llamada al objeto distribuido sobre el que se desea hacer la
peticin Web.
Por su parte, el segundo enfoque es extremadamente potente. Sin embargo, presenta
ciertos inconvenientes. Se requiere que la aplicacin cliente presente una
infraestructura completa de objetos distribuidos.
Parte
Cliente
Parte
Servidor
Escenario 2
HTTP
Servidor
Web
Navegador
Web
Aplicacin
sobre el
navegador
Objeto
Distribuido 1
Objeto
Distribuido 2
2-57
2.4
2-58
2.4.1 OPC
OPC (OLE for Process Control, www.opcfoundation.org; Iwanitz, F. y Lange, J., 2002)
pretende sacar partido de la generalizacin de los PCs de sobremesa (debido, una
vez ms, al abaratamiento de sus precios y aumento de prestaciones) en entornos
industriales donde suelen cooperar con los tradicionales PLCs.
OPC juega un papel importante en la integracin, tanto vertical como horizontal, de
soluciones de automatizacin entre componentes distribuidos. Esta tecnologa
introduce interfaces estndares y formatos de datos consistentes que proporcionan
datos del nivel de campo a otros niveles de produccin o incluso a otros nodos en el
mismo nivel de produccin.
La adopcin de estas interfaces por un gran nmero de fabricantes facilita la
construccin de aplicaciones distribuidas en base a componentes OPC. Estos
componentes introducen gran eficiencia y reduccin de costes debido a la
reutilizacin de cdigo binario.
En definitiva, hoy en da OPC es uno de los estndares industriales ms populares
entre usuarios y desarrolladores. As, gran parte de los fabricantes de interfaces HMI
(Human Machine Interface), paquetes SCADA (Supervisory Control and Data Acquisition) y
sistemas DCS (Distributed Control Systems) en el campo de la tecnologa de
automatizacin basada en PC ofrecen con sus productos interfaces OPC. Esto es
igualmente cierto para los fabricantes de dispositivos y tarjetas. La Figura 2-10
muestra un ejemplo en el que se utiliza OPC para intercambiar datos de proceso
entre diferentes tipos de nodos en una red de empresa.
A da de hoy, OPC es una interfaz estndar para acceder a aplicaciones basadas en
sistemas operativos Windows (Windows 9X/ME/NT/2000/XP). De hecho, OPC
se basa en la tecnologa DCOM de Microsoft lo cual, de momento, limita su rango de
aplicacin aunque ltimamente hay grupos interesados en exportar la tecnologa
haciendo uso de los servicios Web.
Gran parte del xito de OPC se debe a que, en la actualidad, no existe otra alternativa
similar. CORBA y Java / RMI son alternativas directas a DCOM pero no existe
2-59
ninguna otra tecnologa basada en ellas que ofrezca interfaces y formatos de datos
estndar que hayan sido adoptados por la industria.
OPC tambin permite la programacin de aplicaciones cliente en entornos de
programacin como Visual Basic, Delphi, etc. bastante asequibles para usuarios no
avanzados. Estas aplicaciones cliente utilizarn los datos ofrecidos por los
componentes OPC. Por su parte, la situacin ms habitual es que estos componentes
sean escritos en C o C++ por programadores expertos buscando el mejor
rendimiento posible.
Orgenes de OPC
A medida que el nmero de productos y protocolos de comunicacin y sistemas de
buses iba creciendo, los fabricantes de software se enfrentaron al problema de que
tenan que dedicar mayores recursos para desarrollar y mantener la enorme cantidad
de drivers existente.
2-60
Descripcin
Versin
Descripcin general de los campos de aplicacin de 1.00
las especificaciones OPC
Common Definicin de conceptos generales relativos al resto 1.00
and de especificaciones
OPC
Definition
Interfaces
OPC Data Access
Specification
OPC Alarms and
Events Specification
OPC Historical Data
Access Specification
OPC
Batch
Specification
2.05
1.02
1.1
2.0
1.0
Draft 0.60
En
construccin
Draft 0.10
2-61
2-62
condicin es un estado del servidor de eventos OPC identificado por un nombre, que
resulta de inters a los clientes. Por ejemplo, cuando una variable supera un valor
determinado se puede generar una alarma: HighAlarm.
Por el contrario, los eventos son sucesos significativos para el servidor OPC, el
dispositivo fsico que representa y los clientes OPC asociados. Los eventos pueden
estar asociados, o no, a condiciones especficas. Ejemplos de eventos seran: las
transiciones entre estados de servidor, cambios en la configuracin del sistema,
acciones del operador, o errores de sistema. Los clientes pueden suscribirse a
determinados eventos para que les sean notificados.
OPC Historical Data Access
En entornos industriales la consulta de histricos suele ser una fuente aadida de
informacin. En la actualidad la mayora de los sistemas de almacenamiento de datos
histricos utilizan sus propias interfaces propietarias para la distribucin de los datos
entre los clientes interesados. No existen alternativas para aumentar o usar soluciones
ya existentes.
A la hora de integrar datos en todos los niveles de la pirmide de automatizacin, la
informacin contenida en los histricos puede considerarse como otro tipo de datos.
La especificacin propone varios tipos de servidores de histricos. Los ms
interesantes son:
2-63
2-64
2-65
2-66
Profinet utiliza DCOM para las comunicaciones bsicas entre los componentes.
Como se vio en el anlisis de arquitecturas distribuidas, DCOM es la extensin de la
tecnologa COM para aplicaciones distribuidas. DCOM utiliza los protocolos TCP /
IP. Adems, el hecho de que tanto Profinet como OPC se fundamenten en DCOM
hace que ambas tecnologas puedan colaborar permitiendo una sencilla y potente
integracin de la informacin de proceso con las capas superiores de la pirmide de
automatizacin.
Profinet define un modelo de referencia ejecutable que es implementado en los
dispositivos Profinet. Este modelo fue desarrollado para ser independiente del
sistema operativo, permitiendo la incorporacin de este ncleo ejecutable en una
gran variedad de controladores y sistemas. Por tanto, no resulta necesario el uso de
un sistema operativo basado en plataformas Windows. As, se consigue que PLCs u
otros dispositivos puedan actuar como componentes Profinet.
Protocolos de comunicacin
El uso de Ethernet en sistemas industriales presenta algunos inconvenientes como
son la ausencia de protocolos estandarizados que ofrezcan los servicios que las
aplicaciones de control necesitan. Aqu se encuentra, precisamente, una de las
principales aportaciones de Profinet.
La transmisin de datos entre los componentes es controlada por eventos, es decir,
los datos se envan slo cuando han tenido lugar cambios de forma que se reduce la
transferencia de datos al mnimo y se optimiza la disponibilidad de la red. Uno de los
inconvenientes de Ethernet reside en la imposibilidad de definir un tiempo lmite de
espera (timeout) para que los datos sean entregados. Por ello, en el modelo de
referencia ejecutable que propone Profinet cooperan tres tipos de comunicacin en
funcin del tipo de datos a transmitir:
1. TCP / IP se usa cuando es necesario enviar grandes cantidades de datos (p. e.
descarga de programas)
2-67
2-68
2.5
2-69
Hay que tener en cuenta que la informacin interna de una empresa es confidencial
por lo que la seguridad juega un papel fundamental en el acceso remoto a plantas
industriales. En Internet hoy en da existen tcnicas que proporcionan un esquema
relativamente seguro. En este apartado se hace una breve revisin de las mismas. Ms
informacin puede encontrarse en Weaver, A. C., (1999), Jaworski, J. y Perrone P.J.
(2000) o Bobadilla, J. (1999).
Las redes TCP / IP no introducen por defecto mecanismos de seguridad. Por tanto,
para obtener un esquema seguro es necesario aadir dichos mecanismos en los
protocolos del nivel de aplicacin. A continuacin se detallan qu caractersticas
deben satisfacerse para proporcionar un acceso seguro:
Integridad de los datos: Consiste en asegurar que los datos no han sido
modificados durante su envo. Esto suele garantizarse con cdigos calculados
a partir de los mensajes enviados que garantizan la integridad de la
informacin enviada. Estos cdigos reciben el nombre de boletines de
mensajes o message digests.
2-70
Filtrado de paquetes
2-71
Receptor
Texto en claro
Texto en claro
Algoritmo
Cifrado
Texto cifrado
Clave K
Clave K
Mensaje
cifrado
Algoritmo
Descifrado
Texto cifrado
Supongamos que se desea enviar un mensaje a travs de una red. Para ello se seguir
el esquema de la Figura 2-12. El emisor del mensaje utilizar una clave para encriptar
el mensaje con un algoritmo determinado y se enviar el mensaje al receptor quien lo
descifrar con la clave correspondiente para obtener el mensaje original.
Todos los mecanismos utilizados para introducir seguridad en redes informticas de
tipo Internet se basan en ltima instancia, en algoritmos criptogrficos. A
2-72
DES (Introducido por IBM en 1976) y sus variaciones, p.e. Triple DES, etc.
RC2, RC4, RC5, etc. Se trata de diversos algoritmos propuestos por Ronald
Rivest, una de las figuras clave de la criptografa. Dado que estos algoritmos
son mucho ms rpidos que DES cuentan con gran aceptacin en entornos
Web.
2-73
2-74
40 bits
0.2 segundos
56 bits (DES)
3.6 horas
64 bits
38 das
80 bits
7,000 aos
1013 aos
128 bits
1018 aos
512 bits
30,000 MIPS-aos
768 bits
200,000,000 MIPS-aos
1,024 bits
1011 MIPS-aos
2,048 bits
1020 MIPS-aos
Se utilizan unidades MIPS (millones de instrucciones por segundo) dado que los
tiempos pueden ser reducidos cuando se utilizan varias CPUs trabajando en paralelo.
Como dato de referencia, en el momento en que se escribi este estudio (Weaver, A.
C. 1999) los PCs estaban en el rango de 50 a 100 MIPS.
De las tablas anteriores se puede concluir que para claves simtricas a partir de 80
bits y pblicas de ms de 786 se obtiene un nivel de seguridad aceptable.
Evidentemente, a medida que aumenta la capacidad de clculo de los ordenadores
tambin resulta conveniente aumentar la longitud de las claves.
Boletines de mensajes
Los boletines de mensajes se utilizan para generar resmenes de mensajes y crear
firmas digitales. Se basan en algoritmos que utilizan una funcin hash que realiza una
computacin tal que al pasarle un mensaje de tamao variable, sta siempre genera
una cadena de longitud fija llamada resumen. La funcin es unidireccional, muy difcil
2-75
o imposible de invertir. Adems, estas funciones generan resmenes muy dispares para
mensajes parecidos.
Cuando alguien enva un mensaje le incorpora un resumen generado por una funcin
de boletines de mensajes, de forma que el receptor pueda verificar que el mensaje no
ha sido alterado al realizar el mismo proceso y comprobando la igualdad del resumen
con el resumen por l obtenido. De esta forma se puede asegurar que los mensajes
enviados no han sido alterados durante su envo.
Los algoritmos ms utilizados son: MD2 (RFC 1319, 1992), MD4 (RFC 1320, 1992)
y MD5 (RFC 1320, 1992), de las que la ms utilizada en Internet es MD5. Otra
funcin bastante utilizada es SHA, adoptada por el gobierno americano.
Firmas digitales
Los boletines de mensajes proporcionan un mecanismo excelente para averiguar si
un mensaje u otro objeto ha sido alterado deliberadamente o accidentalmente. Sin
embargo, deben usarse junto a mecanismos que aseguren que un mensaje ha sido
realmente creado por quien dice serlo. Para ello se utilizan las firmas digitales.
Las firmas digitales suelen usar algoritmos de encriptacin de clave pblica utilizando
la clave privada para la encriptacin de la firma y la clave pblica para el descifrado
de la misma. En otras palabras, una firma digital es un valor (clave pblica) que se
calcula a partir de una secuencia de bytes (clave secreta). La firma digital indica que la
persona que mantiene la clave secreta ha verificado que el contenido del mensaje es
correcto y autntico.
Un ejemplo de algoritmo de firma digital es el DSA (Digital Signature Algorithm).
Certificados y autoridades de certificacin
Las firmas digitales ofrecen un mtodo bastante robusto para autentificar que una
persona o empresa en concreto ha revisado o creado un mensaje u objeto. Sin
embargo, presentan un punto dbil: Es necesario conocer si la clave pblica que
utiliza el firmante es, de hecho, la clave del firmante. Es aqu donde entran los
certificados y las autoridades de certificacin.
2-76
Los certificados digitales son mensajes firmados por una autoridad de certificacin
que certifica el valor de la clave pblica de una entidad. Una autoridad de
certificacin es una entidad en la que se confa para verificar que otras entidades son
quienes dicen ser y que utilizan un determinado algoritmo de encriptacin de clave
pblica. Evidentemente, las empresas que quieren ser certificadas debern adjuntar
documentacin a la autoridad certificadora para demostrar que son quienes dicen ser.
Una de estas autoridades de certificacin de las ms conocidas es Verising, Inc.
Los certificados X.509 de la ISO (International Standard Organization) son un formato
de certificado digital muy popular. Estos certificados contienen, entre otra
informacin, lo siguiente: nombre y clave pblica de la entidad, un intervalo de
fechas en las que el certificado es vlido y la firma digital creada por la autoridad de
certificacin.
2.5.3 Protocolo SSL (Secure Sockets Layer)
SSL (Secure Socket Layer) es un nivel de protocolo de comunicacin creado por
Netscape. La versin actual es la versin 3 que se encuentra en:
http://home.netscape.com/eng/ssl3/index.html
Una de sus caractersticas ms interesantes es que la mayora de los navegadores
actuales (Netscape, Internet Explorer, Opera...) soportan SSL 3.0. Adems, sirve
como base para obtener un nivel de seguridad aceptable en muchas aplicaciones.
SSL se basa en la pila de protocolos TCP / IP. Proporciona servicios seguros sobre
TCP / IP que incluyen confidencialidad, encriptacin de datos, integridad y una
autenticidad y no-repudiacin opcional. Aunque funciona sobre TCP / IP, tambin
puede ser la base de otros protocolos que funcionan sobre TCP / IP como HTTP o
IIOP.
La Figura 2-13 muestra el funcionamiento bsico de SSL que se describe a
continuacin. El cliente enva un mensaje de inicio de conexin al servidor quien
acepta la conexin enviando a su vez una clave pblica certificada por una autoridad
de certificacin. Con el envo de la clave pblica certificada se autentifica a s mismo
2-77
y permite que el cliente pueda utilizar la clave pblica para cifrar con ella una clave
secreta que enva al servidor de forma segura y, por tanto, a partir de ese instante la
comunicacin entre ambos se cifrar con la clave secreta del cliente antes
intercambiada. El servidor puede requerir opcionalmente que el cliente le enve un
certificado para asegurar su identidad.
Cliente
Mensaje de inicio
Servidor
2-78
Objeto CORBA
ORB
ORB
IIOP
IIOP
SSL
SSL
TCP / IP
TCP / IP
Figura 2-14 Capa SSL en una solucin basada en CORBA sobre SSL
A pesar de que la capa SSL apenas afecta al modo de programacin, s que introduce
una carga adicional importante en cuanto al rendimiento de la aplicacin debido a la
sobrecarga que introducen los mtodos de cifrado.
Los principales beneficios que introduce el uso de clientes CORBA sobre SSL son:
2-79
Integridad de datos: SSL asegura que los datos no han sido alterados
incluyendo boletines de mensajes.
Privacidad: Una vez que una sesin SSL se ha iniciado, se intercambia otra
clave de forma segura, en este caso, simtrica. Esta clave ser la utilizada para
desencriptar los datos enviados a travs de la sesin que irn debidamente
encriptados.
CORBA sobre SSL proporciona una solucin sencilla y efectiva que facilita cierto
grado de seguridad. No obstante, este esquema no cumple todos los requisitos de
seguridad exigidos a los sistemas distribuidos. Concretamente, SSL no introduce
mecanismos que permitan la autorizacin de los usuarios remotos. En entornos
donde ser requiere mayor seguridad est disponible el servicio de seguridad de
CORBA.
Cortafuegos CORBA
Los cortafuegos previenen el acceso por parte de usuarios no autorizados
protegiendo los puntos de entrada a la red. Sin embargo, los cortafuegos
convencionales no gestionan adecuadamente el trfico generado por las aplicaciones
CORBA. Por ello resulta conveniente un enfoque estndar que controle el trfico
IIOP generado por los objetos CORBA que, permitiendo el acceso a los objetos
CORBA, mejore la seguridad. Estos cortafuegos CORBA permiten el paso del
trfico CORBA, que tambin puede ser CORBA / SSL. En OMG (2004b) se
propone una especificacin que da las pautas para construir este tipo de cortafuegos
CORBA.
Otra solucin proporcionada por algunos ORBs para permitir el trfico CORBA a
travs de cortafuegos es el uso del encapsulamiento de los paquetes IIOP sobre
paquetes HTTP. Estas soluciones se basan en proxies que realizan la conversin de
los paquetes. Un ejemplo de estas soluciones es el Gatekeeper propuesto por el ORB
de Visibroker.
2-80
Auditora:
Para
monitorizar
la
seguridad
es
conveniente
auditar
Seguridad en DCOM
La introduccin de DCOM en 1996 introdujo algunas modificaciones respecto a la
versin anterior: COM. As, DCOM extiende COM de forma natural con una
2-81
2-82
2-83
deben estar en una localizacin fsicamente segura, por lo que este esquema a pesar
de ser vlido en entornos distribuidos cerrados, tipo intranet (Ashley, P. y otros,
2000), no es vlido para entornos tipo Internet.
2.5.6 Mecanismos de autenticacin
La autenticacin es el proceso de validar un usuario asegurando que dicho usuario es
quien dice ser. Existen soluciones que varan desde el tradicional nombre /
contrasea, hasta el uso de objetos como smart cards o la medicin de ciertas
caractersticas biomtricas.
Un sistema puede verificar la identidad a travs de tres tipos de mecanismos:
Objetos posedos por el usuario (What you have): Smart cards (tarjetas de
acceso similares a las tarjetas de crdito), etc. Estas tarjetas pueden contener
un certificado digital del cliente que se enva al servidor para asegurar la
autenticidad del usuario.
No todos los sistemas utilizan los tres tipos de mecanismos, sin embargo conviene
que se utilice ms de un mecanismo para reforzar la identidad. As, los objetos
posedos por el usuario, p.e. una tarjeta de acceso, normalmente van acompaados
por algn dato conocido exclusivamente por el usuario (una contrasea) o la
medicin de alguna caracterstica biomtrica. De este modo se previene el uso de
tarjetas robadas o perdidas.
2.6
CONCLUSIONES
2-84
asienta Internet constituyen la base sobre la que muchas empresas asientan sus
propias infraestructuras (intranets). En este captulo se ha hecho un anlisis de las
diferentes tecnologas disponibles para el diseo de aplicaciones distribuidas de
acceso remoto a travs de Internet. Se puede concluir que no existen soluciones
adecuadas para todas las situaciones. Cada tecnologa tiene sus ventajas e
inconvenientes.
As, en aplicaciones sencillas o en dispositivos que cuentan con unos recursos
mnimos el uso de arquitecturas distribuidas no orientadas a objetos como sockets o
SNMP puede proporcionar soluciones interesantes. Sin embargo, a medida que
aumenta la complejidad de las aplicaciones otro tipo de soluciones, por ejemplo las
basadas en arquitecturas distribuidas orientadas a objetos, parecen ms adecuadas.
Por otra parte, dada la generalizacin del protocolo HTTP parece interesante adoptar
soluciones que integren dicho protocolo. Las arquitecturas distribuidas orientadas a
objetos (CORBA, COM+ y Java / RMI) presentan, en general, una buena
integracin con dicho protocolo. Por tanto, para los sistemas complejos, una
solucin basada en estas arquitecturas orientadas a objetos junto al protocolo HTTP
ofrece gran potencia. Cada una de estas tres arquitecturas presenta sus caractersticas.
As, COM+ es la tecnologa ms indicada para ser utilizada en entornos Windows.
Adems, cuenta con la ventaja de ser ampliamente aceptada a nivel industrial e
incluso se utiliza como base para estndares muy extendidos en entornos industriales
como OPC o Profinet. CORBA resulta una buena eleccin sobre todo en entornos
abiertos, multilenguaje y multiplataforma. Esto es debido a que es apoyada por un
gran nmero de fabricantes, lo que convierte la interoperabilidad en un asunto de
gran trascendencia. Adems, se trata de una arquitectura muy madura y que cuenta
con especificaciones para aplicaciones con requisitos especiales como son CORBART o CORBA minimum. Al ser una arquitectura multilenguaje presenta una buena
integracin con Java, lo cual dota a la combinacin de Java y CORBA en una
solucin interesante en el entorno de Internet. Por ltimo, Java / RMI comparte
muchas caractersticas con CORBA. Esta arquitectura tambin ofrece una excelente
integracin en Internet y con los navegadores Web por lo que resulta una opcin
interesante a pesar de que su rendimiento a veces resulta pobre.
2-85
Referencias
Refs 2-1
REFERENCIAS
Aldrich J., Dooley J., Mandelsohn S., Rifkin A. Providing Easier Access to Remote
Objects in Client-Server Systems, Proc. of the Thirty-First Hawaii Internacional Conf. on
System Sciences, 1998, vol. 7, pp 366-375
Ashley, P., Vandenwauver, M., Siebenlist, F. Applying authorization to intranets:
architectures, issuees and APIs, Computer Communications, 23, 2000, pp. 1613-1620
Ariza, T. (2000), Contribuciones a la gestin de dispositivos en sistemas basados en
CORBA, Tesis doctoral, Universidad de Sevilla.
Blanco, P. M., Poli, M. A., Pereira M. R. (2003), OPC and CORBA in
Manufacturing Execution Systems: A Review, Proceedings of the 9th Conference on
Emerging Technologies and Factory Automation ETFA'03, pp. 50-57, Lisboa
Bobadilla, J., (1999), Superutilidades para Webmasters, McGraw-Hill
Box, D. (1998), Essential COM, Addison Wesley
Box, D. (2000), HTTP + XML = SOAP, MSDN Magazine, 15 (3), pp. 67-81.
Coelho, C.N., da Silva, D. C., Padrao, W. C., de vila C., da Mata, J., Fernandes, O.,
(2002), Reingineering embedded systems for the Internet, Proc. of the 15th IFAC
Congress Barcelona.
Diskin D., Chubin S., (1998) Recommendations for Using DCE, DCOM and
CORBA Middleware. http://dii-sw.ncr.disa.mil/coe/topics/atd/recommend/all.
pdf Abril 1998
,J. (1997) Object-based Distributed Systems Draft material for 3rd edition of
Distributed Systems Concepts and Design. DCS, University of London
Gokhale, A., Kumar, B., Sahuguet, A. (2002), Reinventing the Wheel? CORBA vs.
Web Services, http://www2002.org/CDROM/alternate/395
Grosso W., (2001) Java / RMI, OReilly & Associated, Inc.Dollimore
Referencias
Refs 2-2
de,
Irmen
(2002),
Web
Services
SOAP
and
CORBA,
http://www.xs4all.nl/~irmen/comp/CORBA_vs_SOAP.html
Kunes, M., Sauter, T., Fieldbus-Internet connectivity: the SNMP approach, IEEE
Trans. Ind. Electronics, vol. 48, no 6, 2001, pp. 1248-1256
Lwy, J. (2001), COM and .NET: Component Services, OReilly.
Maciel, C. D., Ritter, C., M., TCP / IP networking in process control plants,
Computers in Industrial Engineering, 1998, Vol. 35, Nos 3--4, pp. 611-614
Marn R., P.J. Sanz, (2002) Augmented Reality to Teleoperate a Robot through the
Web Proc. of the 15th IFAC Congress Barcelona.
Refs 2-3
Referencias
Corporation,
DCOM
Technical
Overview,
(1996)
http://msdn.microsoft.com/library
OMG, Object Management Group, (1999) CORBA Components, Julio 1999.
URL: http://www.omg.org/docs/orbos/99-07-01.pdf
OMG, Object Management Group, (2002a) Security Service Specification,
Versin,
1.8,
Marzo
2002.
URL:
http://www.omg.org/technology/documents/formal/real-time_CORBA.htm
OMG, Object Management Group, (2002b) Minimum CORBA Specification,
Versin,
1.0,
Agosto
2002.
URL:
http://www.omg.org/technology/documents/formal/minimum_CORBA.htm
OMG, Object Management Group, (2002c) Real Time-CORBA Specification,
Versin,
1.1,
Agosto
2002.
URL:
http://www.omg.org/technology/documents/formal/real-time_CORBA.htm
OMG, Object Management Group, (2003) The Unified Modeling Language
Specification
Version
1.5,
Versin,
1.5,
Marzo
2003,
URL:
http://www.omg.org/technology/documents/formal/uml.htm
OMG, Object Management Group, (2004a) Common Object Request Broker
Architecture:
Core
Specification,
Marzo
2004,
Versin
3.0.3
URL:
http://www.omg.org/technology/documents/formal/corba_iiop.htm
OMG, Object Management Group, (2004b) CORBA Firewall Transversal
Specification,
Marzo
2004,
Final
http://www.omg.org/docs/ptc/04-03-01.pdf
OPC.URL: http://www.opcfoundation.org/
Adopted
Specification
URL:
Referencias
Refs 2-4
Orfali, R., Harkey, D. (1998) Client / Server programming with Java & CORBA,
2nd Edition, John Wiley & Sons.
Pritchard, J., (1999) COM and CORBA side by side, Addison-Wesley
Raj, G. S., (1998) A detailed comparison of CORBA DCOM and Java/RMI,
http://my.execpc.com/~gopalan/misc/compare.html)
RFC 768, (1980) User Datagram Protocol http://www.ietf.org/rfc/rfc768.txt
RFC 791, (1981) Internet Protocol http://www.ietf.org/rfc/rfc791.txt
RFC
793,
(1981)
Transmission
Control
Protocol
http://www.ietf.org/rfc/rfc793.txt
RFC
821,
(1982)
Simple
Transfer
Protocol,
SMTP
http://www.ietf.org/rfc/rfc821.txt
RFC 822, (1982) Standard For The Format Of ARPA Internet Text Messages
http://www.ietf.org/rfc/rfc822.txt
RFC 854, (1983) Telnet Protocol Specification http://www.ietf.org/rfc/rfc854.txt
RFC 959, (1985) File Transfer Protocol (FTP) http://www.ietf.org/rfc/rfc959.txt
RFC 1157, (1990) A Simple Network Management Protocol (SNMP)
http://www.ietf.org/rfc/rfc1157.txt
RFC 1180, (1991) A TCP / IP Tutorial http://www.ietf.org/rfc/rfc1180.txt
RFC
1319,
(1992)
The
MD2
Message-Digest
Algorithm
MD4
Message-Digest
Algorithm
MD5
Message-Digest
Algorithm
http://www.ietf.org/rfc/rfc1319.txt
RFC
1320,
(1992)
The
http://www.ietf.org/rfc/rfc1320.txt
RFC
1321,
(1992)
The
http://www.ietf.org/rfc/rfc1321.txt
Refs 2-5
Referencias
1630,
(1994)
Universal
Resource
Identifiers
in
WWW
http://www.ietf.org/rfc/rfc1630.txt
RFC
1631,
(1994)
The
IP
Network
Address
Translator
(NAT)
http://www.ietf.org/rfc/rfc1631.txt
RFC
1964,
(1996)
The
Kerberos
Version
GSS-API
Mechanism
http://www.ietf.org/rfc/rfc1964.txt
RFC 2460, (1998) Internet Protocol, Version 6 (IPv6) Specification,
http://www.ietf.org/rfc/rfc2460.txt
RFC
2616,
(1999)
Hypertext
Transfer
Protocol
HTTP/1.1,
http://www.ietf.org/rfc/rfc2616.txt
Rusty E.(1997) Java Network Programming O'Reilly.
Sang-Hoon K., Jaehong P., Young-Geun H., Gibom K., Kyo-Il L. "The Internetbased virtual machining system using CORBA", Integrated Manufacturing Systems, 13/5,
pps 340-344 (2002)
Sanz R., M. Alonso, CORBA for Control Systems, Annual Reviews in Control, No 25,
2001, pp. 169-181
Sanz R., I. Gonzlez, M. Segarra, R. Tagliarini, L. Gomes, G. Hernndez, A.
Zangrilli, (2002) CORBA-based interoperation in substation automation systems
Proc. of the 15th IFAC Congress Barcelona.
Sauter, T., Lobashov, M., Pratl, G. (2002) Lessons learnt from Internet Access to
Fieldbus Gateways, Proc. of the IECON02, Sevilla.
Schmidt, D.C; Kuhns, F., (2000) An Overview of the Real-Time CORBA
Specification IEEE Computer June, pp 56-63.
Referencias
Refs 2-6
A.C.
Privacy
and
Security
on
the
Internet,
http://www.cs.virginia.edu/~acw/cs551-6/Privacy-and-Security-on-the-Internet.doc
Recommendation,
http://www.w3.org/TR/ws-arch
(2004a)
Web
Services
Architecture,
Referencias
Refs 2-7