2008-09-24 13 views
9

Me han dado la tarea de sentar las bases de una SOA para mi cliente. El objetivo es abrir varios procesos de forma independiente para el cliente final y también para que los datos estén disponibles sin conexión, p. para representantes que visitan clientes.¿Cómo ponerse al día con SOA?

Tengo una amplia experiencia con J2EE (Websphere) y servicios web, pero agradecería consejos sobre cómo crear una SOA de este tipo.

¿Dónde están las trampas? ¿Qué hay de la seguridad? ¿Cuán finamente granulado deberían ser los servicios? etc.

Los enlaces a tutoriales y recomendaciones de libros también serían útiles.

Gracias!

Respuesta

6

trampas

  • de versiones/compatibilidad hacia atrás: se pone muy difícil cambiar un contrato una vez que tenga un montón de clientes. He visto muchos sitios versión de las API mediante la introducción de la versión en la URL

Granularidad

  • Cada servicio debe ser reasonly autónomos (no esperar que la gente a hacer 3 llamadas antes de que obtener lo que necesitan)

Independencia de la plataforma

  • tratar de dar más de una manera de acceder a sus APIs (WS, JSON, REST ...)
1

Obtener un (Enterprise Service Bus) ESB: Mulesource es una buena opción (Opensource, maduro, sin embargo, filo sangriento) . Una vez que lo entiendas, entenderás SOA.

4

Las personas no pueden ponerse de acuerdo sobre lo que realmente significa SOA.

http://martinfowler.com/bliki/ServiceOrientedAmbiguity.html

(aunque el consenso puede haber crecido desde que se escribió)

Sugiero interrogar a su cliente para saber exactamente lo que quieren decir - en todo caso. A continuación, proporcióneles algo que realmente proporcione el valor comercial, mientras marca cualquier casilla SOA que pueda coincidir con ese esfuerzo.

+0

es una palabra de moda. ¡Simplemente tienen que tener SOA, preferiblemente en verde! – paul

3

Encontré este IBM Redbook (#sg246303) que es una buena introducción a los principios básicos de SOA.

+0

¡Buen enlace, gracias! –

1

El objetivo es abrir varios procesos en un cliente final independiente camino y también para que los datos disponibles en línea por ejemplo para los representantes que visitan clientes.

La segunda mitad de eso no es realmente un tema SOA, es más un problema de replicación para dispositivos móviles.Me quedaría lejos, muy lejos de tratar de implementar una palabra de moda y centrarme en los problemas que está afirmando. Los servicios web son una buena forma de abrir el proceso a formas independientes del cliente.

+0

Tienes razón. Es una solución impulsada por palabras de moda. Agregué el bit de replicación porque supongo que se accedería a los datos replicados a través de los servicios, pero ¿cómo optimizar todo? – paul

2

Como dijo Alan, me gustaría empezar la lectura de la Enterprise Integration Patterns book. Hay varias formas de implementarlos, ya sea utilizando un sistema de mensajería directamente como JMS o utilizando proyectos de código abierto como Apache Camel, por ejemplo, consulte pattern catalogue.

También me gustaría entender cómo crear buenos servicios RESTful utilizando JAX-RS con Jersey como una forma sencilla de exponer los recursos para sus sistemas a cualquier persona en la web desde cualquier idioma/plataforma fácilmente sin caer en el SOAP/WS * deathstar :)