<?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-4035843021408767564</id><updated>2012-02-01T13:08:07.620-02:00</updated><category term='CVS'/><category term='SCM'/><category term='SVN'/><title type='text'>working...</title><subtitle type='html'>por Rafael Martins</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rafaelmartinsjava.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://rafaelmartinsjava.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rafael Martins</name><uri>http://www.blogger.com/profile/16384959892382639208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-D_ItdEOzdR4/Tijm0IXHWWI/AAAAAAAAAcM/Mgirpb8cFeE/s220/72028_182128175146473_100000478761104_609608_2282958_n.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-4035843021408767564.post-1279959165845728802</id><published>2011-07-21T23:42:00.002-03:00</published><updated>2011-07-21T23:53:52.620-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CVS'/><category scheme='http://www.blogger.com/atom/ns#' term='SCM'/><category scheme='http://www.blogger.com/atom/ns#' term='SVN'/><title type='text'>CVS X SVN - Características</title><content type='html'>&lt;div class="MsoNormal" style="text-align: justify;"&gt;Esta postagem tem como objetivo fornecer insumos comparativos entre duas ferramentas SCM (&lt;span class="apple-style-span"&gt;&lt;span style="color: #333333;"&gt;Software Configuration Management&lt;/span&gt;&lt;/span&gt;): CVS e SVN. Sua principal finalidade é auxiliar a tomada de decisão durante a migração ou não do SCM atual, CVS, para o SVN.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Nele juntei pontos importantes encontrados em várias referências encontradas sobre o assunto.&amp;nbsp;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Características CVS x SVN (Subversion)&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;O &lt;i style="mso-bidi-font-style: normal;"&gt;Subversion&lt;/i&gt; foi construído pensando em incorporar os conceitos do CVS e corrigir suas limitações.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;O &lt;i style="mso-bidi-font-style: normal;"&gt;Subversion&lt;/i&gt; utiliza banco de dados Berkeley BD, permitindo operações eficientes e em com grande número de arquivos. Seu servidor pode fornecer cópias de segurança sem que seja necessário desligá-lo. O &lt;i style="mso-bidi-font-style: normal;"&gt;CVS&lt;/i&gt; utiliza um arquivo para cada arquivo versionado, fazendo com que a operação possa ser bastante lenta (lockfile lento, pesado).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Ao contrário do &lt;i style="mso-bidi-font-style: normal;"&gt;CVS&lt;/i&gt; que não permite um controle de versão dos diretórios, o &lt;i style="mso-bidi-font-style: normal;"&gt;SVN&lt;/i&gt; permite um controle de histórico da mesma forma que mantém o controle dos arquivos. Quando se deseja mover algum arquivo no &lt;i style="mso-bidi-font-style: normal;"&gt;CVS&lt;/i&gt; é necessário um corte manual para não perder o histórico, enquanto a própria ferramenta do &lt;i style="mso-bidi-font-style: normal;"&gt;SVN &lt;/i&gt;fornece funções de mover, copiar e renomear mantendo o histórico de cada uma destas ações. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;No &lt;i style="mso-bidi-font-style: normal;"&gt;Subversion&lt;/i&gt; quando um usuário faz um commit, a mudança pode ser aplicada ou revertida, ficando visível para os demais somente quando concluída (como um &lt;i style="mso-bidi-font-style: normal;"&gt;commit e rollback &lt;/i&gt;no BD), commit atômico (todos de uma vez ou revert todos). O &lt;i style="mso-bidi-font-style: normal;"&gt;CVS&lt;/i&gt; commita cada arquivo por vez até que toda operação seja concluída,&amp;nbsp; se a conexão de rede falhar durante este processo existe risco de acontecer um commit parcial ou até mesmo que o arquivo seja corrompido. Caso seja necessário reverter um commit com o &lt;i style="mso-bidi-font-style: normal;"&gt;CVS &lt;/i&gt;&amp;nbsp;é necessário baixar do histórico a versão desejada.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;O mecanismo de commit atômico do &lt;i style="mso-bidi-font-style: normal;"&gt;Subversion&lt;/i&gt; mantém juntas as alterações em um grupo com uma mensagem de confirmação e um número de revisão ou alteração é atribuído. Este número pode ser utilizado para recriar o repositório a qualquer momento. No &lt;i style="mso-bidi-font-style: normal;"&gt;CVS&lt;/i&gt;, o histórico é gravado por arquivo.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Caso queira colocar um repositório na web com o &lt;i style="mso-bidi-font-style: normal;"&gt;Subversion &lt;/i&gt;você pode utilizar o Apache, protocolo HTTPS, fazendo proveito dos mecanismos de segurança do Apache.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;"&gt;O &lt;i&gt;CVS&lt;/i&gt; guarda separadamente cada revisão de um arquivo, por exemplo: 10 versionamentos de um arquivo de 100k utilizará quase 1MB de espaço em disco. O &lt;i&gt;Subversion&lt;/i&gt; utiliza um algoritmo binário para armazenar todos os arquivos e um calculo para identificar suas diferenças, ocupando assim um espaço muito menor.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;"&gt;SVN foi escrito em C, encontra disponível em muitas plataformas com Windows, Linux, Solares, Apple OSX e caso não exista uma versão do SVN para sua plataforma você pode baixar o código fonte e compilá-lo.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;"&gt;Existe uma ferramenta chamada &lt;b&gt;CVS2SVN&lt;/b&gt; que auxilia o processo de migração entre o CVS e o SVN, mantendo todo o histórico do projeto. &lt;span class="Apple-style-span" style="color: #444444;"&gt;(Em uma próxima postagem falarei sobre o uso desta ferramenta)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;"&gt;Logo abaixo temos uma tabela abrangendo as características de ambos.&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;"&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table border="1" cellpadding="0" cellspacing="0" class="MsoTableLightGridAccent1" style="border-bottom-style: none; border-collapse: collapse; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; margin-left: 5.4pt; width: 539px;"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-firstrow: yes; mso-yfti-irow: -1;"&gt;   &lt;td style="border-bottom: solid #4F81BD 2.25pt; border: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; mso-border-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 99.25pt;" valign="top" width="132"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 5; text-align: justify;"&gt;&lt;b&gt;&lt;i style="mso-bidi-font-style: normal;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Característica&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid #4F81BD 2.25pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 148.85pt;" valign="top" width="198"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 1; text-align: justify;"&gt;&lt;b&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;CVS&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid #4F81BD 2.25pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 155.9pt;" valign="top" width="208"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 1; text-align: justify;"&gt;&lt;b&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Subversion&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 0;"&gt;   &lt;td style="background: #D3DFEE; border-top: none; border: solid #4F81BD 1.0pt; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 99.25pt;" valign="top" width="132"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 68; text-align: justify;"&gt;&lt;b&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Armazenamento&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="background: #D3DFEE; border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 148.85pt;" valign="top" width="198"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 64; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;É criado um arquivo para cara   versionamento de arquivo.&lt;br /&gt;Obs.: Para corrigir possíveis falhas basta editar diretamente o arquivo.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 64; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="background: #D3DFEE; border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 155.9pt;" valign="top" width="208"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 64; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Banco de dados (Berkeley BD).&lt;br /&gt;Obs.: Utiliza uma ferramenta para correção de falhas.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 1;"&gt;   &lt;td style="border-top: none; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 99.25pt;" valign="top" width="132"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 132; text-align: justify;"&gt;&lt;b&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Manipulando diretórios&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 148.85pt;" valign="top" width="198"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 128; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Não permite.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 128; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;É necessário um corte manual para   não perder o histórico.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 155.9pt;" valign="top" width="208"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 128; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Trabalha da mesma forma que os   arquivos. Os diretórios também são versionados. Podem ser movidos, copiados e   renomeados e este histórico é mantido.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 2;"&gt;   &lt;td style="background: #D3DFEE; border-top: none; border: solid #4F81BD 1.0pt; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 99.25pt;" valign="top" width="132"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 68; text-align: justify;"&gt;&lt;b&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Acesso concorrente&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="background: #D3DFEE; border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 148.85pt;" valign="top" width="198"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 64; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Podem ocorrer conflitos por se   tratar de acesso a arquivos no disco.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="background: #D3DFEE; border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 155.9pt;" valign="top" width="208"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 64; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Controlado pelo banco de dados.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 3;"&gt;   &lt;td style="border-top: none; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 99.25pt;" valign="top" width="132"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 132; text-align: justify;"&gt;&lt;b&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Commit&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 148.85pt;" valign="top" width="198"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 128; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Comita cada arquivo por vez até que   a operação seja concluída.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 128; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Obs.: Caso ocorra uma falha de rede   o arquivo pode ficar parcialmente corrompido ou até mesmo inutilizado.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 155.9pt;" valign="top" width="208"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 128; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Commit atômico. Commita tudo ou   reverte tudo. Funciona como um &lt;i style="mso-bidi-font-style: normal;"&gt;commit&lt;/i&gt;   ou &lt;i style="mso-bidi-font-style: normal;"&gt;rollback&lt;/i&gt; do bando de dados.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 4;"&gt;   &lt;td style="background: #D3DFEE; border-top: none; border: solid #4F81BD 1.0pt; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 99.25pt;" valign="top" width="132"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 68; text-align: justify;"&gt;&lt;b&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Velocidade de transação&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="background: #D3DFEE; border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 148.85pt;" valign="top" width="198"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 64; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Lento por se tratar de acesso e   leitura a arquivo de sistema.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="background: #D3DFEE; border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 155.9pt;" valign="top" width="208"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 64; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Lento apenas no primeiro checkout   pois precisa fazer uma cópia de todos os arquivos pra máquina.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 5;"&gt;   &lt;td style="border-top: none; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 99.25pt;" valign="top" width="132"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 132; text-align: justify;"&gt;&lt;b&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Utilização de disco para armazenagem   de dados&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 148.85pt;" valign="top" width="198"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 128; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Guarda cada revisão de arquivo em   um novo arquivo. Ex: 10 versionamentos de um arquivo de 100k utilizará   aproximadamente 1MB do disco.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 155.9pt;" valign="top" width="208"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 128; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Utiliza um calculo binário para   guardar os arquivos e um calculo diff binário para identificar suas diferenças.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 6;"&gt;   &lt;td style="background: #D3DFEE; border-top: none; border: solid #4F81BD 1.0pt; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 99.25pt;" valign="top" width="132"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 68; text-align: justify;"&gt;&lt;b&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Interoperabilidade&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="background: #D3DFEE; border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 148.85pt;" valign="top" width="198"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 64; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Não permite.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="background: #D3DFEE; border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 155.9pt;" valign="top" width="208"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 64; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Diversas plataformas: Windows,   Linux, Solaris, Apple OSX. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 64; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Obs.: caso não possua uma versão   para sua plataforma o código fonte pode ser baixado e compilado.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 7;"&gt;   &lt;td style="border-top: none; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 99.25pt;" valign="top" width="132"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 132; text-align: justify;"&gt;&lt;b&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Metadados&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 148.85pt;" valign="top" width="198"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 128; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Não armazena.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 155.9pt;" valign="top" width="208"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 128; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Permite versionamento.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 8;"&gt;   &lt;td style="background: #D3DFEE; border-top: none; border: solid #4F81BD 1.0pt; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 99.25pt;" valign="top" width="132"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 68; text-align: justify;"&gt;&lt;b&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Arquivos comportados&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="background: #D3DFEE; border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 148.85pt;" valign="top" width="198"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 64; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Texto, problemas com binários.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="background: #D3DFEE; border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 155.9pt;" valign="top" width="208"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 64; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Todos os tipos de arquivos.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 9;"&gt;   &lt;td style="border-top: none; border: solid #4F81BD 1.0pt; mso-border-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 99.25pt;" valign="top" width="132"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 132; text-align: justify;"&gt;&lt;b&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Lock de arquivos&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 148.85pt;" valign="top" width="198"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 128; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Não permite.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 155.9pt;" valign="top" width="208"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 128; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Permite. Ao bloquear um arquivo ele   passa a ficar como somente leitura para os demais usuários.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 10; mso-yfti-lastrow: yes;"&gt;   &lt;td style="background: #D3DFEE; border-top: none; border: solid #4F81BD 1.0pt; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 99.25pt;" valign="top" width="132"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 68; text-align: justify;"&gt;&lt;b&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Versionamento&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="background: #D3DFEE; border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 148.85pt;" valign="top" width="198"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 64; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;Versiona arquivo por arquivo. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 64; text-align: justify;"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;Permite a criação de branchs e tags por arquivo. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 64; text-align: justify;"&gt;&lt;span class="apple-style-span"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;Obs.: Não permite restaurar a versão do projeto à partir de   uma tag específica.&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: PT-BR;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="background: #D3DFEE; border-bottom: solid #4F81BD 1.0pt; border-left: none; border-right: solid #4F81BD 1.0pt; border-top: none; mso-background-themecolor: accent1; mso-background-themetint: 63; mso-border-bottom-themecolor: accent1; mso-border-left-alt: solid #4F81BD 1.0pt; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; padding: 0cm 5.4pt 0cm 5.4pt; width: 155.9pt;" valign="top" width="208"&gt;   &lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 64; text-align: justify;"&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;O mecanismo de commit atômico do &lt;i style="mso-bidi-font-style: normal;"&gt;Subversion&lt;/i&gt; mantém juntas as alterações   em um grupo com uma mensagem de confirmação e um número de revisão ou   alteração é atribuído.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; mso-yfti-cnfc: 64; text-align: justify;"&gt;&lt;span class="apple-style-span"&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;Obs.: Permite restaurar a versão do projeto à partir de uma   tag específica.&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #333333; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;"&gt;&lt;span style="color: #333333;"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="color: #333333;"&gt;Principal referência para construção deste documento: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;&lt;span style="color: #333333;"&gt;- &lt;/span&gt;&lt;a href="http://osdir.com/Article203.phtml"&gt;http://osdir.com/Article203.phtml&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;"&gt;Demais referências:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;"&gt;- &lt;a href="http://martinfowler.com/bliki/VcsSurvey.html"&gt;http://martinfowler.com/bliki/VcsSurvey.html&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;"&gt;- &lt;a href="http://www.guj.com.br/"&gt;http://www.guj.com.br&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;"&gt;- &lt;a href="http://portalengenhariadesoftware.blogspot.com/2010/07/cvs-x-subversion.html"&gt;http://portalengenhariadesoftware.blogspot.com/2010/07/cvs-x-subversion.html&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4035843021408767564-1279959165845728802?l=rafaelmartinsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rafaelmartinsjava.blogspot.com/feeds/1279959165845728802/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4035843021408767564&amp;postID=1279959165845728802&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/1279959165845728802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/1279959165845728802'/><link rel='alternate' type='text/html' href='http://rafaelmartinsjava.blogspot.com/2011/07/cvs-x-svn-caracteristicas.html' title='CVS X SVN - Características'/><author><name>Rafael Martins</name><uri>http://www.blogger.com/profile/16384959892382639208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-D_ItdEOzdR4/Tijm0IXHWWI/AAAAAAAAAcM/Mgirpb8cFeE/s220/72028_182128175146473_100000478761104_609608_2282958_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4035843021408767564.post-7690343905734595872</id><published>2010-06-17T23:57:00.003-03:00</published><updated>2010-07-20T16:27:26.915-03:00</updated><title type='text'>DISTINCT x UNIQUE, existe diferença?</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;b&gt;Não.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; line-height: 22px;"&gt;&lt;span title=""&gt;"Utilize DISTINCT ou UNIQUE se você quiser que o Oracle retorne apenas uma cópia de cada conjunto de linhas duplicadas selecionadas (estas duas palavras-chave são sinônimos). As linhas duplicadas são aquelas com valores correspondentes para cada expressão na lista de seleção."&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 22px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; line-height: 22px;"&gt;UNIQUE é uma função do ORACLE e não funcionará em outros bancos de dados (MySQL, PostgreSQL, etc...)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="line-height: 22px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Fonte:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;a href="http://download.oracle.com/docs/cd/B10501_01/server.920/a96540/statements_103a.htm"&gt;Oracle9i SQL Reference Release 2&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4035843021408767564-7690343905734595872?l=rafaelmartinsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://rafaelmartinsjava.blogspot.com/2010/06/distinct-x-unique-existe-diferenca.html' title='DISTINCT x UNIQUE, existe diferença?'/><link rel='replies' type='application/atom+xml' href='http://rafaelmartinsjava.blogspot.com/feeds/7690343905734595872/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4035843021408767564&amp;postID=7690343905734595872&amp;isPopup=true' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/7690343905734595872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/7690343905734595872'/><link rel='alternate' type='text/html' href='http://rafaelmartinsjava.blogspot.com/2010/06/distinct-x-unique-existe-diferenca.html' title='DISTINCT x UNIQUE, existe diferença?'/><author><name>Rafael Martins</name><uri>http://www.blogger.com/profile/16384959892382639208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-D_ItdEOzdR4/Tijm0IXHWWI/AAAAAAAAAcM/Mgirpb8cFeE/s220/72028_182128175146473_100000478761104_609608_2282958_n.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4035843021408767564.post-2697436372163850041</id><published>2008-10-01T20:32:00.002-03:00</published><updated>2008-10-01T20:50:13.771-03:00</updated><title type='text'>Passo para criar um certificado digital através da JDK (Keystore, keytool) e configurar o Tomcat para usar esse certificado</title><content type='html'>&lt;p&gt;Bom essa postagem é bem simples e rápida. &lt;/p&gt;&lt;p&gt;Alguns amigos me pediram um auxílio para criar um certificado digital para ser usado em um webservice.&lt;/p&gt;&lt;p&gt;Segue um pequeno passo-a-passo que encontrei a um bom tempo (em algum lugar da internet) que foi de muita ajuda.&lt;/p&gt;&lt;p&gt;&lt;span style="color:#000066;"&gt;PRIMEIRO PASSO (Comandos para criação do Keystore):&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Keytool –genkey –alias &lt;seu_alias&gt; –keyalg rsa –keystore &lt;nome_do_keystore&gt; &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000066;"&gt;SEGUNDO PASSO (Comandos para criação do csr):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Keytool –certreq –keyalg rsa –keysize 1024 –alias &lt;seu_alias&gt; –file tissnet.csr –keystore &lt;nome_do_keystore&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000066;"&gt;TERCEIRO PASSO:&lt;/span&gt; Editar o arquivo .csr e copiar o conteúdo para enviar para a Certsign através do formulário no site.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000066;"&gt;QUARTO PASSO:&lt;/span&gt; Após receber o certificado da Certsign, salvar o conteúdo em um arquivo com a extensão .cer, importar através do comando:&lt;br /&gt;&lt;br /&gt;keytool -import -alias &lt;seu_alias&gt; -keystore &lt;nome_do_keystore&gt;&lt;br /&gt;-trustcacerts -file &lt;nome_do_arquivo cer=""&gt; &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000066;"&gt;QUINTO PASSO:&lt;/span&gt; Configurar o arquivo server.xml, adicionando:&lt;br /&gt;&lt;br /&gt;&lt;connector port="8443" maxthreads="150" minsparethreads="25" maxsparethreads="75" enablelookups="false" disableuploadtimeout="true" acceptcount="100" keystorefile=""&gt;" keystorepass="&lt;senha_de_geracao_keystore&gt;" debug="0" scheme="https" secure="true" br=""&gt;&lt;br /&gt;Connector port="8443" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" &lt;br /&gt;acceptCount="100" keystoreFile="&lt;caminho_do_certificado&gt;" keystorePass="&lt;senha_de_geracao_keystore&gt;" debug="0" scheme="https" secure="true" &lt;br /&gt;$clientAuth="false" sslProtocol="TLS"&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Vale lembrar que esse certificado não terá muita validade para uma transação de verdade, pois o mesmo não estará contido em nenhuma entidade autentificadora, que irá validar esses dados, como a Verisign ou Certisign.&lt;/p&gt;&lt;p&gt;Espero poder ajudar, qualquer coisa é só postar uma dúvida.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Obrigado a todos, &lt;br /&gt;&lt;br /&gt;Rafael Martins&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4035843021408767564-2697436372163850041?l=rafaelmartinsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rafaelmartinsjava.blogspot.com/feeds/2697436372163850041/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4035843021408767564&amp;postID=2697436372163850041&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/2697436372163850041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/2697436372163850041'/><link rel='alternate' type='text/html' href='http://rafaelmartinsjava.blogspot.com/2008/10/passo-para-criar-um-certificado-digital.html' title='Passo para criar um certificado digital através da JDK (Keystore, keytool) e configurar o Tomcat para usar esse certificado'/><author><name>Rafael Martins</name><uri>http://www.blogger.com/profile/16384959892382639208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-D_ItdEOzdR4/Tijm0IXHWWI/AAAAAAAAAcM/Mgirpb8cFeE/s220/72028_182128175146473_100000478761104_609608_2282958_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4035843021408767564.post-9020856954864794198</id><published>2008-07-06T12:23:00.004-03:00</published><updated>2008-07-06T14:19:55.660-03:00</updated><title type='text'>Problemas para criar cliente java de um webservice gerado no delphi</title><content type='html'>&lt;div style="text-align: justify;"&gt;Neste post irei relatar aqui problemas que ocorreram quando tentava criar um cliente em Java de um webservice gerado no Delphi.&lt;br /&gt;&lt;br /&gt;Por algumas vezes já precisei trabalhar com Webservices, como servidor e como cliente. Sempre usando tecnologias do JAVA, algumas vezs .NET.&lt;br /&gt;&lt;br /&gt;Recentemente, precisei criar um cliente para um serviço desenvolvido em Delphi executado a partir de uma dll.&lt;br /&gt;Para minha surpresa tive problemas na implementação, para uma surpresa ainda maior encontrei muitos programadores na internet com este mesmo problema que será aqui relatado.&lt;br /&gt;Essa dificuldade e o pouco material encontrado sobre o assunto serviram de motivação para publicá-lo aqui.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Problema: &lt;/span&gt;&lt;br /&gt;Comecei salvando o wsdl do serviço, como sempre faço, e através do Eclipse (IDE de desenvolvimento Java) com alguns plugins, WSDL2Java, da API do APACHE AXIS 1.3 tentei gerar o cliente e não obtive êxito.&lt;br /&gt;O erro apresentado era sempre esse:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);" class="postbody"&gt;&lt;span&gt;&lt;span&gt;IWAB0399E Error in generating Java from WSDL:  WSDLException (at /definitions/binding/operation/input): faultCode=INVALID_WSDL: Element &lt;/span&gt;&lt;span class="string"&gt;'{http://schemas.xmlsoap.org/wsdl/}input'&lt;/span&gt;&lt;span&gt; contained unexpected attributes: &lt;/span&gt;&lt;span class="string"&gt;'message'&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Procurei outras formas de gerar os clientes. Tentei da forma mais básica também com AXIS 1.3, mas agora sem uso de plugins.&lt;br /&gt;&lt;br /&gt;Segue abaixo uma parte do código:&lt;br /&gt;&lt;br /&gt;&lt;ol style="color: rgb(0, 0, 153);" class="dp-j" start="1"&gt;&lt;span class="postbody"&gt;&lt;li style="font-weight: bold;" class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;try&lt;/span&gt;&lt;span&gt; {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class=""&gt;&lt;span&gt;            String wsURL = &lt;span class="string"&gt;"http://server-call/webcliente/WebAgenda.dll/wsdl/IWebagenda?wsdl"&lt;/span&gt;&lt;span&gt;;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class=""&gt;&lt;span&gt;            Object[] params = { id, nome, nasc, sexo, doc, tel, cel, conv, mat, temp};  &lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class=""&gt;&lt;span&gt;            Service service = &lt;span class="keyword"&gt;new&lt;/span&gt;&lt;span&gt; Service();  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class=""&gt;&lt;span&gt;            Call call = (Call) service.createCall();  &lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class=""&gt;&lt;span&gt;            call.setTargetEndpointAddress(wsURL);  &lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class=""&gt;&lt;span&gt;            call.setOperationName(&lt;span class="string"&gt;"ReceberCliente"&lt;/span&gt;&lt;span&gt;);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class=""&gt;&lt;span&gt;            String ret = (String) call.invoke(params);  &lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class="alt"&gt;&lt;span&gt;              &lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class=""&gt;&lt;span&gt;            System.out.println(&lt;span class="string"&gt;"Resultado: "&lt;/span&gt;&lt;span&gt; +ret);  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class="alt"&gt;&lt;span&gt;              &lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class="alt"&gt;&lt;span&gt;        } &lt;span class="keyword"&gt;catch&lt;/span&gt;&lt;span&gt; (Exception e) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class=""&gt;&lt;span&gt;            &lt;span class="comment"&gt;// TODO Auto-generated catch block&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class="alt"&gt;&lt;span&gt;            System.out.println(e.getMessage());  &lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold;" class=""&gt;&lt;span&gt;            e.printStackTrace();  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;    } &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/span&gt;&lt;/ol&gt;Quando tentava invocar o método do serviço passando os parametros necessários caia nessa exception:&lt;br /&gt;&lt;br /&gt;&lt;ol class="dp-j" start="1"&gt;&lt;span class="postbody"&gt;&lt;li style="color: rgb(255, 0, 0);" class="alt"&gt;&lt;span&gt;&lt;span&gt;nested exception is:   &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(255, 0, 0);" class=""&gt;&lt;span&gt;    org.xml.sax.SAXException: Bad envelope tag:  definitions  &lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(255, 0, 0);" class="alt"&gt;&lt;span&gt;AxisFault  &lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(255, 0, 0);" class=""&gt;&lt;span&gt; faultCode: {http:&lt;span class="comment"&gt;//schemas.xmlsoap.org/soap/envelope/}Server.userException&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/span&gt;&lt;span class="postbody"&gt;&lt;/span&gt;&lt;/ol&gt;Busquei então outras API's do Java como XFIRE da Codehaus e JAX-WS da própria Sun e excessões equivalentes ocorriam. Foi então que resolvi analisar melhor o WSDL do serviço gerado em Delphi.&lt;br /&gt;&lt;br /&gt;Percebi então que a estrutura deste webservice era totalmente diferente de um gerado em Java ou .Net.&lt;br /&gt;Pesquisando na internet encontrei informações dizendo que a plataforma Delphi gerava as interfaces de um webservice que não era compatível com o WS-I (padrão suportado pelo Java e .NET), ou seja, o serviço delphi não era interoperável com a plataforma Java e .NET.&lt;br /&gt;&lt;a href="http://www.ws-i.org/Profiles/BasicProfile-1.1.html"&gt;WS-I&lt;/a&gt; é o perfil básico de interoperabilidade.&lt;br /&gt;&lt;br /&gt;O próximo passo era tentar fazer o Delphi gerar seu serviço no padrão WS-I, porém, até a publicação deste post a empresa responsável em prover esse serviço não havia conseguido efetuar tal tarefa.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solução:&lt;/span&gt;&lt;br /&gt;Foi necessário solicitar que desenvolvessem novamente o webservice, que agora foi feito em .NET. A partir daqui a geração dos clientes se deu normalmente sem maiores complicações.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pelo que conheço de SOA e Webservices este tipo de implementação provem comunicação entre qualquer linguagem, pois sua principal caracterísca é ser baseado em XML.&lt;br /&gt;Um serviço web provê interoperabilidade entre máquinas em uma rede, neste caso a internet. E, um erro como esse fura o conceito dessa tecnologia. Caso esteja errado sintam-se a vontade para postar comentários e me corrigir.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Obrigado a todos, &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Rafael Martins&lt;/span&gt;&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/4035843021408767564-9020856954864794198?l=rafaelmartinsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rafaelmartinsjava.blogspot.com/feeds/9020856954864794198/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4035843021408767564&amp;postID=9020856954864794198&amp;isPopup=true' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/9020856954864794198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/9020856954864794198'/><link rel='alternate' type='text/html' href='http://rafaelmartinsjava.blogspot.com/2008/07/problemas-para-criar-cliente-java-de-um.html' title='Problemas para criar cliente java de um webservice gerado no delphi'/><author><name>Rafael Martins</name><uri>http://www.blogger.com/profile/16384959892382639208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-D_ItdEOzdR4/Tijm0IXHWWI/AAAAAAAAAcM/Mgirpb8cFeE/s220/72028_182128175146473_100000478761104_609608_2282958_n.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4035843021408767564.post-5796309872538496141</id><published>2007-08-18T17:37:00.001-03:00</published><updated>2007-10-02T07:43:07.399-03:00</updated><title type='text'>Links importantes</title><content type='html'>&lt;div style="TEXT-ALIGN: center"&gt;&lt;div style="TEXT-ALIGN: justify"&gt;&lt;a style="FONT-WEIGHT: bold" name="343095"&gt;&lt;span style="COLOR: rgb(153,0,0)"&gt;Links de algumas dúvidas no desenvolvimento em JAVA com suas resoluções, a maior parte delas tive participação ou na criação ou na resolução do problema.&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;a style="FONT-WEIGHT: bold" name="343095"&gt;&lt;/a&gt;&lt;/div&gt;&lt;a style="FONT-WEIGHT: bold" name="343095"&gt;&lt;br /&gt;Executar uma procedure em Java com o CallableStatemant&lt;br /&gt;&lt;/a&gt;&lt;a href="http://www.guj.com.br/posts/list/65177.java#345219"&gt;&lt;/a&gt;&lt;a href="http://www.guj.com.br/posts/list/65177.java#345219"&gt;&lt;span onmouseup="" class="on down" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);" id="formatbar_CreateLink" onmouseover="ButtonHoverOn(this);" title="Link" style="DISPLAY: block" onmouseout="ButtonHoverOff(this);"&gt;http://www.guj.com.br/posts/list/65177.java#345219&lt;/span&gt;&lt;/a&gt;&lt;a&gt;&lt;span onmouseup="" class="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);" id="formatbar_CreateLink" onmouseover="ButtonHoverOn(this);" title="Link" style="DISPLAY: block" onmouseout="ButtonHoverOff(this);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/a&gt;&lt;a style="FONT-WEIGHT: bold" name="342614"&gt;SOA - Service-oriented architecture&lt;br /&gt;&lt;/a&gt;&lt;a href="http://www.guj.com.br/posts/list/15/65073.java#342679"&gt;http://www.guj.com.br/posts/list/15/65073.java#342679&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;TISSNet, WebServices e Ponto-a-Ponto&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.guj.com.br/posts/list/15/59950.java#338054"&gt;http://www.guj.com.br/posts/list/15/59950.java#338054&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="FONT-WEIGHT: bold" name="337681"&gt;Introdução JAX-WS 2.0 com JAVA 6 (Web Services)&lt;br /&gt;&lt;/a&gt;&lt;a href="http://www.guj.com.br/posts/list/64249.java#337681"&gt;&lt;span class="postbody"&gt;&lt;b&gt;PARTE 1&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/" target="_new" rel="nofollow"&gt;http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/&lt;/a&gt;&lt;a href="http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/"&gt; &lt;/a&gt;&lt;br /&gt;&lt;span onmouseup="" class="on down" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);" id="formatbar_CreateLink" onmouseover="ButtonHoverOn(this);" title="Link" style="DISPLAY: block" onmouseout="ButtonHoverOff(this);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="postbody"&gt;&lt;b&gt;PARTE 2&lt;/b&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2_pt2/" target="_new" rel="nofollow"&gt;http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2_pt2/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Gerando um .war&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.guj.com.br/posts/list/63184.java#333267"&gt;http://www.guj.com.br/posts/list/63184.java#333267&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Iniciando no SOAP com AXIS APACHE&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.javafree.org/content/view.jf?idContent=106"&gt;http://www.javafree.org/content/view.jf?idContent=106&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;Certificado Digital e JAVA&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.guj.com.br/posts/list/58762.java#309561"&gt;http://www.guj.com.br/posts/list/58762.java#309561&lt;/a&gt;&lt;br /&gt;&lt;a style="FONT-WEIGHT: bold" name="342614"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;&lt;a style="FONT-WEIGHT: bold" name="343095"&gt;&lt;/a&gt;&lt;a style="FONT-WEIGHT: bold" name="343095"&gt;&lt;/a&gt;&lt;a&gt;&lt;span onmouseup="" class="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);" id="formatbar_CreateLink" onmouseover="ButtonHoverOn(this);" title="Link" style="DISPLAY: block" onmouseout="ButtonHoverOff(this);"&gt;&lt;/span&gt;&lt;/a&gt;&lt;a style="FONT-WEIGHT: bold" name="343095"&gt;&lt;/a&gt;&lt;a href="http://www.guj.com.br/posts/list/65177.java#345219"&gt;&lt;/a&gt;&lt;a&gt;&lt;span onmouseup="" class="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);" id="formatbar_CreateLink" onmouseover="ButtonHoverOn(this);" title="Link" style="DISPLAY: block" onmouseout="ButtonHoverOff(this);"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span onmouseup="" class="on down" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);" id="formatbar_CreateLink" onmouseover="ButtonHoverOn(this);" title="Link" style="DISPLAY: block" onmouseout="ButtonHoverOff(this);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4035843021408767564-5796309872538496141?l=rafaelmartinsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://rafaelmartinsjava.blogspot.com' title='Links importantes'/><link rel='replies' type='application/atom+xml' href='http://rafaelmartinsjava.blogspot.com/feeds/5796309872538496141/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4035843021408767564&amp;postID=5796309872538496141&amp;isPopup=true' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/5796309872538496141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/5796309872538496141'/><link rel='alternate' type='text/html' href='http://rafaelmartinsjava.blogspot.com/2007/08/links-importantes.html' title='Links importantes'/><author><name>Rafael Martins</name><uri>http://www.blogger.com/profile/16384959892382639208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-D_ItdEOzdR4/Tijm0IXHWWI/AAAAAAAAAcM/Mgirpb8cFeE/s220/72028_182128175146473_100000478761104_609608_2282958_n.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4035843021408767564.post-8583755741460352049</id><published>2007-07-13T18:34:00.000-03:00</published><updated>2007-07-13T18:50:05.666-03:00</updated><title type='text'>Widescreen para Ubuntu 7.04 Feisty Fawn</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;br /&gt;Esse artigo mostrará como configurar a resolução Widescreen em um notebook com monitor 15.4'.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;Instalaremos o 915resolution&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;                &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 153);"&gt;sudo apt-get install 915resolution&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;Agora click em Sistema | Administração | Gerenciador de Pacotes Synaptic e depois localise e insta-le o 915resolution&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;Caso não saiba as opções de resolução de tela possíveis, faça:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;            &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 153);"&gt;sudo 915resolution -l&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;Ainda no terminal abra o seguinte arquivo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 153);"&gt;            sudo gedit /etc/default/915resolution&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;Altere o arquivo nos seguintes campos:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;           &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 153);"&gt;MODE coloque 1280 x 800 ou a resolução que preferir&lt;br /&gt;          abaixo em XRESO coloque 1280 e em YRESO coloque 800&lt;br /&gt;&lt;span style="font-style: italic;"&gt;            &lt;/span&gt;verifique se o campo BIT consta 32(se seu processador for 32bits) ou 64 se               seu processador for 64bits)&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;Agora salve o arquivo e reinicie.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;Abra, SISTEMA | PREFERENCIAS | RESOLUÇAO DE TELA marque a opção que acabou de habilitar.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;Abraços&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4035843021408767564-8583755741460352049?l=rafaelmartinsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rafaelmartinsjava.blogspot.com/feeds/8583755741460352049/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4035843021408767564&amp;postID=8583755741460352049&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/8583755741460352049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/8583755741460352049'/><link rel='alternate' type='text/html' href='http://rafaelmartinsjava.blogspot.com/2007/07/widescreen-para-ubuntu-704-feisty-fawn.html' title='Widescreen para Ubuntu 7.04 Feisty Fawn'/><author><name>Rafael Martins</name><uri>http://www.blogger.com/profile/16384959892382639208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-D_ItdEOzdR4/Tijm0IXHWWI/AAAAAAAAAcM/Mgirpb8cFeE/s220/72028_182128175146473_100000478761104_609608_2282958_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4035843021408767564.post-2340512072752915929</id><published>2007-05-18T14:30:00.000-03:00</published><updated>2007-05-18T14:37:08.855-03:00</updated><title type='text'>Discussão TISSNet</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="color:#330099;"&gt;Galera estarei postando aqui uma dúvida de uma pessoa que encontrou em contato comigo para falar do TISS (Troca de Informações em Saúde Suplementar). Estarei postando neste post a Dúvida dessa pessoa e, logo abaixo, responderei a mesma.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#330099;"&gt;Pergunta: ========================================&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#6633ff;"&gt;Gostei da idéia do TISS e acho muito boa a iniciativa de montarmos um grupo para quem está desenvolvendo isso, principalmente em Java. Na verdade nosso sistema que cuida desta parte é feito em Qt, mas estou pensando em implementar esta parte em Java mesmo, acho o suporte a XML melhor. Bom, vamos às minhas dúvidas mais "críticas": 1) Vocês irão transmitir os dados para uma operadora, certo? O que será usado, comunicação ponto-a-ponto ou webservices? No caso da comunicação ponto-a-ponto, será utilizado o próprio Tissnet? E no caso de webservices, o que estarão utilizando? Tem como utilizar o Tissnet também ou precisaram criar uma solução própria? No caso de solução própria, reutilizaram as APIs da ANS? 2) Não consegui entender direito como estarão distribuidas as guias dentro do arquivo. No nosso caso, a guia vem em branco para o nosso faturamento preencher manualmente (o papel tbm será obrigatório, certo?), mas nas nossas agências transfusionais (que ficam dentro de diversos hospitais) não há como preencher isso... O que acontece é que um determinado serviço ou produto derivado de sangue que seja necessário para um paciente, pode incluir implicitamente diversos outros exames e serviços, os quais devem ser cobrados também. Assim, nosso sistema relaciona apenas um único número de guia (no caso a SADT) a cada ficha de requisição de transfusão/exames. Devo ter um único arquivo XML para cada guia? Posso unificar o envio de diversos itens (relacionados a um mesmo paciente, mas distribuidos em varias guias) em um unico número e relacionar tudo dentro do XML? Isso porque existe também o problema da guia SADT ter espaço para apenas 5 procedimentos... 3) Qual a estratégi que você utilizou para mapear os campos que vão para o xml? Os schemas são, digamos.... GRANDES DEMAIS. Sei que escrevi demais e tenho bastante dúvidas, mas se puder me ajudar (e quem sabe eu também ajudá-lo...) ficaria muito agradecido. Mais uma vez obrigado&lt;/span&gt; &lt;span style="color:#6633ff;"&gt;pela força! Abraço, &lt;/span&gt;&lt;span style="color:#330099;"&gt;=============================================== &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4035843021408767564-2340512072752915929?l=rafaelmartinsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.guj.com.br/posts/list/59950.java' title='Discussão TISSNet'/><link rel='replies' type='application/atom+xml' href='http://rafaelmartinsjava.blogspot.com/feeds/2340512072752915929/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4035843021408767564&amp;postID=2340512072752915929&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/2340512072752915929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/2340512072752915929'/><link rel='alternate' type='text/html' href='http://rafaelmartinsjava.blogspot.com/2007/05/discusso-tissnet.html' title='Discussão TISSNet'/><author><name>Rafael Martins</name><uri>http://www.blogger.com/profile/16384959892382639208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-D_ItdEOzdR4/Tijm0IXHWWI/AAAAAAAAAcM/Mgirpb8cFeE/s220/72028_182128175146473_100000478761104_609608_2282958_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4035843021408767564.post-5059969857818977521</id><published>2007-04-07T10:01:00.000-03:00</published><updated>2008-12-11T04:09:36.560-03:00</updated><title type='text'>História do Assembly</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color:#3333ff;"&gt;Provavelmente a primeira linguagem de programação.&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;O Assembly surgiu em meados da década de 50. Os computadores ainda usavam válvulas. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;Considerada uma grande evolução na linguagem de computação, pois se utilizou de grandes abstrações, aumentando produtividade e segurança.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;O Assembly substitui uma instrução em linguagem de máquina por um comando legível ao ser humano.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;Exemplos de instruções em Assembly: add, mul, div, and, not, or. Pondendo-se ainda, o usuário, criar variváveis e lidar com elas através dessas instruções e algumas outras existentes na linguagem Assembly. A linha de instrução "add x, y" significa dizer que estou mandando somar os valores de x e y. Esse resultado deve ser armazenado em um registrador.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;Registradores são áreas dentro de um processador mais rápidas que operadores de memória. São 8 registradores gerais: EAX, EDX, ECX, EBX, ESI, EBP, ESP e EDI. Programando,&lt;a href="http://2.bp.blogspot.com/_hj-V1c6V2rs/RhevgM7cFvI/AAAAAAAAAAk/rS9spFFUVXM/s1600-h/figura01.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5050698474880505586" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_hj-V1c6V2rs/RhevgM7cFvI/AAAAAAAAAAk/rS9spFFUVXM/s320/figura01.JPG" border="0" /&gt;&lt;/a&gt; devemos utilizar apenas 6 destes registradores, devido a os registradores ESP e EBP serem utilizados para entrada e saída de procedimentos. É importante saber o tamanho do registrador e os dados que poderão ser armazenados neles, como na &lt;strong&gt;figura &lt;/strong&gt;ao lado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;Programar em linguagem assembly é bastante árduo e é necessário ter um montador. Temos aqui um montador e não um compilador como muitos pensam. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;O montador assembly transforma o código feito em assembly em linguagem de máquina, a fim de propiciar o entendimento das instruções pelo processador.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;Uma linguagem de baixo nível que permite, ao ser humano, trabalhar diretamente com instruções do processador. Sendo assim mais trabalhosa, como já disse acima, pois, tratamos diretamente com manipulações de endereços de memória e instruções.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;A linguagem assembly tem uma característica que acredito ser singular, cada linha de código possui apenas uma instrução.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;Abaixo estão listados alguns componentes desta linguagem:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;Instruções de Registradores&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;img id="BLOGGER_PHOTO_ID_5050712785711535922" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 417px; CURSOR: hand; HEIGHT: 192px; TEXT-ALIGN: center" height="171" alt="" src="http://2.bp.blogspot.com/_hj-V1c6V2rs/Rhe8hM7cFzI/AAAAAAAAABE/N47jBLnKgqE/s400/comp01.bmp" width="406" border="0" /&gt;&lt;br /&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;Instruções de Pilha&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;img id="BLOGGER_PHOTO_ID_5050713833683556162" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 421px; CURSOR: hand; HEIGHT: 181px; TEXT-ALIGN: center" height="147" alt="" src="http://2.bp.blogspot.com/_hj-V1c6V2rs/Rhe9eM7cF0I/AAAAAAAAABM/om6NHwmBymY/s400/comp02.bmp" width="399" border="0" /&gt;&lt;br /&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;Instruções de Execução&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;img id="BLOGGER_PHOTO_ID_5050714439273944914" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" height="177" alt="" src="http://3.bp.blogspot.com/_hj-V1c6V2rs/Rhe-Bc7cF1I/AAAAAAAAABU/QGLbmPA3MCc/s400/comp03.bmp" width="417" border="0" /&gt;&lt;br /&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;Instruções de Memória&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;img id="BLOGGER_PHOTO_ID_5050715525900670818" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 430px; CURSOR: hand; HEIGHT: 202px; TEXT-ALIGN: center" height="184" alt="" src="http://4.bp.blogspot.com/_hj-V1c6V2rs/Rhe_As7cF2I/AAAAAAAAABc/66Tg2o1WWlQ/s400/comp04.bmp" width="422" border="0" /&gt;&lt;br /&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;Instruções de Flag&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;img id="BLOGGER_PHOTO_ID_5050717488700725106" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" height="116" alt="" src="http://1.bp.blogspot.com/_hj-V1c6V2rs/RhfAy87cF3I/AAAAAAAAABk/ESkWCrU38qs/s400/comp05.bmp" width="423" border="0" /&gt;&lt;br /&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;Declarações de Memória&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5050718575327451010" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" height="115" alt="" src="http://2.bp.blogspot.com/_hj-V1c6V2rs/RhfByM7cF4I/AAAAAAAAABs/WYaSyoDx_SQ/s400/comp06.bmp" width="426" border="0" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color:#3333ff;"&gt;Diretivas para o Assembler&lt;/span&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5050719378486335378" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" height="120" alt="" src="http://1.bp.blogspot.com/_hj-V1c6V2rs/RhfCg87cF5I/AAAAAAAAAB0/_A-RKmE5dQI/s400/comp07.bmp" width="426" border="0" /&gt; &lt;div align="justify"&gt; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color:#3333ff;"&gt;Comentários&lt;br /&gt;&lt;br /&gt;Depois do ponto-e-vírgula até a próxima quebra de linha, tudo é considerado comentário.&lt;/span&gt;&lt;br /&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color:#3333ff;"&gt;Instruções para o Sistema Operacional&lt;/span&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5050723338446182322" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" height="218" alt="" src="http://3.bp.blogspot.com/_hj-V1c6V2rs/RhfGHc7cF7I/AAAAAAAAACE/5CkYmTdtiMk/s400/comp08bmp.bmp" width="413" border="0" /&gt; &lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style="color:#3333ff;"&gt;Os exemplos dos componentes foram tirados de &lt;a href="http://www.numaboa.com.br/informatica/oiciliS/assembler/textos/lingAssembly.php"&gt;http://www.numaboa.com.br/informatica/oiciliS/assembler/textos/lingAssembly.php&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="color:#3333ff;"&gt;Contribuições para este artigo:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#3333ff;"&gt;&lt;a href="http://www.numaboa.com.br/informatica/oiciliS/assembler/"&gt;http://www.numaboa.com.br/informatica/oiciliS/assembler/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.cleverson.eti.br/assembly/"&gt;http://www.cleverson.eti.br/assembly/&lt;/a&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4035843021408767564-5059969857818977521?l=rafaelmartinsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rafaelmartinsjava.blogspot.com/feeds/5059969857818977521/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4035843021408767564&amp;postID=5059969857818977521&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/5059969857818977521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/5059969857818977521'/><link rel='alternate' type='text/html' href='http://rafaelmartinsjava.blogspot.com/2007/04/histria-do-assembly.html' title='História do Assembly'/><author><name>Rafael Martins</name><uri>http://www.blogger.com/profile/16384959892382639208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-D_ItdEOzdR4/Tijm0IXHWWI/AAAAAAAAAcM/Mgirpb8cFeE/s220/72028_182128175146473_100000478761104_609608_2282958_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_hj-V1c6V2rs/RhevgM7cFvI/AAAAAAAAAAk/rS9spFFUVXM/s72-c/figura01.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4035843021408767564.post-219446814791050099</id><published>2007-04-06T17:07:00.000-03:00</published><updated>2008-12-11T04:09:36.875-03:00</updated><title type='text'>Windows CardSpace*  *(p/ Faculdade)</title><content type='html'>&lt;div align="justify"&gt;O Winsdows CardSpace possui um autentificador de identidades que irá designar os atributos necessários para validação do certificado.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;O usuário irá apresentar informações com segurança, informações como identificações pessoais, à RP. A RP, pode ser qualquer coisa, na maioria das vezes é um serviço ou aplicativo). As informações de seguranças seram enviadas através de um token seguro, que é emitido por im IP (Internet Protocol), como um banco, o governo e etc.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;O IP é quem emite o token de segurança, comprovando as informações do usuário contidas no token.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_hj-V1c6V2rs/RhazDM7cFsI/AAAAAAAAAAM/-byll90DdPQ/s1600-h/fig01.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5050420899734099650" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" height="104" alt="" src="http://1.bp.blogspot.com/_hj-V1c6V2rs/RhazDM7cFsI/AAAAAAAAAAM/-byll90DdPQ/s320/fig01.gif" width="192" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Ao lado, temos uma figura que descreve um pouco desse processo. &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;A RP confia em um tipo específico de token de segurança para autorizar as chamadas. O IP autentica o usuário e emite um token de segurança no formato exigido pela RP. Em seguida, o usuário retransmite esse token, que contém declarações em favor do usuário, à RP. Cada um dos integrantes deste processo pode ser implementado em uma plataforma diferente, desde que estejam de acordo com os protocolos para Web e WS formulados para facilitar as comunicações.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Uma das funções do Windows CardSpace é uma tecnologia cliente usada para criar, gerenciar e selecionar identidades digitais de uma maneira segura e consistente.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;O Windows CardSpace permite que usuários criem cartões pessoais ou importem cartões emitidos por outros IPs. Os usuários podem selecionar apenas cartões que satisfazem os requisitos da RP ou selecionar um cartão e adicionar as declarações desejadas. &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Os cartões podem ser serializados como um documento XML assinado e sua extensão é .crd. Os cartões podem ser pessoais e gerenciais. O primeiro, é criado pelo usuário com o Windows CardSpace e emitidos com o IP local do Windows CardSpace. O segundo, são criados por qualquer outro IP e deve-se importar, impreterivelmente, no Windows CardSpace.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;A figura abaixo mostra como se da a interação neste sistema:&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5050435644356826850" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_hj-V1c6V2rs/RhbAdc7cFuI/AAAAAAAAAAc/uVACZ8uWw6I/s400/fig02.gif" border="0" /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Este material foi redigido com referência ao artigo Windows CardSpace e Cartões Pessoais de &lt;a title="More articles by this author" href="http://msdn.microsoft.com/msdnmag/find/?type=Au&amp;phrase=Mich%C3%A8le%20Leroux%20Bustamante&amp;amp;words=exact"&gt;Michèle Leroux Bustamante&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4035843021408767564-219446814791050099?l=rafaelmartinsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rafaelmartinsjava.blogspot.com/feeds/219446814791050099/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4035843021408767564&amp;postID=219446814791050099&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/219446814791050099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/219446814791050099'/><link rel='alternate' type='text/html' href='http://rafaelmartinsjava.blogspot.com/2007/04/windows-cardspace-p-faculdade.html' title='Windows CardSpace*  *(p/ Faculdade)'/><author><name>Rafael Martins</name><uri>http://www.blogger.com/profile/16384959892382639208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-D_ItdEOzdR4/Tijm0IXHWWI/AAAAAAAAAcM/Mgirpb8cFeE/s220/72028_182128175146473_100000478761104_609608_2282958_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_hj-V1c6V2rs/RhazDM7cFsI/AAAAAAAAAAM/-byll90DdPQ/s72-c/fig01.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4035843021408767564.post-8848017402562674231</id><published>2007-03-29T12:55:00.000-03:00</published><updated>2007-04-07T11:21:03.309-03:00</updated><title type='text'>Em breve...</title><content type='html'>&lt;div align="center"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;strong&gt;Em Breve estarei divulgando artigos sobre programação e desenvolvimento web em java.&lt;/strong&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Este blog terá o intuito de divulgar materiais de estudos para que todos possamos ler e nos desenvolver.&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color:#ff0000;"&gt;Aguardem...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;&lt;strong&gt;Rafael Martins&lt;br /&gt;Programador Java&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family:Verdana;color:#6666cc;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;span style="font-family:Verdana;color:#6666cc;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4035843021408767564-8848017402562674231?l=rafaelmartinsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rafaelmartinsjava.blogspot.com/feeds/8848017402562674231/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4035843021408767564&amp;postID=8848017402562674231&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/8848017402562674231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4035843021408767564/posts/default/8848017402562674231'/><link rel='alternate' type='text/html' href='http://rafaelmartinsjava.blogspot.com/2007/03/em-breve.html' title='Em breve...'/><author><name>Rafael Martins</name><uri>http://www.blogger.com/profile/16384959892382639208</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://2.bp.blogspot.com/-D_ItdEOzdR4/Tijm0IXHWWI/AAAAAAAAAcM/Mgirpb8cFeE/s220/72028_182128175146473_100000478761104_609608_2282958_n.jpg'/></author><thr:total>0</thr:total></entry></feed>
