Como chegar até a velocidade em SOA? [fechadas]
-
02-07-2019 - |
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!
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.
(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