<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0UFQnc6fip7ImA9WhRaE0Q.&quot;"><id>tag:blogger.com,1999:blog-8466029736615084593</id><updated>2012-02-16T09:20:13.916-02:00</updated><category term="Intergação" /><category term="WebServices" /><category term="EAI" /><category term="Servidor" /><category term="Balanceamento de carga" /><category term="1. O que é Rasea?" /><category term="Agente" /><category term="RBAC" /><title>RASEA - cRoss-plAtform accesS control for Enterprise Applications</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.rasea.org/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.rasea.org/" /><author><name>Robson Ataíde</name><uri>http://www.blogger.com/profile/12304371829443879772</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_aeui9j14_TU/SUr5R5g_gzI/AAAAAAAAElg/zhL2y5y1WOY/S220/Imag001.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/rasea" /><feedburner:info uri="rasea" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DEcFQHg6cSp7ImA9WxBQF0g.&quot;"><id>tag:blogger.com,1999:blog-8466029736615084593.post-2901310539538764411</id><published>2010-01-17T14:52:00.007-03:00</published><updated>2010-01-17T16:20:11.619-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-17T16:20:11.619-03:00</app:edited><title>Disponível a versão 0.4.0.RC1 para download</title><content type="html">&lt;div style="text-align: center;"&gt;&lt;img style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 249px; height: 50px; " src="http://4.bp.blogspot.com/_9IKqJZPz-8g/S1NQDRAhGJI/AAAAAAAACQ8/yv6YMoCsh4I/s400/rasea-server-0.4.0.RC1-download.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5427769992946981010" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Está disponível para &lt;/span&gt;&lt;a href="http://sourceforge.net/projects/rasea/files/rasea-server/0.4.0.RC1/rasea-server-0.4.0.RC1-bin.zip/download"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;download&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; a versão 0.4.0.RC1 do Servidor Rasea. Antes mesmo de descrever as mudanças e novidades desta versão, quero evidenciar todas as mudanças e evoluções do projeto, relacionadas direta ou indiretamente com esta nova liberação.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Durante muito tempo vínhamos estudando a infra-estrutura que o &lt;/span&gt;&lt;a href="http://sf.net/"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;SourceForge&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; nos oferece, acompanhado todas as mudanças nos seus serviços (e.g., gerenciamento de arquivos, tracker, fórum, etc). Tendo em vista a estabilização das suas novas funcionalidades, dedicamos esforços em começar a utilizar plenamente os seus recursos.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9IKqJZPz-8g/S1NU8rSexBI/AAAAAAAACRE/QS5Mvzbt_-M/s1600-h/rasea-project-environment.png"&gt;&lt;img src="http://2.bp.blogspot.com/_9IKqJZPz-8g/S1NU8rSexBI/AAAAAAAACRE/QS5Mvzbt_-M/s320/rasea-project-environment.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5427775377300702226" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 303px; height: 304px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Atualmente o Rasea disponibiliza alguns recursos para seus usuários, visando maior transparência no processo de desenvolvimento, proporcionando um canal de comunicação mais direto com a comunidade. Para isso, focamos na disponibilização dos serviços: &lt;/span&gt;&lt;a href="http://www.rasea.org/"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Site&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;, &lt;/span&gt;&lt;a href="http://trac.rasea.org/"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Tracker&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;, &lt;/span&gt;&lt;a href="http://forum.rasea.org/"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Fórum&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;, &lt;/span&gt;&lt;a href="http://twitter.rasea.org/"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Twitter&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; (já existia) e &lt;/span&gt;&lt;a href="http://blog.rasea.org/"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Blog&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; (já existia).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Site:&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; O &lt;/span&gt;&lt;a href="http://www.rasea.org/"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;site do projeto&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; é o ponto central da infra-estrutura, contendo documentações sobre o Rasea bem como link para os outros serviços;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Tracker:&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; O &lt;/span&gt;&lt;a href="http://trac.rasea.org/"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;tracker&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; possibilita aos usuários &lt;/span&gt;&lt;a href="http://sourceforge.net/apps/trac/rasea/newticket"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;abrir chamados&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;facilmente para a &lt;/span&gt;&lt;a href="http://sourceforge.net/project/memberlist.php?group_id=246496"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;equipe Rasea&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;, propondo melhorias no projeto ou comunicando erros;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Fórum:&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; Através do &lt;/span&gt;&lt;a href="http://forum.rasea.org/"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;fórum&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;, os usuários podem trocar experiências sobre a utilização do Rasea, além de tirar dúvidas sobre todos os detalhes do projeto;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Twitter:&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; No &lt;/span&gt;&lt;a href="http://twitter.rasea.org/"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;twitter&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; são publicadas novidades sobre o projeto. Aproveite e &lt;/span&gt;&lt;a href="http://twitter.rasea.org/"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;siga&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; o projeto Rasea;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Blog:&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; Aqui no &lt;/span&gt;&lt;a href="http://blog.rasea.org/"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;blog&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; você encontrará postagens menos formais que o Site, porém mais completas que o Twitter.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Pois bem, agora que já descrevi as novidades que motivaram essa nova versão, ficará mais fácil entender as suas &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;a href="https://sourceforge.net/apps/trac/rasea/query?milestone=rasea-server-0.4.0.RC1&amp;amp;order=id&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=type&amp;amp;col=status"&gt;novidades&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;. Dentre elas destaco a integração com o &lt;a href="http://maven.apache.org/"&gt;Maven&lt;/a&gt;, que automatizou o processo de &lt;i&gt;build&lt;/i&gt; do projeto integrado com toda a infra-estrutura que dispomos. Utilizando a nova estrutura do projeto, as novas funcionalidades são:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://sourceforge.net/apps/trac/rasea/ticket/15"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Rasea server liberado como WAR ao invés de EAR&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: Este trabalho de melhoria é o primeiro passo para integração com o Apache Tomcat, atendendo aos pedidos de várias pessoas que entraram em contato. Por enquanto o Rasea está sendo testado com o JBoss AS (v. 4.2.3.GA), mas aceitamos contribuições de quem estiver interessado em testá-lo em outros servidores de aplicação. Ainda não é possível utilizar o Rasea no Tomcat, mas em breve será;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;a href="https://sourceforge.net/apps/trac/rasea/ticket/16"&gt;Configuração do banco de dados no r&lt;i&gt;asea-server.properties&lt;/i&gt;&lt;/a&gt;: Agora toda configuração necessárias para o funcionamento do Servidor Rasea fica no arquivo de configuração &lt;i&gt;rasea-server.properties&lt;/i&gt;. Esse é também um passo importante para a futura integração com o Tomcat e independência do JBoss AS;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;a href="https://sourceforge.net/apps/trac/rasea/ticket/26"&gt;Criação da versão v1 dos WebServices&lt;/a&gt;: Refatoramos as interfaces dos WebServices (v1), porém sem perder a compatibilidade com a versão anterior (v0). Basicamente foi feito um trabalho de melhor organização, tornando o uso mais fácil e intuitivo;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;a href="https://sourceforge.net/apps/trac/rasea/ticket/22"&gt;Novo campo DESCRIPTION na tabela R_OPERATION&lt;/a&gt;: Criação de um novo campo na tabela de ações, seguindo o padrão dos outros elementos RBAC no modelo do Rasea, e.g., Application, Role, Resource e User.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Mas as novidade não param por aí. Veja a lista de tudo que foi modificado nesta versão &lt;a href="https://sourceforge.net/apps/trac/rasea/query?milestone=rasea-server-0.4.0.RC1&amp;amp;order=id&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=type&amp;amp;col=status"&gt;aqui&lt;/a&gt;. Aguardamos contatos e sugestões. A opinião da comunidade é muito importante para a evolução do projeto, como aconteceu até agora.&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/8466029736615084593-2901310539538764411?l=blog.rasea.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rasea/~4/YmC7ckygo9o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.rasea.org/feeds/2901310539538764411/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://blog.rasea.org/2010/01/disponivel-versao-040rc1-para-download.html#comment-form" title="1 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/2901310539538764411?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/2901310539538764411?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rasea/~3/YmC7ckygo9o/disponivel-versao-040rc1-para-download.html" title="Disponível a versão 0.4.0.RC1 para download" /><author><name>Cleverson Sacramento</name><uri>http://www.blogger.com/profile/08369037744149053053</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-oOtuJMJdD-o/TZMZaDbqZnI/AAAAAAAACcI/t8_yLZQ0G3I/s1600/9fe2b1117e89c284f5fbb2cc90d24efd.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_9IKqJZPz-8g/S1NQDRAhGJI/AAAAAAAACQ8/yv6YMoCsh4I/s72-c/rasea-server-0.4.0.RC1-download.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.rasea.org/2010/01/disponivel-versao-040rc1-para-download.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIMQHg9fSp7ImA9WxNUGEg.&quot;"><id>tag:blogger.com,1999:blog-8466029736615084593.post-1763195747048294733</id><published>2009-11-10T07:42:00.008-03:00</published><updated>2009-11-10T07:56:21.665-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-10T07:56:21.665-03:00</app:edited><title /><content type="html">&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Faz tempo não posto novidades aqui no blog. Nesses últimos tempos estive super-atarefado na finalização do mestrado, no qual o Rasea é o objeto de estudo. Mas tudo ocorreu bem. Em contrapartida, o Twitter está sendo atualizado constantemente.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Fiz um vídeo, que está publicado no YouTube, para demonstrar o controle de acesso de uma aplicação JBoss Seam utilizando o servidor Rasea. Notem que o layout do servidor Rasea foi melhorado e está completamente diferente.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;center&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/DV53pW14kso&amp;amp;hl=pt-br&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/DV53pW14kso&amp;amp;hl=pt-br&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8466029736615084593-1763195747048294733?l=blog.rasea.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rasea/~4/0aGzU1azjao" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.rasea.org/feeds/1763195747048294733/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://blog.rasea.org/2009/11/faz-tempo-nao-posto-novidades-aqui-no.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/1763195747048294733?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/1763195747048294733?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rasea/~3/0aGzU1azjao/faz-tempo-nao-posto-novidades-aqui-no.html" title="" /><author><name>Cleverson Sacramento</name><uri>http://www.blogger.com/profile/08369037744149053053</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-oOtuJMJdD-o/TZMZaDbqZnI/AAAAAAAACcI/t8_yLZQ0G3I/s1600/9fe2b1117e89c284f5fbb2cc90d24efd.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.rasea.org/2009/11/faz-tempo-nao-posto-novidades-aqui-no.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUECSHY_cSp7ImA9WxJRGUk.&quot;"><id>tag:blogger.com,1999:blog-8466029736615084593.post-6446257330158157876</id><published>2009-05-21T19:22:00.021-03:00</published><updated>2009-05-21T20:14:29.849-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-21T20:14:29.849-03:00</app:edited><title>Layout incial do Rasea</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Apresento-lhes o layout incial do Rasea. Focamos em algo leve e intuitivo, com pequenos detalhes para não deixar a coisa tão quadrada.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=" font-style: italic;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=" font-style: italic; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Tela de login&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Tela sem muita informação:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_aeui9j14_TU/ShXUzLAvk4I/AAAAAAAAFNA/kJrrZ5ZAc8k/s1600-h/login.jpg"&gt;&lt;img src="http://3.bp.blogspot.com/_aeui9j14_TU/ShXUzLAvk4I/AAAAAAAAFNA/kJrrZ5ZAc8k/s400/login.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5338406908911915906" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 250px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Quando existem informações na tela de login:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_aeui9j14_TU/ShXVW8AuddI/AAAAAAAAFNQ/1WEuz6FNe8M/s1600-h/login_primeira_vez.jpg"&gt;&lt;img src="http://1.bp.blogspot.com/_aeui9j14_TU/ShXVW8AuddI/AAAAAAAAFNQ/1WEuz6FNe8M/s400/login_primeira_vez.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5338407523360601554" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 250px; " /&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_aeui9j14_TU/ShXVWqNvjdI/AAAAAAAAFNI/GaOU9LfHriE/s1600-h/login_msg.jpg"&gt;&lt;img src="http://1.bp.blogspot.com/_aeui9j14_TU/ShXVWqNvjdI/AAAAAAAAFNI/GaOU9LfHriE/s400/login_msg.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5338407518583360978" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 250px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=" font-style: italic;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=" font-style: italic; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Telas internas&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=" font-style: italic;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Menu solto com um pequeno detalhe no canto direito, mensagem de boas vindas no canto direito abaixo do menu e versão do sistema no rodapé sobre um div semi-transparente:&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_aeui9j14_TU/ShXWCCldrgI/AAAAAAAAFNY/uMOeGjF4EJw/s1600/primeira_tela.jpg"&gt;&lt;img src="http://1.bp.blogspot.com/_aeui9j14_TU/ShXWCCldrgI/AAAAAAAAFNY/uMOeGjF4EJw/s1600/primeira_tela.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5338408263859678722" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 250px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;As outras telas seguem o mesmo layout:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_aeui9j14_TU/ShXXMgMyyFI/AAAAAAAAFNg/KH0RnqyqoGc/s1600/acoes.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_aeui9j14_TU/ShXXMgMyyFI/AAAAAAAAFNg/KH0RnqyqoGc/s400/acoes.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5338409543119587410" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 250px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Efeito do mouse sobre a lista:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_aeui9j14_TU/ShXXvuEbsBI/AAAAAAAAFNo/M3Ik8J8fxsQ/s1600/mouse_over.jpg"&gt;&lt;img src="http://1.bp.blogspot.com/_aeui9j14_TU/ShXXvuEbsBI/AAAAAAAAFNo/M3Ik8J8fxsQ/s400/mouse_over.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5338410148138037266" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 250px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Estilo mais destacado evidencia o registro selecionado:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_aeui9j14_TU/ShXYWMrs8JI/AAAAAAAAFNw/XJNb481sH5o/s1600/acoes_selecionada.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_aeui9j14_TU/ShXYWMrs8JI/AAAAAAAAFNw/XJNb481sH5o/s400/acoes_selecionada.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5338410809190838418" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 250px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Edição do registro:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_aeui9j14_TU/ShXZE63ERXI/AAAAAAAAFN4/rtXXWnFCiDA/s1600-h/edicao.jpg"&gt;&lt;img src="http://3.bp.blogspot.com/_aeui9j14_TU/ShXZE63ERXI/AAAAAAAAFN4/rtXXWnFCiDA/s400/edicao.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5338411611860518258" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 250px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Selecionando o sistema, que está contextualizado:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_aeui9j14_TU/ShXZW9yMmYI/AAAAAAAAFOA/myAKcCy64Dg/s1600-h/selecionando_sistema.jpg"&gt;&lt;img src="http://3.bp.blogspot.com/_aeui9j14_TU/ShXZW9yMmYI/AAAAAAAAFOA/myAKcCy64Dg/s400/selecionando_sistema.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5338411921883044226" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 250px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Redimensionando a janela mantendo um layout agradável:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_aeui9j14_TU/ShXae49PRwI/AAAAAAAAFOI/4Ol5CjmPvzA/s1600-h/redimensionando.jpg"&gt;&lt;img src="http://2.bp.blogspot.com/_aeui9j14_TU/ShXae49PRwI/AAAAAAAAFOI/4Ol5CjmPvzA/s400/redimensionando.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5338413157537761026" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 250px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Aguardem o post de usuabilidade!!!&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/8466029736615084593-6446257330158157876?l=blog.rasea.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rasea/~4/22ZU_q4QUUI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.rasea.org/feeds/6446257330158157876/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://blog.rasea.org/2009/05/layout-incial-do-rasea.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/6446257330158157876?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/6446257330158157876?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rasea/~3/22ZU_q4QUUI/layout-incial-do-rasea.html" title="Layout incial do Rasea" /><author><name>Robson Ataíde</name><uri>http://www.blogger.com/profile/12304371829443879772</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/_aeui9j14_TU/SUr5R5g_gzI/AAAAAAAAElg/zhL2y5y1WOY/S220/Imag001.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_aeui9j14_TU/ShXUzLAvk4I/AAAAAAAAFNA/kJrrZ5ZAc8k/s72-c/login.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.rasea.org/2009/05/layout-incial-do-rasea.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8MR3k4eip7ImA9WxJRFU0.&quot;"><id>tag:blogger.com,1999:blog-8466029736615084593.post-8107899274249317630</id><published>2009-05-16T16:50:00.005-03:00</published><updated>2009-05-16T16:58:06.732-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-16T16:58:06.732-03:00</app:edited><title>Rasea no Twitter</title><content type="html">&lt;img style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 200px; height: 74px; " src="http://2.bp.blogspot.com/_9IKqJZPz-8g/Sg8Zt3M50QI/AAAAAAAACK0/sd_T9FbJwJ8/s200/twitter_logo.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5336512359160205570" /&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Para quem ainda não sabe, o projeto Rasea está na rede social Twitter, sendo possível acompanhar o andamento do projeto de forma online. É preciso que você possua uma conta no Twitter, &lt;a href="https://twitter.com/signup"&gt;crie a sua&lt;/a&gt; caso você não tenha. Para acompanhar o projeto, acesse &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;a href="http://twitter.rasea.org/"&gt;http://twitter.rasea.org&lt;/a&gt; e clique em "Follow".&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8466029736615084593-8107899274249317630?l=blog.rasea.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rasea/~4/NvHL8fg1_8c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.rasea.org/feeds/8107899274249317630/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://blog.rasea.org/2009/05/rasea-no-twitter.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/8107899274249317630?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/8107899274249317630?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rasea/~3/NvHL8fg1_8c/rasea-no-twitter.html" title="Rasea no Twitter" /><author><name>Cleverson Sacramento</name><uri>http://www.blogger.com/profile/08369037744149053053</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-oOtuJMJdD-o/TZMZaDbqZnI/AAAAAAAACcI/t8_yLZQ0G3I/s1600/9fe2b1117e89c284f5fbb2cc90d24efd.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_9IKqJZPz-8g/Sg8Zt3M50QI/AAAAAAAACK0/sd_T9FbJwJ8/s72-c/twitter_logo.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.rasea.org/2009/05/rasea-no-twitter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EARHk9fCp7ImA9WxJSF0U.&quot;"><id>tag:blogger.com,1999:blog-8466029736615084593.post-2177147989576514640</id><published>2009-05-08T09:22:00.002-03:00</published><updated>2009-05-08T09:27:25.764-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-08T09:27:25.764-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Agente" /><title>Agente</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; "&gt;Toda aplicação parceira deve estar conectada a um agente. Tomando como base o modelo PIM, o agente RASEA é um motor de especialização (&lt;/span&gt;&lt;span style="mso-no-proof:yes"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; "&gt;IBM, 2009&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 13px; "&gt;), responsável por converter a linguagem dos &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; "&gt;WebServices&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: 13px; "&gt; em mensagens específicas das tecnologias das aplicações parceiras. Além disso, o agente executa efetivamente as tarefas de controle de acesso às aplicações, prevenindo o acesso não autorizado ao sistema. Neste tópico serão abordadas as duas principais funções do agente RASEA: i) motor de especialização; e ii) controlador de acesso.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;A Figura &lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;REF _Ref223670301 \h &lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span style="mso-no-proof:yes"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;19&lt;/span&gt;&lt;/span&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:data&gt;08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320033003600370030003300300031000000&lt;/w:data&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; destaca a especialização do agente RASEA em diferentes tecnologias. O item “A” representa os serviços, providos pelo servidor, que são acessados pelos agentes “B”. A comunicação entre os serviços “A” e os agentes “B” se dá por meio de &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WebServices&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;, garantindo a independência de plataforma. Os agentes “C”, “D” e “E” são especializações do agente conceitual “B”, construídos para tecnologias específicas, tais como: Java, .NET e PHP. O item “F” representa agentes desenvolvidos em qualquer tecnologia que suporte o consumo de &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WebServices&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;, proporcionando flexibilidade à solução.&lt;/span&gt;&lt;/p&gt;&lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="Corpo"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9IKqJZPz-8g/SgQkj1b7cFI/AAAAAAAACKU/sbHedw9bGeQ/s1600-h/tipos+de+agente+RASEA.png"&gt;&lt;img src="http://1.bp.blogspot.com/_9IKqJZPz-8g/SgQkj1b7cFI/AAAAAAAACKU/sbHedw9bGeQ/s400/tipos+de+agente+RASEA.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5333428056771752018" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 208px; height: 400px; " /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="Corpo" align="center" style="margin-bottom:0cm;margin-bottom:.0001pt; text-align:center;line-height:115%;page-break-after:avoid"&gt;&lt;span class="Figura"&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;v:formulas&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;o:lock ext="edit" aspectratio="t"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/o:lock&gt;&lt;/v:path&gt;&lt;/v:stroke&gt;&lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" type="#_x0000_t75" style="width:141pt;  height:270.75pt"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;v:imagedata src="file:///C:\Users\CLEVER~1.SAC\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png" title=""&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoCaption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;a name="_Toc229148764"&gt;&lt;/a&gt;&lt;/span&gt;&lt;a name="_Ref223670301"&gt;&lt;span style="mso-bookmark:_Toc229148764"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Figura &lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-bookmark:_Ref223670301'"&gt;&lt;span style="'mso-bookmark:_Toc229148764'"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;&lt;span style="'mso-bookmark:_Ref223670301'"&gt;&lt;span style="'mso-bookmark:_Toc229148764'"&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;SEQ Figura \* ARABIC &lt;span style="'mso-element:field-separator'"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span style="mso-bookmark:_Ref223670301"&gt;&lt;span style="mso-bookmark:_Toc229148764"&gt;&lt;span style="mso-no-proof:yes"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;19&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-bookmark:_Ref223670301'"&gt;&lt;span style="'mso-bookmark:_Toc229148764'"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span style="mso-bookmark: _Ref223670301"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="mso-bookmark:_Toc229148764"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-bookmark:_Toc229148764"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; – Tipos de agente&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Os agentes devem se especializar ao máximo, garantindo o encaixe perfeito com a tecnologia da aplicação parceira. Como exemplo, pode-se citar a utilização de Java na construção de aplicações comerciais. Existem diversas ferramentas, paradigmas, &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;frameworks&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;, bibliotecas e tecnologias que podem ser utilizadas na construção de aplicações na plataforma Java, tais como: i) &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;JavaServer Faces&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; (JSF); ii) &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Apache&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Struts&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;; iii) &lt;/span&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Google Web Toolkit&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; (GWT); iv) &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Abstract Window Toolkit&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; (AWT); dentre outras. É fundamental que exista um agente para cada tecnologia específica, ao invés de um motor de especialização genérico para a plataforma Java.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O agente é responsável por interceptar todas as requisições feitas às aplicações parceiras, conforme estabelecido pelo padrão de projeto &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Front Controller&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; (ALUR; CRUPI; MALKS, 2003, p. 164). Todas as tentativas de acesso devem ser tratadas com base nas informações consultadas no servidor RASEA. De acordo com Kern (2004, p. 90, tradução nossa), “lentidão nas decisões de acesso são críticas para o negócio”, portanto recomenda-se armazenar em &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;cache&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; todas as permissões associadas ao usuário. Segue a baixo o processo executado pelo agente para realizar a autenticação e o armazenamento dos privilégios de acesso:&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="mso-fareast-Times New Roman&amp;quot;font-family:&amp;quot;;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;1.&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O usuário informa as credenciais para acessar a aplicação parceira;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="mso-fareast-Times New Roman&amp;quot;font-family:&amp;quot;;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;2.&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O agente acessa o serviço de autenticação provido pelo servidor;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="mso-fareast-Times New Roman&amp;quot;font-family:&amp;quot;;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;3.&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O servidor verifica a autenticidade acessando a base única de usuários;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="mso-fareast-Times New Roman&amp;quot;font-family:&amp;quot;;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;4.&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Caso a autenticação seja bem sucedida, o agente é notificado e o fluxo prossegue. Em caso de falha na autenticação, o usuário é notificado e o fluxo é finalizado;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="mso-fareast-Times New Roman&amp;quot;font-family:&amp;quot;;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;5.&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O agente solicita todos os papéis que o usuário possui e os armazena em &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;cache&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="mso-fareast-Times New Roman&amp;quot;font-family:&amp;quot;;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;6.&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O agente solicita todas as permissões atribuídas ao usuário e as armazena em &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;cache&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="mso-fareast-Times New Roman&amp;quot;font-family:&amp;quot;;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;7.&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O usuário é notificado que o processo de autenticação foi bem sucedido, ganhando acesso à aplicação.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O fluxo a seguir estabelece as etapas do controle de acesso, executadas pelo agente RASEA, ao interceptar requisições aos recursos da aplicação parceira:&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="mso-fareast-Times New Roman&amp;quot;font-family:&amp;quot;;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;1.&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O usuário acessa um recurso de uma aplicação executando uma determinada ação.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="mso-fareast-Times New Roman&amp;quot;font-family:&amp;quot;;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;2.&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O agente intercepta a requisição.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="mso-fareast-Times New Roman&amp;quot;font-family:&amp;quot;;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;3.&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Caso esteja autenticado, o fluxo continua. Caso contrário, o usuário é direcionado para o processo de autenticação.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="mso-fareast-Times New Roman&amp;quot;font-family:&amp;quot;;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;4.&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O agente verifica a autorização para executar a ação sob o recurso solicitado. A verificação é feita com base nas informações em &lt;/span&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;cache&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;, armazenadas pelo fluxo de autenticação.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="mso-fareast-Times New Roman&amp;quot;font-family:&amp;quot;;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;5.&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Caso o usuário esteja autorizado, a ação é executada sob o recurso. Caso contrário, o usuário é notificado que a solicitação de acesso foi negada.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O servidor RASEA, elemento central da arquitetura, é também uma aplicação que requer o controle de acesso às suas funcionalidades. Este requisito possui caráter recursivo, visto que o servidor acessa os seus próprios serviços para garantir o controle de acesso a si mesmo, caracterizando-o como uma aplicação parceira. A Figura &lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;REF _Ref224189431 \h &lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span style="mso-no-proof:yes"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;20&lt;/span&gt;&lt;/span&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:data&gt;08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320034003100380039003400330031000000&lt;/w:data&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; ilustra o agente acoplado ao servidor “B” acessando os serviços “D” por meio da conexão “C”. Percebe-se que a estrutura do servidor “B” é a mesma adotada pelas aplicações parceiras “A”. Esta técnica é conhecida como &lt;/span&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;bootstrapping&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;, onde o processo é executado sem auxílio externo (DAVISON; HINKLEY, 1997).&lt;/span&gt;&lt;/p&gt;&lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="Corpo"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9IKqJZPz-8g/SgQkyRykK8I/AAAAAAAACKc/UjBypLMPtfg/s1600-h/bootstrap+no+rasea.png"&gt;&lt;img src="http://4.bp.blogspot.com/_9IKqJZPz-8g/SgQkyRykK8I/AAAAAAAACKc/UjBypLMPtfg/s400/bootstrap+no+rasea.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5333428304901057474" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 260px; height: 400px; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="Corpo" style="text-align: center;"&gt;&lt;a name="_Ref224189431"&gt;&lt;span style="mso-bookmark:_Toc229148765"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Figura &lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-bookmark:_Ref224189431"&gt;&lt;span style="mso-bookmark:_Toc229148765"&gt;&lt;span style="mso-no-proof:yes"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;20&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-bookmark: _Ref224189431"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="mso-bookmark:_Toc229148765"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-bookmark:_Toc229148765"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; – &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Bootstrapping &lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;no RASEA&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style="line-height: 115%;  font-family:'Times New Roman', serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Existe no mercado uma grande variedade de tecnologias e linguagens de programação. Deve-se construir um agente para cada tecnologia que pretenda utilizar o RASEA. O projeto RASEA está aberto à colaboração da comunidade para a criação de novos agentes, seguindo o modelo &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Bazaar&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; proposto por Raymond (2001). Durante o desenvolvimento do projeto, diversos codificadores e arquitetos contribuíram para a evolução do RASEA.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8466029736615084593-2177147989576514640?l=blog.rasea.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rasea/~4/Qh83L9VyrWo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.rasea.org/feeds/2177147989576514640/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://blog.rasea.org/2009/05/agente.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/2177147989576514640?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/2177147989576514640?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rasea/~3/Qh83L9VyrWo/agente.html" title="Agente" /><author><name>Cleverson Sacramento</name><uri>http://www.blogger.com/profile/08369037744149053053</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-oOtuJMJdD-o/TZMZaDbqZnI/AAAAAAAACcI/t8_yLZQ0G3I/s1600/9fe2b1117e89c284f5fbb2cc90d24efd.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_9IKqJZPz-8g/SgQkj1b7cFI/AAAAAAAACKU/sbHedw9bGeQ/s72-c/tipos+de+agente+RASEA.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.rasea.org/2009/05/agente.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQNR3w-fip7ImA9WxJTFks.&quot;"><id>tag:blogger.com,1999:blog-8466029736615084593.post-8950635439127734416</id><published>2009-04-25T09:50:00.004-03:00</published><updated>2009-04-25T09:59:56.256-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-25T09:59:56.256-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Servidor" /><category scheme="http://www.blogger.com/atom/ns#" term="Balanceamento de carga" /><title>Servidor</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: 10px;"&gt;&lt;p class="Corpo"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O servidor é o ponto central da arquitetura RASEA, responsável por: i) implementar o modelo RBAC; ii) prover serviços por meio de &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WebServices&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;; iii) integrar com dados legados da organização e; iv) disponibilizar interface gráfica para gerenciamento do controle de acesso. A Figura &lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;REF _Ref224786377 \h &lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span style="mso-no-proof:yes"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;17&lt;/span&gt;&lt;/span&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:data&gt;08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320034003700380036003300370037000000&lt;/w:data&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; destaca o servidor “A” interagindo com elementos essenciais para o seu funcionamento. O item “B” representa a interface para gerenciamento do controle de acesso às aplicações parceiras cadastradas no RASEA. Os itens “C” e “D” representam os serviços providos para aplicações parceiras ou autônomas.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="Corpo" style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9IKqJZPz-8g/SfMHwmOh7NI/AAAAAAAACJs/UNHugcAY9Lg/s1600-h/Arquitetura+do+servidor+RASEA.png"&gt;&lt;img src="http://1.bp.blogspot.com/_9IKqJZPz-8g/SfMHwmOh7NI/AAAAAAAACJs/UNHugcAY9Lg/s400/Arquitetura+do+servidor+RASEA.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5328611315586034898" style="text-align: center;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 188px; " /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="Corpo" align="center" style="margin-bottom:0cm;margin-bottom:.0001pt; text-align:center;line-height:115%;page-break-after:avoid"&gt;&lt;span class="Figura"&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;v:formulas&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;o:lock ext="edit" aspectratio="t"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/o:lock&gt;&lt;/v:path&gt;&lt;/v:stroke&gt;&lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" type="#_x0000_t75" style="width:337.5pt;  height:159pt"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;v:imagedata src="file:///C:\Users\CLEVER~1.SAC\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png" title=""&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoCaption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;a name="_Toc228415600"&gt;&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;a name="_Ref224786372"&gt;&lt;/a&gt;&lt;/span&gt;&lt;a name="_Ref224786377"&gt;&lt;span style="mso-bookmark:_Ref224786372"&gt;&lt;span style="mso-bookmark:_Toc228415600"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Figura &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-bookmark:_Ref224786377'"&gt;&lt;span style="'mso-bookmark:_Ref224786372'"&gt;&lt;span style="'mso-bookmark:_Toc228415600'"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;span style="'mso-bookmark:_Ref224786377'"&gt;&lt;span style="'mso-bookmark:_Ref224786372'"&gt;&lt;span style="'mso-bookmark:_Toc228415600'"&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;SEQ Figura \* ARABIC &lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span style="mso-bookmark:_Ref224786377"&gt;&lt;span style="mso-bookmark:_Ref224786372"&gt;&lt;span style="mso-bookmark:_Toc228415600"&gt;&lt;span style="mso-no-proof:yes"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;17&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-bookmark:_Ref224786377'"&gt;&lt;span style="'mso-bookmark:_Ref224786372'"&gt;&lt;span style="'mso-bookmark:_Toc228415600'"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span style="mso-bookmark:_Ref224786377"&gt;&lt;span style="mso-bookmark:_Ref224786372"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="mso-bookmark:_Toc228415600"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-bookmark:_Ref224786372"&gt;&lt;span style="mso-bookmark:_Toc228415600"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; – Arquitetura do servidor RASEA&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Todas as informações fornecidas pelos serviços do RASEA têm sempre como fonte duas bases de dados: i) base de autorização, que implementa o modelo RBAC e; ii) base de autenticação, que contém as credenciais dos usuários. A base de autorização é mantida única e exclusivamente pelo servidor RASEA, sendo possível efetuar modificações nos dados através de telas de cadastro ou via serviços de gerenciamento. A base de autenticação, ou base legada de credenciais de usuários, deve ser parametrizada no arquivo de configuração do servidor. É recomendado que esta base (autenticação) seja mantida pela organização, por tratar de dados compartilhados entre diversos sistemas.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;As telas que compõem a interface gráfica com os usuários (GUI) devem ser restritas aos administradores de acesso da organização. Segue a baixo as funcionalidades disponíveis via GUI no servidor RASEA:&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Cadastro de aplicações&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; – Possibilita a inclusão, alteração e exclusão de aplicações parceiras que serão controladas pelo RASEA.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Cadastro de operações&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; – Após o cadastro de uma aplicação parceira, é preciso informar quais as operações (ou ações) fazem parte do seu controle de acesso. Esta funcionalidade contempla a inclusão, alteração e exclusão das operações de uma determinada aplicação parceira.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Cadastro de recursos&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; – Os usuários executam operações sobre os recursos de uma aplicação parceira. Esta funcionalidade prever a inclusão, alteração e exclusão dos recursos de uma aplicação parceira, bem como a associação com as operações que podem ser executadas sobre o recurso (ou permissões).&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Cadastro de usuários&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; – Possibilita a manipulação dos dados legados da organização, possibilitando a inclusão, alteração e exclusão de usuários e suas credenciais.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Cadastro de papéis&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; – Provê a inclusão, alteração e exclusão de papéis (ou grupos de usuários) de uma aplicação parceira, bem como a associação dos usuários aos papéis.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Concessão de autorização&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; – Tendo efetuado o cadastro da aplicação parceira, suas ações, recursos, permissões e papéis; é possível conceder ou revogar acesso ao sistema. A concessão da autorização é a associação de uma permissão (recurso × operação) a um papel.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Configurações&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; – Exibe as parametrizações do servidor definidas no arquivo de configuração. Também possibilita a seleção de idioma das telas do servidor RASEA.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Como resposta ao modelo descentralizado, a arquitetura proposta concentra todas as funcionalidades e serviços necessários em um único elemento do modelo: o servidor RASEA. Todas as aplicações parceiras dependem dos serviços para executar tarefas de controle de acesso, portanto é fundamental que o servidor possua: i) alta disponibilidade; ii) performance e; iii) escalabilidade. Enquanto a alta disponibilidade assegura o atendimento às requisições dos agentes, a performance garante a execução em tempo hábil, evitando impactos no negócio da organização (KERN, 2004, p. 90, tradução nossa). A estrutura deve ser escalável, possibilitando o crescimento sem prejuízos à alta disponibilidade e performance da solução.&lt;/span&gt;&lt;/p&gt;&lt;p class="Corpo" style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9IKqJZPz-8g/SfMHwn7pjrI/AAAAAAAACJ0/q_YB_YiSmKc/s1600-h/Rasea+-+Balanceamento+de+carga.png"&gt;&lt;img src="http://1.bp.blogspot.com/_9IKqJZPz-8g/SfMHwn7pjrI/AAAAAAAACJ0/q_YB_YiSmKc/s400/Rasea+-+Balanceamento+de+carga.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5328611316043714226" style="text-align: center;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 294px; " /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="Corpo" align="center" style="margin-bottom:0cm;margin-bottom:.0001pt; text-align:center;line-height:115%;page-break-after:avoid"&gt;&lt;span class="Figura"&gt;&lt;v:shape id="_x0000_i1026" type="#_x0000_t75" style="width:343.5pt;height:252.75pt"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;v:imagedata src="file:///C:\Users\CLEVER~1.SAC\AppData\Local\Temp\msohtmlclip1\01\clip_image002.png" title=""&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoCaption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;a name="_Toc228415601"&gt;&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;a name="_Ref224807662"&gt;&lt;/a&gt;&lt;/span&gt;&lt;a name="_Ref224796385"&gt;&lt;span style="mso-bookmark:_Ref224807662"&gt;&lt;span style="mso-bookmark:_Toc228415601"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Figura &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-bookmark:_Ref224796385'"&gt;&lt;span style="'mso-bookmark:_Ref224807662'"&gt;&lt;span style="'mso-bookmark:_Toc228415601'"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;span style="'mso-bookmark:_Ref224796385'"&gt;&lt;span style="'mso-bookmark:_Ref224807662'"&gt;&lt;span style="'mso-bookmark:_Toc228415601'"&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;SEQ Figura \* ARABIC &lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span style="mso-bookmark:_Ref224796385"&gt;&lt;span style="mso-bookmark:_Ref224807662"&gt;&lt;span style="mso-bookmark:_Toc228415601"&gt;&lt;span style="mso-no-proof:yes"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;18&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-bookmark:_Ref224796385'"&gt;&lt;span style="'mso-bookmark:_Ref224807662'"&gt;&lt;span style="'mso-bookmark:_Toc228415601'"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span style="mso-bookmark:_Ref224796385"&gt;&lt;span style="mso-bookmark:_Ref224807662"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="mso-bookmark:_Toc228415601"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-bookmark:_Ref224807662"&gt;&lt;span style="mso-bookmark:_Toc228415601"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; – Balanceamento de carga&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style="line-height: 115%;  font-family:'Times New Roman', serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;p class="Corpo"&gt;Para garantir a alta disponibilidade, performance e escalabilidade, recomenda-se o uso de &lt;i style="mso-bidi-font-style:normal"&gt;cluster&lt;/i&gt; com balanceamento de carga no servidor RASEA, conforme ilustrado na &lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;REF _Ref224796385 \h &lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;![endif]--&gt;Figura &lt;span style="mso-no-proof:yes"&gt;18&lt;/span&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:data&gt;08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320034003700390036003300380035000000&lt;/w:data&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;. O elemento “A” representa aplicações parceiras acopladas aos agentes, que acessam os serviços do RASEA. O balanceador de carga “B” intercepta as chamadas dos agentes e decide, com base em uma heurística, qual o servidor atenderá as requisições. Os itens “C”, “D” e “E” ilustram os servidores RASEA, responsáveis por tratar as requisições redirecionadas pelo balanceador de carga. Cada servidor é um nó que compõe o &lt;i style="mso-bidi-font-style:normal"&gt;cluster&lt;/i&gt;. A sessão de cada nó é replicada no &lt;i style="mso-bidi-font-style:normal"&gt;cluster&lt;/i&gt;, garantindo o remanejamento de servidores sem interrupções no serviço.&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8466029736615084593-8950635439127734416?l=blog.rasea.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rasea/~4/fNf9PQxE8u4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.rasea.org/feeds/8950635439127734416/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://blog.rasea.org/2009/04/servidor.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/8950635439127734416?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/8950635439127734416?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rasea/~3/fNf9PQxE8u4/servidor.html" title="Servidor" /><author><name>Cleverson Sacramento</name><uri>http://www.blogger.com/profile/08369037744149053053</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-oOtuJMJdD-o/TZMZaDbqZnI/AAAAAAAACcI/t8_yLZQ0G3I/s1600/9fe2b1117e89c284f5fbb2cc90d24efd.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_9IKqJZPz-8g/SfMHwmOh7NI/AAAAAAAACJs/UNHugcAY9Lg/s72-c/Arquitetura+do+servidor+RASEA.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.rasea.org/2009/04/servidor.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAHQXg5fip7ImA9WxJTFks.&quot;"><id>tag:blogger.com,1999:blog-8466029736615084593.post-3679563442657192020</id><published>2009-04-25T09:41:00.007-03:00</published><updated>2009-04-25T10:05:30.626-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-25T10:05:30.626-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Intergação" /><category scheme="http://www.blogger.com/atom/ns#" term="EAI" /><title>Integração</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=" "&gt;&lt;span class="Apple-style-span" style=" "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O RASEA não pretende substituir tecnologias, arquiteturas, aplicações ou fontes de informação existentes na organização, e sim possibilitar a integração com o legado utilizando padrões abertos. Os problemas de integração (ANAYA; ORTIZ, 2005, p. 27) são analisados e tratados sob três pontos de vista: i) aplicação; ii) informação e; iii) tecnologia. Os pontos de integração foram avaliados com base no modelo &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style=" "&gt;&lt;span class="Apple-style-span" style=" "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Enterprise Application Integration&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style=" "&gt;&lt;span class="Apple-style-span" style=" "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; (EAI).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;  &lt;p class="Corpo" style="text-align: justify;margin-top: 12pt; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;A interação com aplicações pode acontecer de duas formas: i) comunicação com aplicações parceiras ou; ii) autônomas. A interoperabilidade entre o servidor RASEA e as aplicações, sejam elas parceiras ou autônomas, ocorre mediante o uso de &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Web Services&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;. A Figura &lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;REF _Ref226019780 \h &lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span style="mso-no-proof:yes"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;15&lt;/span&gt;&lt;/span&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:data&gt;08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320036003000310039003700380030000000&lt;/w:data&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; destaca a integração entre as aplicações autônomas “B” por meio dos serviços de gerenciamento “A”, que possibilitam que sistemas legados interajam ativamente com o servidor RASEA manipulando informações e modificando seu comportamento. Em conformidade com EAI, este nível de integração é conhecido como &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Wrapper&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; de Legado (&lt;/span&gt;&lt;span style="mso-no-proof:yes"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CUMMINS, 2002, p. 317&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;).&lt;/span&gt;&lt;/p&gt;&lt;p class="Corpo" style="text-align: center;margin-top: 12pt; "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9IKqJZPz-8g/SfMGtsgnmhI/AAAAAAAACJU/yiozILhYPjg/s1600-h/rasea+-+Integra%C3%A7%C3%A3o+com+o+servi%C3%A7o+de+gerenciamento.png"&gt;&lt;img src="http://3.bp.blogspot.com/_9IKqJZPz-8g/SfMGtsgnmhI/AAAAAAAACJU/yiozILhYPjg/s200/rasea+-+Integra%C3%A7%C3%A3o+com+o+servi%C3%A7o+de+gerenciamento.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5328610166221281810" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 152px; height: 200px; " /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="Corpo" align="center" style="margin-bottom:0cm;margin-bottom:.0001pt; text-align:center;line-height:115%;page-break-after:avoid"&gt;&lt;span class="Figura"&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;v:formulas&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;o:lock ext="edit" aspectratio="t"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/o:lock&gt;&lt;/v:path&gt;&lt;/v:stroke&gt;&lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" type="#_x0000_t75" style="width:132pt;  height:173.25pt"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;v:imagedata src="file:///C:\Users\CLEVER~1.SAC\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png" title=""&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoCaption" style="text-align: center;"&gt;&lt;span style="mso-bookmark:_Toc228415598"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238);"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Figura 15 –  Integração com o serviço de gerenciamento&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Além da integração com os serviços, o RASEA possibilita a conexão com repositórios de credenciais de usuários. Como exemplo tem-se o &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Lightweight Directory Access Protocol&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; (LDAP), adotado por diversas organizações com o propósito de unificar o armazenamento e centralizar a autenticação dos usuários. A Figura &lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;REF _Ref226361187 \h &lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span style="mso-no-proof:yes"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;16&lt;/span&gt;&lt;/span&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:data&gt;08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320036003300360031003100380037000000&lt;/w:data&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; ilustra a integração entre o servidor “A” e a base de usuários legada “B”. A estratégia de armazenamento das credenciais deve ser definida no arquivo de configuração do servidor, representada pelos itens “C”, “D” e “E”. Para garantir a extensibilidade da solução, o RASEA permite que novas estratégias “F” sejam plugadas, atendendo às necessidades específicas que possam ocorrer.&lt;/span&gt;&lt;/p&gt;&lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="Corpo" style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9IKqJZPz-8g/SfMFk1YKD2I/AAAAAAAACI0/Gsv70Nbahtw/s1600-h/rasea+-+Integra%C3%A7%C3%A3o+com+base+de+usu%C3%A1rios+legada.png"&gt;&lt;img src="http://3.bp.blogspot.com/_9IKqJZPz-8g/SfMFk1YKD2I/AAAAAAAACI0/Gsv70Nbahtw/s400/rasea+-+Integra%C3%A7%C3%A3o+com+base+de+usu%C3%A1rios+legada.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5328608914471260002" style="text-align: center;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 298px; " /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="Corpo" align="center" style="margin-bottom:0cm;margin-bottom:.0001pt; text-align:center;line-height:115%;page-break-after:avoid"&gt;&lt;span class="Figura"&gt;&lt;v:shape id="_x0000_i1026" type="#_x0000_t75" style="width:314.25pt;height:234.75pt"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;v:imagedata src="file:///C:\Users\CLEVER~1.SAC\AppData\Local\Temp\msohtmlclip1\01\clip_image002.png" title=""&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoCaption" style="text-align: center;"&gt;&lt;span style="mso-bookmark:_Toc228415599"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Figura 16 – Integração com base de usuários legada&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;É extremamente recomendável que todos os níveis de integração – desde o Banco de Dados Compartilhado (&lt;/span&gt;&lt;span style="mso-no-proof:yes"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;CUMMINS, 2002, p. 316&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;) até o &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Wrapper&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; – estabeleçam conexões seguras pra garantir integridade, autenticidade e confidencialidades da informação. A integração entre as aplicações e os serviços RASEA deve empregar o &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;HyperText Transfer Protocol Secure&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; (HTTPS), utilizado por instituições financeiras para efetuar transações via Internet. A conexão com a base de credenciais deve utilizar dutos criptografados, tal como o &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Secure &lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;LDAP (LDAPS). Não faz parte do escopo desde trabalho detalhar protocolos e técnicas de segurança.&lt;/span&gt;&lt;/p&gt;&lt;p class="Corpo" style="text-align: justify;"&gt;&lt;/p&gt;&lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Integrar soluções existentes ao invés de reinventá-las. Essa característica está evidenciada nos agentes RASEA, que se beneficiam de diversas tecnologias para desempenhar o seu trabalho, encaixando-as como peças de quebra-cabeça. Todos os detalhes sobre os agentes serão explicitados no tópico “3.6 Agente” (p. &lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt; REF _Ref223253097 \r \h &lt;span style="'mso-element:field-separator'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:data&gt;08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320033003200350033003000390037000000&lt;/w:data&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;REF _Ref223253097 \h &lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:data&gt;08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320033003200350033003000390037000000&lt;/w:data&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;PAGEREF _Ref223253097 \h &lt;span style="'mso-element:field-separator'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;41&lt;/span&gt;&lt;/span&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:data&gt;08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320033003200350033003000390037000000&lt;/w:data&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8466029736615084593-3679563442657192020?l=blog.rasea.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rasea/~4/OC_j_ssbiIo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.rasea.org/feeds/3679563442657192020/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://blog.rasea.org/2009/04/integracao.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/3679563442657192020?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/3679563442657192020?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rasea/~3/OC_j_ssbiIo/integracao.html" title="Integração" /><author><name>Cleverson Sacramento</name><uri>http://www.blogger.com/profile/08369037744149053053</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-oOtuJMJdD-o/TZMZaDbqZnI/AAAAAAAACcI/t8_yLZQ0G3I/s1600/9fe2b1117e89c284f5fbb2cc90d24efd.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_9IKqJZPz-8g/SfMGtsgnmhI/AAAAAAAACJU/yiozILhYPjg/s72-c/rasea+-+Integra%C3%A7%C3%A3o+com+o+servi%C3%A7o+de+gerenciamento.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.rasea.org/2009/04/integracao.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8ASXw-cSp7ImA9WxJTFks.&quot;"><id>tag:blogger.com,1999:blog-8466029736615084593.post-3519459815601787243</id><published>2009-03-14T17:31:00.002-03:00</published><updated>2009-04-25T10:07:28.259-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-25T10:07:28.259-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebServices" /><title>Independência de plataforma</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Uma das premissas do RASEA é garantir a operabilidade com aplicações parceiras em diferentes plataformas. Para garantir a independência de plataforma, optou-se por duas estratégias: i) basear-se no &lt;/span&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Platform-Independent Model&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; (PIM) &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(IBM, 2009); e ii) empregar &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WebServices&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; no canal de comunicação. De acordo com&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Li e Karp (2007, p. 9, tradução nossa), os padrões abertos, adotados pela especificação &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WebServices&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;, “removem muitas dependências, [...] tornando fácil o desenvolvimento de componentes independentes [de tecnologias]”.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;A Figura &lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;REF _Ref223584037 \h &lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span style="mso-no-proof:yes"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;13&lt;/span&gt;&lt;/span&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:data&gt;08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320033003500380034003000330037000000&lt;/w:data&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; destaca a utilização de padrões abertos na conexão entre o servidor “C” e os agentes. O item “A” representa um conjunto de aplicações parceiras, acopladas aos seus motores de especialização &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(IBM, 2009): os agentes RASEA. Cada aplicação parceira possui sua respectiva base de dados “B”, que armazena informações relativas ao negócio. Os dados de controle de acesso “D” e credenciais dos usuários “E” são mantidos pelo servidor RASEA, abstraindo todos os detalhes técnicos para as aplicações parceiras. As informações das bases “D” e “E” são transferidas para os agentes exclusivamente por meio de &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WebServices&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; via SOAP, assegurando a independência de plataforma.&lt;/span&gt;&lt;span style="background:yellow;mso-highlight:yellow"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="Corpo"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9IKqJZPz-8g/SbwUpQ10MyI/AAAAAAAACIM/zczUrvotTMw/s1600-h/pim_rasea.png" style="text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;img src="http://4.bp.blogspot.com/_9IKqJZPz-8g/SbwUpQ10MyI/AAAAAAAACIM/zczUrvotTMw/s400/pim_rasea.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5313144359518221090" style="text-decoration: underline;text-align: justify; display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 289px; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="Corpo" style="text-align: center;"&gt;&lt;a name="_Ref223584037"&gt;&lt;span style="mso-bookmark:_Toc224814875"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Figura &lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-bookmark:_Ref223584037"&gt;&lt;span style="mso-bookmark:_Toc224814875"&gt;&lt;span style="mso-no-proof:yes"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;13&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-bookmark: _Ref223584037"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="mso-bookmark:_Toc224814875"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-bookmark:_Toc224814875"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; – Comunicação utilizando padrões abertos&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Na solução RASEA, os serviços foram projetados com base na técnica sugerida por Jones &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(2006, p. 9), respondendo as seguintes perguntas: “o quê?”, “quem?”, “por quê [ou para quê]?” e “como [ou quando]?”. Os serviços foram agrupados em dois &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;EndPoints&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;: controle de acesso e gerenciamento. O &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;EndPoint&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; de controle de acesso contém serviços consumidos pelos agentes e provê informações para o efetivo controle de acesso. O consumo deste &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;EndPoint&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; ocorre no processo de autenticação e verificação de autorização. O &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;EndPoint&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; de gerenciamento reúne os serviços de administração do servidor RASEA, acessados por aplicações (parceiras ou autônomas) que necessitam modificar informações do servidor. Não existe uma periodicidade definida para o acesso a este &lt;/span&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;EndPoint&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Considerando que “todos os serviços [devem ser] autônomos” &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(PAPAZOGLOU; HEUVEL, 2007, p. 390) e estar em conformidade com a especificação funcional do RBAC &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(FERRAIOLO, 2001, p. 242–243), segue a especificação dos serviços do &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;EndPoint&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; de controle de acesso:&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;assignedRoles(application, user): role[] &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;– Retorna a listagem contendo todos os papéis que o usuário possui em uma determinada aplicação. Caso a aplicação ou o usuário informado não exista, retorna uma listagem nula.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;assignedUsers(application, role): user[] &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;– Retorna a listagem contendo todos os usuários que possuem o papel em uma determinada aplicação. Caso a aplicação ou o papel informado não exista, retorna uma listagem nula.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;roleOperationsOnResource(application, role, resource): operation[] &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;– Verifica e retorna todas as operações que um papel pode executar sobre um determinado recurso de uma aplicação. Caso a aplicação, o papel ou o recurso informado não exista, retorna uma listagem nula.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;rolePermissions(application, role): permission[] &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;– Provê a listagem das permissões autorizadas ao papel em uma determinada aplicação. Uma permissão é composta pelo par “operação × recurso” &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(Barker, 2008, p. 144). Caso a aplicação ou o papel informado não exista, retorna uma listagem nula.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;userOperationsOnResource(application, user, resource): operation[] &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;– Verifica e retorna todas as operações que um usuário pode executar sobre um determinado recurso de uma aplicação. A verificação é feita com base nos papéis associados ao usuário. Caso a aplicação, o papel ou o recurso informado não exista, retorna uma listagem nula.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;userPermissions(application, user): permission[] &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;– Provê a listagem das permissões autorizadas ao usuário em uma determinada aplicação. A verificação é feita com base nos papéis associados ao usuário. Uma permissão é composta pelo par “operação × recurso” &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(Barker, 2008, p. 144). Caso a aplicação ou o usuário informado não exista, retorna uma listagem nula.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;authenticate (username, password): boolean&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; – Executa o processo de autenticação do usuário tomando como base o seu nome e senha. Este serviço retorna um valor verdadeiro em caso de sucesso, ou falso caso ocorra falha no processo de autenticação. Este serviço não é exigido pelo padrão RBAC.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;userDetail (username): user &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;– Obtém as credenciais do usuário com base no seu nome. Se o usuário existir, retorna um objeto contendo as suas credenciais; caso contrário, retorna um objeto nulo. Este serviço não é exigido pelo padrão RBAC.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Ao contrário do &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;EndPoint&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; de controle de acesso, o &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;EndPoint&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; de gerenciamento provê operações de modificação de dados no servidor. Em concordância ao padrão RBAC e aos conceitos SOA, segue a especificação dos serviços de gerenciamento:&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;addUser(user) &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;– Adiciona um novo usuário na base centralizada de usuários. Caso o usuário já exista ou ocorra alguma falha na validação dos dados, uma notificação de erro será emitida.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;deleteUser(user) &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;– Remove um usuário existente da base centralizada de usuários. Caso ocorra alguma falha durante o processo, uma notificação de erro será emitida.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;assignUser(application, user, role) &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;– Atribui o usuário ao papel de uma aplicação. Caso ocorra falha durante o processo de associação, uma notificação de erro será emitida.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;deassignUser(application, user, role) &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;– Desassocia o usuário ao papel de uma aplicação. Caso ocorra falha durante o processo, uma notificação de erro será emitida.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;changePassword(username, oldPassword, newPassword) &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;– Efetua a modificação da senha do usuário. Caso ocorra alguma falha na validação dos dados, uma notificação de erro será emitida. Este serviço não é exigido pelo padrão RBAC.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;addRole(application, role) &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;– Adiciona um novo papel em uma aplicação. Caso o papel já exista ou ocorra alguma falha na validação dos dados, uma notificação de erro será emitida.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;deleteRole(application, role) &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;– Remove um papel existente de uma determinada aplicação. Caso ocorra alguma falha durante o processo, uma notificação de erro será emitida.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;grantPermission(application, permission, role, allowed) &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;– Concede permissão ao papel para executar uma operação sob um determinado recurso da aplicação. Uma autorização pode ser positiva ou negativa &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; "&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;(BERTINO, 2001, p. 42)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 13px; "&gt;. Caso ocorra falha na validação dos dados, uma notificação de erro será emitida.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;margin-left: 36pt; text-indent: -18pt; "&gt;&lt;span style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;·&lt;/span&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;revokePermission(application, permission, role) &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;– Remove a permissão de um papel a um recurso do sistema. Uma permissão é composta pelo par “operação × recurso” &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(Barker, 2008, p. 144). Caso ocorra falha na validação dos dados, uma notificação de erro será emitida.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Todos os serviços foram adaptados para suportar o controle de acesso aos múltiplos sistemas da organização, acrescentando-se o parâmetro “&lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;application&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;”. Este assunto já foi discutido nos capítulos “2.2 RBAC” (p. &lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt; REF _Ref222907063 \w \h &lt;span style="'mso-element:field-separator'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:data&gt;08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320032003900300037003000360033000000&lt;/w:data&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;REF _Ref222907063 \h &lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:data&gt;08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320032003900300037003000360033000000&lt;/w:data&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;PAGEREF _Ref222907063 \h &lt;span style="'mso-element:field-separator'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;16&lt;/span&gt;&lt;/span&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:data&gt;08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320032003900300037003000360033000000&lt;/w:data&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;) e “3.2 Modelo de dados” (p. &lt;/span&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt; REF _Ref223591866 \r \h &lt;span style="'mso-element:field-separator'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:data&gt;08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320033003500390031003800360036000000&lt;/w:data&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;REF _Ref223591859 \h &lt;span style="'mso-element:"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:data&gt;08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320033003500390031003800350039000000&lt;/w:data&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-begin'"&gt;&lt;/span&gt;&lt;span style="'mso-spacerun:yes'"&gt; &lt;/span&gt;PAGEREF _Ref223591869 \h &lt;span style="'mso-element:field-separator'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;26&lt;/span&gt;&lt;/span&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:data&gt;08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200320033003500390031003800360039000000&lt;/w:data&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if supportFields]&gt;&lt;span style="'mso-element:field-end'"&gt;&lt;/span&gt;&lt;![endif]--&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;).&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8466029736615084593-3519459815601787243?l=blog.rasea.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rasea/~4/4abpviWggms" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.rasea.org/feeds/3519459815601787243/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://blog.rasea.org/2009/03/independencia-de-plataforma.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/3519459815601787243?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/3519459815601787243?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rasea/~3/4abpviWggms/independencia-de-plataforma.html" title="Independência de plataforma" /><author><name>Cleverson Sacramento</name><uri>http://www.blogger.com/profile/08369037744149053053</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-oOtuJMJdD-o/TZMZaDbqZnI/AAAAAAAACcI/t8_yLZQ0G3I/s1600/9fe2b1117e89c284f5fbb2cc90d24efd.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_9IKqJZPz-8g/SbwUpQ10MyI/AAAAAAAACIM/zczUrvotTMw/s72-c/pim_rasea.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.rasea.org/2009/03/independencia-de-plataforma.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEAR3o6fip7ImA9WxJTFks.&quot;"><id>tag:blogger.com,1999:blog-8466029736615084593.post-7456061871343870570</id><published>2009-03-10T23:31:00.005-03:00</published><updated>2009-04-25T10:04:06.416-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-25T10:04:06.416-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="RBAC" /><title>RBAC</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;A sigla RBAC, do inglês &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Role-Based Access Control&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;, significa controle de acesso baseado em papéis. Um papel é um grupo de usuários de uma organização, que reúne pessoas do mesmo cargo, função, responsabilidade, atividade ou outro critério de categorização. Para o RBAC, segundo Sandhu, Ferraiolo e Kuhn (2000, s. 1, tradução nossa), este conceito possibilita “estabelecer permissões baseadas em papéis funcionais da organização e [...] associar usuários a um ou mais papéis”. A abordagem orientada a papéis é o diferencial do modelo RBAC em relação aos seus antecessores &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Mandatory Access Control&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; (MAC) e &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Discretionary Access Control&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; (DAC).&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Por mais de 30 anos, o conceito de papéis é empregado em sistemas informatizados, contudo apenas em meados da década de 1990 atingiu a maturidade (FERRAIOLO, 2001, s. 1.1). O modelo RBAC é considerado mais adequado que o MAC e DAC para utilização em ambientes empresariais (BEZNOSOV; DENG, 1999, p. 19). O MAC garante o controle de acesso de acordo com rótulos de segurança aplicados a cada usuário, enquanto o DAC baseia-se na concessão de permissões por usuário (SANDHU, 1996, p. 4). Os modelos MAC e DAC enfocam no usuário e não no seu papel funcional, dificultando o gerenciamento das políticas de segurança. De acordo com Beznosov e Deng (1999, s. 1, tradução nossa), “o maior propósito do RBAC é facilitar a administração [...] do controle de acesso”.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Por oferecer redução de complexidade, contenção de custos e diminuição de erros na concessão de permissões, a demanda pelo RBAC aumentou, incorporando produtos como: bancos de dados, sistemas operacionais e gerenciamento de sistemas. Devido à diversidade de padrões RBAC, o &lt;/span&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;National Institute of Standards and Technology&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; (NIST) consolidou as idéias em um único modelo (SANDHU; FERRAIOLO; KUHN, 2000, s. 1). A arquitetura do projeto RASEA tem como base o padrão RBAC do NIST, doravante referenciado apenas como RBAC.&lt;/span&gt;&lt;/p&gt;&lt;p class="Corpo" style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9IKqJZPz-8g/SbcjJrf3_rI/AAAAAAAACIE/hM3jglVyw-Y/s1600-h/rbac.png" style="text-decoration: none;"&gt;&lt;img src="http://3.bp.blogspot.com/_9IKqJZPz-8g/SbcjJrf3_rI/AAAAAAAACIE/hM3jglVyw-Y/s400/rbac.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5311752934709001906" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 244px; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoCaption"&gt;&lt;a name="_Toc224489870"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="Corpo" style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;a name="_Ref221235849"&gt;&lt;span style="mso-bookmark:_Toc224489870"&gt;Figura &lt;/span&gt;&lt;/a&gt;&lt;span style="mso-bookmark:_Ref221235849"&gt;&lt;span style="mso-bookmark:_Toc224489870"&gt;&lt;span style="mso-no-proof:yes"&gt;6&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-bookmark: _Ref221235849"&gt;&lt;span style="mso-bookmark:_Toc224489870"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-bookmark:_Toc224489870"&gt; – Relacionamento RBAC (WANG, 2006, s.1, adaptado)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Na &lt;/span&gt;&lt;span style="mso-field-code:&amp;quot; REF _Ref221235849 \\h  \\* MERGEFORMAT &amp;quot;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Figura &lt;/span&gt;&lt;span style="mso-no-proof:yes"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;6&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;, Wang (2006) apresenta o relacionamento entre os elementos do modelo RBAC (SANDHU; FERRAIOLO; KUHN, 2000, p. 232), onde o item “&lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;object&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;” simboliza um “[...] recurso do sistema sob proteção” (KERN, 2004, p. 91, tradução nossa). O elemento “&lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;operation&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;” representa as ações que podem ser executadas pelos usuários autenticados. Quando as ações são associadas aos recursos, originam-se as “&lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;permissions&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;”. Os usuários “&lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;users&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;” fazem parte das “&lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;roles&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;”, que por sua vez são compostas por usuários. Esta associação é representada pelo relacionamento “&lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;user-role assignment&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;”. A concessão de permissões às “&lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;roles&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;”, também conhecida como autorização, é definida pelo elemento “&lt;/span&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;permission-role assignment&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;”.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;O padrão RBAC é composto por componentes que abordam o modelo de referência e a especificação funcional. O modelo de referência estabelece rigorosamente os elementos RBAC e seus relacionamentos, enquanto a especificação funcional define as operações suportadas pelo RBAC. Dentre os quatro componentes RBAC, este trabalho se concentrará em dois: o &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Core&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; RBAC e o &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Hierarchical&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; RBAC. (FERRAIOLO, 2001, s. 2)&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;O componente &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Core&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; RBAC fundamenta-se no conceito básico do RBAC, que, conforme Ferraiolo (2001, s. 2.1, tradução nossa), é o seguinte: “usuários são associados aos papéis, permissões são associadas aos papéis, e usuários adquirem permissões por serem membros dos papéis”. O &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Core&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; ­­­­RBAC estabelece que a relação entre as entidades usuário e papel necessita ser do tipo muitos para muitos. Além disso, deve ser possível associar usuários aos papéis e vice-versa. Da mesma forma, a relação entre papéis e permissões deve ser do tipo vários para vários. (FERRAIOLO, 2001)&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;O &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Hierarchical&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; RBAC acrescenta ao &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Core&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; RBAC o conceito de hierarquia de grupos, onde um papel pode herdar as autorizações de outro papel (SANDHU; FERRAIOLO; KUHN, 2000, s. 2.2). Supondo a existência de um grupo denominado “Gerência”, o qual possui determinados privilégios que devem ser aplicados para todas as gerências da organização. Neste caso, basta que a “Gerência de Recursos Humanos” herde de “Gerência” para que todas as permissões sejam atribuídas à Gerência de Recursos Humanos.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Como o modelo RBAC não menciona o controle de múltiplos sistemas, Kern (2004, p. 93, tradução nossa) propôs o modelo &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Enterprise&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; RBAC (ERBAC) que permite a “[...] administração de usuários e seus direitos de acesso de todos os sistemas [...] de uma organização”. A arquitetura do projeto RASEA utiliza o padrão RBAC, acrescentando o elemento “sistema” almejando a o controle de acesso a várias aplicações comerciais simultaneamente.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8466029736615084593-7456061871343870570?l=blog.rasea.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rasea/~4/rACEgZjRX4s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.rasea.org/feeds/7456061871343870570/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://blog.rasea.org/2009/03/rbac.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/7456061871343870570?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/7456061871343870570?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rasea/~3/rACEgZjRX4s/rbac.html" title="RBAC" /><author><name>Cleverson Sacramento</name><uri>http://www.blogger.com/profile/08369037744149053053</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-oOtuJMJdD-o/TZMZaDbqZnI/AAAAAAAACcI/t8_yLZQ0G3I/s1600/9fe2b1117e89c284f5fbb2cc90d24efd.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_9IKqJZPz-8g/SbcjJrf3_rI/AAAAAAAACIE/hM3jglVyw-Y/s72-c/rbac.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.rasea.org/2009/03/rbac.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8CQH4yeip7ImA9WxJTFks.&quot;"><id>tag:blogger.com,1999:blog-8466029736615084593.post-7851300061509951247</id><published>2009-02-27T23:01:00.005-03:00</published><updated>2009-04-25T10:07:41.092-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-25T10:07:41.092-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="RBAC" /><title>Modelo de dados do RASEA</title><content type="html">&lt;div style="text-align: justify;"&gt;A representação dos dados mantidos pelo RASEA advém em dois diagramas: entidade-relacionamento e classes de domínio. O diagrama de entidade-relacionamento apresenta uma abordagem relacional dos dados persistidos, enquanto o diagrama de classes de domínio utiliza a Unified Modeling Language (UML). De acordo com Eden e Kazman (2003, s. 7.2), a “UML é amplamente utilizada como notação [...] de arquitetura”. Os diagramas estão de acordo com a definição do padrão RBAC (FERRAIOLO, 2001, p. 232) acrescendo-se a entidade “Application” para suportar o controle de acesso às aplicações comerciais, conforme a proposta de Kern (2004, p. 93).&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;A Figura 11 apresenta o Diagrama Físico de Entidade-relacionamento (DER), onde é possível observar os elementos do RBAC. A entidade “OBJECT” representa um recurso que está sob controle de acesso. As operações “OPERATION” são associadas aos recursos, dando origem à entidade “PERMISSION”. As permissões podem ser associadas aos grupos de usuário, ilustrada pela entidade “PERMISSION_ASSIGNMENT”. Os grupos de usuários, também conhecidos como papéis, são representados por “ROLE”. Um papel agrupa usuários “USER” a partir da associação “USER_ASSIGNMENT”.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9IKqJZPz-8g/SaibskqPEHI/AAAAAAAACHs/8JGTVUe2p_c/s1600-h/der.png"&gt;&lt;img src="http://4.bp.blogspot.com/_9IKqJZPz-8g/SaibskqPEHI/AAAAAAAACHs/8JGTVUe2p_c/s400/der.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5307663350913503346" style="text-align: center;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 225px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Figura 11 – Diagrama Físico de Entidade-relacionamento do RASEA&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;A relação “USER x USER_ASSIGNMENT” – na Figura 11 – é lógica, por conta disto não pôde ser visualizada no modelo físico. A decisão por manter a relação lógica está fundamentada na integração com bases de usuários legadas. Na prática, a tabela “USER” é opcional, podendo ser utilizada por organizações que não possuem uma base de usuários centralizada. A base para controle de acesso é constituída por todas as entidades, exceto pela tabela “USER”.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Uma aplicação “APPLICATION”, na Figura 11, é formada por recursos “OBJECT”. Cada aplicação possui suas próprias operações “OPERATION” e grupos de usuários “ROLE”. Assim é possível que, por exemplo, o papel “P” da aplicação “A1” seja composto por usuários distintos do papel “P” da aplicação “A2”. Ou seja, “P (A1) ? P (A2)”.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9IKqJZPz-8g/Saib9vb2fRI/AAAAAAAACH0/TSHDyGeBUdE/s1600-h/classes.png"&gt;&lt;img src="http://3.bp.blogspot.com/_9IKqJZPz-8g/Saib9vb2fRI/AAAAAAAACH0/TSHDyGeBUdE/s400/classes.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5307663645863738642" style="text-align: center;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 333px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Figura 12 – Diagrama Lógico de Classes de Domínio do RASEA&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;O Diagrama de Classes de Domínio, ilustrado na Figura 12, representa a visão lógica do padrão RBAC utilizando UML (RAY, 2004). Por se tratar de uma percepção orientada a objetos, algumas entidades relacionais sofreram adaptações na sua nomenclatura, aproximando-se mais da realidade. A associação “PERMISSION_ASSIGNMENT” é representada pela classe “Authorization”. A entidade “OBJECT” ganhou o nome “Resource”, por ser mais intuitivo. A associação “USER_ASSIGNMENT” é representada pela classe “Member”. No modelo lógico é possível observar a relação “Member x User”, inexistente no modelo físico.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&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/8466029736615084593-7851300061509951247?l=blog.rasea.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rasea/~4/Zp5f8Z2VbwQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.rasea.org/feeds/7851300061509951247/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://blog.rasea.org/2009/02/modelo-de-dados-do-rasea.html#comment-form" title="3 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/7851300061509951247?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/7851300061509951247?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rasea/~3/Zp5f8Z2VbwQ/modelo-de-dados-do-rasea.html" title="Modelo de dados do RASEA" /><author><name>Cleverson Sacramento</name><uri>http://www.blogger.com/profile/08369037744149053053</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-oOtuJMJdD-o/TZMZaDbqZnI/AAAAAAAACcI/t8_yLZQ0G3I/s1600/9fe2b1117e89c284f5fbb2cc90d24efd.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_9IKqJZPz-8g/SaibskqPEHI/AAAAAAAACHs/8JGTVUe2p_c/s72-c/der.png" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://blog.rasea.org/2009/02/modelo-de-dados-do-rasea.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04FQXs6fCp7ImA9WxJSF0U.&quot;"><id>tag:blogger.com,1999:blog-8466029736615084593.post-174275888884446824</id><published>2009-02-26T07:43:00.008-03:00</published><updated>2009-05-08T09:31:50.514-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-08T09:31:50.514-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="1. O que é Rasea?" /><title>Arquitetura RASEA</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;A Arquitetura de Software auxilia na identificação dos componentes e seus “relacionamentos de alto nível” (SHAW; GARLAN, 1994), facilitando o entendimento da solução como um todo. O projeto RASEA fundamenta sua arquitetura sob quatro perspectivas para assegurar o controle de acesso &lt;span class="Apple-style-span" style="font-style: italic;"&gt;cross&lt;/span&gt;-plataforma às aplicações comerciais, que, conforme a Figura 9, são: independência de plataforma, integração, servidor e agente.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9IKqJZPz-8g/SaZzA4YcyNI/AAAAAAAACHM/6phZEzOBp9g/s1600-h/perspectivas_rasea.png" style="text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="http://4.bp.blogspot.com/_9IKqJZPz-8g/SaZzA4YcyNI/AAAAAAAACHM/6phZEzOBp9g/s320/perspectivas_rasea.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5307055669874837714" style="text-decoration: underline;text-align: justify; display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 320px; height: 287px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Figura 9 – Perspectivas da arquitetura RASEA&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Cada perspectiva funciona como uma peça de quebra-cabeça, completando o modelo com o encaixe perfeito de todos os elementos. O componente “independência de plataforma” agrega padrões, paradigmas e tecnologias, possibilitando que aplicações comerciais em diferentes tecnologias beneficiem-se com a solução proposta. O elemento “integração” permite que o RASEA utilize dados legados da organização e que as aplicações consumam os serviços providos pelo RASEA. Enquanto a perspectiva “servidor” preocupa-se com serviços e disponibilidade, o “agente” aborda aspectos das plataformas das aplicações. Tais elementos serão tratados em detalhes mais à diante.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9IKqJZPz-8g/SaZzV8OSvTI/AAAAAAAACHc/UqqH44UBYPo/s1600-h/arquitetura_rasea.png"&gt;&lt;img src="http://2.bp.blogspot.com/_9IKqJZPz-8g/SaZzV8OSvTI/AAAAAAAACHc/UqqH44UBYPo/s400/arquitetura_rasea.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5307056031683231026" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 304px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Figura 10 – Visão geral da arquitetura RASEA&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;De acordo com Kruchten (1995), a arquitetura define os componentes, suas conexões e relacionamentos, conforme ilustrado na Figura 10. O elemento “A” representa o servidor, o qual disponibiliza telas “B” para que o administrador do acesso “C” gerencie as permissões e autorizações dos sistemas. O servidor também provê serviços “D” agrupados em dois &lt;span class="Apple-style-span" style="font-style: italic;"&gt;EndPoints&lt;/span&gt;: controle de acesso e gerenciamento. Os serviços para controle de acesso respaldam os agentes com informações suficientes para executar o seu trabalho. Os agentes são conectados às aplicações, a exemplo de “E” e “F”, denominadas aplicações parceiras. As aplicações que não utilizam o controle de acesso do RASEA são chamadas de aplicações autônomas, que podem acessar os serviços de gerenciamento, caso desejem.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Ainda na Figura 10, o servidor “A” mantém a base de dados “H”, que contém informações estruturadas nos moldes do padrão RBAC, possibilitando o controle de acesso às aplicações comerciais. A base de dados “I” detém credenciais dos usuários da organização, geralmente mantidas em um &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Lightweight Directory Access Protocol&lt;/span&gt;  (LDAP). O servidor “A” acessa a base de dados legada “I” para verificar a autenticidade dos usuários. Almejando a flexibilidade da solução, o servidor “A” pode ser parametrizado a partir de um arquivo de configuração “J”.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Objetivando a padronização de vocabulário, segue a relação dos os elementos envolvidos na arquitetura RASEA e suas respectivas descrições, conforme Eden e Kazman (2003, s. 1 apud SHAW; GARLAN, 1996):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Credenciais de usuário&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: dados dos usuários da organização, tais como: nome, senha, e-mail, etc.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Base de dados&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: repositório com dados persistidos estruturadamente com base no padrão RBAC, sendo dividido em dois domínios: dados para controle de acesso e credenciais de usuários.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Servidor&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: principal elemento da arquitetura, responsável por centralizar o controle de acesso, manter a conexão com as bases de dados e prover telas e serviços.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Telas&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: interface gráfica com o usuário, também conhecida como GUI (do inglês &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Graphical User Interface&lt;/span&gt;), que possibilita o gerenciamento das permissões e autorizações das aplicações.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Serviços de controle de acesso&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: agrupamento de serviços (ou &lt;span class="Apple-style-span" style="font-style: italic;"&gt;EndPoint&lt;/span&gt;) consumido pelos agentes. Disponibilizam informações necessárias para controle de acesso.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Serviços de gerenciamento&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: agrupamento de serviços (ou &lt;span class="Apple-style-span" style="font-style: italic;"&gt;EndPoint&lt;/span&gt;) acessado  por consumidores que desejem gerenciar o servidor RASEA.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Agente&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: elemento da arquitetura responsável por interceptar e analisar as requisições às aplicações, liberando ou revogando o acesso com base nas informações obtidas no serviço de controle de acesso.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Aplicação parceira&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: é toda aplicação conectada a um agente, que utiliza o servidor RASEA como dispositivo de controle de acesso centralizado. As aplicações parceiras podem, adicionalmente, consumir os serviços de gerenciamento.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Aplicação autônoma&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: é toda aplicação não está conectada a um agente e que, conseqüentemente, não utiliza o RASEA como dispositivo de controle de acesso centralizado. As aplicações autônomas podem consumir os serviços de gerenciamento, caso necessitem.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Container&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: representa um Servidor de Aplicação ou Servidor WEB que hospeda as aplicações.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Nos próximos tópicos, cada uma das perspectivas da arquitetura (independência de plataforma, integração, servidor e agente) será abordada em detalhes. Para tanto, serão considerados requisitos de performance, disponibilidade, concorrência, distribuição e tolerância à falhas, assuntos imprescindíveis para a definição da arquitetura do &lt;span class="Apple-style-span" style="font-style: italic;"&gt;software &lt;/span&gt;(KRUCHTEN, 1995). Porém, faz-se necessário conhecer a estrutura dos dados mantidos pelo RASEA, tratada a seguir.&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/8466029736615084593-174275888884446824?l=blog.rasea.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rasea/~4/dCL8mPKhAsg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.rasea.org/feeds/174275888884446824/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://blog.rasea.org/2009/02/arquitetura-de-software-auxilia-na.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/174275888884446824?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/174275888884446824?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rasea/~3/dCL8mPKhAsg/arquitetura-de-software-auxilia-na.html" title="Arquitetura RASEA" /><author><name>Cleverson Sacramento</name><uri>http://www.blogger.com/profile/08369037744149053053</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-oOtuJMJdD-o/TZMZaDbqZnI/AAAAAAAACcI/t8_yLZQ0G3I/s1600/9fe2b1117e89c284f5fbb2cc90d24efd.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_9IKqJZPz-8g/SaZzA4YcyNI/AAAAAAAACHM/6phZEzOBp9g/s72-c/perspectivas_rasea.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.rasea.org/2009/02/arquitetura-de-software-auxilia-na.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4FQnYyfyp7ImA9WxJTFks.&quot;"><id>tag:blogger.com,1999:blog-8466029736615084593.post-4952988891672834143</id><published>2009-01-29T22:10:00.005-03:00</published><updated>2009-04-25T10:08:33.897-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-25T10:08:33.897-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="RBAC" /><title>Autenticação, autorização e controle de acesso</title><content type="html">&lt;div style="text-align: justify;"&gt;É comum que pessoas não habituadas com o assunto confundam os termos “autenticação” e “autorização”. Resumidamente, a autenticação enfoca na identificação, enquanto a autorização define o que é possível fazer. Para controlar o acesso a um recurso é preciso que haja a identificação do indivíduo (autenticação) e a possibilidade de acessar o que se deseja (autorização), permitindo ou revogando a solicitação. Basicamente, estas são as diferenças entre autenticação, autorização e controle de acesso.&lt;br /&gt;&lt;/div&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;De acordo com Silva (2004, p. 66), “autenticação é a capacidade de garantir que alguém, ou alguma coisa, é de fato quem diz ser, dentro de um contexto definido”. Existem diversas técnicas e tecnologias que auxiliam neste processo, tais como: biometria, OpenID (&lt;/span&gt;&lt;span style="mso-no-proof:yes"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;OPENID, 2007&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;), Certificado Digital, &lt;/span&gt;&lt;i style="mso-bidi-font-style:normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Single Sign-On&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;. Não faz parte do escopo deste projeto tratar detalhadamente sobre autenticação, e sim focar na autorização e no controle de acesso.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Garantir a confidencialidade da informação é uma necessidade latente nas aplicações comercias, por isso somente usuários autorizados devem ter acesso ao sistema. Assegurar a autorização significa que ninguém poderá executar ações sobre um recurso caso não tenha permissão (JAAS, 2001). Segundo Barker &lt;/span&gt;&lt;span style="text-transform:uppercase"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(2008&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;, p. 144, tradução nossa&lt;/span&gt;&lt;span style="text-transform:uppercase"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; “[...] permissão é um par (‘A’, ‘R’), onde ‘A’ é uma ação e ‘R’ é um recurso, e uma autorização é uma permissão associada a um determinado usuário”. Alguns autores, tais como Sandhu, Ferraiolo e Kuhn (2000), utilizam o termo “operações” para referenciar às “ações”.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;A figura ilustra a funcionalidade de um sistema operacional para concessão de permissões de grupos de usuários (papéis) de uma organização. O item “A” representa um recurso: uma pasta ou um arquivo. Na solução apresentada neste trabalho, um recurso simboliza uma tela ou um relatório de uma aplicação comercial, por exemplo. O elemento “B” representa os grupos que tem permissão para acessar o recurso “A”. As operações ou ações que podem ser executadas em “A” são ilustradas pelo item “C”. A associação entre a operação “C” e o recurso “A”, atribuída ao grupo de usuários “B”, representa uma autorização “D”.&lt;/span&gt;&lt;/p&gt;&lt;p class="Corpo"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="Corpo" align="center" style="text-align: justify;margin-bottom: 0.0001pt; line-height: 115%; page-break-after: avoid; "&gt;&lt;span class="Apple-style-span" style="line-height: normal; "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9IKqJZPz-8g/SYJUoPQ3oRI/AAAAAAAACGs/2_75M-gvlCs/s1600-h/permiss%C3%B5es.png"&gt;&lt;img src="http://4.bp.blogspot.com/_9IKqJZPz-8g/SYJUoPQ3oRI/AAAAAAAACGs/2_75M-gvlCs/s320/permiss%C3%B5es.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5296889162009911570" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 268px; height: 320px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="Corpo" align="center" style="text-align: center;margin-bottom: 0.0001pt; line-height: 115%; page-break-after: avoid; "&gt;&lt;span class="Apple-style-span" style="line-height: normal; "&gt;&lt;a name="_Toc220857877"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Controle de permissões do &lt;/span&gt;&lt;/a&gt;&lt;span style="mso-bookmark:_Toc220857877"&gt;&lt;span style="color:windowtext;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Microsoft Windows&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="Corpo" align="center" style="text-align: center;margin-bottom: 0.0001pt; line-height: 115%; page-break-after: avoid; "&gt;&lt;span class="Apple-style-span" style="line-height: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="Corpo" align="center" style="text-align: justify;margin-bottom: 0.0001pt; line-height: 115%; page-break-after: avoid; "&gt;&lt;span class="Apple-style-span" style="line-height: normal; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;A definição de controle de acesso segundo a norma internacional ISO/IEC 10181-3 (1996, p. 1, tradução nossa), que trata sobre &lt;/span&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;framework&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; para controle de acesso, é a seguinte: “o processo de determinar quais utilizações dos recursos [...] são permitidas, [...] prevenindo o acesso não autorizado, é chamado de controle de acesso”. Com base neste conceito, este trabalho assume que o controle de acesso de uma aplicação comercial abrange desde o estabelecimento das permissões até o processo de verificação das requisições. Conforme Barker (2008, tradução nossa), “a maioria dos modelos de controle de acesso assume que uma requisição é feita por um usuário pré-autenticado para realizar uma ação [...] em um recurso do sistema”.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;A regra para garantir o controle proposto neste trabalho segue a “premissa ‘tudo é proibido, a menos que expressamente permitido’ em lugar da regra mais fraca ‘tudo é permitido, a menos que expressamente proibido’” (ISO/IEC 17799, 2005, p. 66). Desta forma, o usuário somente terá acesso ao recurso caso o administrador de segurança autorize-o explicitamente, assegurando a confidencialidade necessária para as informações mantidas por uma aplicação comercial.&lt;/span&gt;&lt;/p&gt;  &lt;p class="Corpo" style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Autorizações podem ser concedidas ou negadas aos usuários. Esta característica é também conhecida como autorizações positivas ou negativas (BERTINO, 2001, p. 42). Suponha um usuário participante do grupo “gerentes” (positivamente autorizado ao recurso “X”) que, simultaneamente, faz parte do grupo “&lt;/span&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;hackers&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;” (negativamente autorizado ao recurso “X”). Caso este usuário tente acessar “X”, a proibição prevalecerá sobre a concessão e a requisição será recusada.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8466029736615084593-4952988891672834143?l=blog.rasea.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rasea/~4/AFiiXo1WwL0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.rasea.org/feeds/4952988891672834143/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://blog.rasea.org/2009/01/autenticacao-autorizacao-e-controle-de.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/4952988891672834143?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/4952988891672834143?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rasea/~3/AFiiXo1WwL0/autenticacao-autorizacao-e-controle-de.html" title="Autenticação, autorização e controle de acesso" /><author><name>Cleverson Sacramento</name><uri>http://www.blogger.com/profile/08369037744149053053</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-oOtuJMJdD-o/TZMZaDbqZnI/AAAAAAAACcI/t8_yLZQ0G3I/s1600/9fe2b1117e89c284f5fbb2cc90d24efd.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_9IKqJZPz-8g/SYJUoPQ3oRI/AAAAAAAACGs/2_75M-gvlCs/s72-c/permiss%C3%B5es.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.rasea.org/2009/01/autenticacao-autorizacao-e-controle-de.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8ASXw-cSp7ImA9WxJTFks.&quot;"><id>tag:blogger.com,1999:blog-8466029736615084593.post-8169747115517012418</id><published>2009-01-16T15:34:00.025-03:00</published><updated>2009-04-25T10:07:28.259-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-25T10:07:28.259-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebServices" /><title>JAX-WS no Rasea</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://jax-ws.dev.java.net/images/javaxml-duke.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 68px; height: 86px;" src="https://jax-ws.dev.java.net/images/javaxml-duke.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="https://jax-ws.dev.java.net/"&gt;JAX-WS&lt;/a&gt; é uma &lt;a href="http://en.wikipedia.org/wiki/API"&gt;API&lt;/a&gt; que veio para substituir o antigo &lt;a href="https://jax-rpc.dev.java.net/"&gt;JAX-RPC&lt;/a&gt; (veja comparativo &lt;a href="http://www.ibm.com/developerworks/webservices/library/ws-tip-jaxwsrpc.html"&gt;aqui&lt;/a&gt;). E para ficar dentro dos padrões e das especificações JEE, o &lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Rasea Server&lt;/span&gt;&lt;span style="font-size:100%;"&gt; usa como API de webservices o JAX-WS em sessions stateless EJB3.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Para o lado cliente, esta API fornece &lt;a href="https://www.ibm.com/developerworks/websphere/library/techarticles/0707_thaker/0707_thaker.html"&gt;alguns modelos&lt;/a&gt; de consumo de serviços, sendo o consumo via proxy escolhido por nós do &lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Rasea&lt;/span&gt;&lt;span style="font-size:100%;"&gt;. Para consumir um serviço via classes proxy, é necessário executar o comando wsimport (via ant task ou linha de comando) para que sejam geradas as classes do serviço e os tipos usados.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;pre&gt;&lt;span style="font-size:85%;"&gt;wsimport http://localhost:8001/rasea-ws/AccessControl?wsdl&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-size:100%;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Excelente! Porém, o código da classe Service gerada instancía uma java.net.URL - num bloco static - para este caminho, além de estabelecer uma conexão a cada comunicação para o parse do &lt;a href="http://www.w3.org/TR/wsdl"&gt;WSDL&lt;/a&gt; em questão. &lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Logo&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, podemos enumerar 2 problemas:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Web service endpoint. Enpoint statico nas classes client;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Wsdl location. Consumo de recursos - de rede - para fazer o parse do wsdl que se encontra no server.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Certamente o local do WSDL, bem como enpoint do serviço em uma companhia não coincidirão com os locais de WSDL e Web service enpoint de desenvolvimento do &lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Rasea&lt;/span&gt;&lt;span style="font-size:100%;"&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;div style="text-align: justify;"&gt;Como apresentado no &lt;a href="http://raseablog.blogspot.com/2008/12/rasea-e-soa-parte-i.html"&gt;post anterior&lt;/a&gt;, a companhia pode, e até recomenda-se, fazer uso de um barramento de serviços, logo é necessário que o usuário possa informar o endpoint correto. Por isso, o &lt;span style="font-weight: bold;"&gt;Rasea Client&lt;/span&gt; usa um arquivo de propriedades para configurar o servidor onde o serviço ficará de fato deployado.&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Para o primeiro problema, decidimos embarcar o WSDL no próprio jar das classes client, o que evita o consumo de rede para alcancá-lo. Então foi necessário criar um xml de catalog JAX-WS que descreve um nome para o wsdl e um local alcançável a partir da pasta META-INF do jar.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="syntax"&gt;&lt;pre&gt;&lt;span style="color: rgb(153, 51, 0);" class="nt"&gt;&amp;lt;catalog&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="na"&gt;xmlns=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="s"&gt;"urn:oasis:names:tc:entity:xmlns:xml:catalog"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);" class="na"&gt;prefer=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="s"&gt;"system"&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);" class="nt"&gt;&amp;lt;system&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="na"&gt;systemId=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="s"&gt;"http://rasea.org/wsdl/AccessControl"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);" class="na"&gt;uri=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="s"&gt;"../AccessControl.wsdl"&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="nt"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);" class="nt"&gt;&amp;lt;/catalog&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;!-- veja https://glassfish.dev.java.net/public/CDDL+GPL.html para informaçoes de licença --&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;&amp;lt;!-- https://glassfish.dev.java.net/public/CDDL+GPL.html --&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Note que o WSDL vai ficar na pasta raiz do jar. Mas para as classes client "entenderem" esta decisão nossa, precisamos de uns parâmetros a mais no wsimport.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;wsimport -catalog ws/jax-ws-catalog.xml -wsdllocation&lt;br /&gt;http://rasea.org/wsdl/AccessControl AccessControl.wsdl&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;É necessário informar o arquivo de catalog (que deve ser colocado na pasta META-INF do jar) e o local do wsdl (que será anotado na classe de serviço). Por último fornecemos o wsdl acessado localmente.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Como resultado temos:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="syntax"&gt;&lt;pre&gt;&lt;span style="color: rgb(153, 51, 0);" class="nd"&gt;@WebServiceClient&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;(&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;name&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="s"&gt;"AccessControlService"&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;,&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;targetNamespace&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;=&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);" class="s"&gt;"http://rasea.org/ws/AccessControl"&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;,&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;wsdlLocation&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="s"&gt;"http://rasea.org/wsdl/AccessControl"&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);" class="kd"&gt;public&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="kd"&gt;class&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="nc"&gt;AccessControlService&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);" class="kd"&gt;extends&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;Service&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Nos falta um meio de informar à esta classe, em tempo de execução, a localização correta do endpoint do serviço. &lt;/span&gt;&lt;span style="font-size:100%;"&gt;A a interface &lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;javax.xml.ws.BindingProvider&lt;/span&gt;&lt;/span&gt;  fornece um contexto de requisição através do método .getRequestContext() retornando um Map&lt;string,&gt;, eque é onde devemos informar o endpoint do seviço.&lt;/string,&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;AccessControlService&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;service&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="k"&gt;new&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;AccessControlService&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;AccessControl&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;port&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;service&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;.&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="na"&gt;getAccessControlPort&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;BindingProvider&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;bindingProvider&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;(&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;BindingProvider&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;)&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;port&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;Map&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;&lt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;String&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;,&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;Object&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;requestContext&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;bindingProvider&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;.&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="na"&gt;getRequestContext&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;requestContext&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;.&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="na"&gt;put&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;(&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="n"&gt;BindingProvider&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;.&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="na"&gt;ENDPOINT_ADDRESS_PROPERTY&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="o"&gt;,&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="nl"&gt;&lt;br /&gt;http:&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);" class="c"&gt;//myserver:7001/rasea-ws/AccessControl);&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;div style="text-align: justify;"&gt;Este trecho substitui o endpoint original provindo do WSDL do serviço permitindo que o client se conecte ao endpoint correto.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Pronto! Agora você pode deployar seu jar com os clients em qualquer lugar sem a necessida de acessar a rede constatemente para obter o WSDL do serviço e sem usar estaticamente um endpoint para acessar o serviço. Você pode ver a aplicação completa destas duas dicas no código fonte do &lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Rasea Client.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Outra informação é que ao utilizar @WebServiceRef num session EJB, alguns servidores (ex.: BEA Weblogic Server) não conseguem fazer o deploy da aplicação quando os WSDLs dos serviços não sejam alcançáveis durante o deploy. Ou seja, se seus provedores de serviço estiverem indisponíveis, sua aplicação pode não ser publicada até que estes serviços voltem a funcionar.&lt;br /&gt;&lt;br /&gt;Daí a importância de adotar uma política adequada na localização do WSDL e definição do endpoint não estaticamente.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Até a próxima!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8466029736615084593-8169747115517012418?l=blog.rasea.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rasea/~4/60vp8ZN_SYU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.rasea.org/feeds/8169747115517012418/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://blog.rasea.org/2009/01/jax-ws-no-rasea.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/8169747115517012418?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/8169747115517012418?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rasea/~3/60vp8ZN_SYU/jax-ws-no-rasea.html" title="JAX-WS no Rasea" /><author><name>Paulo Suzart</name><uri>http://www.blogger.com/profile/12657148380669929104</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.rasea.org/2009/01/jax-ws-no-rasea.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8ASXw9eCp7ImA9WxJTFks.&quot;"><id>tag:blogger.com,1999:blog-8466029736615084593.post-7821241040665036576</id><published>2009-01-05T08:53:00.016-03:00</published><updated>2009-04-25T10:07:28.260-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-25T10:07:28.260-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WebServices" /><title>Rasea e SOA - Parte I</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;SOA &lt;/span&gt;considera serviços como cidadãos de primeira classe. A motivação para o emprego de serviços como &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;building blocks &lt;span class="Apple-style-span" style="font-style: normal;"&gt;de&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;software &lt;span class="Apple-style-span" style="font-style: normal;"&gt;reutilizáveis é a possibilidade de construir novas aplicações mais rapidamente e, consequentemente, atender o negócio com mais eficácia.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; overflow-x: hidden; overflow-y: hidden; background-color: rgb(255, 255, 255);"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px; overflow: hidden; background-color: rgb(255, 255, 255);"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;A arquitetura SOA recomendada por grandes &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;players&lt;span class="Apple-style-span" style="font-style: normal;"&gt; do mercado SOA/EAI categoriza serviços em camadas de acordo com suas responsabilidades. A figura a seguir apresenta uma arquitetura SOA básica&lt;/span&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6Nn7qmXtp7o/SVthQVelFWI/AAAAAAAAAFo/fDX0zephjvc/s1600-h/rasea.gif"&gt;&lt;img style="text-align: justify;margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; display: block; cursor: pointer; width: 306px; height: 320px; " src="http://4.bp.blogspot.com/_6Nn7qmXtp7o/SVthQVelFWI/AAAAAAAAAFo/fDX0zephjvc/s320/rasea.gif" alt="" id="BLOGGER_PHOTO_ID_5285925520920614242" border="0" /&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; overflow-x: hidden; overflow-y: hidden; background-color: rgb(255, 255, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Num cenário SOA, é necessário a disponibilização de uma camada  de infraestrutura que permita a habilitação de funcionalidades corporativas existentes como serviço, assim como as novas funcionalidades. Esta camada é conhecida como facilitadora, ou de suporte, e nela residem serviços comumente independentes de contexto de negócio.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; overflow-x: hidden; overflow-y: hidden; background-color: rgb(255, 255, 255);"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; overflow-x: hidden; overflow-y: hidden; background-color: rgb(255, 255, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Rasea &lt;/span&gt;se enquadra nesta categoria focando na autorização de acesso a qualquer recurso corporativo, incluindo serviços corporativos de qualquer camada. Sobre &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/SOA_Security"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;SOA Security&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;, o &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Rasea &lt;/span&gt;atende os seguintes requisitos básicos desta disciplina:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px; overflow: hidden; background-color: rgb(255, 255, 255);"&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Integração com a infraestrutura de usuários existente na corporação;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Gerenciamento centralizado de papéis, usuários e aplicações;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Prover autenticação e autorização.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; overflow-x: hidden; overflow-y: hidden; background-color: rgb(255, 255, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Rasea &lt;/span&gt;oferece estas funcionalidades através de um conjunto de serviços que permite que &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Rasea Agentes&lt;/span&gt; e clientes independentes de tecnologia façam asserções de segurança no diretório de usuários e recursos da corporação. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; overflow-x: hidden; overflow-y: hidden; background-color: rgb(255, 255, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Webservices é a tecnologia comumente eleita na implantação SOA devido a sua natureza padronizada e bem conhecida pelo mercado, o que motivou a construção do framework utilizando uma abordagem orientada a serviços.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; overflow-x: hidden; overflow-y: hidden; background-color: rgb(255, 255, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; overflow-x: hidden; overflow-y: hidden; background-color: rgb(255, 255, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;img src="http://4.bp.blogspot.com/_6Nn7qmXtp7o/SVtznG1eXKI/AAAAAAAAAF4/-uWgSr_ZlxA/s320/secury.gif" alt="" id="BLOGGER_PHOTO_ID_5285945703336402082" style="cursor: pointer; width: 320px; height: 220px;" border="0" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; overflow-x: hidden; overflow-y: hidden; background-color: rgb(255, 255, 255); "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); text-decoration: underline;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; overflow-x: hidden; overflow-y: hidden; background-color: rgb(255, 255, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;É possível construir, pelo menos, os seguintes  cenários de serviços de segurança providos pelo &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Rasea&lt;/span&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;dentro da arquitetura SOA:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; overflow-x: hidden; overflow-y: hidden; background-color: rgb(255, 255, 255);  "&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Os serviços &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Rasea &lt;/span&gt;podem ser expostos diretamente no barramento de serviços  da corporação (&lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Enterprise_service_bus"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;ESB - &lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Enterprise_service_bus"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Enterprise Service Bus&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;) &lt;span class="Apple-style-span" style="font-style: normal;"&gt;para o consumo de &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Rasea Agents&lt;/span&gt;  e outros consumidores&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;O barramento pode fazer uso internamente das funcionalidades &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Rasea &lt;/span&gt;no controle das requisições aos serviços nele publicados.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Provedores de serviço podem utilizar os serviços &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Rasea &lt;/span&gt;publicado no ESB, numa abordagem de segurança &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;end-to-end.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: justify;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; overflow-x: hidden; overflow-y: hidden; background-color: rgb(255, 255, 255); "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Nas partes seguintes deste post, serão apresentados com mais detalhe dois dos principais serviços fornecidos pelo &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Rasea&lt;/span&gt;, &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Rasea Access Control Service&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; e &lt;/span&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Rasea Management Service&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;. Em posts futuros apresentaremos a empregabilidade do framework em conjunto com um barramento de serviços.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&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/8466029736615084593-7821241040665036576?l=blog.rasea.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rasea/~4/fWs28H8YwZ4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.rasea.org/feeds/7821241040665036576/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://blog.rasea.org/2008/12/rasea-e-soa-parte-i.html#comment-form" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/7821241040665036576?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/7821241040665036576?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rasea/~3/fWs28H8YwZ4/rasea-e-soa-parte-i.html" title="Rasea e SOA - Parte I" /><author><name>Paulo Suzart</name><uri>http://www.blogger.com/profile/12657148380669929104</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_6Nn7qmXtp7o/SVthQVelFWI/AAAAAAAAAFo/fDX0zephjvc/s72-c/rasea.gif" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.rasea.org/2008/12/rasea-e-soa-parte-i.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ABSHc5fyp7ImA9WxJSF0U.&quot;"><id>tag:blogger.com,1999:blog-8466029736615084593.post-2046805285412272405</id><published>2008-12-26T00:12:00.028-03:00</published><updated>2009-05-08T09:29:19.927-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-08T09:29:19.927-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="1. O que é Rasea?" /><title>Modelo Independente de Plataforma</title><content type="html">&lt;div style="text-align: justify;"&gt;É fácil observar que diversas aplicações comerciais carregam consigo um modelo para controle de acesso&lt;span class="Apple-style-span"  style="font-size:small;"&gt;. As aplicações disponibilizam telas e acessam dados persistidos. É realmente necessário replicar tais telas para cada novo sistema&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;?&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; É preciso manter uma base de dados com usuários, grupos e permissões para cada aplicação&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;?&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; Qual o custo de replicar, manter e atualizar esse modelo descentralizado&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;?&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; Quanto tempo os codificadores perdem para construir "novas" (antigas) telas&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;?&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; Quanto o setor de Infra-estrutura de TI de uma organização perde diariamente para atender chamados de usuários que esqueceram as senhas das dezenas de sistemas que eles utilizam&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9IKqJZPz-8g/SVbmnY7wjkI/AAAAAAAACFU/0m09PIoS5gc/s1600-h/cenario_1.png"&gt;&lt;img src="http://2.bp.blogspot.com/_9IKqJZPz-8g/SVbmnY7wjkI/AAAAAAAACFU/0m09PIoS5gc/s320/cenario_1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5284664777148239426" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 188px; " /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Figura 1&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 17px; "&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;– Modelo&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; Dependente de Plataforma &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(não recomendado)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;A &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;figura 1&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; ilustra como o controle de acesso de uma aplicação comercial é geralmente projetado. É preciso deixar claro que as fatias não representam uma proporção de esforço na construção ou manutenção do módulo de controle de acesso. O que está em &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0);"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;vermelho &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(o filtro, as funcionalidades para controle de acesso e a base de dados B) representa os elementos que geralmente compõem o módulo de segurança. É muito comum encontrar a base de dados B &lt;/span&gt;&lt;span class="Apple-style-span" style=" font-style: italic; line-height: 17px; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;–&lt;/span&gt;&lt;span class="Apple-style-span" style=" font-style: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; que possui dados de usuário, grupos e permissões &lt;/span&gt;&lt;span class="Apple-style-span" style=" font-style: italic; line-height: 17px; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;–&lt;/span&gt;&lt;span class="Apple-style-span" style=" font-style: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; fortemente acoplada ao modelo de entidades da aplicação (base de dados A). As funcionalidades para controle de acesso possuem telas que manipulam a base de dados B e disponibilizam as infomações para o filtro. O filtro é responsável por interceptar as requisições dos usuários e verificar os seus privilégios, concedendo ou revogando o acesso a um recurso. O que está em &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255);"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;azul &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;representa a aplicação que utiliza um modelo qualquer para controle de acesso.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: center; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); text-decoration: underline; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9IKqJZPz-8g/SVRLxNHV35I/AAAAAAAACEA/WEeXvQrbkoc/s1600-h/cenario_2.png"&gt;&lt;img src="http://4.bp.blogspot.com/_9IKqJZPz-8g/SVRLxNHV35I/AAAAAAAACEA/WEeXvQrbkoc/s320/cenario_2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5283931571518562194" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 280px; height: 320px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify; "&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;div style="text-align: center; "&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Figura 2&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 17px; "&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;– Modelo&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; Independente de Plataforma &lt;/span&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 153, 0);"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(recomendado)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0); font-style: italic;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 0, 0); font-style: italic;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;O primeiro passo é retirar da aplicação o que não precisa ser replicado: as funcionalidades para controle de acesso e a base de credenciais de usuários/grupos e permissões. Eis que surgem os elementos da Arquitetura Rasea, ilustrados na &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;figura 2&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;servidor&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;, &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;agente&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; e &lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;aplicação parceira&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;. O servidor acessa uma base única e disponibiliza telas para a manipulação dos dados. Além disso o servidor publica serviços web para que os agentes consultem as informações necessárias para executar o seu trabalho. A aplicação parceira utiliza o agente específico de sua tecnologia para filtrar as requisições dos usuários. Não importa a tecnologia, estrutura ou plataforma da aplicação parceira. Ela poderá se beneficiar da solução desde que suporte o consumo de &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;WebServices&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); text-decoration: underline;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9IKqJZPz-8g/SVRLxNHV35I/AAAAAAAACEA/WEeXvQrbkoc/s1600-h/cenario_2.png"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;O termo "Modelo Independente de Plataforma" é t&lt;/span&gt;&lt;span class="Apple-style-span"  style="  white-space: pre; font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="  white-space: normal; font-family:Georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;ambém conhecido pela sigla PIM (&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Platform-independent Model&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;). &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;O Rasea é PIM&lt;/span&gt;!&lt;/span&gt;&lt;/span&gt;&lt;/span&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/8466029736615084593-2046805285412272405?l=blog.rasea.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rasea/~4/xxWh0-OSygw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.rasea.org/feeds/2046805285412272405/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://blog.rasea.org/2008/12/modelo-independente-de-plataforma.html#comment-form" title="1 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/2046805285412272405?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/2046805285412272405?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rasea/~3/xxWh0-OSygw/modelo-independente-de-plataforma.html" title="Modelo Independente de Plataforma" /><author><name>Cleverson Sacramento</name><uri>http://www.blogger.com/profile/08369037744149053053</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-oOtuJMJdD-o/TZMZaDbqZnI/AAAAAAAACcI/t8_yLZQ0G3I/s1600/9fe2b1117e89c284f5fbb2cc90d24efd.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_9IKqJZPz-8g/SVbmnY7wjkI/AAAAAAAACFU/0m09PIoS5gc/s72-c/cenario_1.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.rasea.org/2008/12/modelo-independente-de-plataforma.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AHRHg_fCp7ImA9WxJSF0U.&quot;"><id>tag:blogger.com,1999:blog-8466029736615084593.post-3343288221947316963</id><published>2008-12-19T06:07:00.001-03:00</published><updated>2009-05-08T09:28:55.644-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-08T09:28:55.644-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="1. O que é Rasea?" /><title>O que é Rasea?</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9IKqJZPz-8g/SUuOPfzHPsI/AAAAAAAACC4/Ex4IdgTHAu8/s1600-h/ico2.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 188px;" src="http://2.bp.blogspot.com/_9IKqJZPz-8g/SUuOPfzHPsI/AAAAAAAACC4/Ex4IdgTHAu8/s200/ico2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5281471384907103938" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Rasea é algo que nós, profissionais da área de Desenvolvimento de Software,  sempre precisamos e nunca tivemos. É um acrônimo do inglês &lt;span class="Apple-style-span" style="font-style: italic;"&gt;c&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;R&lt;/span&gt;oss-pl&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;A&lt;/span&gt;tform acces&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;S &lt;/span&gt;control for &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;E&lt;/span&gt;nterprise &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;A&lt;/span&gt;pplications&lt;/span&gt;, que pode ser traduzido como &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;controle de acesso cross-plataforma para aplicações comerciais&lt;/span&gt;. O objetivo do Rasea é tornar-se uma referência de mercado para controle de acesso às aplicações.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;O Rasea é cross-plataforma porque pode ser utilizado por aplicações desenvolvidas em qualquer linguagem de programação que suporte o consumo de WebServices. Assim, durante o desenvolvimento de software, será possível focar nas regras de negócio, deixando o controle de acesso para o Rasea. A solução é simples, existe um servidor e vários clientes que consomem os seus serviços. Os clientes são chamados de &lt;span class="Apple-style-span" style="font-style: italic;"&gt;agent&lt;/span&gt;, e devem ser "encaixados" nas aplicações que querem se beneficiar das vantagens do Rasea, chamadas de aplicações parceiras.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Apesar do &lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Rasea Server&lt;/span&gt;&lt;/span&gt; ser escrito em Java, utilizando tecnologias de ponta (tais como JSF, JPA, WS), as aplicações parceiras não têm conhecimento disso, o que elas conhecem de fato são os serviços. Para que uma aplicação parceira utilize o Rasea, é preciso conectar o &lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Rasea Agent&lt;/span&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt; referente à tecnologia da aplicação&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; (Java, .NET, PHP, ASP). Todas as ferramentas (&lt;span class="Apple-style-span" style="font-style: italic;"&gt;server &lt;/span&gt;e &lt;span class="Apple-style-span" style="font-style: italic;"&gt;agents&lt;/span&gt;) estão em fase de desenvolvimento e, em breve, você poderá se beneficiar de tudo isso, já que o Rasea é um projeto Open-Source &lt;a href="https://sourceforge.net/projects/rasea/"&gt;publicado no Source Forge&lt;/a&gt;, regido pela &lt;a href="http://www.gnu.org/licenses/lgpl-3.0.txt"&gt;licensa LGPL&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A equipe que compõe o projeto é formada atualmente por &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Cleverson Sacramento&lt;/span&gt;, &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Robson Ataíde, &lt;span class="Apple-style-span" style="font-weight: normal; "&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Paulo Suzart&lt;/span&gt; e &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Abraão Isvi&lt;/span&gt;. Todos os integrantes são ou já foram funcionários da &lt;a href="http://www.avansys.com.br/"&gt;Avansys Tecnologia&lt;/a&gt;, onde a idéia se concretizou em um projeto chamado inicialmente de AvanSEG e atualmente conhecido como S4A (&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Security for Applications&lt;/span&gt;). Apesar de tudo, o Rasea é completamente diferente (arquitetura, projeto e implementação), agregando mais poder e flexibilidade à solução. Como estamos dedicando apenas as nossas madrugadas para o desenvolvimento do Rasea, peço que aguardem só mais um pouco que, em breve, o Rasea será disponibilizado!&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/8466029736615084593-3343288221947316963?l=blog.rasea.org' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/rasea/~4/RAU86dJxHlQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.rasea.org/feeds/3343288221947316963/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://blog.rasea.org/2008/12/o-que-rasea.html#comment-form" title="2 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/3343288221947316963?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8466029736615084593/posts/default/3343288221947316963?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rasea/~3/RAU86dJxHlQ/o-que-rasea.html" title="O que é Rasea?" /><author><name>Cleverson Sacramento</name><uri>http://www.blogger.com/profile/08369037744149053053</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/-oOtuJMJdD-o/TZMZaDbqZnI/AAAAAAAACcI/t8_yLZQ0G3I/s1600/9fe2b1117e89c284f5fbb2cc90d24efd.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_9IKqJZPz-8g/SUuOPfzHPsI/AAAAAAAACC4/Ex4IdgTHAu8/s72-c/ico2.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.rasea.org/2008/12/o-que-rasea.html</feedburner:origLink></entry></feed>

