<?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>Aquele blog de SOA &#187; SOA para iniciantes</title>
	<atom:link href="http://www.aqueleblogdesoa.com.br/categoria/soa/soa-para-iniciantes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.aqueleblogdesoa.com.br</link>
	<description>SOA? Veja bem...</description>
	<lastBuildDate>Thu, 08 Jul 2010 14:16:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor</title>
		<link>http://www.aqueleblogdesoa.com.br/2009/08/principios-basicos-de-soa-servicos-sao-capazes-de-se-compor/</link>
		<comments>http://www.aqueleblogdesoa.com.br/2009/08/principios-basicos-de-soa-servicos-sao-capazes-de-se-compor/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 13:45:18 +0000</pubDate>
		<dc:creator>gabriel</dc:creator>
				<category><![CDATA[Papo técnico]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[SOA para iniciantes]]></category>

		<guid isPermaLink="false">http://www.aqueleblogdesoa.com.br/?p=906</guid>
		<description><![CDATA[Olá!
No último post escrevi sobre o princípio que define que serviços abstraem a lógica, com um exemplo de uso.
Voltando a falar sobre os princípios básicos da arquitetura orientada a serviços, nesse post escreverei sobre o quinto item da nossa lista: os serviços são capazes de se compor. A cada princípio, eles se mostram cada vez [...]


Related posts:<ol><li><a href='http://www.aqueleblogdesoa.com.br/2010/04/soa-ajuda-cloud-sim/' rel='bookmark' title='Permanent Link: SOA ajuda Cloud? Sim!'>SOA ajuda Cloud? Sim!</a></li><li><a href='http://www.aqueleblogdesoa.com.br/2009/08/40-dos-usuarios-de-soa-nao-medem-o-tempo-necessario-para-roi/' rel='bookmark' title='Permanent Link: 40% dos usuários de SOA não medem o tempo necessário para ROI'>40% dos usuários de SOA não medem o tempo necessário para ROI</a></li><li><a href='http://www.aqueleblogdesoa.com.br/2010/04/davi-x-golias-em-soa/' rel='bookmark' title='Permanent Link: Davi x Golias em SOA'>Davi x Golias em SOA</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Olá!</p>
<p>No último post escrevi sobre o <strong>princípio </strong>que define que <strong><a title="Serviços abstraem a lógica" href="http://www.aqueleblogdesoa.com.br/2009/05/principos-basicos-de-soa-servicos-abstraem-a-logica/" target="_blank">serviços abstraem a lógica</a></strong>, com um exemplo de uso.</p>
<p>Voltando a falar sobre os <strong>princípios básicos da arquitetura orientada a serviços</strong>, nesse post escreverei sobre o quinto item da nossa lista: os <strong>serviços são capazes de se compor</strong>. A cada <strong>princípio</strong>, eles se mostram cada vez mais complementares e, de certa forma, até mesmo intuitivos. Isso deve facilitar o entendimento dos <em>conceitos </em>aqui apresentados.</p>
<p style="text-align: center;"><div class="img wp-image-961" style="width:445px;">
	<img src="http://www.aqueleblogdesoa.com.br/wp-content/uploads/2009/08/servicos-capazes-de-se-compor2.jpg" alt="Serviços são Capazes de se Compor" width="445" height="374" />
	<div>Serviços são Capazes de se Compor</div>
</div>
<p><span id="more-906"></span><br />
5. Princípio: <strong>Serviços são capazes de se compor</strong></p>
<ul>
<li>O que é:
<ul>
<li>A <em>característica </em>de os <strong>serviços capazes de se compor</strong> consiste em criar <strong>serviços </strong>que sejam capazes de se juntar e serem acessados de forma a englobar e atender um problema maior.</li>
<li>A <strong>composição </strong>dos serviços pode ser:
<ul>
<li><em>Primitiva </em>- quando há apenas a troca de mensagens entre um conjunto de <strong>serviços</strong>;</li>
<li><em>Complexa </em>- quando um conjunto de <strong>serviços </strong>oferece uma solução <em>lógica </em>sofisticada, ou seja, diversas trocas de <em>mensagens </em>entre um conjunto de serviços que são executados paralelamente.</li>
</ul>
</li>
</ul>
</li>
<li>Aspectos positivos:
<ul>
<li>O <strong>princípio </strong>de dividir para conquistar é muito conhecido há anos e tem como principal objetivo simplificar os problemas encontrados no dia-a-dia. Com possibilidade de criar <em>composições de <strong>serviços</strong></em>, eles tornam-se capazes de resolver grandes problemas com a complexidade de um simples <strong>serviço</strong>.</li>
</ul>
</li>
<li>Dificuldades:
<ul>
<li>A troca de mensagens entre os serviços pode torná-lo mais complexo e o <strong><a title="Princípio de Baixo Acoplamento" href="http://www.aqueleblogdesoa.com.br/2009/03/principios-basicos-de-soa-baixo-acoplamento/" target="_blank">princípio de baixo acoplamento</a></strong> não deve ser desrespeitado em detrimento disso. Os <strong>serviços </strong>devem <em>comunicar</em>-se para tornarem-se mais completos, e não interdependentes.</li>
</ul>
</li>
<li>Exemplo:
<ul>
<li><strong>Situação inicial:</strong> É necessário serviços de validação dos dados de um cadastro de usuários em um sistema. Os dados a serem validados são o CPF, o cartão de crédito e o endereço.
<ul>
<li>No <strong>barramento de serviços</strong> A, é possível descobrir o serviço de <em>validação </em>dos dados.</li>
<li>No <strong>barramento de serviços</strong> B encontramos 3 serviços:
<ul>
<li><em>Validador </em>de CPFs;</li>
<li><em>Validador </em>de Cartões de Crédito;</li>
<li><em>Validador </em>de Endereços.</li>
</ul>
</li>
</ul>
</li>
<li>No diagrama abaixo podemos ver como os <strong>serviços </strong>simples são capazes de se compor e resolver o problema mais complexo que é a <em>validação </em>de dados.
<ul>
<li>Cada seta ilustra a troca de mensagens entre os <strong>serviços</strong>. O <strong>serviço </strong>que valida os dados consulta cada <em>validador</em> individual e é responsável pela validação completa dos dados.</li>
<li>A troca de mensagens entre o serviço de <em>validação </em>de cartões de crédito e de validação de endereços é uma forma de aprimorar a simples validação do número do cartão junto à operadora de cartões de crédito.</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="img wp-image-959" style="width:400px;">
	<img src="http://www.aqueleblogdesoa.com.br/wp-content/uploads/2009/08/composicao-de-servicos-exem.jpg" alt="Exemplo de composição de serviços" width="400" height="325" />
	<div>Exemplo de composição de serviços</div>
</div>
<p>No próximo post falarei sobre o sexto <strong>princípio </strong>da nossa lista: os <strong>serviços devem ser autônomos</strong>.</p>


<p>Related posts:<ol><li><a href='http://www.aqueleblogdesoa.com.br/2010/04/soa-ajuda-cloud-sim/' rel='bookmark' title='Permanent Link: SOA ajuda Cloud? Sim!'>SOA ajuda Cloud? Sim!</a></li><li><a href='http://www.aqueleblogdesoa.com.br/2009/08/40-dos-usuarios-de-soa-nao-medem-o-tempo-necessario-para-roi/' rel='bookmark' title='Permanent Link: 40% dos usuários de SOA não medem o tempo necessário para ROI'>40% dos usuários de SOA não medem o tempo necessário para ROI</a></li><li><a href='http://www.aqueleblogdesoa.com.br/2010/04/davi-x-golias-em-soa/' rel='bookmark' title='Permanent Link: Davi x Golias em SOA'>Davi x Golias em SOA</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.aqueleblogdesoa.com.br/2009/08/principios-basicos-de-soa-servicos-sao-capazes-de-se-compor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Princípos Básicos de SOA &#8211; Serviços Abstraem a Lógica</title>
		<link>http://www.aqueleblogdesoa.com.br/2009/05/principos-basicos-de-soa-servicos-abstraem-a-logica/</link>
		<comments>http://www.aqueleblogdesoa.com.br/2009/05/principos-basicos-de-soa-servicos-abstraem-a-logica/#comments</comments>
		<pubDate>Tue, 12 May 2009 13:39:11 +0000</pubDate>
		<dc:creator>gabriel</dc:creator>
				<category><![CDATA[Papo técnico]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[SOA para iniciantes]]></category>

		<guid isPermaLink="false">http://www.aqueleblogdesoa.com.br/?p=812</guid>
		<description><![CDATA[Olá!
Após um tempo sem escrever, vou continuar explicando um pouco mais sobre os princípios básicos de SOA. Relembrando o que já foi escrito, passamos pelos primeiros três princípios, que tratam de serviços serem reutilizáveis, compartilharem um contrato formal e possuírem baixo acoplamento.
Hoje vou falar sobre o princípio que diz que os serviços devem abstrair a [...]


Related posts:<ol><li><a href='http://www.aqueleblogdesoa.com.br/2009/08/principios-basicos-de-soa-servicos-sao-capazes-de-se-compor/' rel='bookmark' title='Permanent Link: Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor'>Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor</a></li><li><a href='http://www.aqueleblogdesoa.com.br/2009/08/40-dos-usuarios-de-soa-nao-medem-o-tempo-necessario-para-roi/' rel='bookmark' title='Permanent Link: 40% dos usuários de SOA não medem o tempo necessário para ROI'>40% dos usuários de SOA não medem o tempo necessário para ROI</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Olá!</p>
<p>Após um tempo sem escrever, vou continuar explicando um pouco mais sobre os <strong>princípios básicos de SOA</strong>. Relembrando o que já foi escrito, passamos pelos primeiros três princípios, que tratam de <a title="Princípios Básicos de SOA - Serviços Reutilizáveis" href="http://www.aqueleblogdesoa.com.br/2009/03/principios-basicos-de-soa-servicos-reutilizaveis/" target="_blank">serviços serem reutilizáveis</a>, <a title="Princípios Básicos de SOA - Contratos Formais" href="http://www.aqueleblogdesoa.com.br/2009/03/principios-basicos-de-soa-contrato-formal/" target="_blank">compartilharem um contrato formal</a> e <a title="Princípios Básicos de SOA - Baixo Acoplamento" href="http://www.aqueleblogdesoa.com.br/2009/03/principios-basicos-de-soa-baixo-acoplamento/" target="_blank">possuírem baixo acoplamento</a>.</p>
<p>Hoje vou falar sobre o princípio que diz que os <strong>serviços </strong>devem <strong>abstrair a lógica</strong> nele contida. Ao final da explicação vou inserir um <strong>exemplo</strong> em <em>JAVA</em> para tentar ilustrar o <strong>princípio</strong> e facilitar a compreensão.</p>
<div class="img aligncenter size-full wp-image-860" style="width:500px;">
	<img src="http://www.aqueleblogdesoa.com.br/wp-content/uploads/2009/05/4-carac_abstraemlogica.png" alt="" width="500" height="333" />
	<div>Serviços Abstraem a Lógica</div>
</div><br />
<span id="more-812"></span><br />
4. Princípio: <strong>Serviços abstraem a lógica</strong></p>
<ul>
<li>O que é:
<ul>
<li><strong>Serviços </strong>devem ser tratados como uma caixa preta, assim como <strong>componentes de um sistema</strong>. Assim sendo, a <strong>programação</strong> nele inclusa pode ser substituída a qualquer momento, sem afetar aqueles que o <em>consomem</em>.</li>
<li>Essa <strong>abstração </strong>deve existir tanto na <em>linguagem de programação</em> quanto na <em>tecnologia</em>, ou seja, os <strong>serviços </strong>devem tratar todas <em>linguagens</em> e <em>tecnologias </em>que o consomem da mesma forma, ignorando distinções como por exemplo <a title="Ordenação de bytes no hardware" href="http://pt.wikipedia.org/wiki/Extremidade_(ordena%C3%A7%C3%A3o)" target="_blank">big-endian ou little-endian</a> (ordem dos bytes nas palavras).</li>
</ul>
</li>
<li>Aspectos positivos:
<ul>
<li>Esse <strong>princípio </strong>é rotineiramente aplicado hoje em dia, não possui dificuldades em sua <strong>implementação</strong>;</li>
<li>Permite que agentes humanos interajam com <strong>sistemas complexos</strong> de forma simples, já que a suas <strong>interfaces </strong>são de simples compreensão.</li>
</ul>
</li>
<li>Dificuldades:
<ul>
<li>Algumas dificuldades podem ser encontradas com <strong>linguagens </strong>mais antigas ou menos poderosas, como <strong>Cobol</strong>. O fato de serem menos complexas leva ao fato de poder exigir um certo esforço para converter os dados de modo a deixar as chamadas transparentes a qualquer <em>consumidor</em>.</li>
</ul>
</li>
<li>Exemplo:
<ul>
<li><strong>Situação inicial</strong>: Disponibilizamos um <strong>serviço</strong> que conta o número de verbos em um texto. Para isso, o serviço faz uma lista de palavras e, iterando essa lista, verifica quais são verbos, em um dicionário.</li>
<li>&#8230;
<pre style="font-size:12px">  public Integer numeroDeVerbos(String texto){
    // quebro o texto nos espaços em branco
    String [ ] arrayDePalavras = texto.split(" ");  

    int contador = 0; // contador de verbos
    for (int i = 0; i&lt;arrayDePalavras.length; i++){

      // verifica se a palavra é verbo
      if ( PalavraEVerbo(arrayDePalavras[i]) ){
        // se a palavra é verbo, acrescenta 1 no contador
        contador ++;
      }
    }

    return contador;
  }</pre>
<p>&#8230;</li>
<li><strong>Situação secundária</strong>: Queremos disponibilizar, além do <strong>serviço</strong> inicial, dois novos <strong>serviços</strong>. Um deles que retornará o número de substantivos de um texto e o outro o número total de verbos + substantivos.</li>
<li>&#8230;
<pre style="font-size:12px;">public Integer numeroDeVerbos(String texto){
	String [ ] arrayTemp = contaVerbosESubstantivos(texto);
	return arrayTemp[0];
}

public Integer numeroDeSubstantivos(String texto){
	String [ ] arrayTemp = contaVerbosESubstantivos(texto);
	return arrayTemp[1];
}

public Integer numeroDeVerbosESubstantivos(String texto){
	String [ ] arrayTemp = contaVerbosESubstantivos(texto);
	return arrayTemp[0] + arrayTemp[1];
}

/*
* esse método retorna um array com 2 posições,
* na primeira delas o total de verbos do texto, na segunda,
* o total de substantivos
*/
private Integer [ ] contaVerbosESubstantivos(String texto){
  // quebro o texto nos espaços em branco
  String [ ] arrayDePalavras = texto.split(" "); 

  int contadorDeVerbos = 0; // contador de verbos
  int contadorDeSubstantivos = 0; // contador de substantivos

  for (int i = 0; i&lt;arrayDePalavras.length; i++){
    // verifica se a palavra é verbo
    if ( PalavraEVerbo(arrayDePalavras[i]) ){ 

      // se a palavra é verbo, acrescenta 1 no contador
      contadorDeVerbos ++;

    }else if(PalavraESubstantivo(arrayDePalavras[i])){

      // se a palavra é substantivo, acrescenta 1 no contador
      contadorDeSubstantivos ++; 

    }
  }

  Integer [ ] retorno = {contadorDeVerbos, contadorDeSubstantivos};
  return retorno;
}</pre>
<p>&#8230;</li>
<li>Na visão do <strong>usuário </strong>existem 2 novos <strong>serviços </strong>e o <strong>serviço </strong>antigo funciona como antes.</li>
<li>Na visão do <strong>implementador</strong>, ele <strong>abstraiu a lógica do serviço</strong> inicial (numeroDeVerbos) e criou um <em>método</em> privado (contaVerbosESubstantivos) para <strong>reutilizar o código</strong> nos novos <em>métodos</em> (numeroDeSubstantivos e numeroDeVerbosESubstantivos) e o primeiro <strong>serviço</strong> continuou tendo a mesma <em>funcionalidade </em>de antes.</li>
</ul>
</li>
</ul>


<p>Related posts:<ol><li><a href='http://www.aqueleblogdesoa.com.br/2009/08/principios-basicos-de-soa-servicos-sao-capazes-de-se-compor/' rel='bookmark' title='Permanent Link: Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor'>Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor</a></li><li><a href='http://www.aqueleblogdesoa.com.br/2009/08/40-dos-usuarios-de-soa-nao-medem-o-tempo-necessario-para-roi/' rel='bookmark' title='Permanent Link: 40% dos usuários de SOA não medem o tempo necessário para ROI'>40% dos usuários de SOA não medem o tempo necessário para ROI</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.aqueleblogdesoa.com.br/2009/05/principos-basicos-de-soa-servicos-abstraem-a-logica/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Princípios Básicos de SOA &#8211; Baixo Acoplamento</title>
		<link>http://www.aqueleblogdesoa.com.br/2009/03/principios-basicos-de-soa-baixo-acoplamento/</link>
		<comments>http://www.aqueleblogdesoa.com.br/2009/03/principios-basicos-de-soa-baixo-acoplamento/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 12:30:15 +0000</pubDate>
		<dc:creator>gabriel</dc:creator>
				<category><![CDATA[Papo técnico]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[SOA para iniciantes]]></category>

		<guid isPermaLink="false">http://www.aqueleblogdesoa.com.br/?p=781</guid>
		<description><![CDATA[Nesse terceiro post da sequência de princípios básicos de SOA, falarei sobre a que talvez seja a característica mais discutida na Arquitetura Orientada a Serviços: Baixo Acoplamento. Citarei apenas os principais aspectos, que são descritos mais claramente nesse post sobre Baixo Acoplamento.

	
	Serviços Possuem Baixo Acoplamento


3. Princípio: Serviços têm baixo acoplamento

O que é:

O baixo acoplamento de [...]


Related posts:<ol><li><a href='http://www.aqueleblogdesoa.com.br/2009/08/principios-basicos-de-soa-servicos-sao-capazes-de-se-compor/' rel='bookmark' title='Permanent Link: Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor'>Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor</a></li><li><a href='http://www.aqueleblogdesoa.com.br/2010/04/soa-ajuda-cloud-sim/' rel='bookmark' title='Permanent Link: SOA ajuda Cloud? Sim!'>SOA ajuda Cloud? Sim!</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Nesse terceiro post da sequência de princípios básicos de <strong>SOA</strong>, falarei sobre a que talvez seja a característica mais discutida na <em><strong>Arquitetura Orientada a Serviços</strong></em>: <strong>Baixo Acoplamento</strong>. Citarei apenas os <em>principais aspectos</em>, que são descritos mais claramente nesse <a title="Baixo Acoplamento" href="http://www.aqueleblogdesoa.com.br/2008/07/baixo-acoplamento/" target="_blank">post sobre <strong>Baixo Acoplamento</strong></a>.</p>
<div class="img aligncenter size-full wp-image-797" style="width:500px;">
	<img src="http://www.aqueleblogdesoa.com.br/wp-content/uploads/2009/03/3-carac_baixoacoplamento.png" alt="" width="500" height="329" />
	<div>Serviços Possuem Baixo Acoplamento</div>
</div><br />
<span id="more-781"></span></p>
<p>3. Princípio: <strong>Serviços têm baixo acoplamento</strong></p>
<ul>
<li>O que é:
<ul>
<li>O <strong>baixo acoplamento</strong> de um serviço está relacionado com a sua capacidade de ser independente de outros <strong>serviços</strong> para realizar a sua tarefa;</li>
<li>Além do <strong>baixo acoplamento</strong>, é importante que um serviço tenha <em>alta coesão</em>, ou seja, a sua atividade seja bem <em>definida e coerente</em>;</li>
<li>Existem alguns tipos de acoplamentos:
<ul>
<li><strong>Acoplamento de Implementação</strong></li>
<li><strong>Acoplamento de Contrato</strong></li>
<li><strong>Acoplamento de Service Policies</strong></li>
<li><strong>Acoplamento de Processos</strong></li>
<li><strong>Acoplamento de Estrutura de Dados</strong></li>
<li><strong>Acoplamento de Infraestrutura</strong></li>
<li><strong>Acomplamento Semântico</strong></li>
</ul>
</li>
<li>A<strong> <a title="Interoperabilidade com Web Services" href="http://www.aqueleblogdesoa.com.br/2008/06/interoperabilidade-com-web-services/" target="_blank">interoperabilidade dos serviços</a></strong> permite que clientes projetados em diversas tecnologias de <em>linguagem de programação</em> possam acessar os <strong>serviços</strong> de forma transparente. Com esse intuito, alguns padrões foram criados pela <em>Web Services Interoperability</em> (<em>WS-I</em>) para as interfaces dos serviços.</li>
</ul>
</li>
<li>Aspectos positivos:
<ul>
<li>Hoje em dia os <em>ambientes de desenvolvimento</em> são cada vez mais heterogêneos. Um sem-número de tecnologias são utilizadas paralelamente e isso não deve influenciar na utilização dos <em>serviços</em>, que são tratados pela implementação de maneira idêntica;</li>
<li>A adoção de uma boa prática de <strong>desacoplamento</strong> faz com que as estruturas respeitem um padrão utilizado dentro do <em>ambiente corporativo</em>;</li>
<li>O <strong>desacoplamento</strong> aumenta o potencial de <em>reúso</em> do conjunto de serviços;</li>
</ul>
</li>
<li>Dificuldades:
<ul>
<li>Identificar os pontos de <strong>acoplamento</strong> potencialmente elimináveis;</li>
<li>Criar serviços totalmente <strong>desacoplados</strong> de qualquer estrutura, já que não existem padrões definidos para determinadas soluções (como por exemplo o uso de <strong>ESB</strong>&#8217;s, no caso do <strong>desacoplamento de Infraestrutura</strong>).</li>
</ul>
</li>
</ul>
<p>Como havia dito no post anterior, sobre <strong><a title="Princípios Básicos de SOA: Contrato Formal" href="http://www.aqueleblogdesoa.com.br/2009/03/principios-basicos-de-soa-contrato-formal/" target="_blank">Contratos Formais</a></strong>, os <em>princípios de <strong>SOA</strong></em> se autocompletam. O <strong>desacoplamento</strong> dos serviços também se relaciona com a criação dos <em>contratos</em>, assim como favorece o <strong><a title="Princípios Básicos de SOA: Serviços Reutilizáveis" href="http://www.aqueleblogdesoa.com.br/2009/03/principios-basicos-de-soa-servicos-reutilizaveis/" target="_blank">reúso</a></strong>.</p>
<p>No próximo post falarei sobre <em>abstrair a lógica dos serviços</em>, que favorece a interação de sistemas complexos.</p>
<p>Até mais!</p>


<p>Related posts:<ol><li><a href='http://www.aqueleblogdesoa.com.br/2009/08/principios-basicos-de-soa-servicos-sao-capazes-de-se-compor/' rel='bookmark' title='Permanent Link: Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor'>Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor</a></li><li><a href='http://www.aqueleblogdesoa.com.br/2010/04/soa-ajuda-cloud-sim/' rel='bookmark' title='Permanent Link: SOA ajuda Cloud? Sim!'>SOA ajuda Cloud? Sim!</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.aqueleblogdesoa.com.br/2009/03/principios-basicos-de-soa-baixo-acoplamento/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Princípios Básicos de SOA &#8211; Contrato Formal</title>
		<link>http://www.aqueleblogdesoa.com.br/2009/03/principios-basicos-de-soa-contrato-formal/</link>
		<comments>http://www.aqueleblogdesoa.com.br/2009/03/principios-basicos-de-soa-contrato-formal/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 12:35:11 +0000</pubDate>
		<dc:creator>gabriel</dc:creator>
				<category><![CDATA[Papo técnico]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[SOA para iniciantes]]></category>
		<category><![CDATA[principios]]></category>

		<guid isPermaLink="false">http://www.aqueleblogdesoa.com.br/?p=759</guid>
		<description><![CDATA[Mais um post que trata dos conceitos básicos de SOA, com o objetivo de ajudar aqueles que procuram saber o que é SOA ou definições comuns como WSDL, SOAP e ESB.
No post anterior falei sobre o primeiro princípio de SOA, que trata de definir que Serviços devem ser Reutilizáveis. Nesse post falarei sobre o segundo [...]


Related posts:<ol><li><a href='http://www.aqueleblogdesoa.com.br/2009/08/principios-basicos-de-soa-servicos-sao-capazes-de-se-compor/' rel='bookmark' title='Permanent Link: Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor'>Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor</a></li><li><a href='http://www.aqueleblogdesoa.com.br/2009/10/webinar-maturidade-e-roadmap-soa-participe/' rel='bookmark' title='Permanent Link: Webinar: Maturidade e Roadmap SOA. Participe!'>Webinar: Maturidade e Roadmap SOA. Participe!</a></li><li><a href='http://www.aqueleblogdesoa.com.br/2010/04/soa-ajuda-cloud-sim/' rel='bookmark' title='Permanent Link: SOA ajuda Cloud? Sim!'>SOA ajuda Cloud? Sim!</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Mais um post que trata dos <em>conceitos básicos de <strong>SOA</strong></em>, com o objetivo de ajudar aqueles que procuram saber <strong><a title="O que é SOA?" href="http://www.aqueleblogdesoa.com.br/2008/11/o-que-e-soa/" target="_blank">o que é SOA</a></strong> ou definições comuns como <strong>WSDL</strong>, <strong>SOAP</strong> e <strong>ESB</strong>.</p>
<p>No post anterior falei sobre o primeiro princípio de <em><strong>SOA</strong></em>, que trata de definir que <a title="Princípios Básicos de SOA - Serviços Reutilizáveis" href="http://www.aqueleblogdesoa.com.br/2009/03/principios-basicos-de-soa-servicos-reutilizaveis/" target="_blank">Serviços devem ser Reutilizáveis</a>. Nesse post falarei sobre o segundo princípio que diz que os serviços devem possuir contratos formais.</p>
<div class="img aligncenter size-full wp-image-772" style="width:500px;">
	<img src="http://www.aqueleblogdesoa.com.br/wp-content/uploads/2009/03/2-carac_contratoformal.png" alt="" width="500" height="336" />
	<div>Serviços compatilham um Contrato Formal</div>
</div>
<p><span id="more-759"></span></p>
<p>2. Princípio: <strong>Todo serviço deve ter um contrato formal</strong></p>
<ul>
<li>O que é:
<ul>
<li><strong>Contratos</strong> são documentos textuais que descrevem o que o serviço faz. Os <strong>padrões WSDL</strong> (<em>Web Service Description Language</em>), <strong>UDDI</strong> (<em>Universal Description Discovery and Integration</em>) e <strong>SOAP</strong> (<em>Simple Object Access Protocol</em>) são muito utilizados no dia-a-dia.</li>
<li>O <strong>padrão <a title="O Modelo de Processamento SOAP" href="http://www.aqueleblogdesoa.com.br/2008/07/modelo-de-processamento-soap/" target="_blank">SOAP</a></strong> é  utilizado pelos <em>Web Services</em> e é responsável por definir o modelo da <em>troca de mensagens</em>. Para isso utiliza um arquivo XML que define envelopes e os nós intermediários da comunicação.</li>
<li>O <strong>padrão <a title="Anatomia WSDL" href="http://www.aqueleblogdesoa.com.br/2008/08/anatomia-do-wsdl/" target="_blank">WSDL</a></strong> é responsável por <em>identificar</em> o protocolo e o endereço no qual um serviço está publicado, assim como seus parâmetros de entrada e saída.</li>
<li>O <strong>padrão UDDI</strong> permite que os serviços sejam <em>categorizados</em>, porém sem fornecer uma riqueza de textos para que buscas por um serviço específico sejam feitas.</li>
</ul>
</li>
<li>Aspectos positivos:
<ul>
<li>Esses <strong>contratos</strong> são capazes de traduzir com detalhes a funcionalidade dos <em>serviços</em> especificados para que os clientes possam buscá-los e utilizá-los conforme a sua necessidade.</li>
</ul>
</li>
<li>Dificuldades:
<ul>
<li>Para que todos os detalhes de implementação de um serviço sejam especificados, são necessários diversos <em>padrões de contratos</em> a serem utilizados por toda a corporação. Isso pode se tornar uma tarefa complexa caso haja a necessidade de migração de documentos (já criados) para o conjunto de <em>padrões</em> escolhidos.</li>
</ul>
</li>
</ul>
<p>Os padrões básicos de SOA se autocompletam. Assim sendo, fica claro que a presença de contratos formais auxilia em um outro padrão a será discutido mais pra frente, que define que os <strong>serviços devem ser localizáveis</strong>.</p>
<p>No próximo post falarei sobre a característica de <strong>baixo acoplamento</strong>, que os <em>serviços</em> devem possuir dentro da <em><strong>Arquitetura Orientada a Serviços</strong></em>.</p>
<p>Até a próxima!</p>


<p>Related posts:<ol><li><a href='http://www.aqueleblogdesoa.com.br/2009/08/principios-basicos-de-soa-servicos-sao-capazes-de-se-compor/' rel='bookmark' title='Permanent Link: Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor'>Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor</a></li><li><a href='http://www.aqueleblogdesoa.com.br/2009/10/webinar-maturidade-e-roadmap-soa-participe/' rel='bookmark' title='Permanent Link: Webinar: Maturidade e Roadmap SOA. Participe!'>Webinar: Maturidade e Roadmap SOA. Participe!</a></li><li><a href='http://www.aqueleblogdesoa.com.br/2010/04/soa-ajuda-cloud-sim/' rel='bookmark' title='Permanent Link: SOA ajuda Cloud? Sim!'>SOA ajuda Cloud? Sim!</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.aqueleblogdesoa.com.br/2009/03/principios-basicos-de-soa-contrato-formal/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Princípios Básicos de SOA &#8211; Serviços Reutilizáveis</title>
		<link>http://www.aqueleblogdesoa.com.br/2009/03/principios-basicos-de-soa-servicos-reutilizaveis/</link>
		<comments>http://www.aqueleblogdesoa.com.br/2009/03/principios-basicos-de-soa-servicos-reutilizaveis/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 13:28:14 +0000</pubDate>
		<dc:creator>gabriel</dc:creator>
				<category><![CDATA[Papo técnico]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[SOA para iniciantes]]></category>
		<category><![CDATA[principios]]></category>

		<guid isPermaLink="false">http://www.aqueleblogdesoa.com.br/?p=725</guid>
		<description><![CDATA[Dando continuidade à série de posts que introduzem conceitos que exlicam o que é SOA, escreverei uma série de posts explicando cada um dos princípios básicos de SOA, que para muitos definem o que é a Arquitetura Orientada a Serviços:

Serviços são reutilizáveis;
Serviços compartilham um contrato formal;
Serviços possuem baixo acoplamento;
Serviços abstraem a lógica;
Serviços são capazes de [...]


Related posts:<ol><li><a href='http://www.aqueleblogdesoa.com.br/2009/08/principios-basicos-de-soa-servicos-sao-capazes-de-se-compor/' rel='bookmark' title='Permanent Link: Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor'>Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Dando continuidade à série de posts que introduzem conceitos que exlicam <strong><a title="Conceitos básicos de SOA" href="http://www.aqueleblogdesoa.com.br/2008/11/o-que-e-soa/" target="_blank">o que é SOA</a></strong>, escreverei uma série de posts explicando cada um dos <em>princípios básicos de <strong>SOA</strong></em>, que para muitos definem o que é a <em><strong>Arquitetura Orientada a Serviços</strong></em>:</p>
<ul>
<li>Serviços são <strong>reutilizáveis</strong>;</li>
<li>Serviços compartilham um <strong>contrato formal</strong>;</li>
<li>Serviços possuem <a title="Baixo Acoplamento" href="../2008/07/baixo-acoplamento/" target="_blank"><strong>baixo acoplamento</strong></a>;</li>
<li>Serviços <strong>abstraem a lógica</strong>;</li>
<li>Serviços são <strong>capazes de se compor</strong>;</li>
<li>Serviços são <strong>autônomos</strong>;</li>
<li>Serviços evitam <strong>alocação de recursos</strong> por longos períodos;</li>
<li>Serviços devem possuir a <strong>capacidade de serem descobertos</strong>.</li>
</ul>
<p><span id="more-725"></span></p>
<p>As oito <em>características</em> dos serviços são úteis para definir o ambiente teórico no qual a <strong><em>Arquitetura Orientada a Serviços</em></strong> deve ser implementada. Apesar de serem de simples explicação, os <em>princípios</em> que descreverei necessitam de uma certa experiência prática para serem aplicadas já que a cultura dentro do ambiente corporativo sofrerá profundas alterações, assim sendo, cabe observar algumas possíveis dificuldades na aplicação deles dentro da empresa.</p>
<p>1. Princípio: <strong>Serviços devem ser reutilizáveis</strong></p>
<ul>
<li>O que é:
<ul>
<li>Um <strong>serviço reutilizável</strong> é aquele que não carrega <em>particularidades técnicas</em> de uma implementação ou <em>regra de negócio</em> específica e é genérico o suficiente para atender outros projetos.</li>
</ul>
</li>
<li>Aspectos positivos:
<ul>
<li>Um <strong>serviço reutilizável</strong> abrange diversos cenários de uso por consistir em uma <em>lógica mais genérica</em>. Isso é mais simples quando a construção dos serviços é feita de forma corporativa, como nas fábricas de software.</li>
</ul>
</li>
<li>Dificuldades:
<ul>
<li>A criação de um <strong>serviço de caráter reutilizável</strong> necessita de <em>maior esforço</em> já que a sua necessidade só surge quando os usuários do serviço se deparam com ela e, além disso, a implantação e os <em>testes</em> são tarefas não-triviais a serem executadas por terem uma especificação abrangente.</li>
<li>As <em>modificações</em> em um serviço tendem a afetar diversas <em>áreas de negócios</em>, o que pode ser um empecilho, já que não é possível indisponibilizar o acesso ao cliente, para que as alterações que o transformem em serviço generalizado sejam feitas.</li>
</ul>
</li>
</ul>
<p>No próximo post falarei um pouco mais sobre o <em>segundo princípio de <strong>SOA</strong></em>: os <strong>contratos formais de serviços</strong>. Além disso, apresentarei alguns protocolos, como o <em>WSDL</em>.</p>


<p>Related posts:<ol><li><a href='http://www.aqueleblogdesoa.com.br/2009/08/principios-basicos-de-soa-servicos-sao-capazes-de-se-compor/' rel='bookmark' title='Permanent Link: Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor'>Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.aqueleblogdesoa.com.br/2009/03/principios-basicos-de-soa-servicos-reutilizaveis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>O que é SOA?</title>
		<link>http://www.aqueleblogdesoa.com.br/2008/11/o-que-e-soa/</link>
		<comments>http://www.aqueleblogdesoa.com.br/2008/11/o-que-e-soa/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 12:09:05 +0000</pubDate>
		<dc:creator>gabriel</dc:creator>
				<category><![CDATA[Papo técnico]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[SOA para iniciantes]]></category>

		<guid isPermaLink="false">http://www.aqueleblogdesoa.com.br/?p=497</guid>
		<description><![CDATA[O objetivo dessa série de posts é a fundamentação básica do mundo SOA.
Aqui no blog temos discutidos diversos tópicos avançados a respeito de SOA, e até mesmo por pedidos de alguns visitantes, segue aqui uma visão inicial do que seria a Arquitetura Orientada a Serviços, se tivéssemos que a definir em poucas palavras.
Esse post é [...]


Related posts:<ol><li><a href='http://www.aqueleblogdesoa.com.br/2009/08/principios-basicos-de-soa-servicos-sao-capazes-de-se-compor/' rel='bookmark' title='Permanent Link: Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor'>Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor</a></li><li><a href='http://www.aqueleblogdesoa.com.br/2009/10/webinar-maturidade-e-roadmap-soa-participe/' rel='bookmark' title='Permanent Link: Webinar: Maturidade e Roadmap SOA. Participe!'>Webinar: Maturidade e Roadmap SOA. Participe!</a></li><li><a href='http://www.aqueleblogdesoa.com.br/2010/04/soa-ajuda-cloud-sim/' rel='bookmark' title='Permanent Link: SOA ajuda Cloud? Sim!'>SOA ajuda Cloud? Sim!</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>O objetivo dessa série de posts é a fundamentação básica do <strong>mundo <em>SOA</em></strong>.</p>
<p>Aqui no <em>blog</em> temos discutidos diversos tópicos avançados a respeito de <em><strong>SOA</strong></em>, e até mesmo por pedidos de alguns <em>visitantes</em>, segue aqui uma <strong>visão inicial</strong> do que seria a <em><strong>Arquitetura Orientada a Serviços</strong></em>, se tivéssemos que a definir em poucas palavras.</p>
<p>Esse post é escrito para aqueles que são iniciantes na abordagem de <em><strong>Arquitetura Orientada a Serviços</strong></em>. Recentemente essa área ganhou muito espaço no meio corporativo, com ela muitos são os <strong>conceitos</strong> presentes em documentos que tratam de <em><strong>SOA</strong></em> e para os iniciantes o assunto torna-se um bicho de sete cabeças.</p>
<h3><strong>Origem de SOA</strong></h3>
<p>O <em>desenvolvimento</em> de aplicações em <em>ambientes corporativos</em> ganhou, com o tempo, proporções que não poderiam ser previstas a curto prazo. Esse <em>crescimento desordenado</em> criou uma espécie de <em>&#8220;colcha de retalhos&#8221;</em> onde cada componente é desenvolvido para ligar 2 pontos específicos e possuem <a title="Baixo Acoplamento" href="http://www.aqueleblogdesoa.com.br/2008/07/baixo-acoplamento/" target="_blank"><strong>alto acoplamento</strong></a> dentro do <em>sistema</em> fazendo com que haja uma <strong>grande redundância de funcionalidades</strong>.</p>
<div class="img aligncenter size-full wp-image-519" style="width:500px;">
	<img src="http://www.aqueleblogdesoa.com.br/wp-content/uploads/2008/11/arquitetura_tradicional.jpg" alt="" width="500" height="301" />
	<div>Arquitetura Tradicional</div>
</div>
<p style="text-align: center;">
<p><strong>O que é acoplamento?</strong> É o nível de interdependência entre os <em>módulos</em> de um <strong>sistema</strong>. Por outro lado, um <em>módulo</em> é considerado <strong>coeso</strong> quando possui uma atividade bem definida. (<a title="Baixo Acoplamento" href="http://www.aqueleblogdesoa.com.br/2008/07/baixo-acoplamento/" target="_blank">veja mais</a>)</p>
<p style="text-align: center;"><div class="img size-full wp-image-520 aligncenter" style="width:499px;">
	<img src="http://www.aqueleblogdesoa.com.br/wp-content/uploads/2008/11/acoplamento.jpg" alt="" width="499" height="180" />
	<div>Definição de Acoplamento</div>
</div>
<p style="text-align: center;">
<p>Diferentemente do que as pessoas pensam, <em><strong>SOA</strong></em> não se trata de uma simples invenção. A <em><strong>arquitetura orientada a serviços</strong></em> nada mais é que a evolução natural da <em>arquitetura de sistemas tradicional</em> para solucionar as necessidades de desenvolvimento e capacidade de adaptação às novas demandas de mercado, que se faz cada vez mais exigente em qualidade e agilidade.</p>
<p>Para os <em>desenvolvedores</em> isso significa ter que criar <strong>sistemas</strong> semelhantes com ajustes particulares para cada componente. Para as <em>empresas</em> isso significa <em>dinheiro</em> jogado fora, já que os <strong>componentes</strong> poderiam ter sido feitos voltados para o reúso.</p>
<h3>O que SOA não é</h3>
<p>Para reforçar a <strong>definição de <em>SOA</em></strong> cabe deixar explícito o que não faz parte desse conceito. Para começar, vale deixar claro que <em><strong>SOA</strong></em> <em>não</em> é uma <em>tecnologia</em>. <em><strong>SOA</strong></em> é mais baseada em <em>logística</em> e conceitos e menos em <em>ferramentas</em>.</p>
<p><em><strong>SOA</strong></em> <em>não</em> é um <em>produto</em>, portanto não é possível comprar <em><strong>SOA</strong></em>.</p>
<p>Os conceitos de <em><strong>Arquitetura Orientada a Serviços</strong></em>, <strong>WebServices</strong>, <strong>XML</strong> e <strong>BPM</strong> são relacionados no mundo <em><strong>SOA</strong></em>, mas são distintos no mundo de TI, portanto:</p>
<p style="text-align: center;"><em><strong>SOA</strong></em> != <strong>WebServices</strong> != <strong>XML</strong> != <strong>BPM</strong></p>
<h3>Definição de SOA</h3>
<blockquote><p><em><strong>SOA</strong></em> é uma abordagem <strong>arquitetural</strong> corporativa que permite a criação de <em>serviços de negócio interoperáveis</em> que podem facilmente ser <strong>reutilizados</strong> e <strong>compartilhados</strong> entre <em>aplicações</em> e <em>empresas</em>.</p></blockquote>
<h3>Princípios Básicos de SOA</h3>
<p>Segue abaixo uma lista com os 8 <em>princípios básicos</em> da <em><strong>Arquitetura Orientada a Serviços</strong></em>.</p>
<ul>
<li>Serviços são <strong>reutilizáveis</strong>;</li>
<li>Serviços compartilham um <strong>contrato formal</strong>;</li>
<li>Serviços possuem <a title="Baixo Acoplamento" href="http://www.aqueleblogdesoa.com.br/2008/07/baixo-acoplamento/" target="_blank"><strong>baixo acoplamento</strong></a>;</li>
<li>Serviços <strong>abstraem a lógica</strong>;</li>
<li>Serviços são <strong>capazes de se compor</strong>;</li>
<li>Serviços são <strong>autônomos</strong>;</li>
<li>Serviços evitam <strong>alocação de recursos</strong> por longos períodos;</li>
<li>Serviços devem possuir a <strong>capacidade de serem descobertos</strong>.</li>
</ul>
<p>Em breve escreverei com mais detalhes sobre cada um deles.</p>
<p>Por fim, não posso deixar de agradecer a ajuda especial do <em>Rafael</em> no desenvolvimento do post!</p>
<p>Até a próxima.</p>
<p>[]&#8217;s</p>
<p>&#8211; Gabriel</p>


<p>Related posts:<ol><li><a href='http://www.aqueleblogdesoa.com.br/2009/08/principios-basicos-de-soa-servicos-sao-capazes-de-se-compor/' rel='bookmark' title='Permanent Link: Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor'>Princípios Básicos de SOA &#8211; Serviços são Capazes de se Compor</a></li><li><a href='http://www.aqueleblogdesoa.com.br/2009/10/webinar-maturidade-e-roadmap-soa-participe/' rel='bookmark' title='Permanent Link: Webinar: Maturidade e Roadmap SOA. Participe!'>Webinar: Maturidade e Roadmap SOA. Participe!</a></li><li><a href='http://www.aqueleblogdesoa.com.br/2010/04/soa-ajuda-cloud-sim/' rel='bookmark' title='Permanent Link: SOA ajuda Cloud? Sim!'>SOA ajuda Cloud? Sim!</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.aqueleblogdesoa.com.br/2008/11/o-que-e-soa/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
