<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-264470101295540036</id><updated>2012-02-16T02:52:06.950-08:00</updated><category term='BAM'/><category term='Ferramentas'/><category term='CPM'/><category term='Artigos'/><category term='Serviços'/><category term='BPEL'/><category term='Métodos e Processos'/><category term='JBI'/><category term='Virtualização'/><category term='ESB'/><category term='BPMS'/><category term='BI'/><title type='text'>SOA Journal</title><subtitle type='html'>Nosso objetivo é oferecer uma espécie de revista virtual sobre assuntos relacionados à SOA (Service-Oriented Architecture). Onde, procuraremos relacionar nesta, práticas, métodos, design patterns, troca de experiêcias, ferramentas e desmistificação sobre o tema.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://soa-journal.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://soa-journal.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Breno Barros</name><uri>http://www.blogger.com/profile/14307563635991570175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://2.bp.blogspot.com/_BYdKcg_14nQ/SRRgmZV6NbI/AAAAAAAAACA/VcMhzWZSxbI/S220/Minha-Foto-Pequena.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-264470101295540036.post-612270329595058776</id><published>2010-06-28T18:56:00.000-07:00</published><updated>2010-06-28T18:57:02.511-07:00</updated><title type='text'>Nosso novo local de encontro - http://www.brenobarros.net</title><content type='html'>Resolvi me profissionalizar e dedicar ainda mais na escrita dos meus pensamentos, opiniões, experimentos e trabalhos. E lógico, receber as opiniões de vocês.&lt;br /&gt;&lt;br /&gt;Para isto, resolvi registrar um domínio. Agora, já a $$$ está saíndo do meu bolso, vou procurar achar mais tempo para dedicar ao meu novo site. Segue ele:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.brenobarros.net"&gt;http://www.brenobarros.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Vejo vocês por lá.&lt;br /&gt;&lt;br /&gt;Um grande abraço a todos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/264470101295540036-612270329595058776?l=soa-journal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soa-journal.blogspot.com/feeds/612270329595058776/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=264470101295540036&amp;postID=612270329595058776' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/612270329595058776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/612270329595058776'/><link rel='alternate' type='text/html' href='http://soa-journal.blogspot.com/2010/06/nosso-novo-local-de-encontro.html' title='Nosso novo local de encontro - http://www.brenobarros.net'/><author><name>Breno Barros</name><uri>http://www.blogger.com/profile/14307563635991570175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://2.bp.blogspot.com/_BYdKcg_14nQ/SRRgmZV6NbI/AAAAAAAAACA/VcMhzWZSxbI/S220/Minha-Foto-Pequena.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-264470101295540036.post-5691315013734539150</id><published>2008-06-25T16:07:00.000-07:00</published><updated>2008-06-25T16:26:54.161-07:00</updated><title type='text'>Framework Error Hospital do Oracle SOA Suite - Parte 1</title><content type='html'>&lt;span style="font-family:arial;color:#000000;"&gt;O Error Hospital consiste em padrão de projetos (Design Patterns) para prover tratamento de exceções com um serviço. Onde, para prover simplicidade e performance para os processos de negócios, os mesmos são projetados como assíncronos ou síncrono (“event short-lived”). Desta forma, quando uma exceção neste processos são lançadas, as mensagens são publicadas em um processo error hospital que então prover a gestão necessária, incluíndo intervenções humanas se necessário. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#000000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#000000;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5215961914795258994" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp3.blogger.com/_BYdKcg_14nQ/SGLRueVWdHI/AAAAAAAAABM/hI1qJWIwykg/s320/Error_Hospital.jpg" border="0" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Com isto, é possível listar as instâncias dos processos BPEL que necessitam de uma intervenção humana para continuar seus fluxos em cenários onde:&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;As Transações distribuídas ficam em estados inconsistentes após todas as retentativas e rollbacks automatizados&lt;/span&gt;&lt;span style="font-family:arial;color:#000000;"&gt;;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;As Transações que deveriam sempre ser terminadas (assíncronas sem retorno via callback) não chegaram ao fim após todas as tentativas automatizadas;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;As Transações distribuídas que ficam em estados inconsistentes após todas as retentativas e não tem rollbacks configurados.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;color:#000000;"&gt;O Framework Error Hospital está disponível a partir da versão 10.1.3.3 do Oracle SOA Suite, permitindo que definições de políticas de tratamento de erros em tempo de execução sejam definidas, tais como &lt;strong&gt;Remote Faults&lt;/strong&gt; e &lt;strong&gt;Binding Faults&lt;/strong&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Os Remote Faults ocorrem quando o serviço que o processo BPEL tenta invocar não pode ser localizado, por exemplo, no caso de uma falha de rede ou servidor. Assim, em caso de Remote Faults, o processo BPEL pode ser reiniciado. No caso dos Binding Faults, os mesmos indicam um desencontro entre prestador de serviços e consumidores. Neste caso, uma intervenção humana faz-se necessário. Veja o macro fluxo abaixo.&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:arial;color:#000000;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5215964313902063346" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp3.blogger.com/_BYdKcg_14nQ/SGLT6Hs_HvI/AAAAAAAAABc/DUTUPVblCW4/s320/Error+Hospital_fluxo.jpg" border="0" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;color:#000000;"&gt;No próxima post deste tema, estaremos tratando a integração do Framework Error Hospital com o Oracle BAM para permitir o controle dessas instâncias em tempo real, provendo uma solução mais prá-ativa.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt; &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/264470101295540036-5691315013734539150?l=soa-journal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soa-journal.blogspot.com/feeds/5691315013734539150/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=264470101295540036&amp;postID=5691315013734539150' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/5691315013734539150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/5691315013734539150'/><link rel='alternate' type='text/html' href='http://soa-journal.blogspot.com/2008/06/framework-error-hospital-do-oracle-soa.html' title='Framework Error Hospital do Oracle SOA Suite - Parte 1'/><author><name>Breno Barros</name><uri>http://www.blogger.com/profile/14307563635991570175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://2.bp.blogspot.com/_BYdKcg_14nQ/SRRgmZV6NbI/AAAAAAAAACA/VcMhzWZSxbI/S220/Minha-Foto-Pequena.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_BYdKcg_14nQ/SGLRueVWdHI/AAAAAAAAABM/hI1qJWIwykg/s72-c/Error_Hospital.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-264470101295540036.post-1448742056337985073</id><published>2008-06-25T15:46:00.000-07:00</published><updated>2008-06-25T15:51:36.742-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CPM'/><category scheme='http://www.blogger.com/atom/ns#' term='BAM'/><category scheme='http://www.blogger.com/atom/ns#' term='BI'/><title type='text'>O BAM matou o BI?</title><content type='html'>BAM: Business Activity Monitoring&lt;br /&gt;BI: Business Intelligence&lt;br /&gt;&lt;br /&gt;Essa é uma pergunta que escuto com bastante frequencia por alguma pessoas quando estamos falando sobre SOA, mais especificamente sobre BAM.&lt;br /&gt;&lt;br /&gt;Não, as ferramentas de BAM não acabaram com as aplicações das ferramentas de BI. Na verdade, o BAM é uma tecnologia nova para monitoramento em tempo real dos indicadores de desempenho das empresas. O mesmo é voltado para tomada de ações imediatas a partir do acesso a informação. Já o BI, é voltado para tomadas de decisões futuras a partir de informações históricas.&lt;br /&gt;&lt;br /&gt;Com a tecnologia BAM muitos fornecedores de soluções BI passaram a incluir em seus produtos alguns mecanismos de monitoração e tomadas de decisões em tempo real.&lt;br /&gt;&lt;br /&gt;Da mesma forma, posso armazenar informações históricas na base de dados do BAM, porém sua perfornse e resposta não será tão boa, pois as ferramentas que hoje o implementam não estão preparadas para isto.&lt;br /&gt;&lt;br /&gt;Porém, eu particularmente continuo enchergando os BAM e BI com uma fronteira bem distinta. Onde, o BI é focado em "O que aconteceu" e o BAM "O que está acontecendo". Você acha que acabou? Não, ainda o tem "O que aconteceria?", e esse é implementado por ferramentas CPM (Corporate Performance Management).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_BYdKcg_14nQ/SGLLRfPiMeI/AAAAAAAAAA8/JMy7ayNqQG4/s1600-h/BI_BAM_CPM.jpg"&gt;&lt;/a&gt;&lt;img id="BLOGGER_PHOTO_ID_5215955129592537634" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp3.blogger.com/_BYdKcg_14nQ/SGLLjhe9YiI/AAAAAAAAABE/gS7i7X4Xcf0/s320/BI_BAM_CPM.jpg" border="0" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/264470101295540036-1448742056337985073?l=soa-journal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soa-journal.blogspot.com/feeds/1448742056337985073/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=264470101295540036&amp;postID=1448742056337985073' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/1448742056337985073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/1448742056337985073'/><link rel='alternate' type='text/html' href='http://soa-journal.blogspot.com/2008/06/o-bam-matou-o-bi.html' title='O BAM matou o BI?'/><author><name>Breno Barros</name><uri>http://www.blogger.com/profile/14307563635991570175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://2.bp.blogspot.com/_BYdKcg_14nQ/SRRgmZV6NbI/AAAAAAAAACA/VcMhzWZSxbI/S220/Minha-Foto-Pequena.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_BYdKcg_14nQ/SGLLjhe9YiI/AAAAAAAAABE/gS7i7X4Xcf0/s72-c/BI_BAM_CPM.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-264470101295540036.post-3422839378600513344</id><published>2008-06-25T15:43:00.000-07:00</published><updated>2008-06-25T15:46:32.405-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Virtualização'/><category scheme='http://www.blogger.com/atom/ns#' term='BPEL'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><title type='text'>Devo usar BPEL ou ESB?</title><content type='html'>A pergunta do título pode paracer estranha. Concordam? Mas, por incrível que pareça, muitos ainda se confrontam com essa dúvida em cenários onde os mesmos precisam implementar uma composição de serviços para atender a uma determinada situação.&lt;br /&gt;&lt;br /&gt;Diante disto, eu decidi escrever neste post alguns aspectos que devem ser levados em consideração para sanar esta dúvida.&lt;br /&gt;&lt;br /&gt;Bem, primeiramente nós sabemos e concordamos que ambos podem ser utilizados para a composição de serviços, inclusive podem ser utilizados em conjunto. Mas se eu tenho que decidi entre um e outro, qual devo usar?&lt;br /&gt;&lt;br /&gt;Vamos então para alguns cenários:&lt;br /&gt;&lt;br /&gt;1. Se o cenário alvo de implementação é focado apenas nos requisitos de conectividade, mensageria e roteamento, o ESB é a melhor opção. Entretanto, se o cenário é focado em atividades um pouco mais complexas tais como intervenções humanas (workflow) e orquestração para controlar como e quando os fluxos de dados vão sendo trocado entre sistema, o BPEL é a melhor opção.&lt;br /&gt;&lt;br /&gt;2. Se o cenário é focado em processos de vida curta (short-lived) e baseado em armazenamento, transporte e simples transformação de mensagens, o ESB é a melhor opção. Porém, para processos de vida longa (long-lived) que podem ter que aguardar para se completar, além de necessidade de transformações de mensagens mais ricas e complexas, o BPEL volta a ser a melhor opção.&lt;br /&gt;&lt;br /&gt;3. Se o cenário é direcionado para uma implementação de um processo cuja a natureza de virtualização (entede-se por transparência de localização) dos serviços seja necessária, fazendo com que o processo fique imutável caso ocorra alguma movimentação de serviços, o ESB é a melhor opção. Pois somente com BPEL, as URLs dos serviços estarão acopladas nos PartnerLinks do processo, e qualquer movimentação dos mesmos deve alterar o BPEL novamente. Assim, se nos cenário 1 e 2 o BPEL for a melhor opção e também se desejar a uma maior virtualização, utilize o BPEL para a composição de serviços com o ESB provendo essa virtualização.&lt;br /&gt;&lt;br /&gt;Outro cenário que eu gostaria de descatar, que não recomendo a utilização BPEL, é para aquele onde o foco está em processos de migração de dados (e tem gente querendo ver o BPEL funcionando nestes processos), onde o volume de dados são muito grandes e uma boa performance é fundamental, eu sugiro a utilização de ferramentas especializadas tais como Oracle Data Integrator, Informatica Power Center, dentre outras, por garantirem estes requisitos além de fornecer melhor controle transacional, agendamentos, filtros, transformações específicas de um formato para outro, qualidade dos dados, dentre outros benefícios.&lt;br /&gt;&lt;br /&gt;Porém, se mesmo assim você quer utilizar o BPEL, recomendo não buscar todos os dados a mesmos tempo e acionar o seu processo, sugiro você implementar um polling (listener service) que a medidas que os dados vão chegando ou vão sofrendo alguma alteração, os mesmo serão automaticamente migrados pelo processo. Além disso, sugiro compor o serviço de polling e o processo BPEL através do ESB.&lt;br /&gt;&lt;br /&gt;Espero ter colaborado com alguma coisa. Qualquer dúvida ou sugestão estou a disposição.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/264470101295540036-3422839378600513344?l=soa-journal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soa-journal.blogspot.com/feeds/3422839378600513344/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=264470101295540036&amp;postID=3422839378600513344' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/3422839378600513344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/3422839378600513344'/><link rel='alternate' type='text/html' href='http://soa-journal.blogspot.com/2008/06/devo-usar-bpel-ou-esb.html' title='Devo usar BPEL ou ESB?'/><author><name>Breno Barros</name><uri>http://www.blogger.com/profile/14307563635991570175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://2.bp.blogspot.com/_BYdKcg_14nQ/SRRgmZV6NbI/AAAAAAAAACA/VcMhzWZSxbI/S220/Minha-Foto-Pequena.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-264470101295540036.post-4344251938067368933</id><published>2007-08-28T10:03:00.000-07:00</published><updated>2007-08-28T10:11:57.544-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBI'/><category scheme='http://www.blogger.com/atom/ns#' term='Artigos'/><title type='text'>Integrando CICS com Jbi4CICS Component</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="storycontent"&gt;&lt;a href="http://www.theserverside.com/tt/articles/article.tss?l=IntegratingCICSwithJBI"&gt;Neste artigo&lt;/a&gt;, escrito por Amedeo Cannone e Stefano Rossini, é apresentado o componente Jbi4CICS em conjunto com um exemplo de integração que mostra como é o funcionamento por trás do ciclo de vida do JBI.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="storycontent"&gt;O componente &lt;a href="http://jbi4cics.sourceforge.net/"&gt;Jbi4CICS&lt;/a&gt; é um JBI Binding Component Open Source  que pode ser usado para conectar um ESB (Enterprise Service Bus) com um sistema CICS.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="storycontent"&gt;Boa leitura.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="storycontent"&gt;&lt;span class="nobr"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/264470101295540036-4344251938067368933?l=soa-journal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soa-journal.blogspot.com/feeds/4344251938067368933/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=264470101295540036&amp;postID=4344251938067368933' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/4344251938067368933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/4344251938067368933'/><link rel='alternate' type='text/html' href='http://soa-journal.blogspot.com/2007/08/integrando-cics-com-jbi4cics-component.html' title='Integrando CICS com Jbi4CICS Component'/><author><name>Breno Barros</name><uri>http://www.blogger.com/profile/14307563635991570175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://2.bp.blogspot.com/_BYdKcg_14nQ/SRRgmZV6NbI/AAAAAAAAACA/VcMhzWZSxbI/S220/Minha-Foto-Pequena.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-264470101295540036.post-1066753807756936085</id><published>2007-08-13T19:36:00.000-07:00</published><updated>2007-08-13T19:56:22.253-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Serviços'/><category scheme='http://www.blogger.com/atom/ns#' term='Métodos e Processos'/><title type='text'>Qual a atomicidade e/ou granularidade dos meus serviços?</title><content type='html'>&lt;div style="text-align: justify;"&gt;Bem, esta é uma questão que toda vez eu sou questionado em minhas apresentações sobre SOA que tenho feito para alguns clientes, pela empresa onde eu atuo, pelo Brasil.&lt;br /&gt;&lt;br /&gt;Além disto, esta é uma questão que se alastra desde os primórdios dos paradigmas de programação procedural, orientação a objetos, componentização, dentre outros.&lt;br /&gt;&lt;br /&gt;Bom, para tentar responder a esta pergunta, antes de mais nada, vamos à alguns conceitos:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Atomicidade:&lt;/span&gt; Um serviço atômico, são serviços que desempenham uma tarefa ou ação específica.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Granularidade:&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/span&gt;Consiste na mensuração do tamanho, escala e nível de detalhes dos serviços. Onde serviços "gordos" são coarse-grained (baixa granularidade) e serviços "leves" são fine-grained (alta granularidade).&lt;br /&gt;&lt;br /&gt;Para responder a esta questão, vamos considerar dois pontos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Primeiro: Abordagem de Descobrimento dos Serviços&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A atomicidade e/ou granularidade de um serviço pode depender da estratégia de descobrimento do mesmo. Ou seja, se nós fizermos uma abordagem "top-down", primeiro iremos identificar os nossos processos de negócios, onde cada atividade dos mesmos podem ser desmembradas em sub-processos e assim por diante, até que não seja mais possível desmembrá-los. E neste ponto, teremos nossos serviços.&lt;br /&gt;&lt;br /&gt;Por outro lado, se nós adotarmos uma abordagem "bottom-up", nossos serviços vão sendo expostos através das funcionalidades candidatas dos sistemas legados existentes, onde a granularidade e a atomicidade destes serviços vão sendo refinadas até que os mesmos possam ser compostos (orquestrados) em processos de negócios.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Segundo: Características dos Serviços&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Antes de percebermos as caracterísitcas dos serviços, primeiramente os serviços podem ser classificados da seguinte forma:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;ol style="text-align: justify;"&gt;&lt;li&gt;Serviços de Negócios (Business Level Services): Este serviços representam atividades/funções reais de negócios.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Serviços de Infra-Estrutura (Infrastructure Level Services): Estes serviços não contém regras de negócios, mas são necessários para suportar necessidades dos serviços de negócios.&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Com isto, dependendo da classificação dos serviços, podemos identificar suas características e objetivos chaves que julgamos necessários para cada um dos serviços, tais como: reusabilidade&lt;span style="font-style: italic;"&gt;, visibilidade, transacionabilidade, performance, dentre outras; &lt;/span&gt;Que devem serem levados em consideração em qualquer projeto de adoção SOA. Pois, um serviço pode ser atômico em virtude da reusabilidade, porém não atômico devido as dificuldade transacionais. Da mesmo forma, um serviço pode ser fine-grained em virtude da visibilidade, porém coarse-grained em razão da performance.&lt;br /&gt;&lt;br /&gt;Portanto, segue abaixo uma tabela ou matriz, que talvez nos ajude a identificar melhor a atomicidade e/ou granularidade dos nossos serviços que estão projetados, dentro das características principais desejadas.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_BYdKcg_14nQ/RsEX3BNup_I/AAAAAAAAAAU/7_P5k2TlecE/s1600-h/gxa.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_BYdKcg_14nQ/RsEX3BNup_I/AAAAAAAAAAU/7_P5k2TlecE/s320/gxa.PNG" alt="" id="BLOGGER_PHOTO_ID_5098382487146375154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Obs: Na imagem acima, "Top-Down" e "Bottom-Up" indicam as abordagens explicitadas um pouco mais acima. Onde, "Top-Down" está mais direcionada aos processos de negócios e "Bottom-Up" às estratégias de migração.&lt;br /&gt;&lt;br /&gt;Bom, como podemos perceber a definição da atomicidade e granularidade dos serviços que farão parte de um projeto de adoção SOA é uma tarefa bastante importante e delicada. Onde, a estratégia adotada para identenficação das mesmas, pode interferir no sucesso ou fracasso do projeto.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Espero ter ajudado um pouco na resposta desse grande dilema.&lt;br /&gt;&lt;br /&gt;Em breve, voltaremos a postar novas experiências.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/264470101295540036-1066753807756936085?l=soa-journal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soa-journal.blogspot.com/feeds/1066753807756936085/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=264470101295540036&amp;postID=1066753807756936085' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/1066753807756936085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/1066753807756936085'/><link rel='alternate' type='text/html' href='http://soa-journal.blogspot.com/2007/08/qual-atomicidade-eou-granularidade-dos.html' title='Qual a atomicidade e/ou granularidade dos meus serviços?'/><author><name>Breno Barros</name><uri>http://www.blogger.com/profile/14307563635991570175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://2.bp.blogspot.com/_BYdKcg_14nQ/SRRgmZV6NbI/AAAAAAAAACA/VcMhzWZSxbI/S220/Minha-Foto-Pequena.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_BYdKcg_14nQ/RsEX3BNup_I/AAAAAAAAAAU/7_P5k2TlecE/s72-c/gxa.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-264470101295540036.post-1544550944151381711</id><published>2007-07-20T11:09:00.000-07:00</published><updated>2007-07-20T11:13:49.583-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BPMS'/><category scheme='http://www.blogger.com/atom/ns#' term='Ferramentas'/><title type='text'>Intalio|BPMS</title><content type='html'>&lt;div style="text-align: justify;"&gt;Para quem ainda não conhece, o Intalio|BPMS consiste numa ferramenta de BPMS, que possui uma versão Community Edition (Eclipse IDE + Apache Gerônimo Application Server), projetada para Analistas de Processos ou Arquitetos e Desenvolvedores que não necessáriamente precisam ser experts em J2EE.&lt;br /&gt;&lt;br /&gt;Seus diagramas de processos são baseados no BPMN (possuindo um BPMN Designer), onde os mesmos são automaticamentes tranformados para o formato BPEL no momento da implantação dos processos, inclui um BAM em real-time, controle de versão automatica dos processos implantados, dentre outras funcionalidades.&lt;br /&gt;&lt;br /&gt;Existe no site no fornecedor um comparação do Intalio|BPMS com o JBoss jBPM bem interessante.&lt;br /&gt;&lt;br /&gt;Assim, para quem ficou interessado, a &lt;a href="http://bpms.intalio.com/index.php"&gt;Intalio&lt;/a&gt; fornece uma demonstração de suas funcionalidades. Para vê-la, &lt;a href="http://bpms.intalio.com/screencasts/FirstProcess/FirstProcess.html"&gt;clique aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Em breve, estaremos relantando neste blog, alguns estudos de casos com o uso do Intalio|BPMS e outras ferramentas.&lt;br /&gt;&lt;br /&gt;Até a próxima.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/264470101295540036-1544550944151381711?l=soa-journal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soa-journal.blogspot.com/feeds/1544550944151381711/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=264470101295540036&amp;postID=1544550944151381711' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/1544550944151381711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/1544550944151381711'/><link rel='alternate' type='text/html' href='http://soa-journal.blogspot.com/2007/07/intaliobpms.html' title='Intalio|BPMS'/><author><name>Breno Barros</name><uri>http://www.blogger.com/profile/14307563635991570175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://2.bp.blogspot.com/_BYdKcg_14nQ/SRRgmZV6NbI/AAAAAAAAACA/VcMhzWZSxbI/S220/Minha-Foto-Pequena.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-264470101295540036.post-8503221909018752098</id><published>2007-07-17T19:49:00.000-07:00</published><updated>2007-07-18T14:20:26.251-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BPMS'/><title type='text'>Quais os impactos de adoção de um BPMS?</title><content type='html'>&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;Antes de mais nada, o que é um BPMS?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;    &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;&lt;o:p&gt;&lt;/o:p&gt;Um BPMS (Business Process Management Systems/ Softwares) consiste em uma nova categoria de software que permite as corporações, modelar, simular, implantar e gerenciar os seus processos de negócios de forma clara, fácil e controlada e monitorada, sem uma forte dependência com TI.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;Resumindo, o BPMS permite dar vida aos processos de negócios da corporação em um ambiente controlado e monitorável.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;Quais os componentes/ferramentas principais de um BPMS?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;Business Process Modeler:&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt; Ferramenta      que possibilita aos analistas de negócios a modelarem os processos de negócio      da corporação na forma de diagramas. Normalmente, estes diagramas seguem      uma notação padronizada para representação de fluxos de processos,      denominado BPMN (Business Process Modeling Notation), porém podem seguir      notações proprietárias.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;Executable Process Modeler:&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt; Ferramenta      que possibilita a transformação do diagrama criado acima em uma linguagem      entendível pelas engines de execução dos processos. Normalmente, a      linguagem a ser gerada é o BPEL (Business Process Execution Language), que      é uma linguagem de execução de processos com foco em Web Services.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;Process Execution Engine:&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt; Componente      que executa os processos implantados, gerados acima, gerenciando as      informações pelos mesmos, produzidas.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;Business Activity Monitoring (BAM):&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt; Componente      que possibilita a gestão dos processos implantados, através de diversos      relatórios estatísticos (dashboards).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;User Portal:&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt; Interface que permite aos      usuários envolvidos do processo, a participarem da execução do mesmo.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;Administration Portal:&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt; Interface que      possibilita o acompanhamento dos processos em execução, desde que tenha      permissão de acesso aos mesmos, além de possibilitar implantações tanto de      novos processos quanto de novas versões.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;    &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;Assim, para considerar seus impactos, vamos considerar os seguintes cenários:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;        &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;Cenário 1:&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt; Imaginem um dado processo de negócio que realiza a orquestração de um determinado conjunto de serviços. Imaginou? Ótimo. Agora, imagine que todos estes serviços já estejam implementados, seguindo é claro as recomendações WS-I* (especificações Web Services Interoperability).&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify; font-style: italic;"&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;Bem, já que todos os serviços estão implementados e nós apenas tenhamos que orquestrá-los em uma seqüência lógica para compor o processo de negócio alvo. O que temos que fazer? Fácil, devemos utilizar uma ferramenta BPMS, sem que não seja necessário a criação de nenhuma linha de código.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;Cenário 2:&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt; Agora imaginem uma situação onde tenhamos que criar um processo de negócio que envolve a integração de diversas aplicações legadas. Além disto, e muito provavelmente, estas aplicações legadas foram implementadas por tecnologias distintas (Cobol, Java, Natural, .Net, dentre outras). Com isto, nós teremos a necessidade de utilizar conectores (ou adaptadores), que são responsáveis por prover a transformação de um protocolo por outro e vice-versa.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify; font-style: italic;"&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;Bem, muitas soluções BPMS já provem diversos destes conectores para as principais tecnologias existentes. E caso tenhamos que desenvolver algum conector, os próprios BPMS ou geram códigos nativos da linguagem usada no sistema legado alvo, ou até mesmo, já geram estes conectores na forma de web services.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;Então, podemos perceber, que se por um acaso precisarmos codificar algo, este esforço será reduzido drasticamente.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;Cenário 3:&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt; Imaginem que para todos os processos de negócios analisados e modelados, nós tenhamos que mantê-los sempre documentados, para que os mesmos possam ser frequentemente analisados.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal" style="text-align: justify; font-style: italic;"&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;Bem, a grande maioria das soluções BPMS geram boa parte das documentações sobre os processos modelados e seus serviços utilizados. E caso haja alguma mudança nos mesmos, estas documentações podem ser geradas em tempo-real.&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;Cenário 4:&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt; Imaginem que em um processo de negócio definido, modelado e implantado em um ambiente em “produção”, um erro foi identificado. Percebemos também, que algumas instâncias destes processos estão atualmente em execução. Onde, precisamos fazer uma correção nos fluxos deste processo, sem que as instância que estão rodando parem bruscamente.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;&lt;span style="font-style: italic;"&gt;Bem, as soluções BPMS permitem as alterações destes fluxos, mantendo-se as instância em execução no modelo antigo, e novas instâncias já adequadas ao modelo novo. Tudo isso apenas com um controle de versão já provido pelos BPMS.&lt;/span&gt; &lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;Bom, acima descrevi apenas quatro cenários que possibilitam e justificam alguns olhares às soluções BPMS para adoção pela sua corporação. Pois, como vimos acima, o uso de um BPMS tem impactos bastante positivos, possibilitando-nos escrever menos códigos, ter flexibilidade e rapidez em eventuais mudanças e confecção de documentações, além de possibilidades de simulação dos processos a serem implantados e monitoramento dos processos já em execução.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="PT-BR" &gt;Em breve, estaremos escrevendo um artigo que demonstra mais claramente o funcionamento destes BPMS. Até lá.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/264470101295540036-8503221909018752098?l=soa-journal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soa-journal.blogspot.com/feeds/8503221909018752098/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=264470101295540036&amp;postID=8503221909018752098' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/8503221909018752098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/8503221909018752098'/><link rel='alternate' type='text/html' href='http://soa-journal.blogspot.com/2007/07/quais-os-impactos-de-adoo-de-um-bpms.html' title='Quais os impactos de adoção de um BPMS?'/><author><name>Breno Barros</name><uri>http://www.blogger.com/profile/14307563635991570175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://2.bp.blogspot.com/_BYdKcg_14nQ/SRRgmZV6NbI/AAAAAAAAACA/VcMhzWZSxbI/S220/Minha-Foto-Pequena.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-264470101295540036.post-2499566229119336607</id><published>2007-07-03T13:08:00.000-07:00</published><updated>2007-07-03T19:38:27.533-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Métodos e Processos'/><title type='text'>Service-Oriented Migration and Reuse Technique (SMART)</title><content type='html'>&lt;div style="text-align: justify;"&gt;O Service-Oriented Migration and Reuse Technique (SMART) foi desenvolvido pela Software Engineering Institute (SEI), para acessorar organizações à analisar seus sistemas legados, com o objetivo de levantar suas capacidades para utilização na forma de serviços, dentro do paradigma Service-Oriented Architecture (SOA).&lt;br /&gt;&lt;br /&gt;O SMART visa levantar um grande volume de informações sobre os componentes legados, alvos para a SOA, e potenciais serviços que necessitarão serem produzidos, dentro de uma estratégia de migração. Além disso, o SMART produz outros artefatos que serão insumos para que a organização decida ou não pela migração dos sistemas legados para a SOA.&lt;br /&gt;&lt;br /&gt;Em breve, voltaremos a comentar sobre este método com mais detalhes.&lt;br /&gt;&lt;br /&gt;Para maiores informações, segue o &lt;a href="http://www.sei.cmu.edu/pub/documents/05.reports/pdf/05tn029.pdf"&gt;link&lt;/a&gt; para o documento que descreve o SMART, retirado do site da &lt;a href="http://www.sei.cmu.edu/"&gt;SEI.&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/264470101295540036-2499566229119336607?l=soa-journal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soa-journal.blogspot.com/feeds/2499566229119336607/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=264470101295540036&amp;postID=2499566229119336607' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/2499566229119336607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/2499566229119336607'/><link rel='alternate' type='text/html' href='http://soa-journal.blogspot.com/2007/07/service-oriented-migration-and-reuse.html' title='Service-Oriented Migration and Reuse Technique (SMART)'/><author><name>Breno Barros</name><uri>http://www.blogger.com/profile/14307563635991570175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://2.bp.blogspot.com/_BYdKcg_14nQ/SRRgmZV6NbI/AAAAAAAAACA/VcMhzWZSxbI/S220/Minha-Foto-Pequena.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-264470101295540036.post-2241912089703090083</id><published>2007-07-03T07:35:00.000-07:00</published><updated>2007-07-03T19:38:45.409-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBI'/><title type='text'>Entendendo o JBI</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Mas o que é o Java Business Integration (JBI)?&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;JBI consiste em uma especificação que define uma arquitetura e comportamentos para hospedagem de componentes plugáveis, onde a comunicação entre estes componentes se fará através do uso de WSDL (Web Services Description Language) 2.0.&lt;br /&gt;&lt;br /&gt;O principal objetivo do JBI é permitir que possamos utilizar componentes plugáveis, provendo todas as funções necessárias para uma solução de integração, sem sermos dependentes de um fornecedor específico. Ou seja, os componentes poderão ser facilmente portáveis entre quaisquer implementações do JBI.&lt;br /&gt;&lt;br /&gt;O JBI também é conhecido como um &lt;span style="font-style: italic;"&gt;"container of containers"&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Imaginando um cenário para aplicação do JBI por arquitetos/desenvolvedores Java EE, seria mais ou menos assim: Os EJBs implementados, poderiam ser compostos dentro de processos de negócios, mais precisamente em Stateful Business Processes, através da linguagem BPEL, permitindo com isto, a orquestração do componentes de negócios (EJBs) sem a necessidade de implementação "hard-code" em classes Java destes processos de negócios. Conseguindo com isto, uma maior flexibilidade e interoperabilidade na utilização e otimização destes processos.&lt;br /&gt;&lt;br /&gt;O JBI possui dois componentes principais: Os "Service Engines" e os "Binding Components".&lt;br /&gt;&lt;br /&gt;Os "Service Engines" são responsáveis por prover lógicas de negócios e/ou serviços de tranformações de mensagens entre outro componentes, além de consumirem serviços (é claro). Já os "Binding Components" provêem serviços externos ao ambiente JBI, tal como atuando como um Adapter entre protocolos de comunicações diferentes, entre os serviços externos e o ambiente JBI.&lt;br /&gt;&lt;p&gt;É interessante destacar que a distinção entre os "Service Engines" e os "Binding Components" é apenas de caráter arquitetural, separando as lógicas de negócios das lógicas de comunicação com intuito de reduzir a complexidade de entendimento, implementação e flexibilidade.                  &lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_BYdKcg_14nQ/RoqPhbhnd2I/AAAAAAAAAAM/uZhpdROPbfw/s1600-h/JBI2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_BYdKcg_14nQ/RoqPhbhnd2I/AAAAAAAAAAM/uZhpdROPbfw/s320/JBI2.jpg" alt="" id="BLOGGER_PHOTO_ID_5083032933928236898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mas como funciona as interações entre os componentes dentro do ambiente JBI?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Estas interações funcionam da seguinte forma:&lt;br /&gt;&lt;br /&gt;Dentro do ambiente JBI, existe um BPEL Engine, que é um "Service Engine", responsável pela hospedagem e execução dos processos de negócios no formato BPEL (é claro).&lt;br /&gt;&lt;br /&gt;É lógico que estes processos não saberão quais protocolos os clientes irão utilizar para acioná-los. Com isto, faz-se necessário a utilização de "Binding Components" que irão converter estes protocolos heterogênios em uma forma normalizada, ou seja, uma mensagem XML em conformidade com um dado WSDL, adicionar nesta mensagem normalizada, meta-dados tais como: segurança, transação, dentre outras. E a partir daí, repassar para o ambiente JBI.&lt;br /&gt;&lt;br /&gt;Logo após, o ambiente JBI determinará qual componente, ou melhor "Service Engine", poderá atuar como um serviço qua atenda à requisição, que neste caso é o próprio BPEL Engine. Assim, a mensagem normalizada será repassada para BPEL Engine, para que o mesmo possa instanciar o processo de negócio requisitado pelo cliente.&lt;br /&gt;&lt;br /&gt;Vale destacar que, se o processo instanciado precisar de algum tipo de serviço complementar (tal como alguma transformação), o JBI irá determinar qual componente proverá este serviço, e redirecionará a requisição para o mesmo (no caso de transformação, XSLT engine, por exemplo), que responderá de volta para o BPEL Engine.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Obs1:&lt;/span&gt; O BPEL Engine é um consumidor e provedor de serviços, porém ele trabalha apenas com mensagens normalizadas.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Obs2:&lt;/span&gt; A escolha de quais componentes atuarão como um dado serviço, é feita através de componentes inteligentes (smart components), configurados para fazer estas escolhas. Inclusive, podem ser customizados.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/264470101295540036-2241912089703090083?l=soa-journal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://soa-journal.blogspot.com/feeds/2241912089703090083/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=264470101295540036&amp;postID=2241912089703090083' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/2241912089703090083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/264470101295540036/posts/default/2241912089703090083'/><link rel='alternate' type='text/html' href='http://soa-journal.blogspot.com/2007/07/entendendo-o-jbi.html' title='Entendendo o JBI'/><author><name>Breno Barros</name><uri>http://www.blogger.com/profile/14307563635991570175</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='19' height='32' src='http://2.bp.blogspot.com/_BYdKcg_14nQ/SRRgmZV6NbI/AAAAAAAAACA/VcMhzWZSxbI/S220/Minha-Foto-Pequena.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_BYdKcg_14nQ/RoqPhbhnd2I/AAAAAAAAAAM/uZhpdROPbfw/s72-c/JBI2.jpg' height='72' width='72'/><thr:total>1</thr:total></entry></feed>
