<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WEBCODELOG &#187; SOA</title>
	<atom:link href="http://www.lucianosilva.com/category/soa/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lucianosilva.com</link>
	<description>free codes, enjoy</description>
	<lastBuildDate>Mon, 14 Jun 2010 00:34:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Apresentando o BPEL com o Adapter File</title>
		<link>http://www.lucianosilva.com/2009/02/13/apresentando-o-bpel-com-o-adapter-file/</link>
		<comments>http://www.lucianosilva.com/2009/02/13/apresentando-o-bpel-com-o-adapter-file/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 23:14:00 +0000</pubDate>
		<dc:creator>Luciano</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[AdapterFile]]></category>
		<category><![CDATA[BPEL]]></category>
		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://www.lucianosilva.com/?p=163</guid>
		<description><![CDATA[O BPEL é uma linguagem que descrita em XML, que básicamente é utilizada para desenhar processo de negócio seguindo como base o BPM, destaca-se pela simplicidade da criação de um processo e pela amigável interface, proporcionando uma sensação agradável no momento do design. O utilizador de BPEL não necessita de conhecimentos em linguagem de programação, porém, o programador poderá obter mais recursos da ferramenta.]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">A solução da Oracle para o conceito de arquitetura de serviços SOA, conhecida como Oracle SOA Suite, disponibiliza um pacote com diversos recursos para organização, orquestração, segurança e integração. Para este último posso destacar o Business Process Execution Language, BPEL, que integrado ao JDeveloper é uma excelente ferramenta de trabalho, fácil, simples e com alguns recursos (adapters) pré-compilados que auxiliam.</p>
<p style="text-align: left;">O BPEL é uma linguagem que descrita em XML, que básicamente é utilizada para desenhar processo de negócio seguindo como base o BPM, destaca-se pela simplicidade da criação de um processo e pela amigável interface, proporcionando uma sensação agradável no momento do design. O utilizador de BPEL não necessita de conhecimentos em linguagem de programação, porém, o programador poderá obter mais recursos da ferramenta.</p>
<p style="text-align: left;">Para apresentar o BPEL escolhi algo um pouco mais além do famoso &#8220;Hello Word&#8221;, vamos trabalhar em um cenário de integração de softwares, aonde o legado irá disponibilizar um arquivo TXT no padrão CVS posicional diáriamente, o processo deverá interpretar o conteúdo deste arquivo e gravar no banco.</p>
<p style="text-align: left;"><strong>Pré-Requisitos</strong></p>
<p style="text-align: left;"><a href="http://www.oracle.com/technology/software/products/jdev/htdocs/soft10134.html" target="_blank">JDeveloper 10.1.3.4</a> (com suporte a SOA).</p>
<p style="text-align: left;"><a href="http://www.oracle.com/technology/software/products/ias/htdocs/101310.html" target="_blank">SOA Suite 10.1.3.1.0</a> (Com Windows Vista, talvez vc tenha problemas, baixe o patch).</p>
<p style="text-align: left;">MySQL.</p>
<p style="text-align: left;"><strong>Parte 1 &#8211; Criando o Projeto</strong></p>
<p style="text-align: left;">Crie um projeto do tipo BPEL Project em File -&gt; New -&gt; Projects -&gt; BPEL Process Project (certifique-se de que está filtrando por todas as tecnologias). Em seguida, dê um nome ao projeto e na opção template opte por Empty BPEL Process.</p>
<p style="text-align: center;"><a href="http://www.lucianosilva.com/wp-content/uploads/2009/02/proj02.jpg"><img class="size-medium wp-image-170 aligncenter" title="proj02 - New Project 2" src="http://www.lucianosilva.com/wp-content/uploads/2009/02/proj02-300x225.jpg" alt="proj02 - New Project 2" width="300" height="225" /></a></p>
<p style="text-align: left;"><strong>Parte 2 &#8211; Usando o Adapter File</strong></p>
<p style="text-align: left;">O Adapter File é um recurso do BPEL para manipulação de arquivos, oferece três opções Leitura, Escrita e Sincronização (Read, Writer e Synchronous Read), além dele existe o Adapter FTP (autoexplicativo), porém iremos falar sobre ele depois. Continuando com nosso projeto, vamos utiliza a opção Read para o <a href="http://www.lucianosilva.com/download/EXPORT_PAIS_20090212.txt" target="_blank">arquivo texto</a> que estará disponível no diretório c:\interface_dir, haverá um pooling a cada 1 minuto, obviamente que isto é apenas para testes você deve adequar o intervalo de tempo de acordo com sua necessidade, veja a seguir o passo-a-passo do Adapter File.</p>
<p style="text-align: center;"><a class="wpGallery" href="http://www.lucianosilva.com/windowTutorialAdapterFile.php" target="_blank">Veja aqui os screenshot do passo-a-passo para configurar o File Adapter</a>.</p>
<p style="text-align: left;">Até este passo fizemos apenas configurações básicas da funcionalidade do Adapter, porém, agora é necessário definir um o mapeamento das colunas posicional (fixo), utililzando um Schema XSD, veja a seguir como é simples:</p>
<p style="text-align: center;"><a class="wpGallery" href="http://www.lucianosilva.com/windowTutorialXSD.php" target="_blank"> Screenshots para criar o Schema XSD</a>.</p>
<p style="text-align: left;"><strong>Parte 3 &#8211; Criando o Adapter Database</strong></p>
<p style="text-align: left;">Crie um banco de dados no MySQL ou em qualquer outro SGDB, em seguida <a href="http://www.lucianosilva.com/download/script_pais.sql" target="_blank">crie a tabela pais</a> que irá receber os dados contidos no arquivo texto. Antes de utilizar o Adapter Database certifique-se que sua conexão com o banco está feita pelo JDeveloper, ela será necessária para os passos a seguir, portando vá até a aba Connection, se não existir crie-a.</p>
<p style="text-align: center;"><a href="http://www.lucianosilva.com/wp-content/uploads/2009/02/connection.jpg"><img class="aligncenter size-medium wp-image-205" style="border: 1px solid black;" title="Connection" src="http://www.lucianosilva.com/wp-content/uploads/2009/02/connection-300x204.jpg" alt="Connection" width="300" height="204" /></a></p>
<p style="text-align: left;">
<p style="text-align: left;">Com a tabela criada e a conexão feita, agora vamos utilizar o componente Database Adapter que será o responsável por executar instruções SQL. Os passos aqui são tão simples quanto a criação da conexão, porém, é importante destacar que no <strong>Passo 4</strong> escolha a opção <strong>Execute Custom SQL</strong>, e no quinto e último passo coloque a instrução de inserção da tabela pais, não se preocupe com o XSD ele será criado automáticamente, veja como fica:</p>
<p style="TEXT-ALIGN: center"><a href="http://www.lucianosilva.com/wp-content/uploads/2009/02/custom_sql.jpg"><img class="size-medium wp-image-220 aligncenter" title="Custom SQL" src="http://www.lucianosilva.com/wp-content/uploads/2009/02/custom_sql-300x222.jpg" alt="Custom SQL" width="300" height="222" /></a><a href="http://www.lucianosilva.com/wp-content/uploads/2009/02/custom_sql.jpg"></a></p>
<p style="text-align: left;"><strong>Passo 4 &#8211; While e Variáveis</strong></p>
<p style="text-align: left;">Para cada campo do arquivo TXT, mapeado pelo Schema XSD, devemos criar uma variável que irá armazenar o valor dos campos, então vá até a aba Structure e crie as variáveis.</p>
<p style="TEXT-ALIGN: center"><a href="http://www.lucianosilva.com/wp-content/uploads/2009/02/variaveis_01.jpg"><img class="size-medium wp-image-221 aligncenter" title="Variaveis - 01" src="http://www.lucianosilva.com/wp-content/uploads/2009/02/variaveis_01-300x186.jpg" alt="Variaveis - 01" width="300" height="186" /></a></p>
<p style="TEXT-ALIGN: center"><a href="http://www.lucianosilva.com/wp-content/uploads/2009/02/variaveis_02.jpg"><img class="aligncenter size-medium wp-image-222" title="Variaveis - 02" src="http://www.lucianosilva.com/wp-content/uploads/2009/02/variaveis_02-300x278.jpg" alt="Variaveis - 02" width="300" height="278" /></a></p>
<p style="text-align: left;">
<p style="text-align: left;">Depois de todas as variáveis criadas precisamos associa-las aos campos do XSD e inicializa-las, mas para isto devo esclarecer uma coisa, sabemos que o arquivo texto poderá ter uma ou mais linhas de registro, portanto é necessária uma instrução de repetição. Utilizaremos o componente <strong>WHILE</strong>, a partir de uma variável contadora (índice).</p>
<p style="text-align: left;"><a href="http://www.lucianosilva.com/wp-content/uploads/2009/02/diagram_01.jpg"><img class="aligncenter size-medium wp-image-226" title="diagram_01" src="http://www.lucianosilva.com/wp-content/uploads/2009/02/diagram_01-114x300.jpg" alt="diagram_01" width="114" height="300" /></a></p>
<p style="text-align: left;">O While cria um novo escopo aonde devemos arrastar os componentes de assinatura das variáveis e chamada da procedure, ou seja, para cada registro iremos fazer a inicialização da variáveis e a chamada da procedure para gravar no banco de dados, finalizando o nosso processo BPEL.</p>
<p style="text-align: left;"><a href="http://www.lucianosilva.com/wp-content/uploads/2009/02/diagram_02.jpg"><img class="aligncenter size-medium wp-image-228" title="diagram_02" src="http://www.lucianosilva.com/wp-content/uploads/2009/02/diagram_02-281x300.jpg" alt="diagram_02" width="281" height="300" /></a></p>
<p style="text-align: left;">O processo é simples mas o dominio do ambiente BPEL é excencial, saber criar as variáveis, inicializá-las, passagem de valores, etc. Abaixo está disponível o fonte do projeto criado no JDeveloper.</p>
<p style="text-align: left;">Clique <a href="http://www.lucianosilva.com/download/BlogApReadFileToDB.zip">aqui</a> para baixar o fonte.</p>
<p style="text-align: left;">
<p style="text-align: left;">
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "oracle";
            bb_bid  = "41213";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "4";bb_format = "bbm";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->]]></content:encoded>
			<wfw:commentRss>http://www.lucianosilva.com/2009/02/13/apresentando-o-bpel-com-o-adapter-file/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
