SOA - Service-oriented architecture

Este livro ai e em português

Olá

O livro que indiquei é muito recente e ainda não tem tradução em português.

Em português recomendo para iniciantes o livro SOA e Web Services em Java do Cleuton Sampaio. Serve como introdução a web services e SOA. Nem precisa ler o livro todo porque tem uma parte em que ele aborda o AXIS 1 que é perda de tempo tentar aprender.

[]s
Luca

[quote=Luca]Olá

Reli minha mensagem e não vi nada que deixasse transparecer esta igualdade. Inclusive o livro que indiquei chama-se SOA usando Java Web Services. O livro trata da plataforma Java. Mas se poderia fazer SOA usando Axis 2, Apache CXF (não usem mais o XFire em projetos novos), Apache XML-RPC, JSON, POX, CSV, etc.

(…)

Web services são serviços sendo acessados através de protocolo web (HTTP). [/quote]
[/quote]
Veja http://www.infoq.com/news/2007/07/soa-ws-relation para uma referencia do que eu tou falando.
Ok que web services é sobre HTTP. Não estou falando deles. Web Services é um capitulo em si mesmo. A pergunta era SOA que não use webservices, ou seja, que não use HTTP. Tlv que nem use XML , JSON , etc…
Existem mecanismo muito semelhantes que poderiamos usar para uma arqutiectura orientada a serviços como JMX ou JINI. Já que eles separam o protocolo de transporte. Então, em tese, O JBoss, que é baseado apenas em JMX seria um tipo de SOA. A dúvida é se isso se caracteriza como SOA, ou não e que autores/livro(s) explicariam essa classificação. Se é que algum o faz…

Resumindo: tem algum livro que seja apenas sobre SOA e não refira webservices nem nenhum tecnologia em particular ? Que defina o que SOA é ? Ou temos que concluir que SOA é apenas um buzzword ?

Olá

Sérgio

SOA é conseqüência de anos e anos de EAI. É evidente que SOA deve usar o que tradicionalmente se usa para EAI.

Você pode achar milhares de links no google com SOA usando web services ou as alternativas como JSON ou POX/REST. Pode ser que você ache também algum saudosista fazendo SOA com CORBA ou RMI. Será alguém que terá imensas dificuldades de integrar empresas diferentes, cada uma com seu firewall e sua política de segurança particular. Será que tem valor um livro novo para isto?

Acredito que você tenha trocado de sigla e citado JMX por engano pois JMX não se presta para isto. Uma aplicação SOA pode e deve usar JMX. Mas a infraestrutura será a dos conectores e adapters. Hoje em dia se usa RMI como conector remoto JMX mas já se pode baixar e usar JMX via SOAP.

Tentando advinhar, talvez você estivesse pensando em JMS quando escreveu JMX. Sempre gostei de JMS e acho uma das melhores coisas do Java. Há diversos servidores de mensagens e ESBs muito bons e de graça. Há o Apache Camel que ajuda a criar uma arquitetura de mensagens coerentes com o livro de patterns do Gregor Hohpe. E como disse antes, se pode também usar JMS em tunel HTTP.

Na área de TI sempre existiram buzzwords discutindo assuntos novos ou novas visões de assuntos antigos. Sempre existiu a necessidade por SOA e ainda assistiremos o surgimento de novas siglas nomeando coisas parecidas mas não exatamente iguais. No meu caso, meu maior interesse é por EDA que muita gente confunde como substituto de SOA mas na prática é apenas um complemento para determinados ambientes.

[]s
Luca

Não, era JMX mesmo : Java Management Extensions.
Concluo então do vc falou que JBoss não é SOA.

Obrigado pelos esclarecimentos

Olá

Certo, o JBoss usa JMX para acessar seus serviços internos. Não tem nenhuma utilidade para integrar aplicações diferentes.

Mas se pode escrever uma aplicação EAI baseada em serviços com arquitetura SOA que use o JBoss e também o seu conceito de deployment de serviços. Alongando o raciocínio, se pode obter um sistema em que as aplicações do ambiente SOA usem JMX e o jmx-console do JBoss no seu monitoramento e gerenciamento.

O JBoss também se presta como servidor de mensagens e isto sim tem mais a ver com uma arquitetura que integre serviços.

[]s
Luca

[quote=Luca]Olá

Certo, o JBoss usa JMX para acessar seus serviços internos. Não tem nenhuma utilidade para integrar aplicações diferentes.
[/quote]

É mais que isso. JBoss usa JMX para interligar os serviços Os serviços são MBeans , portanto todos têm uma interface e JMX estabelece mecanismos de acessar essas interfaces de qualquer lugar, até via HTTP.
Ou seja. o JBoss é uma grande ecosistema de serviços e a sua arquitetura é orientada a serviços. Parece que apenas não é SOA porque esses serviços não são independentes da implementação.

O serviço de mensagens é independente do JBoss e pode ser usado standalone.

Olá

[quote=sergiotaborda]É mais que isso. JBoss usa JMX para interligar os serviços Os serviços são MBeans , portanto todos têm uma interface e JMX estabelece mecanismos de acessar essas interfaces de qualquer lugar, até via HTTP.
Ou seja. o JBoss é uma grande ecosistema de serviços e a sua arquitetura é orientada a serviços. [/quote]

Por mais fã que eu seja de JMX, acho que você está exagerando um pouco. Nem o Juha Lindfors que criou a arquitetura do JBoss baseado em JMX e grande conhecedor de JMX, citaria o JBoss como exemplo de SOA.

Aliás, o grande barato do livro dele é justamente explicar o sistema d proxy remoto do JMX. Na época em que foi escrito o livro, a Sun ainda não havia lançado o JMX remote e o Juha criou tudo na raça.

Para mim JMX é uma jóia esquecida por grande parte dos desenvolvedores Java. Mas sua aplicação é para gerenciamento e monitoramento.

[]s
Luca

Acabei ganhando um grande conhecimento abstrato neste tópico pela resposta de dois grandes conhecedores nas arquiteturas aqui citadas.
Mais como preciso aprender SOA e suas funcionalidades.
Gostaria que Luca, Sergio e os demais que entendem de SOA, me ajudem com os termos em negritos que originou a minha duvida e a criação do tópico.

Estou aqui lendo sobre SOA e vou comprar o livro indicado pelo Luca.

Luca, você acredita que aprender SOA a fundo é uma tarefa do gerente de tecnologia do projeto / empresa ou todos os desenvolvedores precisam saber a fundo de SOA?

Obrigado pela confiança, mas ainda estou tentando saber o que SOA é :lol: …

Olá

[quote=afsrj]Estou aqui lendo sobre SOA e vou comprar o livro indicado pelo Luca.

Luca, você acredita que aprender SOA a fundo é uma tarefa do gerente de tecnologia do projeto / empresa ou todos os desenvolvedores precisam saber a fundo de SOA?[/quote]

Este livro é bom e como eu disse, chama a atenção sobre como é difícil toda esta questão.

Acho que uma empresa grande que tenha necessidade de integrar suas aplicações, antes de iniciar um projeto deste tipo deve estudar bem o assunto. Alguém na empresa, de preferência alguém que conheça bem o negócio da empresa, deve estudar como é possível integrar em termos de arquitetura. Deve entender direitinho quais soluções adotar e o custo de cada alternativa.

Desconfio que as empresas decidem integrar sem ter noção da dificuldade. Assistem um Hello World na palestra de algum evento e acham que é Next, Next, Finish.

O mais importante na questão de SOA, EAI ou que nome tenha, é que a necessidade seja a mãe das modificações e não apenas um devaneio gerencial.

Sobre seus negritos:

  • Entenda como serviço tudo que um sistema pode fazer por outro. Pode ser uma coisa simples como informar o salário de um funcionário como uma transação complexa que exija atomicidade.

  • Uma arquitetura baseada em serviços exige módulos e componentes coesos e de acoplamento mais fraco possível. Só este item já é violado em um monte de aplicações em muitas empresas. Nem adianta tentar fazer SOA em uma empresa assim porque antes exigiria alterar os serviços que já estão funcionando.

  • As linguagens e as plataformas usadas TEM a ver com as decisões a serem tomadas em termos de arquitetura e modo de disponibilizar os serviços. Não basta usar XML, é preciso passar dados do jeito que a outra plataforma entenda.

[]s
Luca

Uma coisa que estava lendo bem bacana, para o problema de firewalls apresentado,

[quote=Luca]

SOA Using Java Web Services

Este livro tem o grande mérito de chamar a atenção sobre como é complexo usar web services com Java (JAX-WS 2.x, JAXB 2.x, WS-metadata, etc.). O livro apresenta também a proposta de um framework como tentativa de tornar um pouco mais fácil usar toda parafernália. Só que eu ainda não cheguei nos capítulos do framework.

(…)

[]s
Luca[/quote]

Luca, sabe dizer se tem a versão traduzida deste livro que você indicou? Eu procurei no google e não encontrei ainda.

Li um que gostei muito, escrito por um brasileiro, SOA e WEB SERVICES EM JAVA de Cleuton Sampaio.

Ele usa uma linguagem muito fácil de entender. Me ajudou muito na implementação de Web Services aqui na empresa. Mas estou com a sensação de que falta algo.
Gostaria de me especializar mais nesta arquitetura, pois gostei muito de trabalhar com ela.

Testei as API’s APACHE AXIS 1.3, 1.4 e 2.0; XFire CODEHAUS 1.1 e um pouquinho do JAX-WS (pois preciso estudar mais de ANNOTATION ainda).

Olá

Como já respondi antes:

[quote=Luca]O livro que indiquei é muito recente e ainda não tem tradução em português.

Em português recomendo para iniciantes o livro SOA e Web Services em Java do Cleuton Sampaio. Serve como introdução a web services e SOA. Nem precisa ler o livro todo porque tem uma parte em que ele aborda o AXIS 1 que é perda de tempo tentar aprender.[/quote]

[]s
Luca

Só dando uma de “oportunista” rapidinho… rsrsr

alguém conhece o livro da Manning - “Understanding enterprise SOA” para dar uma opinião? Se é bom ou não, se é mais gerencial que técnico, etc… (Não queria abrir um tópico somente para isso…rs)

[quote=Luca]O livro que indiquei é muito recente e ainda não tem tradução em português.

Em português recomendo para iniciantes o livro SOA e Web Services em Java do Cleuton Sampaio. Serve como introdução a web services e SOA. Nem precisa ler o livro todo porque tem uma parte em que ele aborda o AXIS 1 que é perda de tempo tentar aprender.[/quote]

Lucas acabei de comprar esse livro, juro que não folheei. Confiei na sua opinião.
O livro é pequeno, são um pouco mais de 150 páginas, paguei 37 reais na siciliano, não aguentaria esperar chegar.

(sei que você vai me recomendar ler todo o livro, mais já de ante-mão te deixo por “dentro” do meu curto prazo)
Pode me da uma dica, quais os capítulos devo ignorar neste instante( para entender sobre SOA até a entrevista ) como citado sobre o AXIS 1.
E depois, eu JURO ler o livro por inteiro.

[]'s Luca!

Olá Sérgio,

gostei desse livro do Mark Little (Manager do projeto JBoss ESB)

Enterprise Service Oriented Architectures

ele fala de conceitos como BPEL, ESBs, desenvolvimento orientado a componentes, etc, etc.

Também tem esse debate no TSS. Muito bom…

Abraço.

Olá

Leia pelo menos até a página 84, capítulos 1, 2, 3 e 4 e depois leia o capítulo 7 sobre SOA que é curtinho. As páginas 20 a 24 que fala de acoplamento e coesão são muito importantes. Se fizer isto terá um embasamento teórico mínimo para mais tarde prosseguir estudando.

Importante: não se preocupe em entender detalhes de JAX-RPC porque é uma droga e ninguém com um mínino de sanidade usa isto. Apenas saiba o que é e qual papel faz na arquitetura.

Sugiro também que use o meu material do ConexãoJava do ano passado para complementar este livro. Lá tem exemplos de arquivos SOAP, WSDL, etc.

[]s
Luca

errr… acho que o resto do seu post fugiu :stuck_out_tongue: