<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Waldemir Cambiucci - Solutions Architect - Microsoft Brasil : WinDNA</title><link>http://blogs.msdn.com/wcamb/archive/tags/WinDNA/default.aspx</link><description>Tags: WinDNA</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Evoluindo frameworks domésticos : por onde começar?</title><link>http://blogs.msdn.com/wcamb/archive/2008/11/06/evoluindo-frameworks-dom-sticos-por-onde-come-ar.aspx</link><pubDate>Fri, 07 Nov 2008 00:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9050619</guid><dc:creator>wcamb</dc:creator><slash:comments>8</slash:comments><comments>http://blogs.msdn.com/wcamb/comments/9050619.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wcamb/commentrss.aspx?PostID=9050619</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wcamb/rsscomments.aspx?PostID=9050619</wfw:comment><description>&lt;P&gt;Olá pessoal, tudo certo?&lt;/P&gt;
&lt;P&gt;Esta semana estive com alguns arquitetos, falando sobre como evoluir os frameworks domésticos que estão em produção nas empresas, mas que ainda utilizam recursos do .NET 2.0 ou algum namespace do .NET 3.0 apenas. Essa discussão é grande e veja que ainda existem empresas usando VB5, VB6, ASP, .NET 1.0, 1.1 ou .NET 2.0 em suas aplicações. Mas vamos focar os frameworks neste post.&lt;/P&gt;
&lt;P&gt;Realmente, desde o lançamento do .NET 2.0, tivemos uma série de novos pacotes e namespaces, que ajudam no desenvolvimento de aplicações cada vez mais sofisticadas. Parte dessa evolução foi demandada pelo mercado, como REST e AJAX. Outras, foram evoluções importantes para o modelo de programação na plataforma Microsoft, como o próprio &lt;STRONG&gt;WCF - Windows Communidation Foundation&lt;/STRONG&gt;. Vale lembrar também que a própria plataforma amadureceu, diante dos vários cenários presentes no mercado.&lt;/P&gt;
&lt;P&gt;Como já vimos em posts passados (&lt;A href="http://blogs.msdn.com/wcamb/archive/2007/12/17/desafios-na-constru-o-de-frameworks-parte-1.aspx" target=_blank mce_href="http://blogs.msdn.com/wcamb/archive/2007/12/17/desafios-na-constru-o-de-frameworks-parte-1.aspx"&gt;esse&lt;/A&gt;, por exemplo), existem diversos desafios na construção e manutenção de bibliotecas, blocos de aplicações e frameworks de desenvolvimento, sejam horizontais ou verticais. Um dos grandes desafios é a manutenção de sua atualização diante de novos recursos do mercado, como por exemplo, novos frameworks associados ao .NET na plataforma Microsoft.&lt;/P&gt;
&lt;P&gt;Para contextualizar nossa discussão, veja o diagrama abaixo, onde destaco o .NET Framework e sua evolução:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Evoluindoframeworksporondecomear_11EB7/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Evoluindoframeworksporondecomear_11EB7/image_2.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=521 alt=image src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Evoluindoframeworksporondecomear_11EB7/image_thumb.png" width=480 border=0 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Evoluindoframeworksporondecomear_11EB7/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Note que novos recursos foram sendo adicionados na pilha .NET ao longo de suas versões. Ainda, alguns novos pacotes estão faltando no desenho acima, como o &lt;STRONG&gt;SYNC Framework&lt;/STRONG&gt;, o &lt;STRONG&gt;Velocity&lt;/STRONG&gt;, o &lt;STRONG&gt;Geneva Framework&lt;/STRONG&gt;, etc. Para todas as versões acima, estamos trabalhando sobre a mesma &lt;STRONG&gt;CLR - Common Language Runtime,&lt;/STRONG&gt; o que significa que não existe quebra de compatibilidade para uma aplicação durante sua evolução de upgrade. O próprio Visual Studio 2008 já compila para .NET 2.0, 3.0 e 3.5 como framework alvo.&lt;/P&gt;
&lt;P&gt;Semana passada vimos uma nova enxurrada de frameworks, pacotes de desenvolvimento e serviços que estarão disponíveis em breve para nossas aplicações. Poderemos integrar o ambiente cliente, o ambiente enterprise e o ambiente na nuvem, utilizando recursos distintos e complementares, compondo soluções de acordo com nossas necessidades. Só para para lembrar, veja o que está chegando com a plataforma de serviços Azure... :)&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Evoluindoframeworksporondecomear_11EB7/image5.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Evoluindoframeworksporondecomear_11EB7/image5.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=246 alt=image src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Evoluindoframeworksporondecomear_11EB7/image5_thumb.png" width=523 border=0 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/Evoluindoframeworksporondecomear_11EB7/image5_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Bastante coisa, não é mesmo? Mas voltemos para nossa pergunta básica: &lt;STRONG&gt;Como evoluir nosso velho framework de desenvolvimento doméstico de todo dia?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Algumas recomendações que faço nesse momento são:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Se você ainda trabalha com Web Services na plataforma .NET 2.0 (extensões &lt;EM&gt;.asmx&lt;/EM&gt;), ou ainda possui soluções via .NET Remoting, comece com algumas provas de conceito sobre o &lt;STRONG&gt;WCF - Windows Communication Foundation&lt;/STRONG&gt;. Podemos resumir que WCF é hoje a infra-estrutura recomendada para a comunicação entre sistema, processos e aplicações na plataforma Microsoft. Uma evolução natural de seu framework em NET 2.0 para .NET 3.x é substituir .NET Remoting e Web Services por interfaces em WCF. Avalie os &lt;STRONG&gt;bindings&lt;/STRONG&gt; diferentes para cada &lt;STRONG&gt;serviço &lt;/STRONG&gt;e selecione o que melhor responde às necessidades de seu negócio. Veja as considerações sobre balanceamento de carga com o WCF também. O WCF é parte integrante do .NET desde a versão 3.0 e com certeza é uma primeira abordagem de evolução, pelo ganho de desempenho e modelo de programação unificado que oferece. Não deixe de conferir também, os vários cenários possíveis para serviços com WCF, &lt;A href="http://blogs.msdn.com/wcamb/archive/tags/Cen_26002300_225_3B00_rios+de+servi_26002300_231_3B00_os+WCF/default.aspx" target=_blank mce_href="http://blogs.msdn.com/wcamb/archive/tags/Cen_26002300_225_3B00_rios+de+servi_26002300_231_3B00_os+WCF/default.aspx"&gt;aqui&lt;/A&gt;; &lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Se você ainda trabalha com páginas ASP, avalie o &lt;STRONG&gt;ASP.NET&lt;/STRONG&gt; com &lt;STRONG&gt;AJAX&lt;/STRONG&gt;. Veja alguns exemplos disponíveis no link : &lt;A title=http://www.asp.net/community/projects/ href="http://www.asp.net/community/projects/" mce_href="http://www.asp.net/community/projects/"&gt;http://www.asp.net/community/projects/&lt;/A&gt;. Existem boas idéias que podem ser aproveitadas em seus projetos. Ainda, avalie exemplos com AJAX para ganhos de produtividade e performance, otimizando suas requisições junto ao servidor ou mesmo melhorando a usabilidade na navegação do usuário sobre suas páginas. Finalmente, navegar dados via &lt;STRONG&gt;ASP.NET Dynamic Data&lt;/STRONG&gt; ou exporta um banco de dados através da interface &lt;STRONG&gt;ADO.NET Data Services&lt;/STRONG&gt;, com consultas via &lt;STRONG&gt;REST&lt;/STRONG&gt; é uma outra boa recomendação para prova de conceito. Não deixe de testar essas soluções; &lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Se você possui um framework que prevê interfaces WinForms com .NET, ou formulários VB6 com Win32, por exemplo, avalie os recursos de usabilidade e navegação obtidos com o &lt;STRONG&gt;WPF - Windows Presentation Foundation&lt;/STRONG&gt;. Além de um conjunto muito mais rico de controles gráficos e interação com o usuário, o desenvolvimento sobre WPF permite maior integração entre os times de design e desenvolvimento, devido o uso de documentos em &lt;STRONG&gt;XAML - Extensible Application Markup Language&lt;/STRONG&gt;, que permitem a renderização gráfica baseada em parsers, integrados ao .NET Framework, na ferramenta de design ou no próprio Visual Studio; &lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Se você ainda utiliza o ADO.NET 2.0 para navegar seus dados e manipular suas estruturas de retorno a partir de consultas ao banco de dados, através de um camada &lt;STRONG&gt;DAL - Data Access Layer&lt;/STRONG&gt; - tradicional, avalie consultas utilizando &lt;STRONG&gt;LINQ - Language Integrated Query, &lt;/STRONG&gt;do .NET 3.5. Verifique o tipo de legibilidade de código que você pode obter com o LINQ, assim como consultas sobre coleções com o &lt;STRONG&gt;XLINQ&lt;/STRONG&gt; sobre XML, ou o uso integrado do &lt;STRONG&gt;ADO.NET Entity Framework (EF)&lt;/STRONG&gt;, permitindo a construção de soluções multi-banco. Sua prova de conceito com LINQ e Entity Framework também poderá avaliar performance, tempo de resposta e aderência ao SLA esperado pela aplicação, comparando com uma DAL simples. Vale citar que manutenção e independência de banco de dados são pontos de destaque nessa infra-estrutura LINQ + EF (veja sua necessidade de &lt;STRONG&gt;ORM - Object Relational Mapping&lt;/STRONG&gt; e camadas de persistência). LINQ é parte do .NET desde a versão 3.5 e o &lt;STRONG&gt;ADO.NET Entity Framework&lt;/STRONG&gt;, desde a versão 3.5 SP1. Veja mais &lt;A href="http://blogs.msdn.com/wcamb/archive/tags/Entity+Framework/default.aspx" target=_blank mce_href="http://blogs.msdn.com/wcamb/archive/tags/Entity+Framework/default.aspx"&gt;aqui&lt;/A&gt;; &lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Se você ainda possui regras de negócio no COM+ (1.0 e 1.5) ou algumas regras em Web Services publicados no IIS, avalie a exportação de suas regras como serviços WCF, hosteados no &lt;STRONG&gt;WAS - Windows Process Activation Services&lt;/STRONG&gt;. Muita calma nesse momento, devido questões de transação, interoperabilidade com componentes legados, etc. Mas entre os benefícios do host WAS para serviços WCF temos um melhor desempenho para o tratamento de requisições e instâncias, assim como maior flexibilidade na seleção de protocolos de transporte e adoção de um modelo orientado a mensagens, mais flexível quanto a integração com outras plataformas. Sobre o &lt;STRONG&gt;Windows Server 2008&lt;/STRONG&gt;, WAS torna-se é uma recomendação de fato. Veja mais &lt;A href="http://blogs.msdn.com/wcamb/archive/tags/WinDNA/default.aspx" target=_blank mce_href="http://blogs.msdn.com/wcamb/archive/tags/WinDNA/default.aspx"&gt;aqui&lt;/A&gt;; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Com certeza, esse é um post apenas para dar algumas idéias, iniciar uma discussão. Cada empresa encontrará sua melhor abordagem, de acordo com uma série de fatores próprios, como:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;maturidade do framework em produção na empresa;&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;maturidade da equipe de desenvolvimento usuária do framework;&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;maturidade da equipe de arquitetura responsável pelo framework;&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;existência de templates e bons exemplos de código utilizando o framework;&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;maturidade do processo de desenvolvimento de software e existência de disciplinas de ALM - Application Lifecycle Management;&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;seleção de arquiteturas de referência e boas práticas de desenvolvimento, que sejam suportadas pelo framework, etc.&lt;/FONT&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;O mais importante é definir uma estratégia de evolução, procurando atender as principais necessidades do usuário, seja &lt;STRONG&gt;desempenho&lt;/STRONG&gt;, &lt;STRONG&gt;usabilidade&lt;/STRONG&gt;, &lt;STRONG&gt;velocidade&lt;/STRONG&gt; para adição de novas funcionalidades, &lt;STRONG&gt;riqueza&lt;/STRONG&gt; de interface, &lt;STRONG&gt;funcionalidades&lt;/STRONG&gt; de integração com a web ou simplesmente, a &lt;STRONG&gt;competição&lt;/STRONG&gt; com o mercado. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;A discussão é boa! O desafio também é bom!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Por enquanto é só! Até o próximo post :)&lt;/P&gt;
&lt;P&gt;Waldemir.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9050619" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wcamb/archive/tags/Arquitetura+de+Solu_26002300_231_3B0026002300_245_3B00_es/default.aspx">Arquitetura de Solu&amp;#231;&amp;#245;es</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Frameworks/default.aspx">Frameworks</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/WinDNA/default.aspx">WinDNA</category></item><item><title>Do Windows DNA para o mundo orientado a serviços : a visão Software + Serviço e a Cloud Computing.</title><link>http://blogs.msdn.com/wcamb/archive/2008/04/23/do-windows-dna-para-o-mundo-orientado-a-servi-os-a-vis-o-software-servi-o-e-a-cloud-computing.aspx</link><pubDate>Wed, 23 Apr 2008 06:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8417941</guid><dc:creator>wcamb</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/wcamb/comments/8417941.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wcamb/commentrss.aspx?PostID=8417941</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wcamb/rsscomments.aspx?PostID=8417941</wfw:comment><description>&lt;P&gt;Olá pessoal, tudo certo? &lt;/P&gt;
&lt;P&gt;Continuando nosso assunto de evolução de uma plataforma &lt;STRONG&gt;WinDNA&lt;/STRONG&gt; para uma arquitetura baseada em serviços, vamos falar um pouco sobre &lt;STRONG&gt;Software + Services&lt;/STRONG&gt; (S+S). &lt;/P&gt;
&lt;P&gt;E indo direto ao ponto, podemos definir essa visão de &lt;EM&gt;software + serviço&lt;/EM&gt; como uma estratégia que engloba software em diferentes localidades, com diferentes qualidades de entrega (ou compromissos e garantias) e com software implementado nos 4 principais universos de programação de hoje em dia: &lt;STRONG&gt;desktop&lt;/STRONG&gt;, &lt;STRONG&gt;web&lt;/STRONG&gt;, &lt;STRONG&gt;mobile&lt;/STRONG&gt; e &lt;STRONG&gt;enterprise&lt;/STRONG&gt;. E tudo isso acontecendo ao mesmo tempo, ou seja, um cenário de composição, de colaboração, de convivência. &lt;/P&gt;
&lt;P&gt;E como sempre diz o mestre &lt;A href="http://blogs.technet.com/gebara/" target=_blank mce_href="http://blogs.technet.com/gebara/"&gt;Gebara&lt;/A&gt;, nada como um bom exemplo para clarear alguns conceitos: vejamos um cenário de Software+Service para o serviço de mensagens (emails).&lt;/P&gt;
&lt;P&gt;Para contas críticas, destinadas para as mensagens importantes da corporação, com criptografia, manutenção histórica de threads, etc., podemos implementar uma infra-estrutura local, com servidores dedicados e cuidar das melhores práticas de operação e higiene de mensagens para nossa empresa. Veja que a responsabilidade sobre essa infra-estrutura será nossa&amp;nbsp;e o custo de operação é total também nosso.&lt;/P&gt;
&lt;P&gt;Para caixas postais&amp;nbsp;não tão críticas, mas que são usadas no dia-a-dia da empresa, podemos pensar numa solução de menor complexidade, onde parte das caixas postais estão locais e algumas funcionalidades adjacentes são contratadas da web, como gateways, repositórios de arquivos, filtros, etc. &lt;/P&gt;
&lt;P&gt;Podemos pensar também em caixas postais mais ordinárias, que não exigem grandes cuidados com backups ou histórico de mensagens. Essas contas podem ser implementadas em provedores de email na web, de forma&amp;nbsp;gratuíta ou de baixo custo.&lt;/P&gt;
&lt;P&gt;Finalmente, podemos pensar em cenários onde para caixas postais estratégicas, a empresa prefira contratar um serviço inteiramente online, que forneça garantias para a qualidade do serviço prestado, como backup, cotas em disco, filtros, criptografia, etc.&lt;/P&gt;
&lt;P&gt;Deu para perceber que nessa nova arquitetura de TI, nossa infra-estrutura de mensageria e caixas postais apresenta diferentes níveis de qualidade para os serviços oferecidos. De acordo com a criticidade da caixa postal ou demanda do serviço, podemos contratar um nível de qualidade mais adequado, pagando mais ou&amp;nbsp;menos pela funcionalidade desejada.&lt;/P&gt;
&lt;P&gt;A mesma discussão valeria para espaço de armazenamento em disco, por exemplo, onde podemos usar storages locais para dados importantes, com rígidas políticas de backup e contingência ou considerar o uso de espaços contratados na web, como o &lt;A href="http://skydrive.live.com/" target=_blank mce_href="http://skydrive.live.com/"&gt;SkyDrive Live&lt;/A&gt; da &lt;STRONG&gt;Microsoft&lt;/STRONG&gt; (com 5 Gb gratuítos) ou ainda o &lt;STRONG&gt;Amazon&lt;/STRONG&gt; Simple Storage Service (&lt;A href="http://www.amazon.com/S3-AWS-home-page-Money/b?ie=UTF8&amp;amp;node=16427261" target=_blank mce_href="http://www.amazon.com/S3-AWS-home-page-Money/b?ie=UTF8&amp;amp;node=16427261"&gt;Amazon S3&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;Essa é a visão &lt;STRONG&gt;Software + Service&lt;/STRONG&gt;: compor diferentes qualidades de serviço (&lt;EM&gt;SLA - Service Level Agreement&lt;/EM&gt;) de acordo com a necessidade. &lt;/P&gt;
&lt;P&gt;Evoluindo o diagrama do último post, bastaria indicar nossos serviços consumidos da nuvem para exemplificar esse cenário:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DoWindowsDNAparaomundoorientadoaservios_15073/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DoWindowsDNAparaomundoorientadoaservios_15073/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=490 alt=image src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DoWindowsDNAparaomundoorientadoaservios_15073/image_thumb.png" width=527 border=0 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DoWindowsDNAparaomundoorientadoaservios_15073/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Claro, o mundo não é tão simples assim e diversas questões devem surgir nessa discussão, como segurança, autenticação e controle de acesso, tarifação, disponibilidade, tempo de resposta e latência, controle de versionamento, protocolos de transporte, contratos de serviços, mensagens, entre outras. Todas essas questões fazem parte do universo &lt;STRONG&gt;S+S&lt;/STRONG&gt; e serão inevitáveis durante a definição da arquitetura final.&lt;/P&gt;
&lt;P&gt;O importante é considerar essas alternativas, de acordo com a relevância do negócio e possíveis economias decorrentes da aplicação desse tipo de arquitetura.&lt;/P&gt;
&lt;P&gt;Já falamos sobre &lt;STRONG&gt;Software + Service&lt;/STRONG&gt; em discussões passadas, como no post sobre SaaS, veja:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;SaaS - Software as a Service - Uma visão sobre o software como serviço.&lt;BR&gt;&lt;/STRONG&gt;Ref.: &lt;A href="http://blogs.msdn.com/wcamb/archive/2008/03/09/saas-software-as-a-service-uma-vis-o-sobre-o-software-como-servi-o.aspx"&gt;http://blogs.msdn.com/wcamb/archive/2008/03/09/saas-software-as-a-service-uma-vis-o-sobre-o-software-como-servi-o.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Ainda como referência sobre o assunto, não deixe de reler a edição &lt;STRONG&gt;&lt;A href="http://msdn2.microsoft.com/en-us/arcjournal/bb906058.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/arcjournal/bb906058.aspx"&gt;número 13&lt;/A&gt;&lt;/STRONG&gt; do "&lt;STRONG&gt;The Architecture Journal&lt;/STRONG&gt;", onde temos o artigo:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Implications of Software + Services Consumption for Enterprise IT &lt;BR&gt;&lt;/STRONG&gt;Ref.: &lt;A title=http://msdn2.microsoft.com/en-us/arcjournal/bb906061.aspx href="http://msdn2.microsoft.com/en-us/arcjournal/bb906061.aspx" mce_href="http://msdn2.microsoft.com/en-us/arcjournal/bb906061.aspx"&gt;http://msdn2.microsoft.com/en-us/arcjournal/bb906061.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Como mensagem final arrisco: não vamos mais decidir sobre uma abordagem ou outra, se software local ou na rede, se comprado (&lt;EM&gt;on premise&lt;/EM&gt;) ou contratado (&lt;EM&gt;in the cloud&lt;/EM&gt;). A tendência é pela composição, com soluções híbridas e o desafio é reconhecer quais serão os custos e economias envolvidos em nossa nova TI, enquanto suportamos a chamada &lt;STRONG&gt;Cloud Computing. &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Com certeza, existem diversos benefícios envolvidos na visão Software+Services e caberá a nós, arquitetos, avaliar o impacto para nossas empresas.&lt;/P&gt;
&lt;P&gt;Por enquanto é só! Até o próximo post :)&lt;/P&gt;
&lt;P&gt;Waldemir.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8417941" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wcamb/archive/tags/Arquitetura+de+Solu_26002300_231_3B0026002300_245_3B00_es/default.aspx">Arquitetura de Solu&amp;#231;&amp;#245;es</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/SaaS/default.aspx">SaaS</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/WinDNA/default.aspx">WinDNA</category></item><item><title>Do Windows DNA para o mundo orientado a serviços : uma proposta para estudo.</title><link>http://blogs.msdn.com/wcamb/archive/2008/04/18/do-windows-dna-para-o-mundo-orientado-a-servi-os-alguns-exemplos-de-evolu-o.aspx</link><pubDate>Fri, 18 Apr 2008 14:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8407543</guid><dc:creator>wcamb</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/wcamb/comments/8407543.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wcamb/commentrss.aspx?PostID=8407543</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wcamb/rsscomments.aspx?PostID=8407543</wfw:comment><description>&lt;P&gt;Olá pessoal, tudo certo?&lt;/P&gt;
&lt;P&gt;No último post, começamos nosso papo sobre evolução de uma arquitetura &lt;STRONG&gt;WinDNA&lt;/STRONG&gt; para uma plataforma mais atual. Vimos que antes de tudo, precisamos ter uma visão clara sobre os cenários envolvidos, assim como conhecer as novas tecnologias oferecidas pelo mercado. Nesse aspecto, novos frameworks estão disponíveis na plataforma Microsoft e cabe a nós, arquitetos, conhecê-los e exercitá-los, afim de melhor decidir sobre cada alternativa de evolução para nossas aplicações.&lt;/P&gt;
&lt;P&gt;Considerando a disposição de componentes na plataforma &lt;STRONG&gt;WinDNA&lt;/STRONG&gt;, podemos estudar uma alternativa de solução, conforme a figura a seguir:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DoWindowsDNAparaomundoorientadoaservios_10BB6/image_8.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DoWindowsDNAparaomundoorientadoaservios_10BB6/image_8.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=495 alt=image src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DoWindowsDNAparaomundoorientadoaservios_10BB6/image_thumb_3.png" width=491 border=0 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DoWindowsDNAparaomundoorientadoaservios_10BB6/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Camada de apresentação :&lt;/STRONG&gt; ASP.NET com Microsoft AJAX versão 1.0 e Silverlight 2.0.&lt;/P&gt;
&lt;P&gt;Para uma aplicação tipicamente Web, a construção de uma interface rica (&lt;EM&gt;RIA - Rich Internet Application&lt;/EM&gt;), que traga as funcionalidades e recursos da Web 2.0 é recomendável. E sobre recursos pensamos não somente em &lt;EM&gt;wikis, fóruns, webparts, controles gráficos, streaming&lt;/EM&gt;, etc, mas também em novas abordagens de apresentação e &lt;EM&gt;UX - User Experience&lt;/EM&gt;. Pensando ainda na composição de serviços e workflows, conceitos de &lt;STRONG&gt;aplicações compostas&lt;/STRONG&gt; ou &lt;EM&gt;mashups&lt;/EM&gt; também é uma capacidade que deve ser avaliada para nossa arquitetura.&lt;/P&gt;
&lt;P&gt;Nesse ponto, a infra-estrutura &lt;STRONG&gt;ASP.NET com AJAX e Silverlight 2.0&lt;/STRONG&gt; oferece essa gama de recursos para a construção de interfaces poderosas em .NET. Claro, devemos avaliar qual a aderência de nossa aplicação para todas essas inovações. Mas os novos recursos de administração do IIS 7.0 devem ser avaliados, independente do grau de ousadia de nossa nova interface. O IIS 7.0 seria nossa infra-estrutura de suporte às páginas e requisições HTTP/HTTPS, etc. sobre o Windows Server 2008.&lt;/P&gt;
&lt;P&gt;Para saber mais sobre o IIS 7.0 e esses recursos, não deixe de ver a série especial sobre o produto no blog do &lt;A href="http://blogs.technet.com/dbordini/" target=_blank mce_href="http://blogs.technet.com/dbordini/"&gt;Danilo Bordini&lt;/A&gt;, onde temos:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;IIS 7.0 (Internet Information Services): Parte 7: Delegação&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;IIS 7.0 (Internet Information Services): Parte 6: Configuração&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;IIS 7.0 (Internet Information Services): Parte 5: Extensibilidade&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;IIS 7.0 (Internet Information Services): Parte 4: Segurança&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;IIS 7.0 (Internet Information Services): Parte 3: Pilares&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;IIS 7.0 (Internet Information Services): Parte 2: Evolução da Plataforma&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Série Especial - IIS 7.0 (Internet Information Services)&lt;/FONT&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Ref.: &lt;A title=http://blogs.technet.com/dbordini/archive/tags/Internet+Information+Services+_2800_IIS_2900_/default.aspx href="http://blogs.technet.com/dbordini/archive/tags/Internet+Information+Services+_2800_IIS_2900_/default.aspx" mce_href="http://blogs.technet.com/dbordini/archive/tags/Internet+Information+Services+_2800_IIS_2900_/default.aspx"&gt;http://blogs.technet.com/dbordini/archive/tags/Internet+Information+Services+_2800_IIS_2900_/default.aspx&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;e para saber mais sobre o Silverlight 2.0 e o AJAX 1.0, veja os links:&lt;/P&gt;
&lt;P&gt;Ref.: &lt;A title=http://silverlight.net/ href="http://silverlight.net/" mce_href="http://silverlight.net/"&gt;http://silverlight.net/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Ref.: &lt;A title=http://www.asp.net/ajax/ href="http://www.asp.net/ajax/" mce_href="http://www.asp.net/ajax/"&gt;http://www.asp.net/ajax/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;E sempre é bom acompanhar como está a evolução do modelo &lt;STRONG&gt;ASP.NET MVC Framework&lt;/STRONG&gt;, ainda em Preview 2 (&lt;EM&gt;Model-View-Controller&lt;/EM&gt;). Veja aqui:&lt;/P&gt;
&lt;P&gt;Ref.: &lt;A title=http://www.microsoft.com/downloads/details.aspx?FamilyID=38CC4CF1-773A-47E1-8125-BA3369BF54A3&amp;amp;displaylang=en href="http://www.microsoft.com/downloads/details.aspx?FamilyID=38CC4CF1-773A-47E1-8125-BA3369BF54A3&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=38CC4CF1-773A-47E1-8125-BA3369BF54A3&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=38CC4CF1-773A-47E1-8125-BA3369BF54A3&amp;amp;displaylang=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Camada de colaboração de processos :&lt;/STRONG&gt; Windows Workflow Foundation (.NET 3.5)&lt;/P&gt;
&lt;P&gt;Em alguns cenários, podemos pensar na implementação de processos de negócio através de fluxos de controle ou mesmo máquinas de estado. Quando falamos em fluxos de controle (ou workflows), pensamos num cenário onde a execução de atividades é sequencial, a partir de eventos que são tratados numa ordem esperada. Temos uma atividade inicial e uma atividade final bem definida. Quando falamos em máquinas de estado, a execução das atividades é orientada por eventos, que podem ocorrer numa ordem aleatória. Assim, nosso desenvolvimento é baseado no estado corrente, com transições por eventos, sendo mais flexível para mudanças externas.&lt;/P&gt;
&lt;P&gt;A implementação de um processo de negócio através de um workflow ou máquina de estados pode ser feita através do &lt;STRONG&gt;WF - Windows Workflow Foundation&lt;/STRONG&gt;. Como vimos em posts anteriores, podemos ainda integrar esses processos com serviços do WCF - Windows Communication Foundation, ou ainda outros processos de negócio. &lt;/P&gt;
&lt;P&gt;Finalmente, lembre-se que um processo pode ter interação humana para aprovações ou submissões, o que pode caracterizar execuções de longa duração. A interação de serviços ou outras camadas com esse tipo de processo precisa ser bem pensada e sinalizada para toda a arquitetura. &lt;/P&gt;
&lt;P&gt;Algumas perguntas: Quais são os processo de longa duração e de curta duração presentes em nossa arquitetura? Podemos implementar parte da lógica e regras de negócio em processos com WF? &lt;/P&gt;
&lt;P&gt;Para saber mais sobre WF e processos, veja:&lt;/P&gt;
&lt;P&gt;Ref.: &lt;A title=http://msdn2.microsoft.com/en-us/netframework/aa663322.aspx href="http://msdn2.microsoft.com/en-us/netframework/aa663322.aspx" mce_href="http://msdn2.microsoft.com/en-us/netframework/aa663322.aspx"&gt;http://msdn2.microsoft.com/en-us/netframework/aa663322.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Camada de serviços e negócicos :&lt;/STRONG&gt; Windows Communication Foundation e serviços hosteados no WAS - Windows Process Activation Service&lt;/P&gt;
&lt;P&gt;Surge então a discussão sobre a camada de serviços. O que é mesmo um serviço? :)&lt;/P&gt;
&lt;P&gt;Podemos pensar na implementação de classes de negócio, com suas &lt;EM&gt;business entities&lt;/EM&gt; e &lt;EM&gt;business process&lt;/EM&gt;, utilizando a infra-estrutura do WCF para sua exportação e publicação de interfaces. Quando surge o WCF em nossa arquitetura, precisamos discutir alguns pontos importantes:&lt;/P&gt;
&lt;P&gt;Qual será o template de serviço que usaremos? Nesse template, precisamos considerar o tratamento de exceção, a propagação de mensagens de erro, exportação de contadores de performance, e também aspectos de comportamento do serviço, contrato de dados, suporte transacional, mensagens tratadas, etc.&lt;/P&gt;
&lt;P&gt;Qual será o transporte tratado pelo serviço? A definição do &lt;STRONG&gt;binding&lt;/STRONG&gt; (para nosso &lt;STRONG&gt;endpoint&lt;/STRONG&gt;) é tão importante quanto a definição do próprio serviço. Através do binding correto, garantimos a melhor performance para a interação entre camadas, processos e serviços.&lt;/P&gt;
&lt;P&gt;Qual será o host para execução de serviços? Aqui, surge o WAS, já comentado em posts anteriores. Veja: &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Windows Process Activation Service (WAS) - Um mecanismo de ativação de processos e serviços.&lt;/STRONG&gt; &lt;BR&gt;Ref.: &lt;A href="http://blogs.msdn.com/wcamb/archive/2008/04/10/windows-process-activation-service-was-um-mecanismo-de-ativa-o-de-processos-e-servi-os.aspx" mce_href="http://blogs.msdn.com/wcamb/archive/2008/04/10/windows-process-activation-service-was-um-mecanismo-de-ativa-o-de-processos-e-servi-os.aspx"&gt;http://blogs.msdn.com/wcamb/archive/2008/04/10/windows-process-activation-service-was-um-mecanismo-de-ativa-o-de-processos-e-servi-os.aspx&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;A importância da definição do host está associada ao processo de execução, mas também de administração, governança, distribuição e monitoração dos serviços em nossa arquitetura. Sem dúvida, cuidado muito especial é exigido.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Camada de negócio e aplicações LOB :&lt;/STRONG&gt; COM+ 1.5 e MSDTC&lt;/P&gt;
&lt;P&gt;Um ponto importante nessa arquitetura para estudo é que ainda podemos conviver com componente publicados no COM+, isto é, componentes COM que estão hosteados no &lt;STRONG&gt;Component Services&lt;/STRONG&gt;&amp;nbsp; (veja comexp.msc) e ainda aproveitam o &lt;STRONG&gt;MSDTC - Distributed Transaction Coordinator&lt;/STRONG&gt; para o suporte transacional. Esses componente podem e devem permanecer em nossa arquitetura. Isso significa que é possível conviver com esse legado, seja através de camadas de interoperabilidade (&lt;EM&gt;interop&lt;/EM&gt; .NET) ou simplemente consumindo esses componentes através de &lt;EM&gt;Web Services&lt;/EM&gt;. Para alguns casos, teremos traduções entre ambiente gerenciado .NET e não-gerenciado, o que deve causar um certo &lt;EM&gt;delay&lt;/EM&gt;, que deve ser avaliado.&lt;/P&gt;
&lt;P&gt;A questão sempre será sobre a viabilidade (de custo, recursos e tempo) para a migração desses componentes (COM+ WinDNA) para .NET. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Camada de acesso a dados e LOB :&lt;/STRONG&gt; bancos de dados legado e aplicações LOB&lt;/P&gt;
&lt;P&gt;E para o acesso aos dados temos algumas alternativas, como:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;ADO.NET 2.0&lt;/STRONG&gt;, quando usamos o .NET 2.0 e seus recursos como Dataset, DataReader, Datatable, DataAdapter, DbConnection, DbCommand, etc.;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;LINQ TO SQL&lt;/STRONG&gt;, quando usamos .NET 3.5 e estamos falando com servidores da família SQL Server;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;LINQ TO ENTITY&lt;/STRONG&gt;, quando usamos ADO.NET Entity Framework (ainda em Beta 3), para falar com outros servidores de bancos de dados, através do providers oferecidos no mercado.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Já falamos sobre LINQ e Entity Framework em alguns posts anteriores, veja aqui:&lt;/P&gt;
&lt;P&gt;Ref.: &lt;A title=http://blogs.msdn.com/wcamb/archive/tags/LINQ/default.aspx href="http://blogs.msdn.com/wcamb/archive/tags/LINQ/default.aspx" mce_href="http://blogs.msdn.com/wcamb/archive/tags/LINQ/default.aspx"&gt;http://blogs.msdn.com/wcamb/archive/tags/LINQ/default.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;A decisão entre as tecnologias de acesso a dados e camadas de persistência acima vai depender da orientação do projeto, entre a especialização para um middleware de alto desempenho, focado num único banco, ou um middleware de abstração e mapeamento, que permitirá trocas futuras de bancos de dados sem impacto na aplicação, porém, com um custo de mapeamento de traduções que deve ser avaliado quanto a performance.&lt;/P&gt;
&lt;P&gt;Mais uma vez, é importante lembrar que &lt;STRONG&gt;cada caso é um caso, sempre!&lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;A estrutura em camadas acima foi colocada apenas como pretexto para a discussão dos frameworks e tecnologias disponíveis. Caberá a cada equipe de arquitetura avaliar internamente a aderência às suas próprias aplicações.&lt;/P&gt;
&lt;P&gt;Porém, tenha em mente que sua nova plataforma precisa estar antenada com as tendências de colaboração e integração de &lt;STRONG&gt;Software + Serviços&lt;/STRONG&gt; que temos observado. &lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;Construir preparado para a mudança, já que tudo se move, tudo flui, é uma prática cada vez mais desejada, já dizia Heráclito de Éfeso, uns 500 a.C. :) &lt;/FONT&gt;&lt;FONT color=#ff0000&gt;&lt;EM&gt;Panta hrei!&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Por enquanto é só! Até o próximo post :)&lt;/P&gt;
&lt;P&gt;Waldemir.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8407543" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wcamb/archive/tags/Arquitetura+de+Solu_26002300_231_3B0026002300_245_3B00_es/default.aspx">Arquitetura de Solu&amp;#231;&amp;#245;es</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Web+2.0/default.aspx">Web 2.0</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/SOA/default.aspx">SOA</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/WF/default.aspx">WF</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/WinDNA/default.aspx">WinDNA</category></item><item><title>Do Windows DNA para o mundo orientado a serviços : cada caso é um caso?</title><link>http://blogs.msdn.com/wcamb/archive/2008/04/12/do-windows-dna-para-o-mundo-orientado-a-servi-os-cada-caso-um-caso.aspx</link><pubDate>Sun, 13 Apr 2008 01:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8385988</guid><dc:creator>wcamb</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/wcamb/comments/8385988.aspx</comments><wfw:commentRss>http://blogs.msdn.com/wcamb/commentrss.aspx?PostID=8385988</wfw:commentRss><wfw:comment>http://blogs.msdn.com/wcamb/rsscomments.aspx?PostID=8385988</wfw:comment><description>&lt;P&gt;Olá pessoal, tudo certo? &lt;/P&gt;
&lt;P&gt;A partir dos últimos emails, tive uma grande discussão com o amigo &lt;A href="http://blogs.msdn.com/rogerioc/" target=_blank mce_href="http://blogs.msdn.com/rogerioc/"&gt;Rogério Cordeiro&lt;/A&gt; (aqui do MSDN) sobre o uso de WCF, WF e outros frameworks na evolução de arquiteturas &lt;STRONG&gt;WinDNA&lt;/STRONG&gt; usadas em algumas aplicações típicas. Cenários como &lt;FONT color=#000080&gt;&lt;EM&gt;Internet Banking&lt;/EM&gt;, &lt;/FONT&gt;&lt;EM&gt;&lt;FONT color=#000080&gt;Interfaces de Corretoras, Acompanhamento de Pedidos&lt;/FONT&gt;&amp;nbsp; &lt;/EM&gt;ou&lt;EM&gt; &lt;FONT color=#000080&gt;Portais de Comércio Eletrônico&lt;/FONT&gt;&lt;/EM&gt; são bons exemplos. Ao final da discussão, começamos a traçar um mapa sobre alternativas de arquiteturas e tecnologias para a evolução desse tipo de plataforma.&lt;/P&gt;
&lt;P&gt;Se relembrarmos os tempos de &lt;STRONG&gt;Windows DNA&lt;/STRONG&gt; &lt;STRONG&gt;- Windows Distributed interNet Applications Architecture&lt;/STRONG&gt; (anunciado em setembro de 1999, você se lembra?), a camada de apresentação era implementada em páginas ASP/HTML, enquanto a lógica de negócio era implementada através de componentes COM+, hosteados no &lt;STRONG&gt;COM+ 1.0&lt;/STRONG&gt; do Windows NT 4.0 ou Windows 2000 Server. O controle e a coordenação de transações eram feitos através do &lt;STRONG&gt;MSDTC - Microsoft Distributed Transaction Coordinator &lt;/STRONG&gt;e a camada de dados era isolada em servidores dedicados, acessados pelos componentes de negócio. E quando havia transações disparadas na plataforma alta (&lt;EM&gt;mainframes&lt;/EM&gt;), o uso de &lt;STRONG&gt;COMTI&lt;/STRONG&gt; e &lt;STRONG&gt;COMAREA&lt;/STRONG&gt; era muito comum (saudades de uma TLB ? :)&lt;/P&gt;
&lt;P&gt;A figura abaixo representa bem o famoso &lt;STRONG&gt;WinDNA&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DoWindowsDNAaomundoorientadoaserviosmui_14E3E/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DoWindowsDNAaomundoorientadoaserviosmui_14E3E/image_4.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=268 alt=image src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DoWindowsDNAaomundoorientadoaserviosmui_14E3E/image_thumb_1.png" width=526 border=0 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DoWindowsDNAaomundoorientadoaserviosmui_14E3E/image_thumb_1.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Outro ponto importante nessa discussão era o modelo de threads implementado pelo Visual Basic 6.0, grande gerador de componentes COM na época. Tipicamente, VB6 gera componentes &lt;STRONG&gt;STA - Single Thread Apartment&lt;/STRONG&gt;, o que provoca o enfileiramente de mensagens devido sua limitação no tratamento de múltiplas chamadas para a mesma thread. O modelo que liberava esse enfileiramento é conhecido como &lt;STRONG&gt;MTA - Multi Thread Apartment&lt;/STRONG&gt;, que é obtido em componentes COM implementados em C++ ou agora em .NET.&lt;/P&gt;
&lt;P&gt;Um bom artigo sobre o WinDNA está no link abaixo: &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Windows DNA Architecture Design: A Scalable, Highly Available Business Object Architecture &lt;BR&gt;&lt;/STRONG&gt;Ref.: &lt;A href="http://www.microsoft.com/technet/archive/ittasks/deploy/depovg/windna.mspx?mfr=true" mce_href="http://www.microsoft.com/technet/archive/ittasks/deploy/depovg/windna.mspx?mfr=true"&gt;http://www.microsoft.com/technet/archive/ittasks/deploy/depovg/windna.mspx?mfr=true&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;E sobre as questões de STA e MTA, veja ainda no artigo:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Understanding COM Apartments&lt;/STRONG&gt; &lt;BR&gt;Ref.: &lt;A href="http://www.codeguru.com/cpp/com-tech/activex/apts/article.php/c5529" mce_href="http://www.codeguru.com/cpp/com-tech/activex/apts/article.php/c5529"&gt;http://www.codeguru.com/cpp/com-tech/activex/apts/article.php/c5529&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;De fato, muitas empresas implementaram os cenários acima em &lt;STRONG&gt;WinDNA&lt;/STRONG&gt; e atualmente questionam quais são as alternativas rumo aos novos frameworks da Microsoft. &lt;/P&gt;
&lt;P&gt;Mas sobre quais frameworks e tecnologias estamos falando? Vejamos nossas opções:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;WCF - Windows Communication Foundation (.NET 3.x)&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;WF - Windows Workflow Foundation (.NET 3.x)&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;WPF - Windows Presentation Foundation (.NET 3.x)&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Windows CardSpace (.NET 3.x)&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;ADO.NET Entity Framework (Beta 3)&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;ADO.NET Data Services (CTP)&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Microsoft Sync Framework (CTP)&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;ASP.NET MVC Framework (Preview 2)&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Microsoft ASP.NET AJAX 1.0 &lt;/FONT&gt;&amp;nbsp; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;E ainda outras tecnologias como (misturei assuntos de propósito):&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Virtualização;&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;LINQ to SQL, LINQ to XML, LINQ to Entities, LINQ to Objects;&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Microsoft Silverlight 2 (Beta 1);&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;SaaS, Web 2.0, SOA, ESB, RIA;&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;IIS 7.0 e o Windows Process Activation Service (WAS);&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Windows Server 2008, SQL Server 2008; &lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Service Broker, SSIS;&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Fábricas de Software, Domain-Specific Languages, GAT/GAX;&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Office Business Application (OBA);&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;e mais recentemente Software + Services (S+S), para ficar em algumas...&lt;/FONT&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Assim, nossa discussão sobre evolução de uma arquitetura &lt;STRONG&gt;WinDNA&lt;/STRONG&gt; típica torna-se um grande desafio. Nossas opções de tecnologias tornaram-se mais complexas e diversas nesses útimos 10 anos. &lt;/P&gt;
&lt;P&gt;Mas para atacar esse desafio, vamos propor 2 etapas muito básicas. Como primeiro passo, precisamos de algumas questões para um processo de preparação e entendimento de nosso cenário atual. Vejamos:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Na evolução de nossa interface ASP, temos espaço para um novo padrão visual, caminhando para interfaces mais ricas (RIA), com interatividade e customização feita pelo usuário (WEB 2.0) e ainda com capacidade para compor funcionalidades de diferentes fontes de dados (Aplicações de Composição ou Mashups)?&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Quantos componentes de negócio estamos tratando? &lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Conseguimos separar os componentes críticos em desempenho dos componentes de apoio? &lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Estamos utilizando algum framework de desenvolvimento para a construção dos componentes de negócio no WinDNA?&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Conseguimos construir um inventário completo sobre esses componentes de negócio?&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Na evolução de nossos componentes de negócio, é possível observar espaço para composição e coordenação de processos, na forma de workflows ou encadeamento de atividades? &lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Existe a necessidade de aplicação de regras de negócio, seja de forma dinâmica ou estática?&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Na evolução de nossa conectividade com outros sistemas, quais são os cenários de transporte possíveis? Reconhecemos o uso de TCP, Named Pipes, MSMQ e Web Services?&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Na evolução de nosso consumo de transações na plataforma alta, estamos utilizando chamadas via COMTI ou outros mecanismos de comunicação via APPC ou TCP com aplicações no mainframe?&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Quais são os bancos de dados envolvidos? Conseguimos identificar um isolamento claro entre camada de negócio e camada de dados? Como está o uso de stored procedures e queries SQL pela arquitetura? Como estão os modelos de dados envolvidos?&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Qual o inventário de sistema operacional presente na arquitetura atual?&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Como está a infra-estrutura atual para as questões de disponibilidade da aplicação, como balanceamento de carga, balanceamento de componentes, farm de servidores, clusters, etc.?&lt;/FONT&gt; &lt;/LI&gt;
&lt;LI&gt;&lt;FONT color=#000080&gt;Como são tratados os demais aspectos da aplicação como transação, recuperação, monitoração, segurança, tratamento de exceções, autenticação, controle de acesso, atualização de versões, etc.?&lt;/FONT&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;De fato, as questões acima irão nos ajudar para um maior entendimento sobre a arquitetura atual. Com certeza você irá adicionar novas questões, específicas para sua empresa.&lt;/P&gt;
&lt;P&gt;O passo seguinte será mapear os recursos e benefícios de cada um dos novos frameworks &lt;STRONG&gt;Pós-WinDNA,&lt;/STRONG&gt; afim de começar o mapeamento de tecnologias que irão oferecer a melhor solução para sua arquitetura. Um exemplo de aplicação seria esse:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DoWindowsDNAaomundoorientadoaserviosmui_14E3E/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DoWindowsDNAaomundoorientadoaserviosmui_14E3E/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px 20px 0px 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=351 alt=image src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DoWindowsDNAaomundoorientadoaserviosmui_14E3E/image_thumb.png" width=219 align=left border=0 mce_src="http://blogs.msdn.com/blogfiles/wcamb/WindowsLiveWriter/DoWindowsDNAaomundoorientadoaserviosmui_14E3E/image_thumb.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Ao lado, uma aplicação Web (asp) com componentes COM+ 1.0 e acesso ao banco de dados e mainframe (usando HIS), uma foto tirada durante nossa discussão com o Rogério :-)&lt;/P&gt;
&lt;P&gt;Como seria a evolução desse tipo de cenário?&lt;/P&gt;
&lt;P&gt;Veremos algumas idéias em breve...&lt;/P&gt;
&lt;P&gt;Para finalizar, não devemos esperar soluções mágicas ou soluções únicas para todos os cenários. &lt;STRONG&gt;Cada caso é um caso, sempre!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Esse texto foi só para iniciar a discussão. Vamos continuar o tema em posts futuros, por isso, comentários serão benvindos...&lt;/P&gt;
&lt;P&gt;Por enquanto é só! Até o próximo post :)&lt;/P&gt;
&lt;P&gt;Waldemir.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8385988" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wcamb/archive/tags/Arquitetura+de+Solu_26002300_231_3B0026002300_245_3B00_es/default.aspx">Arquitetura de Solu&amp;#231;&amp;#245;es</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/WF/default.aspx">WF</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/wcamb/archive/tags/WinDNA/default.aspx">WinDNA</category></item></channel></rss>