<?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-730770347854117440</id><updated>2011-10-29T15:40:04.478-07:00</updated><category term='JBPM'/><category term='BPM'/><category term='SOA'/><category term='BPEL'/><category term='Broker'/><category term='BPMN'/><title type='text'>Deivson Rayner`s Blog...</title><subtitle type='html'>Mais outro Blog sobre SOA, TI, Java e bobagens...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://deivsonrayner.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/730770347854117440/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://deivsonrayner.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Deivson Rayner T. Costa</name><uri>http://www.blogger.com/profile/05860317620774001815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-730770347854117440.post-4689592366817433542</id><published>2010-10-16T15:10:00.000-07:00</published><updated>2010-10-16T15:10:55.436-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='Broker'/><title type='text'>Deixando um pouco o bom e velho Java de lado...</title><content type='html'>Trabalhar com Java sempre foi empolgante para mim, e ainda é, contudo quem poderia imaginar que eu encontraria numa solução fundamentalmente baseada em MQ (o velho MQ Series) a solução de conectividade que eu iria melhor me identificar.&lt;br /&gt;&lt;br /&gt;Nos meus&amp;nbsp;últimos&amp;nbsp;projetos venho trabalhando com uma solução que em geral é pouco conhecida, contudo acreditem, bastante presente no Brasil. O &lt;a href="http://www-01.ibm.com/software/integration/wbimessagebroker/"&gt;Websphere Message Broker&lt;/a&gt;, barramento de integração que funciona sobre a já conhecida, provada e bem estabelecida solução de mensageria originalmente chamada de MQ Series, é sem dúvida alguma uma das mais simples e robustas soluções de conectividade do mercado. E quem diria, de java tem muito pouca coisa. Talvez isso justifique porque consigo colocar para rodar o servidor do Broker (que funciona sobre uma instalação do MQ) para funcionar no meu Netbook de 1 giga de RAM =D . &lt;br /&gt;&lt;br /&gt;Nos próximos posts eu gostaria de aproveitar para falar mais sobre esta solução e de suas capacidades únicas de transformação. Por hora é apenas isso, tirando a poeira do blog...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/730770347854117440-4689592366817433542?l=deivsonrayner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deivsonrayner.blogspot.com/feeds/4689592366817433542/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=730770347854117440&amp;postID=4689592366817433542' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/730770347854117440/posts/default/4689592366817433542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/730770347854117440/posts/default/4689592366817433542'/><link rel='alternate' type='text/html' href='http://deivsonrayner.blogspot.com/2010/10/deixando-um-pouco-o-bom-e-velho-java-de.html' title='Deixando um pouco o bom e velho Java de lado...'/><author><name>Deivson Rayner T. Costa</name><uri>http://www.blogger.com/profile/05860317620774001815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-730770347854117440.post-2831192540803889473</id><published>2008-11-17T07:25:00.000-08:00</published><updated>2008-11-17T07:48:46.121-08:00</updated><title type='text'>JSF logging no JBoss</title><content type='html'>Esta semana em um teste de carga de uma aplicacao JSF/JBoss Seam rodando no JBoss 4.3 EAP reparei um grande número de threads com estado "waiting to lock" na classe Logger e enfileiradas, em sua maioria no seguinte stack...&lt;br /&gt;&lt;br /&gt;java.util.logging.Logger.findResourceBundle(Logger.java:1252)&lt;br /&gt;java.util.logging.Logger.doLog(Logger.java:492)&lt;br /&gt;java.util.logging.Logger.log(Logger.java:517)&lt;br /&gt;com.sun.faces.util.Util.getFacesMapping(Util.java:628)&lt;br /&gt;com.sun.faces.application.ViewHandlerImpl.getActionURL(ViewHandlerImpl.java:663)&lt;br /&gt;org.jboss.seam.jsf.SeamViewHandler.getActionURL(SeamViewHandler.java:74)&lt;br /&gt;com.sun.facelets.FaceletViewHandler.getActionURL(FaceletViewHandler.java:803)&lt;br /&gt;org.ajax4jsf.application.ViewHandlerWrapper.getActionURL(ViewHandlerWrapper.java:92)&lt;br /&gt;com.sun.faces.renderkit.html_basic.FormRenderer.getActionStr(FormRenderer.java:195)&lt;br /&gt;com.sun.faces.renderkit.html_basic.FormRenderer.encodeBegin(FormRenderer.java:127)&lt;br /&gt;javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:813)&lt;br /&gt;javax.faces.component.UIComponent.encodeAll(UIComponent.java:928)&lt;br /&gt;javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)&lt;br /&gt;javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)&lt;br /&gt;com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)&lt;br /&gt;org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)&lt;br /&gt;org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:196)&lt;br /&gt;com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)&lt;br /&gt;com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)&lt;br /&gt;com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)&lt;br /&gt;javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)&lt;br /&gt;org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)&lt;br /&gt;org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&lt;br /&gt;org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)&lt;br /&gt;org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:38)&lt;br /&gt;org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)&lt;br /&gt;org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)&lt;br /&gt;org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)&lt;br /&gt;org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)&lt;br /&gt;org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)&lt;br /&gt;org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)&lt;br /&gt;org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)&lt;br /&gt;org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)&lt;br /&gt;org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)&lt;br /&gt;org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)&lt;br /&gt;org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)&lt;br /&gt;org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)&lt;br /&gt;org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)&lt;br /&gt;org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)&lt;br /&gt;org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)&lt;br /&gt;org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73)&lt;br /&gt;org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73)&lt;br /&gt;org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)&lt;br /&gt;org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)&lt;br /&gt;org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&lt;br /&gt;org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)&lt;br /&gt;org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)&lt;br /&gt;org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)&lt;br /&gt;org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)&lt;br /&gt;org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)&lt;br /&gt;org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)&lt;br /&gt;org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)&lt;br /&gt;org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)&lt;br /&gt;org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)&lt;br /&gt;org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)&lt;br /&gt;org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)&lt;br /&gt;org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)&lt;br /&gt;org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)&lt;br /&gt;org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)&lt;br /&gt;org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)&lt;br /&gt;org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)&lt;br /&gt;java.lang.Thread.run(Thread.java:619)&lt;br /&gt;&lt;br /&gt;Bom sendo bastante objetivo, se observarem na implementacao JSF perceberão a existencia de diversas chamadas de Logger.log(...), o problema em si não é esse mas o fato que para cada chamada dessa temos um isDebugEnabled(...) associado (ou algo similar... não me recordo agora) e isDebugEnabled, no meu caso, sempre estava dando true. Embora meu root logger no jboss-log4j estivesse configurado para nível ERROR, eu não tinha um category específico para o JSF e aparentemente isso levava a DEBUG ser o nível default. Declarar um category no jboss-log4j para o JSF e Facelets é algo natural nas versões JBoss 4.2/4.3 EAP, ou seja, embora JSF utilize java.util.logging, o JBoss é capaz de interceptar os loggers on-the-fly e envia-los para o log4j do container, contudo minha percepcão é, na dúvida garanta que o nível de log do JSF e do Facelets estão corretamente configurados declarando-os no arquivo jboss-log4j.xml. Declara-los explicitamente como ERROR/WARN, no meu caso, resolveu meus problemas de lock no Logger.&lt;br /&gt;&lt;br /&gt;Seguem os nomes dos loggers: &lt;br /&gt;&lt;br /&gt;javax.enterprise.resource.webcontainer.jsf.managedbean&lt;br /&gt;javax.enterprise.resource.webcontainer.jsf.renderkit&lt;br /&gt;javax.enterprise.resource.webcontainer.jsf.taglib&lt;br /&gt;javax.enterprise.resource.webcontainer.jsf.application&lt;br /&gt;javax.enterprise.resource.webcontainer.jsf.context&lt;br /&gt;javax.enterprise.resource.webcontainer.jsf.config&lt;br /&gt;javax.enterprise.resource.webcontainer.jsf.lifecycle&lt;br /&gt;javax.enterprise.resource.webcontainer.jsf.timing&lt;br /&gt;facelets.compiler&lt;br /&gt;facelets.factory&lt;br /&gt;facelets.tag.component&lt;br /&gt;facelets.viewhandler&lt;br /&gt;facelets.tag.meta&lt;br /&gt;&lt;br /&gt;Mais Informacões:&lt;br /&gt;&lt;br /&gt;http://www.jboss.org/community/docs/DOC-10379&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/730770347854117440-2831192540803889473?l=deivsonrayner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deivsonrayner.blogspot.com/feeds/2831192540803889473/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=730770347854117440&amp;postID=2831192540803889473' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/730770347854117440/posts/default/2831192540803889473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/730770347854117440/posts/default/2831192540803889473'/><link rel='alternate' type='text/html' href='http://deivsonrayner.blogspot.com/2008/11/jsf-logging-no-jboss.html' title='JSF logging no JBoss'/><author><name>Deivson Rayner T. Costa</name><uri>http://www.blogger.com/profile/05860317620774001815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-730770347854117440.post-1893643558743984957</id><published>2008-11-05T18:49:00.000-08:00</published><updated>2008-11-05T20:13:20.716-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOA'/><category scheme='http://www.blogger.com/atom/ns#' term='JBPM'/><category scheme='http://www.blogger.com/atom/ns#' term='BPM'/><category scheme='http://www.blogger.com/atom/ns#' term='BPEL'/><category scheme='http://www.blogger.com/atom/ns#' term='BPMN'/><title type='text'>A velha questão... BPEL modelando processo?</title><content type='html'>&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 11"&gt;&lt;meta name="Originator" content="Microsoft Word 11"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CDEIVSO%7E1.COS%5CCONFIG%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:hyphenationzone&gt;21&lt;/w:HyphenationZone&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" latentstylecount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman";} a:link, span.MsoHyperlink 	{color:blue; 	text-decoration:underline; 	text-underline:single;} a:visited, span.MsoHyperlinkFollowed 	{color:purple; 	text-decoration:underline; 	text-underline:single;} @page Section1 	{size:595.3pt 841.9pt; 	margin:70.85pt 3.0cm 70.85pt 3.0cm; 	mso-header-margin:35.4pt; 	mso-footer-margin:35.4pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tabela normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;A um pouco mais de um ano participei de um projeto onde foram experimentados 3 produtos de BPM/SOA onde lutávamos para atender os requisitos de nosso cliente, basicamente eram o Sun JCAPS, o projeto OpenESB da Sun acompanhado do BPEL Service Engine + NetBeans SOA Plugin e o desconhecido Savvion. O JCAPS, na época, no Enterprise Designer modelávamos processos utilizando BPEL 1.0 com uma notação visual própria, da ferramenta fundamentalmente nosso projeto sofria com o fato do cliente exigir que o processo, na sua notação visual, utilizasse a representação BPMN. O NetBeans  por sua vez esbarrava no mesmo problema, modelava BPEL com uma notação visual bem distante do que o cliente desejava oferecer para seus analistas de negocio. E por fim o Savvion oferecia uma plataforma muito amigável ao analista de negocio, contudo bastante distante de um tradicional modelador BPEL.&lt;br /&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;Muitas pessoas acreditavam que os elementos da semântica BPEL poderiam representados visualmente pelos elementos BPMN  e assim atenderiam aos requisitos exigidos pelo cliente, a experiência deste projeto levou-me a perceber que isso é um grande equivoco e o contato na época com o Savvion confirmou minhas expectativas. O Savvion trabalhava com uma notação visual BPMN, uma modelagem simples, extremamente focada na necessidade de um analista de negocio, e com código sendo gerado em XPDL. Eu sei que é difícil levar alguém, principalmente uma pessoa altamente focada em tecnologia a compreender que so porque BPEL modela blocos lógicos de orquestração de serviços este é ou não melhor para modelagem de negócio, contudo o que venho a perceber que BPEL é ótimo para desenvolvimento de serviços compostos, ou seja, orquestração de serviços para a composição de serviços de alto nível, modelados e construídos com enfoque SOA e não enfoque de processo (processo de negocio), claro que tais serviços tem como rastreabilidade em requisitos de um processo desenhado por um analista de negocio, mas estes em si não são modelados em função do negócio mas como um&lt;/span&gt;&lt;span style="font-family: Arial;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;bloco lógico de alto nível para atender a diversos processos de negocio, ou seja, um fragmento de código reutilizável.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 10pt;"&gt;Então depois de muito quebrar a cabeça com o que o cliente desejava e o que poderíamos oferecer diante dos produtos que tínhamos disponíveis chegamos a conclusão que  para modelagem de processo de negócio utilizaríamos uma ferramenta que seria capaz de modelar processos focados no negocio numa semântica dominada pelo profissional desta área (o analista de negocio) e por seguinte, este processo seria cliente de uma camada de serviços onde fundamentalmente os serviços seriam definidos em serviços atômicos, unidades mínimas de serviços e serviços compostos, composição de serviços orquestrados por uma linguagem para este fim, que neste caso seria BPEL.&lt;/span&gt; &lt;span style="font-size: 10pt;"&gt;Ou seja os dois mundos existiam, o modelo BPEL era focado exclusivamente na modelagem da colaboração de serviços atômicos e compostos enquanto que o XPDL era utilizado na modelagem da colaboração dos passos identificados no processo de negocio, que poderiam ou não estar sendo realizados por serviços compostos ou atômicos. De fato o XPDL aqui é apenas a linguagem computacional utilizada para execução do modelo BPMN elaborado na camada de negócio, portanto o que temos na modelagem de fato é um diagrama BPMN e uma relação de realização deste modelo no service layer e na forma serviços (sejam estes atômicos ou compostos).&lt;/span&gt; &lt;span style="font-size: 10pt;"&gt;Certamente não sei dizer se esta é a melhor abordagem, contudo para meu cliente era bastante interessante, deixe eu tentar citar algumas vantagens de maneira bem objetiva:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt;"&gt;- O processo de negocio desenhado pelo analista de negocio era executável não necessitando uma conversão intermediária entre um modelo BPMN e uma ferramenta de execução de processo baseada em BPEL.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt;"&gt;- O processo de negocio poderia ser simulado e melhorado orientado a critérios de negocio, ou seja a modelagem da estrutura do processo não tinha nenhuma relação com a semântica de orquestração dos serviços de tecnologia, deste modo a competência do arquiteto de negocio não se misturava com a competência do arquiteto dos serviços.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt;"&gt;- Objetivos de negocio eram realizados na modelagem do processo de negocio, objetivos não-funcionais de infraestrutura eram rastreados nos objetivos de negocio e realizados nos serviços atômicos ou serviços compostos (na forma de processos de tecnologia).&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt;"&gt;- Definição clara de o que é um processo de negocio e o que é um serviço composto reaproveitável corporativamente. &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;br /&gt;Bom, eu poderia ficar falando sobre este assunto por horas sem chegar a lugar algum pois, como eu disse, são questões ainda pouco resolvidas até mesmo no mercado, minha percepção e experiência levam-me a crer que a solução é contingencial e irá depender do que seu cliente quer. De maneira geral eu comecei a falar disso para introduzir um artigo bem interessante que li recentemente e intitulado &lt;a href="http://www.infoq.com/articles/bpelbpm"&gt;Why BPEL is not the holy grail for BPM&lt;/a&gt;. &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt;"&gt;Em breve falaremos como a abordagem citada aqui pode ser implementada utilizando o JBPM, e dentro desta filosofia é interessante observar o conceito de PVM (process virtual machine) oferecida por esta API onde permitirá trabalharmos  de maneira plugável com a linguagem de execução, permitindo assim os dois mundos, tanto ao orientado ao processo de negócio quanto o orientado ao processo de tecnologia (composite services) serem oferecidos por uma única suite simplificando bastante a arquitetura.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt;"&gt;Para quem se interessar em quebrar a cabeça com as relações entre XPDL e BPEL segue o link para um paper publicado pela Universidade Karlsruhe na Alemanha, &lt;a href="http://wi.wu-wien.ac.at/home/mendling/publications/TR-Caise06.pdf"&gt;http://wi.wu-wien.ac.at/home/mendling/publications/TR-Caise06.pdf&lt;/a&gt;, boa sorte na leitura.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/730770347854117440-1893643558743984957?l=deivsonrayner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deivsonrayner.blogspot.com/feeds/1893643558743984957/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=730770347854117440&amp;postID=1893643558743984957' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/730770347854117440/posts/default/1893643558743984957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/730770347854117440/posts/default/1893643558743984957'/><link rel='alternate' type='text/html' href='http://deivsonrayner.blogspot.com/2008/11/velha-questo-bpel-modelando-processo.html' title='A velha questão... BPEL modelando processo?'/><author><name>Deivson Rayner T. Costa</name><uri>http://www.blogger.com/profile/05860317620774001815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
