Red de conocimientos turísticos - Información de alquiler - ¿Qué significa la interoperabilidad del programa?

¿Qué significa la interoperabilidad del programa?

Interoperabilidad de aplicaciones: Principios básicos de interoperabilidad

Editor: Editor de este sitio] Fuente: [] Vistas: [][] Vistas: [] Comentarios: [] Fuente: Grande, Mediana, Pequeña

Enfrentando el desafío de la interoperabilidad

En el nivel más básico, lograr la interoperabilidad entre plataformas de aplicaciones implica el intercambio de datos. Hay tres desafíos principales para el intercambio de datos al implementar proyectos de interoperabilidad .NET y J2EE. Estos desafíos son los siguientes:

? Mapeo de tipos de datos primitivos.

?Tipo de datos inexistente

?Tipo de datos complejo

Nota Los tipos de datos primitivos son parte de un sistema de tipos básico basado en .NET o Java, p.e. Enteros, cadenas, dobles, etc.

Todos los desafíos están relacionados con la compatibilidad de tipos y tienen el potencial de bloquear o impedir la transferencia de datos.

Los tres desafíos se desglosan de la siguiente manera:

? Mapeo de tipos de datos primitivos Quizás sepas que el tipo "cadena" existe tanto en CLR como en Java. Sin embargo, esto no significa que java.lang.String en Java se asigne exactamente a System.String en CLR. Si el ejemplo expone java.lang.String, ¿cómo se asigna al tipo correspondiente en CLR?

?Tipo de datos no existente Holmium_ ¿Cómo mapear un tipo de datos que está disponible en una plataforma pero no en otra? Por ejemplo, se ha demostrado que el tipo de datos System.Collections.Specialized.HybridDictionary existe en CLR, pero no existe un tipo de datos similar en Java. Existe una situación similar en Java; por ejemplo, Java.util.Vector no tiene un tipo de datos análogo en .NET.

?Holmium_ Tipos de datos complejos Su aplicación puede exponer tipos de datos complejos que constan de una gran cantidad de tipos de datos primitivos o tipos de datos primitivos anidados. En este caso, debe exponer el tipo de datos complejo para que otras plataformas puedan utilizarlo.

Considere el ejemplo que se muestra en la Figura 3.1, que integra la capa de presentación ASP.NET y la capa empresarial J2EE. En este ejemplo, el EJB en la capa empresarial J2EE expone un método que luego es llamado por la capa ASP.NET. En una aplicación de producción, es poco probable que los datos devueltos sean una simple cadena de "Hola mundo"; puede contener elementos complejos;

Figura 3.1: Capa de presentación ASP.NET conectada a la capa empresarial J2EE

Afortunadamente, hay muchas formas para que las aplicaciones intercambien diferentes tipos de datos entre plataformas. Capítulo 4 Se describen estas opciones. en detalle en el Capítulo 1 y el Capítulo 5. Sin embargo, antes de establecer una conexión entre las dos plataformas, debe asegurarse de que ambas partes comprendan el tipo de datos específico antes de intentar intercambiar datos, pero también existe una manera de pasar datos que ambas partes pueden usar. La siguiente sección explica cómo implementar esta entrega mediante la serialización.

Uso de la serialización

La serialización es el proceso de codificar un objeto o clase en un estado permanente o transportable. Esto le permite aceptar tipos de datos complejos y luego codificarlos, guardarlos, pasarlos y decodificarlos, posiblemente utilizando un proceso separado para manejar la decodificación.

Hay dos tipos principales de serialización:

?Serialización binaria Holmium_ acepta un tipo de datos y lo convierte en un flujo binario.

?Serialización XML Holmium_ acepta un tipo de datos y lo convierte en una secuencia XML, que luego se puede convertir en un documento XML.

Cualquiera de los tipos de serialización puede aceptar resultados y almacenarlos en la memoria, colocarlos en un archivo o transmitirlos a través de una conexión de red. Por ejemplo, su aplicación podría definir un tipo de datos complejo, CustomerData, que almacena información del cliente (como nombre, dirección, número de teléfono, etc.).

Puede utilizar la serialización para convertir el tipo de datos CustomerData en una secuencia binaria o XML que se puede transferir entre procesos o guardar en un archivo para su uso posterior. Cuando un objeto existe en formato binario o XML, se serializa.

La deserialización es el proceso de convertir un objeto serializado a su forma original. Normalmente, los objetos se deserializan a su tipo original. Por lo tanto, si serializa el tipo de datos CustomerData en una secuencia binaria o documento XML, puede deserializarlo en el tipo de datos CustomerData, pero no puede deserializarlo en el tipo de datos OrderData. Tanto .NET como J2EE utilizan serialización. La serialización también se puede utilizar para intercambiar datos entre aplicaciones en diferentes plataformas pasando objetos serializados a otras plataformas para su deserialización. Las siguientes secciones exploran cómo implementar la serialización binaria y XML en .NET y J2EE.

Comprensión de la serialización binaria

La serialización binaria acepta tipos de datos (u objetos) complejos, los codifica en flujos binarios, los convierte en un estado persistente y los transmite el proceso de luego decodificarlos (. deserializar) en el tipo de datos complejos original.

Tanto Java como .NET incluyen un serializador binario que puede convertir cualquier tipo de datos serializables en un flujo de bytes. La clase que realiza esta serialización es similar en todas las plataformas y es sencilla de implementar.

Para la serialización binaria en .NET y Java, primero debe usar una etiqueta para representar el tipo que desea serializar. En .NET puede utilizar el atributo [Serializable] o implementar la interfaz ISerializable.... En Java, el mismo enfoque consiste en utilizar una clase que implemente java.io.serializable.

Desafortunadamente, el serializador de .NET no puede transmitir objetos CustomerData serializados por el serializador de Java directamente a la versión de .NET, o viceversa. Incluso si es posible hacer esto, todavía existe una dificultad para lograr que una aplicación .NET Framework comprenda los objetos CustomerData generados por el serializador Java. Es posible que el lado .NET no tenga un tipo de datos CustomerData equivalente para aceptar un objeto deserializado CustomerData del lado Java. Puede utilizar un serializador binario para convertir CustomerData

siempre que el objeto se serialice y deserialice utilizando el mismo formateador.