Pergunta

Eu tenho dado a tarefa de lançar as bases de um SOA para o meu cliente. O objetivo é abrir vários processos de forma independente cliente final e também para tornar os dados disponíveis offline por exemplo para os representantes visitando clientes.

Eu tenho uma vasta experiência com J2EE (Websphere) e serviços web, mas eu gostaria de receber conselhos sobre como construir tal SOA.

Onde estão as armadilhas? E a segurança? Como finamente granulado deve ser serviços? etc.

Os links para tutoriais e recomendações do livro também seria útil.

Obrigado!

Foi útil?

Solução

Armadilhas

  • Versioning / compatibilidade com versões anteriores: ele fica muito difícil mudar um contrato uma vez que você tem um monte de clientes. Tenho visto muitos sites versão das APIs, introduzindo a versão no URL

Granularity

  • Cada serviço deve ser reasonly auto-suficiente (não esperar que as pessoas a fazer 3 chamadas antes que eles obtêm o que necessitam)

Plataforma Independência

  • Tente dar mais do que uma maneira de acessar seus APIs (WS, JSON, descanso ...)

Outras dicas

As pessoas não podem concordar com o que SOA realmente significa.

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

(embora consenso pode ter crescido desde que foi escrito)

Eu sugiro interrogando seu cliente para descobrir exatamente o que eles querem dizer - se alguma coisa. Em seguida, dar-lhes algo que realmente fornece o valor do negócio , enquanto marcando as caixas de SOA que pode coincidir com esse esforço.

Pode me chamar de SOA-cético. lamento de Fowler ainda parece em direito.

gostaria de focar o problema mais geral: o seu cliente tem 2 ou mais aplicações que têm de colaborar juntos. Olhe para padrões de integração da velha escola.

 imagem EIP
(fonte: amazon.com )

Encontrei este IBM Redbook (# sg246303 ) o que é uma boa introdução aos conceitos básicos de SOA.

Como Alan disse, eu começar a ler as Enterprise Integration Patterns reservar . Há uma série de maneiras de implementá-las, quer usando um sistema de mensagens diretamente, como JMS ou usando projetos de código aberto como Apache Camel , por exemplo, ver o padrão catálogo .

Eu também olhar para a compreensão de como construir bons serviços RESTful usando JAX-RS com Jersey como uma maneira simples para expor recursos para seus sistemas para qualquer pessoa na web a partir de qualquer linguagem / plataforma facilmente sem cair na SOAP / WS- * deathstar:)

Obter um ESB (Enterprise Service Bus): Mulesource é uma boa escolha (Opensource, maduro, ainda bleeding edge). Depois de entender isso, você vai entender SOA.

O objetivo é abrir várias processa de forma independente para o cliente final caminho e também para tornar os dados disponíveis off-line, por exemplo, para os representantes que visitam clientes.

A segunda metade que não é realmente um tópico SOA, é mais de uma replicação para o problema de dispositivos móveis. Eu ficaria muito, muito longe de tentar implementar um chavão e foco sobre os problemas que você está dizendo. Os serviços Web são boa maneira de abrir processo para formas independentes cliente.

Até agora o melhor livro que encontrei é SOA Compass também disponível em Amazon

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top