Está en la página 1de 19

XML Schema para SOA

Ing. Ivonne Maldonado

XML Schema para SOA


XML es el lenguaje ocial de SOA.

Utilizado para el envo de mensajes, conguracin de la aplicacin,


implementacin, descubrimiento, polticas de ejecucin y para
representar lenguajes de ejecucin como BPEL que son muy importantes
dentro de SOA.
Las interfaces de los servicios web son representadas con XML (WSDL).

La exibilidad de XML y su expresividad lo hacen perfecto para disear


modelos de datos para SOA ya que brinda independencia de
tecnologas, marcas, lenguajes, etc.
Segn los expertos, los nuevos dispositivos de comunicacin (celulares,
SMS, FB, email, Whatsapp, etc) no cambia solamente como nos
comunicamos sino tambin que comunicamos.
El formato del mensaje determina tambin el contenido del mensaje.
La principal ventaja de XML en su exibilidad.

XML Schema para SOA


Muchas empresas sufren de los problemas del aislamiento de procesos.

Cada una de estas aplicaciones est atada a un modelo de datos y cada


uno debe ser actualizado cuando existe un cambio.
Son estas empresas las que estn decidiendo la implementacin de SOA.
XML ofrece un modelo de datos que con una vista contextual, puede ser
transformada y puede interactuar fcilmente a travs de diferentes
servicios.
Al desarrollar los modelos de datos con XML Schema es recomendable
mantener las cosas lo ms simple posible.
Esto maximiza la interoperabilidad y aprovecha la exibilidad y apertura de
XML.
Las cosas complejas, nos atar a herramientas especcas o a ciertas
marcas lo cul escapa del objetivo de SOA.

La orientacin a objetos no tiene mucho espacio dentro de SOA.


Debemos evitar encapsular todo en un modelo.

Diseando un esquema para SOA


XML Schema es muy poderoso y nos ayuda a representar modelo de datos
en lugar de un modelo de objetos (no orientado a objetos).
A pesar de que XML Schemas permiten crear modelos de datos similares a
objetos (enumeration e incluso polimorsmo) se debe mantener los
servicios lo ms generalizados posible para permitir la comunicacin entre
lenguajes.
Se tiene que saber elegir el diseo apropiado para asegurar que el
modelo de datos est estructurado de una manera que represente las
necesidades y que mantenga la exibilidad en SOA.

Algunos patrones de denicin aceptados y las mejores prcticas para


Schema que mejor se adaptan al contexto de SOA son:
Russian Doll

Salami Slice
Venetian Blind
Garden of Eden
Chameleon

Estos patrones se diferencian entre s, de la manera en que se denen los


elementos (globales o locales).

Diseando un esquema para SOA


Schema permite denir los bloques bsicos para denir las entidades:
tipos simples,
tipos compuestos,
elementos y
atributos.

Existen muchas elecciones al denir tipos locales o globales, namespace y


ms.
Hacer elecciones apresuradas podra destruir la solucin SOA limitando la
exibilidad.
Sin un cuidadoso diseo podramos descubrir muy tarde que los servicios
en la solucin estn muy atados entre ellos, lo cual es perjudicial para SOA.
En estos casos un simple cambio podra forzar a tener que redisear
servicios enteros.

Elementos o tipos globales y locales

Globales son hijos del nodo schema.

Locales estn anidados dentro de otro elemento o tipo. No pueden ser


usados en otra parte.

Russian doll (Matryoshka)

Russian doll (Matryoshka)


El patrn de diseo sigue esta misma idea.

Consiste en crear un solo elemento raz global que contiene todos lo tipos
que lo componen.
Todos las dems declaraciones de elementos son anidadas dentro del
elemento raz (locales).
Solo el elemento raz tiene acceso al espacio de nombre (namespace)
global.

Caractersticas
Un solo elemento global.

Todos lo tipos son locales (anidados dentro del raz)


Soporta esquemas diseados en un solo archivo.

Alta cohesin (la relacin de sus elementos), mnima atadura (Coupling.


dependencia de otros modelos).
Alto encapsulamiento (sus tipos no estn expuestos).
El patrn ms fcil de leer y escribir.
No se debe usar este patrn cuando se desea reusar los tipos

Observaciones
Tiene un solo elemento book .

Los tipos para crear un elemento book estn anidados.


Los elementos y tipos no pueden ser referenciados. El elemento authors
redene el elemento author. Lo cual podra causar problemas de
mantenimiento.
El espacio de nombres es local.

Ventajas
Ideal para Schemas simples, claridad leer y escribir (no referencias, no
mezclas, las deniciones estn donde son utilizadas).
Es menos exible que otros lo que lo hace predecible.
Facilidad de entender las intenciones del autor.
Es auto-contenido lo que lo hace desacoplado de otros schemas.

Desventajas
No adecuado para schemas grandes.

Los tipos y elementos no pueden ser reutilizados.

Salami slice
Representa lo contrario que el Russian doll

Todos los elementos se declaran como globales.


Todos los tipos se declaran locales.
Todos los elementos se ubican en el namespace global, esto permite que
el schema sea utilizado por otros schemas.
Cada elemento viene a ser una denicin que puede ser combinada con
otras.
Es completamente abierto a todas las posibles combinaciones, se los
puede organizar de cualquier manera.

Este patrn de diseo ofrece la mayor posibilidad de reutilizacin de todos


los patrones.

Caractersticas
Todos los elementos son globales

Todos los elementos son denidos en el namespace global


Todos los tipos son locales

Las declaraciones de los elementos nunca se anidan


Las declaraciones de los elementos son reutilizables

Es complicado determinar cul es el elemento raz.

Ventajas
Reutilizacin de elementos (globales).

Todo est bien organizado.

Desventajas
Altamente acoplados debido a que si se cambia un elemento esto
afectar a todos los elementos que lo utilicen.
Los Schemas con este patrn suelen contener mucho texto.
Si se utiliza este Schema para disear los servicios web, estos tambin
estarn altamente acoplados.

Venetian blind
Ofrece lo mejor de los anteriores patrones de diseo.

Es una extensin del Russian doll. Contiene un solo elementos raz.


Permite la reutilizacin de todos lo tipos y el elemento raz global.

Se dene un elemento raz global y se lo compone con tipos denidos


externamente. Esto maximiza la reutilizacin.

Caractersticas
Tiene un solo elemento raz

Mezcla declaraciones locales y globales. En Russian doll todos los tipos son
locales y en Salami slice todos los tipos son globales.
Alta cohesin y alto acoplamiento.

Maximiza la reutilizacin (tipos y raz pueden ser recombinados).


Bajo encapsulamiento (los tipos estn expuestos).

Permite utilizar varios archivos para denir un schema.


Suelen ser archivos largos. Se permite tener mejor control de cada aspecto
individual de los elementos.

Se debe elegir Venetian blind cuando se desea maximizar la reutilizacin y


exibilidad y tomar ventaja de la exposicin del namespace.

Garden of Eden
Combina Salami slice con Venetian blind

Se debe denir todos los elementos y tipos en el namespace global y


referenciar los elementos cuando sea necesario.
Ofrece la mayor reutilizacin y exibilidad de todos los patrones de diseo.
Se puede reutilizar elementos y tipos libremente.
No existe encapsulacin.
Muchos elementos raz potenciales (globales).
Documentos XML son difciles de leer.
No se tiene claras las intenciones del autor (no se sabe cual es el elemento
raz).

También podría gustarte