SOA e BPM no brasil engatinham vagarosamente ainda

Eu não tenho dados oficiais pois não sei se existem pesquisas no nosso país sérias sobre tecnologia. O Gartner Group sequer deve nos considerar dignos de sua atenção mas minha visão do mercado SOA no país é que este ainda engatinha vagarosamente. Pouca gente sequer conhece sobre SOA e a maioria dos que vejo ou converso por ai tem noções equivocadas sobre serviços.
Muita gente acha que SOA é um ESB plugado com muitos webservices e mais nada, sendo que nem um nem outro é imprescindivel para SOA. No mercado de trabalho vejo muita proposta para vagas em Java, JSP, Struts, JSF e banco oracle alem de noções de orientação a objeto. O que obviamente já demonstra que não se está investindo na construção de serviços e sim na manutenção e construçaõ de sistemas monoliticos sem visão de negócio, escopo limitadissimo e funcionalidades que dificilmente serão reaproveitadas.

O que podemos fazer para mudar esse quadro? Começarmos antes de mais nada a estudar, literatura conceituada de fornecedores e mesmo independentes como Thomas Erl e companhia que alias tem um belo catalogo de design patterns que fariam passar vergonha qualquer ‘entendidinho’ em SOA. Com base nesse arcabouço teórico estimular o uso dos principios e sua aplicação, sem isso não iremos sair dessa inércia e a continuar com os mesmos problemas de sempre nesses sistemas intermináveis e que agregam pouco valor ao negócio. Não importa quantos design patterns java ee voce implemente, se eles não agregam valor ao negócio eles não servem para nada, jogue-os fora e comece do zero.

Estou postando aqui pois é em Java que temos as melhores ferramentas SOA BPM existentes e vejo pouca coisa de movimentação da comunidade em busca da orientação a serviços atualmente no Brasil.

SOA foi a moda que mais me interessou até agora… Calma, antes de me bater, deixa eu te explicar porque chamo de moda…

Sempre que vejo alguma letrinha na TI e vejo muita gente falando nela, fico meio que assustado por achar que estou anos luz atrás de outros profissionais em Tecnologia, com SOA não foi diferente… SOA moda pelo simples motivo que você falou… tem um monte de gente dizendo que sabe SOA e no máximo sabe ESB ou fazer WS e jura que manja de SOA…

Um dia, muito aturdido quanto ao assunto e botando a cabeça pra funcionar de verdade me esforcei pra ler um material de SOA em inglês… Como meu inglês é bem básico demorei um tempinho pra absorver a idéia central do material e percebi que o que você falou é uma realidade, metade das pessoas que dizem que sabem SOA, não sabem nem metade do que SOA significa…

A Carência de materiais de estudos e profissionais qualificados na área, de fato desacelera o processo de adoção de uma determinada tecnologia… Mas vai ser assim em qualquer lugar cara, infelizmente não posso largar o que to fazendo agora :frowning: pra estudar algo que dificilmente colocarei em prática tão cedo em minha região… Outro dia conversando com um gerente, tava tentando explicar TDD pra ele, ele disse na minha cara que isso era “perda de tempo”… Enfim :frowning:

[quote=Sparcx86]Eu não tenho dados oficiais pois não sei se existem pesquisas no nosso país sérias sobre tecnologia. O Gartner Group sequer deve nos considerar dignos de sua atenção mas minha visão do mercado SOA no país é que este ainda engatinha vagarosamente. Pouca gente sequer conhece sobre SOA e a maioria dos que vejo ou converso por ai tem noções equivocadas sobre serviços.
Muita gente acha que SOA é um ESB plugado com muitos webservices e mais nada, sendo que nem um nem outro é imprescindivel para SOA. No mercado de trabalho vejo muita proposta para vagas em Java, JSP, Struts, JSF e banco oracle alem de noções de orientação a objeto. O que obviamente já demonstra que não se está investindo na construção de serviços e sim na manutenção e construçaõ de sistemas monoliticos sem visão de negócio, escopo limitadissimo e funcionalidades que dificilmente serão reaproveitadas.

O que podemos fazer para mudar esse quadro? Começarmos antes de mais nada a estudar, literatura conceituada de fornecedores e mesmo independentes como Thomas Erl e companhia que alias tem um belo catalogo de design patterns que fariam passar vergonha qualquer ‘entendidinho’ em SOA. Com base nesse arcabouço teórico estimular o uso dos principios e sua aplicação, sem isso não iremos sair dessa inércia e a continuar com os mesmos problemas de sempre nesses sistemas intermináveis e que agregam pouco valor ao negócio. Não importa quantos design patterns java ee voce implemente, se eles não agregam valor ao negócio eles não servem para nada, jogue-os fora e comece do zero.

Estou postando aqui pois é em Java que temos as melhores ferramentas SOA BPM existentes e vejo pouca coisa de movimentação da comunidade em busca da orientação a serviços atualmente no Brasil.[/quote]

Pois é, a coisa anda meio complicada, mesmo. Como alguns aqui do fórum devem saber, eu sou consultor SOA, e a sua visão do mercado não é nem um pouco equivocada, ao contrário…

No entanto, a falha da adoção de SOA no mercado brasileiro está nas próprias pessoas responsáveis pela implementação, já que, como você mesmo disse, muitos pensam que SOA é composto de ESB´s e web services (aliás, já fui obrigado a engolir, de uma pessoa que teve péssima experiência com a arquitetura, que SOA nada mais é do que um engodo feito para vender produtos, quando não podia estar mais longe da intenção).

Alguns vendors, aqui no Brasil, fazem questão de promover SOA para vender seus produtos. Eu mesmo tive uma péssima experiência com uma consultoria parceira da Oracle (obviamente, não vou revelar o nome dessa consultoria aqui), onde o próprio vendedor se encarregou de “empurrar” os produtos pela goela do cliente. Não tínhamos necessidade de NENHUM desses produtos, aliás, o uso dos mesmos, por ser empurrado, acabou prejudicando a arquitetura, atrasando o projeto e me forçando a pedir demissão da consultoria, pois não aceitava mais a situação como um todo.

Hoje, trabalho em uma empresa que trabalha estas questões com mais responsabilidade, e nos esforçamos ao máximo para promover o reuso dos serviços, além de promover a governança SOA com nossos clientes. É direito do cliente usar uma tecnologia para seu benefício, não para fazer com que ele gaste rios de dinheiro com ferramentas que não vão trazer o ROI esperado.

No entanto, a impressão que tenho tido, até agora, é que praticamente todas as empresas que vendem SOA (especialmente aquelas gigantes de três letrinhas) não têm essa responsabilidade, o que acaba atrasando a adoção da tecnologia.

O outro lado da moeda é que não vejo essa situação somente no Brasil. Já trabalhei com este tipo de arquitetura em projetos fora do Brasil e devo dizer que as implementações de serviços e SOA são iguais às daqui. Tendo a pensar que, dada a complexidade da tecnologia, as pessoas tendem a não conseguir implementar de maneira ideal SOA. Aliás, SOA é tão complicado que mesmo as pessoas que parecem que conhecem muito bem a arquitetura, no final das contas, parecem nunca ter implementado uma de fato. Recentemente, assistí a uma palestra da Anne Thomas, do Gartner Group, em Berlin (no SOA Symposium, pra ser específico). A impressão que ela me deixou é de que faz, pelo menos, alguns anos que ela não senta na frente de um computador para escrever uma única linha de código. O que ela disse, na palestra, está beeem distante de ser uma realidade.

Assim, só para concluir… SOA é uma fria? Não, não é. Só que deve ser adotada com seriedade, porque muita gente aproveitou o hype para embarcar na onda. Muitos clientes são ignorantes do fato de que (como o próprio Thomas Erl disse) uma implementação inicial de SOA costuma levar 30% a mais do que uma implementação de arquitetura convencional. O ROI prometido por SOA é dado a longo prazo; quem tiver paciência, verá.

[]´s

Eu idem!

Desisti de estudar sobre o assunto por perceber rapidamente que o mercado não estava entendendo realmente o conceito. Logo a adoção seria difícil de acontecer. A gota d’àgua foi quando participei de uma entrevista e puxaram o assunto sobre SOA. Não era pré-requisito para a vaga mas como o assunto apareceu comecei a explorar o entendimento que havia no local. A conclusão foi exatamente esta que vcs descreveram.

flws

Aí o buraco é ainda mais embaixo… Já é quase um divisor de águas então, tamanha as mudanças de filosofia aplicadas…

Abs []

[quote=adriano_si]
A Carência de materiais de estudos e profissionais qualificados na área, de fato desacelera o processo de adoção de uma determinada tecnologia… Mas vai ser assim em qualquer lugar cara, infelizmente não posso largar o que to fazendo agora :frowning: pra estudar algo que dificilmente colocarei em prática tão cedo em minha região… Outro dia conversando com um gerente, tava tentando explicar TDD pra ele, ele disse na minha cara que isso era “perda de tempo”… Enfim :frowning: [/quote]

Aparentemente, algumas pessoas também pensam que SOA é só pra grandes empresas - no que estão erradas.

[]´s

Aí o buraco é ainda mais embaixo… Já é quase um divisor de águas então, tamanha as mudanças de filosofia aplicadas…

Abs [][/quote]

Não acho que se trata de mudanças de filosofia; seria mais o caso de dizer que SOA deveria ter sempre a tutela de pessoas que não são nem gerentes nem peões de fábrica, ou seja, um nível mais tático da coisa. O irônico é que a governança SOA serve pra, justamente, dizer como a coisa deve ser feita, mas nunca ví uma única empresa sequer disposta a implementar SOA com governança.

[]´s

fala asaudte…

realmente não sei nem por onde começar… mas não é o fato de serem pequenas empresas… o fato é conseguir vender a idéia ao empresariado aqui…

Talvez somente umas de nossas redes de supermercados grandes… e quando digo talvez, é talvez mesmo, porque até isso acho inviável… temos que suar pra vender Sistemas WEB convencionais, imagina então aplicar uma nova “Forma” de Disponibilizar e compartilhar informações…

A menos que me digas que posso implantar sem problemas SOA em meus projetos pessoais para criação de Sistemas de Escolas e Eventos… se for possível, vou começar a pensar com carinho no estudo da mesma já pra 2011…

Abs []

Bom amigos, como muitos sabem, fudei uma startup de treinamento de SOA - SOA|EXPERT e anunciei aos amigos aqui no GUJ, pelo simples motivo que não faz sentido criarmos mais softwares de forma monolítica.

O que é SOA ? Simplesmente é uma maneira de você escrever sua API para ser utilizada por plataformas heterogêneas ou sua API usar “recursos”, de outras plataformas.

Tão simples quanto isso e o maior Case de SOA hoje é : Google Maps. :slight_smile: Quantas aplicações fazem uso dessa API, de diversas plataformas ?

Projetar sua API para outras plataformas consumirem, exige um pouco de planejamento e algumas técnicas.

Estamos discutindo de forma mais aprofundada aqui algumas diferenças em cima de Request-Driven, lembrando que ainda existe Event-Driven: http://www.tectura.com.br/topics/rest_vs_soap_para_plataformas_baseadas_em_servicos ( fórum dos samurais )

Quanto aos produtos, eles são a implementação de Patterns. Qual é a regra para adoção de um pattern mesmo ?
Resposta: - MOTIVAÇÃO !

Sem motivação, não existe a necessidade.

Infelizmente as empresas primeiro adquirem os patterns e depois tentam encaixar seus problemas. Foi o que aconteceu no projeto que o Alê citou, o player faz a venda e obriga o partner a aderir uma arquitetura “pré-moldada”, que visa a utilização e compra de novos produtos.

Quem tiver curiosidade e for acessar nossa Formação Consultor SOA - http://www.soaexpert.com.br/cursos/fsoa - Verá que citei algumas motivações para utilização dos produtos, como tradução de protocolos para um ESB.

Lembrando que sempre começamos do mais simples, para o mais complexo, logo devemos optar sempre que possível, por uma arquitetura mais simples como Restful.

Fazendo um jabazinho aqui, no curso o pessoal aprende Restfulie, Jersey, Coreweb que é pra forçar bem o design em cima de http puramente, usando técnicas de DDD e BDD para design :slight_smile:

[quote=adriano_si]fala asaudte…

realmente não sei nem por onde começar… mas não é o fato de serem pequenas empresas… o fato é conseguir vender a idéia ao empresariado aqui…

Talvez somente umas de nossas redes de supermercados grandes… e quando digo talvez, é talvez mesmo, porque até isso acho inviável… temos que suar pra vender Sistemas WEB convencionais, imagina então aplicar uma nova “Forma” de Disponibilizar e compartilhar informações…

A menos que me digas que posso implantar sem problemas SOA em meus projetos pessoais para criação de Sistemas de Escolas e Eventos… se for possível, vou começar a pensar com carinho no estudo da mesma já pra 2011…

Abs [][/quote]

Adriano, vc pode fazer com o VRaptor em java da caelum, bastando modelar em cima do estilo arquitetural Rest, você estará fazendo SOA :slight_smile: Simples não ?

Aí o buraco é ainda mais embaixo… Já é quase um divisor de águas então, tamanha as mudanças de filosofia aplicadas…

Abs [][/quote]

Não acho que se trata de mudanças de filosofia; seria mais o caso de dizer que SOA deveria ter sempre a tutela de pessoas que não são nem gerentes nem peões de fábrica, ou seja, um nível mais tático da coisa. O irônico é que a governança SOA serve pra, justamente, dizer como a coisa deve ser feita, mas nunca ví uma única empresa sequer disposta a implementar SOA com governança.

[]´s[/quote]

Só uma coisa Alê, ouvi do Jim Webber pessoalmente sobre governança: Se você tem demais, então seu design está errado !! Parei pra refletir e o cara está certo. Se pensarmos muito em modelagem prévia, estamos fazendo o BDUF-Waterfall. As chances de sucesso em qualquer cenário SOA ou não, todos já conhecem.

Acredito que a melhor maneira de fazer um design hoje é usando técnicas como DDD e BDD que irão orientar o design do seu recurso/serviço e aqui vale algumas regras também como evitar o Anemic Services Domain.

Esse é um erro bem comum e eu já incorri neste assim como outros arquitetos que utilizam as cartilhas de players ou Thomas Erl. Se olharmos um pouco mais da dica que o Jim Webber dá e o modelo do Eric Evans, dá pra imaginar uma camada de EntityServices rica.

Tentar separar a linha entre TaskServices e EntityServices. Modelar de forma coerente não é fácil, acho que essa é a parte que exige bastante literatura e aprendizado. Passei o último ano somente estudando esses assuntos, pois muitos acreditam que é o tecnês que pega num projeto SOA e como bem sabemos a modelagem, faz toda a diferença.

[quote=adriano_si]fala asaudte…

realmente não sei nem por onde começar… mas não é o fato de serem pequenas empresas… o fato é conseguir vender a idéia ao empresariado aqui…

Talvez somente umas de nossas redes de supermercados grandes… e quando digo talvez, é talvez mesmo, porque até isso acho inviável… temos que suar pra vender Sistemas WEB convencionais, imagina então aplicar uma nova “Forma” de Disponibilizar e compartilhar informações…

A menos que me digas que posso implantar sem problemas SOA em meus projetos pessoais para criação de Sistemas de Escolas e Eventos… se for possível, vou começar a pensar com carinho no estudo da mesma já pra 2011…

Abs [][/quote]

Opa!

Adriano, já ouviu falar de sistemas SOA-Ready ? Um sistema SOA-Ready é aquele que ainda não é SOA, mas todas as suas funcionalidades são, ou podem ser, expostas como serviços. Isso é um grande passo para influenciar na adoção de SOA. Você usa EJB´s em seus sistemas? Use a anotação @WebService neles e seja feliz (desde que, é lógico, esses EJB´s tenham nível de granularidade adequado, pra não haver, mais tarde, nenhuma lógica redundante). Uma vez expostos como serviços, estes componentes vão estar expostos pra outras linguagens, e moral da história que, no dia em que as empresas cansarem de Java, elas podem continuar aproveitando a lógica desenvolvida em Java em outras linguagens. Daí pra chegar no que é chamado de SOA, mesmo, é um passo.

[]´s

Bom respeito muito sua opinião, mas usar a annotation @WebServices é a pior coisa que o caboclo pode fazer. Primeiro que se o projeto está todo em cima de http, ele não precisa usar SOAP e o WS-Death Dead :-). O WS-I fechou as portas e SOAP deverá ser utilizado somente em cenários de integração.

Tentem modelar olhando para um design mais Restful das coisas e sejam felizes :slight_smile: Lembrando que o Jersey é RI da spec , apesar de não ter no nível 3 de maturidade da escala Richardson.

Aliás podem utilizar o VRaptor que é bem melhor e melhor ainda seria usar o Restfulie em cima do Rails, coisa fina :-).

Outra coisa, se sua empresa é pequena, provavelmente você não tem integração, logo não justifica um ESB. Se tiver poucas integrações, pode usar um light ESB como Apache Camel, recomendado inclusive pela Thought Works e olha que os caras detestam ESB por lá.

ESB é tão somente para projetos com uma certa criticidade, como fazer Throttling, diversos roteamentos, integração entre múltiplos protocolos, como SNA Mainframe, SAP e por aí vai…

Aí o buraco é ainda mais embaixo… Já é quase um divisor de águas então, tamanha as mudanças de filosofia aplicadas…

Abs [][/quote]

Não acho que se trata de mudanças de filosofia; seria mais o caso de dizer que SOA deveria ter sempre a tutela de pessoas que não são nem gerentes nem peões de fábrica, ou seja, um nível mais tático da coisa. O irônico é que a governança SOA serve pra, justamente, dizer como a coisa deve ser feita, mas nunca ví uma única empresa sequer disposta a implementar SOA com governança.

[]´s[/quote]

Só uma coisa Alê, ouvi do Jim Webber pessoalmente sobre governança: Se você tem demais, então seu design está errado !! Parei pra refletir e o cara está certo. Se pensarmos muito em modelagem prévia, estamos fazendo o BDUF-Waterfall. As chances de sucesso em qualquer cenário SOA ou não, todos já conhecem.

Acredito que a melhor maneira de fazer um design hoje é usando técnicas como DDD e BDD que irão orientar o design do seu recurso/serviço e aqui vale algumas regras também como evitar o Anemic Services Domain.

Esse é um erro bem comum e eu já incorri neste assim como outros arquitetos que utilizam as cartilhas de players ou Thomas Erl. Se olharmos um pouco mais da dica que o Jim Webber dá e o modelo do Eric Evans, dá pra imaginar uma camada de EntityServices rica.

Tentar separar a linha entre TaskServices e EntityServices. Modelar de forma coerente não é fácil, acho que essa é a parte que exige bastante literatura e aprendizado. Passei o último ano somente estudando esses assuntos, pois muitos acreditam que é o tecnês que pega num projeto SOA e como bem sabemos a modelagem, faz toda a diferença.

[/quote]

Fala, sumido ! ^^

Então… também acho que governança demais é sintoma de problemas, mas governança de menos também dá problemas. Não precisa ir muito longe, é só pensar em algum caso de empresa grande querendo aplicar SOA (trabalhei em uma assim). É regra: alguma parte da lógica de negócios vai acabar duplicada.

Não estou dizendo que precisamos de modelagem prévia, apenas que precisamos pensar a respeito da granularidade das coisas. E isso não é tão difícil assim de fazer, acaba sendo uma habilidade adquirida. Um desenvolvedor comum (tipo eu =P ) consegue pensar na granularidade dos serviços no dia-a-dia, mas pra isso precisa de prática. Adivinha quem vai guiar o aprendizado desse desenvolvedor?

Acho que DDD, BDD e outras técnicas podem ser aproveitadas junto com SOA, sim, mas na verdade não é disso que SOA se trata, mas sim, de reaproveitar lógica de negócios, e isso dá pra usar até em linguagens procedurais, que não dão suporte a DDD (o Luca deve conhecer algumas dessas ^^). Acredito eu que quem tentar desenvolver em Java com um certo nível de componentização terá surpresas agradáveis com SOA =) .

EDIT: quanto ao (eterno) embate SOAP x REST , vai minha opinião: cada um tem seu propósito, e coisas que fazem de melhor. Nenhum deles exclui SOA :wink:

[]´s

Opa… meio que entendí os 2… Me resumiram a questão respondendo que é possível… enfim, tá valendo investir meus estudos na Tecnologia…

Sim, eu uso EJBs… Quanto a discursão de vocês, já ultrapassou meu nível de conhecimento… quem sabe ano que vem eu não volte aqui pra contestar os 2… heueheueheueheueheuehueuhe

Agora uma pergunta que ficou meio no ar pra mim, afinal ainda não sei quem são os personagens Gurus da Tecnologia e ainda não conheço os Processos, onde posso encontrar algum material do tipo, “Oi eu soua SOA” pra começar ???

Abs[]

[quote=adriano_si]Opa… meio que entendí os 2… Me resumiram a questão respondendo que é possível… enfim, tá valendo investir meus estudos na Tecnologia…

Sim, eu uso EJBs… Quanto a discursão de vocês, já ultrapassou meu nível de conhecimento… quem sabe ano que vem eu não volte aqui pra contestar os 2… heueheueheueheueheuehueuhe

Agora uma pergunta que ficou meio no ar pra mim, afinal ainda não sei quem são os personagens Gurus da Tecnologia e ainda não conheço os Processos, onde posso encontrar algum material do tipo, “Oi eu soua SOA” pra começar ???

Abs[][/quote]

Acredito eu que o material do Thomas Erl é muito bom nesse sentido, apesar de ser meio extenso. Tente dar uma olhada (rápida) nos livros dele e veja o que acha! E, claro, existe também a SOA|Expert, do nosso amigo Kenobi.

[]´s

O que eu quis dizer sobre DDD é que se você tem uma API bem modelada, o seu problema de reutilização será resolvido. O problema é tentar achar os serviços na bagunça de um problema de negócio, sentença, por isso comecei a adotar o design BDD. Facilitou e enxugou muita coisa, consegui complitude :slight_smile:

Aliás, vamos marcar uma gelada um dia desses !!

PS: Valews por mencionar a SOA|EXPERT :stuck_out_tongue:

[quote=Kenobi]O que eu quis dizer sobre DDD é que se você tem uma API bem modelada, o seu problema de reutilização será resolvido. O problema é tentar achar os serviços na bagunça de um problema de negócio, sentença, por isso comecei a adotar o design BDD. Facilitou e enxugou muita coisa, consegui complitude :slight_smile:

Aliás, vamos marcar uma gelada um dia desses !!

PS: Valews por mencionar a SOA|EXPERT :stuck_out_tongue: [/quote]

Acho que o “Problema” quanto a SOA|Expert é só a distância… Ou os cursos são On-line ???

Quanto ao material, irei dar uma estudada…

Abs []

[quote=adriano_si][quote=Kenobi]O que eu quis dizer sobre DDD é que se você tem uma API bem modelada, o seu problema de reutilização será resolvido. O problema é tentar achar os serviços na bagunça de um problema de negócio, sentença, por isso comecei a adotar o design BDD. Facilitou e enxugou muita coisa, consegui complitude :slight_smile:

Aliás, vamos marcar uma gelada um dia desses !!

PS: Valews por mencionar a SOA|EXPERT :stuck_out_tongue: [/quote]

Acho que o “Problema” quanto a SOA|Expert é só a distância… Ou os cursos são On-line ???

Quanto ao material, irei dar uma estudada…

Abs [][/quote]

Que eu saiba, com demanda suficiente, tudo é possível :wink:

[]´s

Esse livro é muito ruim para um zerado na tecnologia ???

http://www.submarino.com.br/produto/1/21576487/arquitetura+orientada+a+servicos+:+soa+para+leigos

Kenobi, se montar uma turma é possível receber as aulas pela On-line ??

Fico no aguardo…

Abs []