Welcome to MSDN Blogs Sign in | Join | Help

Arquitetura de Soluções

Um blog sobre Software + Services, por Waldemir Cambiucci
SAF 2008 - Dia 03 : O papel do arquiteto em tempos de crise.

Olá pessoal, tudo certo?

image

Uma discussão que sempre aparece em tempos de crise está relacionada ao mapeamento de necessidades e principais motivadores de negócio que direcionam uma TI com mais eficiência. Se os tempos são melhores, a mesma discussão vale para a construção de empresas com alta performance.

Mas como estamos em tempos de crise, vamos focar o problema enquanto observamos o papel do arquiteto nas organizações.

Esse foi um dos temas discutidos no segundo e terceiro dia de SAF 2008, em San Francisco. A sessão com Neil Leslie, General Manager da Microsoft, apresentou alguns aspectos que valem tanto para momentos de crise como para momentos de bonança, na redefinição de prioridades para a TI. Vejamos alguns aspectos:

  1. Estabelecer as lideranças dos processos de negócio: Como principal aspecto na reorganização da TI para uma maior eficiência, o estabelecimento de metas bem definidas, assim como papéis e liderenças claras é passo crítico para o sucesso, em qualquer vertical ou empresa;

  2. Eliminar antes de automatizar: Essa máxima é sempre colocada em diversas discussões, quando o assunto é a automação de processos. Pensando em guias de automação, por exemplo, vale sempre escolher os melhores templates e exemplos de código, antes de aplicá-los em processo de automação para geração automática de software. O mesmo raciocínio vale para os processos de TI de uma empresa. Antes da aplicação sistêmica de soluções, vale observar as oportunidades de consolidação de processos, eliminação de atividades desnecessárias ou custosas, assim como melhorias que visam aplicar somente o que a área de negócio realmente necessita;

  3. Ampliar o uso de SOA como o núcleo para o reuso: Sabemos que SOA possui seu próprio cabedal de desafios. Mas é interessante pensar como uma camada de serviços pode ampliar a visibilidade de funcionalidades reutilizáveis na organização. Claro, um dos grandes desafios por si só é a escolha de quais funcionalidades são boas candidatas para exportação como serviços de SOA. Mas o reuso em tempos de crise ou bonança fornece ganhos inquestionáveis;

  4. Olhar para o Software + Services como uma ferramenta para redução de custos: Essa discussão é mais recente e envolve a composição de software on-premise ou hosted, aproveitando uma infra-estrutura de hardware na nuvem. Assim que um número maior de opções de contratos e licenciamentos na nuvem forem sendo disponibilizados, as organizações poderão montar carteiras de serviços híbridas, entre investimentos locais e investimentos na cloud. A decisão sobre quais componentes estarão on-premise e quais estarão na nuvem será aderente a realidade de cada empresa;

  5. Finalmente, olhar para a TI como uma oportunidade de negócio, através de soluções hosted ou on-premise: Como evolução natural da composição entre serviços locais e remotos, será possível a construção de camadas de serviços exportáveis, que forneçam interfaces para o mundo externo. Surgirá uma bela discussão sobre planejamento de capacidade e novamente a infra-estrutura de hardware para suportar essa cloud privada será questionada. Mas de fato, as organizações poderão aproveitar o modelo SAAS dentro de suas casas, ou simplesmente fornecer SAAS para outras empresas, gerando novos recursos a partir de sua própria infra-estrutura de TI ou contratos na cloud;

E por falar em oportunidades de negócio sobre o ambiente de TI, alguns números apresentados durante o evento impressionaram.  A cada segundo, temos:

  • 2 novos blogs criados;
  • 7 PC's vendidos;
  • 2.2 Milhões de emails enviados;
  • 520 mil links clicados;
  • 1.157 videos assistidos no YouTube;
  • 31 mil mensagens de texto trocadas;

Gigantesco, não é mesmo? Com certeza são oportunidades que se abrem para empresas que têm a TI como seu foco principal, ou que utilizam a TI como suporte para o negócio. Os desafios serão grandes, mas todos poderão ganhar.

Por enquanto é só! Até o próximo post :)

Waldemir.

SAF 2008 - Dia 02 : Discussão sobre o Software + Services e o Microsoft Blueprints.

Olá pessoal, tudo certo?

image Como sempre, o tema de principal interesse desses últimos dias também esteve presente nas sessões do SAF 2008 : Software + Services.

Simon Guest, Diretor do Platform Architect Team na Microsoft, apresentou sua visão sobre os princípios e fundamentos de uma arquitetura Software + Services. Você já deve ter visto um desses mapas, com os patterns de arquitetura que combinam os vários componentes para a construção de várias aplicações, como serviços, web site, rich clients, etc. Veja um desenho exemplo.

image

O Otávio já publicou um post sobre o assunto. Confira aqui! Na sequência, assisti uma discussão com Jack Greenfield, que dispensa maiores apresentações (bom, veja o link).

Greenfield utilizou o mesmo mapa de arquitetura apresentado pelo Simon Guest, para identificar componentes de software que poderiam ser "customizados" ou "automatizados" no processo de geração de código. Ou seja, a combinação de peças da arquitetura Software + Services não elimina a necessidade de automação e melhoria no processo de construção de software, seja através de fábricas de software, guias de automação ou linguagens específicas de domínio. Com a ajuda de Michael Lehman, Senior Architect da Microsoft, a sessão mostrrou uma bela visão sobre como é possível criar um modelo de composição dinâmico de software, a partir de um blueprint da arquitetura.

Foi então introduzido o assunto Microsoft Blueprint, que já está disponível como projeto no site do CodePlex. Para saber mais sobre a visão, confira o link abaixo:

image 
Ref.: http://www.codeplex.com/blueprints

Greenfield também anunciou o roadmap do projeto Blueprints, como vemos a seguir:

v2.0 - CTP anunciado durante o PDC 2008
v2.1 - CTP anunciado durante o SAF 2008 (hoje)
v2.2 - RTW (Release to Web) até dez/2008
v3.0 - Beta 1 no MIX de 2009

O assunto é muito importante e deve merecer um post dedicado no futuro. Aguardem!

Por fim, estive conversando com alguns arquitetos aqui do evento (Eric, Pedroso, Luciano e Markus) que concordaram: a aplicação de modelos de automação como o Blueprints oferece uma grande oportunidade de redução de custos de desenvolvimento, assim como a garantia de aplicação de boas práticas de software na composição de nossas aplicações. O reuso de bons templates e patterns de soluções de forma automatizada é uma ferramenta essencial na melhoria da qualidade de software construído na organização.

Por enquanto é só! Até o próximo post :)

Waldemir.

SAF 2008 - Dia 01 : Microsoft Open Protocols & Microsoft Open Specification Promise

image


Olá pessoal, tudo certo?

Outro assunto que foi bem discutido durante o SAF 2008 na track de Interoperabilidade foi sobre protocolos.

Como parte do trabalho para uma maior interoperabilidade com a plataforma, a Microsoft publicou as especificações para protocolos no Windows Vista, Windows Server 2008, Office 2007, Exchange Server 2007, Office SharePoint Server 2007 e .NET Framework.

Esse tipo de abertura permitirá uma maior participação de comunidades de desenvolvimento e arquitetura, enquanto geram aplicações e produtos com um maior grau de interoperabilidade. Saiba mais sobre a iniciativa no link a seguir:

Microsoft Protocol Programs
Ref.: http://www.microsoft.com/protocols/default.mspx

Outro link de destaque é sobre o Open Specification Promise, um compromisso Microsoft com a utilização e respeito aos principais protocolos de mercado aplicados em seus vários produtos. No link abaixo você encontra a identificação e versões dos protocolos envolvidos na iniciativa, confira:

Microsoft Open Specification Promise
Ref.: http://www.microsoft.com/interop/osp/default.mspx

Quando pensamos na integração entre sistemas dentro do ambiente enterprise, ou a necessidade futura de integração entre sistemas do enterprise com serviços da nuvem, passamos obrigatoriamente pelo uso de protocolos padronizados e interoperáveis. Interoperabilidade será a palavra-chave para a TI da arquitetura Software + Services.

Por enquanto é só! Até o próximo post :)

Waldemir.

SAF 2008 - Dia 01 : Forum de Virtualização

Olá pessoal, tudo certo?

image Direto do SAF 2008, em San Francisco, as sessões do primeiro dia foram agrupadas entre Virtualização e Interoperabilidade. Acompanhei as discussões sobre os dois temas, mas dedico esse post sobre a Virtualização.

De fato, Virtualização tem se tornado um tema obrigatório sobre a organização da TI nas empresas que desejam reduzir custos e complexidade de operação, enquanto aumentam a eficiência. Existem ainda diversas abordagens que podem ser exploradas para a construção de arquiteturas que consideram a virtualização como componente. Do mesmo modo, ainda encontramos diversas questões em aberto na definição de nossas aplicações para uma arquitetura virtualizada.

Na plataforma Microsoft, por exemplo, podemos destacar algumas abordagens para a Virtualização, como:

  • Virtualização de Servidores (Server Virtualization)
  • Virtualização de Desktop (Desktop Virtualization)
  • Virtualização de Aplicações (Application Virtualization)
  • Virtualização de Apresentação (Presentation Virtualization)

image

Enquanto o mercado de Virtualização tem amadurecido ao longo dos últimos anos, a mesma evolução na construção de aplicações para esse tipo de infra-estrutura não tem sido observada. Ainda sofremos com aspectos como instrumentação, planejamento de capacidade, escalabilidade da aplicação e mesmo interação entre componentes da aplicação entre máquinas virtuais distribuídas.

Durante o Forum sobre Virtualização do SAF 2008, algumas recomendações foram apontadas como importantes para a construção de aplicações que terão um melhor comportamento e gerenciamento num ambiente virtualizado. Vejamos:

  1. Adote como uma boa prática a decomposição de sua aplicação ou sistema em WORKLOAD's, ou seja, volumes de trabalho ou cargas de execução que sejam mensuráveis. Esses WORKLOAD's permitirão uma melhor análise durante o processo de planejamento de capacidade ao longo da evolução do sistema, organizando a distribuição de carga ao longo do dia, da semana, do mês, etc.;
  2. Organize as relações de dependência entre SERVIÇOS bem definidos. Essa decomposição no nível de serviços também é parte do processo de organização de uma aplicação em termos de módulos funcionais. Devemos lembrar sempre que existem funcionalidades que não são necessárias todo momento, evitando o consumo de recursos críticos do ambiente;
  3. Trabalhe com o conceito de SCALE UNIT, unidade granular de escalabilidade, que permitirá uma redução no tamanho mínimo de uma aplicação virtualizada, assim como um melhor dimensionamento durante o aumento de capacidade da aplicação;
  4. O conceito de Synchonicity (que define a necessidade por scale-out de uma aplicação) não deve ser mais considerado em termos de servidores, mas sim de imagens de servidores virtuais. Essa definição é crítica para a organização que trabalha com virtualização e muitas vezes não é considerada no planejamento de capacidade da aplicação;
  5. Finalmente, como principal mecanismo de gerenciamento e monitoração de um ambiente virtualizado, o forum recomendou fortemente uma maior instrumentação de código durante a construção de nossas aplicações. Somente com aplicações muito melhor instrumentadas é possível uma maior visibilidade sobre o comportamento e tratamento de exceções em um ambiente virtualizado distribuído.

Uma última consideração feita durante o forum foi que a operação de sistemas em ambiente virtualizado não é uma questão apenas para o time de infra-estrutura. Antes, deve envolver grandemente o time de soluções e desenvolvimento, definindo melhores componentes de instrumentação, monitoração e pensando o dimensionamento em termos de volumes de trabalho (workloads). As discussões estão apenas começando e continuam durante a semana.

Por enquanto é só! Até o próximo post :)

Waldemir.

SAF - Strategic Architect Forum 2008 : novas discussões durante a semana.

image

Olá pessoal, tudo certo?

Esta semana estarei acompanhando mais uma edição do SAF - Strategic Architect Forum, um evento de arquitetura organizado pelo Microsoft que ocorre anualmente nos Estados Unidos. A edição 2008 deve tratar das novas direções da Microsoft sobre a computação na nuvem e o impacto do Windows Azure para a arquitetura de soluções.

Para aquecer, segue um link para o documento do David Chappell, que coloca diversas considerações sobre a plataforma na nuvem e seus componentes, veja:

Cloud Platform - David Chappell
Ref.: http://www.davidchappell.com/CloudPlatforms--Chappell.pdf

E claro, não deixe de visitar o site do Windows Azure, aqui. Ao longo da semana, devo publicar alguns posts com resumos sobre o evento. Fiquem ligados!

Por enquanto é só! Até o próximo post :)

Waldemir.

Channel9 : videos, videos e videos do PDC 2008

Olá pessoal, tudo certo?

image Esses dias foram realmente muito corridos. Entre discussões de arquitetura, evoluções de frameworks e recomendações do patterns & practices, circulei algumas empresas entre SP, RJ e DF. Em quase todas elas, o mesmo questionamento: como organizar nossa pilha de frameworks e arquitetura considerando o Software + Services?

Lembrando, definimos uma arquitetura Software + Serviços como um “Estilo de arquitetura onde as aplicações consomem dados locais e serviços locais (on-premise), assim como dados remotos e serviços remotos, publicados em provedores ou datacenters distribuídos e acessíveis pela internet (in the cloud)".

De fato, podemos dizer que o Software + Services é uma visão que envolve diversas forças de mercado, como o modelo SaaS - Software as a Service, o SOA - Service Oriented Architecture, o Web 2.0, o RIA - Rich Internet (ou Interactive) Application e o Cloud Computing. Ou seja, não é só o poder de escolha entre ambientes consumer, server e cloud, mas também envolve aspectos de software como serviço, processamento em grid, virtualização, interfaces ricas na web, etc.

Após o PDC 2008, uma figura que tem circulado alguns artigos e que representa bem esse poder de escolha da nova aplicação no Software + Service segue abaixo:

image

Explicando, veja que nossa aplicação poderá rodar no ambiente cliente, em dispositivos móveis ou desktop local, sobre infra-estrutura voltada ao consumidor final, como o ambiente mobile, o Windows Vista, etc. Também, teremos serviços ou componentes corporativos que rodam sobre o Windows Server 2008, instalados no ambiente da empresa. Finalmente, teremos componentes de software ou serviços que estarão hosteados na nuvem, rodando sobre o Windows Azure, ou consumindo serviços da plataforma Azure, como o .NET Services, o SQL Services, o Live Services, entre outros que virão.

Sob essas estruturas, encontramos o .NET Framework e seus novos componentes, como SYNC para sincronização de aplicações parcialmente conectadas, o VELOCITY para a construção de uma camada unificada de cache, além de evoluções no WCF 4.0 e WF 4.0. Como ferramenta de desenvolvimento integrada para os 3 ambientes, teremos o Visual Studio. A partir dessa visão rápida, precisamos agora selecionar quais componentes ou funcionalidades de nossa solução são aderentes ao modelo, aproveitando o melhor de cada mundo (desktop, web, mobile, entreprise, cloud). Esse trad-off de decisão vai merece um post dedicado, aguardem...

Com certeza, vale a pena assistir as sessões gravadas do PDC 2008, para saber mais sobre esses assuntos e essa visão de composição. Confira aqui, no site do Channel9:

Channel9 - Muitos videos do pdc2008
Ref.: http://channel9.msdn.com/pdc2008/

Claro, algumas sessões são especiais e merecem destaque, como:

A Lap Around Windows Azure
Ref.: http://channel9.msdn.com/pdc2008/ES16/

A Lap Around the Azure Services Platform
Ref.: http://channel9.msdn.com/pdc2008/BB01/

A Lap around SQL Services, com certeza! :)
Ref.: http://channel9.msdn.com/pdc2008/BB23/

A Lap around "Oslo"
Ref.: http://channel9.msdn.com/pdc2008/TL23/

Além das sessões sobre aplicações e serviços no Azure:

Developing and Deploying Your First Windows Azure Service
Ref.: http://channel9.msdn.com/pdc2008/ES01/

Windows Azure: Architecting & Managing Cloud Services
Ref.: http://channel9.msdn.com/pdc2008/ES02/

Windows Azure: Cloud Service Development Best Practices
Ref.: http://channel9.msdn.com/pdc2008/ES03/

Windows Azure: Programming in the Cloud
Ref.: http://channel9.msdn.com/pdc2008/ES17/

Finalmente, uma sessão que está sendo muito comentada pelos desenvolvedores e arquitetos é sobre o futuro do C#, obrigatória:

The Future of C#
Ref.: http://channel9.msdn.com/pdc2008/TL16/

Por enquanto é só! Até o próximo post :)

Waldemir.

Microsoft Small Basic : lembra dele?

Olá pessoal, tudo certo?

imageSe você é do tempo do TRS-80, TRS-80 Color, CPM/80, MSX ou ZX Spectrum e seus TK's... :), deve ter programado em alguma das versões do Basic, lembra dele?

Microsoft Small Basic
Ref.: http://msdn.microsoft.com/en-us/devlabs/cc950524.aspx 

Fica a dica para você lembrar seus tempos de CP 400 Color II ou simplesmente para brincar com seu sobrinho que inicia em informática ... Confira...

image

Agora, se você deseja algo mais sofisticado talvez, experimente o novo ambiente de programação gráfica que a Microsoft Research está desenvolvendo para as crianças.

Microsoft Research : Boku Projectimage
http://research.microsoft.com/projects/boku/ 

Nem só de Windows Azure e Messaging Overlay vive o arquiteto...

Por enquanto é só! Até o próximo post :)

Waldemir.

Roadmap de produtos : "Oslo" e BizTalk Server 2009

Olá pessoal, tudo certo?

image Ainda em ritmo de PDC 2008, uma discussão interessante que tivemos ao longo da semana foi sobre o roadmap Oslo e as versões futuras do produto BizTalk Server. Já postei um ensaio aqui, falando sobre suas características como uma plataforma de
EAI - Enterprise Application Integration.

"Oslo" envolve um conjunto de tecnologias que habilitam as Aplicações Compostas e a Arquitetura SOA na plataforma Microsoft. Isso será obtido através da adição de novas funcionalidades sobre produtos como Visual Studio "10", BizTalk Server "6", .NET "4", System Center, etc. "Oslo" também oferece uma plataforma de modelagem, que deve permitir a construção de funcionalidades a partir de modelos, descritos para a plataforma através de uma ferramenta DSL - Domain Specific Language, que será integrada ao Visual Studio. Desse modo, "Oslo" deve permitir a visão MDD - Model Driven Development na plataforma Microsoft. Veja uma descrição do assunto feita pelo Otávio.

Nesse contexto, a figura abaixo apresenta a evolução do produto BizTalk Server ao longo do roadmap "Oslo":

 image

Dois assuntos que também estiveram presentes no PDC foram WCF 4.0 e WF 4.0. Ficou claro que esses frameworks estarão cada vez mais integrados, com grandes melhorias de desempenho e facilidades de administração.

Previsto para o primeiro semestre de 2009, o BizTalk Server 2009 vem com alguns recursos e melhorias para a plataforma de EAI, mensageria e atendimento das capacidades de SOA, veja:

  • Suporte ao .NET Framework 3.5 e Visual Studio 2008;
  • Suporte ao Windows Server 2008 e SQL Server 2008;
  • Suporte ao Hyper-V Microsoft;
  • Melhorias em performance e escalabilidade;
  • Melhorias no suporte ao ALM através da integração com o VSTS/TFS;
  • Novo registro para web services (UDDI v3);
  • Serviços para integração com LOB (Adapter Pack 2.0, Dynamics);
  • Serviços para suporte de dispositivos via RFID Mobile;
  • Melhor suporte a interoperabilidade e conectividade (EDI, SWIFT);
  • Guias e patterns para SOA e melhores práticas para cenários diversos;

Outro assunto previsto no roadmpa é o ESB Guidance 2.0, que será suportado com a nova versão do produto. Para saber mais sobre o roadmap do BizTalk Server veja:

Roadmap BizTalk Server
Ref.: http://www.microsoft.com/biztalk/en/us/roadmap.aspx

Alguns artigos e links importantes sobre a iniciativa Oslo seguem abaixo:

Workflows, Services, and Models - A First Look at WF 4.0, “Dublin”, and “Oslo”
Ref.: http://msdn.microsoft.com/en-us/library/dd200919.aspx

Microsoft Oslo - Models Remixed
Ref.: http://www.modelsremixed.com/

The "Oslo" Modeling Platform
Ref.: http://msdn.microsoft.com/pt-br/library/dd129514(en-us).aspx

Enterprise Service Bus Guidance
Ref.: http://www.codeplex.com/esb

Por enquanto é só! Até o próximo post :)

Waldemir.

patterns & practices : Composite Application Guidance for WPF (New Release)

Olá pessoal, tudo certo?

image O patterns & practices continua com bons lançamentos e mais um merece destaque aqui no blog.

A documentação do Composite Application Guidance for WPF já está disponível, fornecendo um bom material de estudo para os interessados. Já tivemos uma introdução sobre o assunto aqui no blog.

Recomendo mais esse documento do patterns & practices como leitura obrigatória pelo time de arquitetura.

Maiores informações, veja:

Composite Application Guidance for WPF
Ref.: http://msdn.microsoft.com/en-us/library/cc707819.aspx

Composite Application Guidance for WPF-June 2008
Ref.: http://www.microsoft.com/downloads/details.aspx?FamilyId=6DD3D0C1-D5B4-453B-B827-98E162E1BD8D&displaylang=en

Documentation for Composite Application Guidance for WPF (PDF)
Ref.: http://www.microsoft.com/downloads/details.aspx?FamilyId=E3E87BDC-FEC1-4489-91FA-E1CF69721563&displaylang=en

Por enquanto é só! Até o próximo post :)

Waldemir.

Evoluindo frameworks domésticos : por onde começar?

Olá pessoal, tudo certo?

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.

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 WCF - Windows Communidation Foundation. Vale lembrar também que a própria plataforma amadureceu, diante dos vários cenários presentes no mercado.

Como já vimos em posts passados (esse, 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.

Para contextualizar nossa discussão, veja o diagrama abaixo, onde destaco o .NET Framework e sua evolução:

image

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 SYNC Framework, o Velocity, o Geneva Framework, etc. Para todas as versões acima, estamos trabalhando sobre a mesma CLR - Common Language Runtime, 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.

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... :)

image

Bastante coisa, não é mesmo? Mas voltemos para nossa pergunta básica: Como evoluir nosso velho framework de desenvolvimento doméstico de todo dia?

Algumas recomendações que faço nesse momento são:

  • Se você ainda trabalha com Web Services na plataforma .NET 2.0 (extensões .asmx), ou ainda possui soluções via .NET Remoting, comece com algumas provas de conceito sobre o WCF - Windows Communication Foundation. 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 bindings diferentes para cada serviço 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, aqui;

  • Se você ainda trabalha com páginas ASP, avalie o ASP.NET com AJAX. Veja alguns exemplos disponíveis no link : http://www.asp.net/community/projects/. 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 ASP.NET Dynamic Data ou exporta um banco de dados através da interface ADO.NET Data Services, com consultas via REST é uma outra boa recomendação para prova de conceito. Não deixe de testar essas soluções;

  • 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 WPF - Windows Presentation Foundation. 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 XAML - Extensible Application Markup Language, que permitem a renderização gráfica baseada em parsers, integrados ao .NET Framework, na ferramenta de design ou no próprio Visual Studio;
  • 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 DAL - Data Access Layer - tradicional, avalie consultas utilizando LINQ - Language Integrated Query, 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 XLINQ sobre XML, ou o uso integrado do ADO.NET Entity Framework (EF), 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 ORM - Object Relational Mapping e camadas de persistência). LINQ é parte do .NET desde a versão 3.5 e o ADO.NET Entity Framework, desde a versão 3.5 SP1. Veja mais aqui;

  • 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 WAS - Windows Process Activation Services. 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 Windows Server 2008, WAS torna-se é uma recomendação de fato. Veja mais aqui;

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:

  • maturidade do framework em produção na empresa;
  • maturidade da equipe de desenvolvimento usuária do framework;
  • maturidade da equipe de arquitetura responsável pelo framework;
  • existência de templates e bons exemplos de código utilizando o framework;
  • maturidade do processo de desenvolvimento de software e existência de disciplinas de ALM - Application Lifecycle Management;
  • seleção de arquiteturas de referência e boas práticas de desenvolvimento, que sejam suportadas pelo framework, etc.

O mais importante é definir uma estratégia de evolução, procurando atender as principais necessidades do usuário, seja desempenho, usabilidade, velocidade para adição de novas funcionalidades, riqueza de interface, funcionalidades de integração com a web ou simplesmente, a competição com o mercado.

A discussão é boa! O desafio também é bom!

Por enquanto é só! Até o próximo post :)

Waldemir.

patterns & practices : Improving Web Services Security

Olá pessoal! Tudo certo?

image

A nova versão do Improving Web Services Secutiry Guidance já está disponível e merece destaque.

Falamos desse projeto do patterns & practices alguns meses atrás, quando conversávamos sobre questões de segurança em cenários de serviços com WCF.

De fato, esse é o foco do documento, que apresenta uma série de questões para cada cenário de aplicação, tratando as várias fronteiras de segurança e mecanismos para garantia de autenticação, autorização, criptografia, certificados, credenciais e roles de usuários.

A figura abaixo apresenta uma dessas discussões, onde vemos um cenário completo de utilização de Web Services com WCF e suas várias fronteiras de segurança:

image

Recomendo mais esse documento do patterns & practices como leitura obrigatória pelo time de arquitetura.

patterns & practices : Improving Web Services Secutiry
Ref.: http://www.codeplex.com/WCFSecurityGuide/Release/ProjectReleases.aspx?ReleaseId=15892

Por enquanto é só! Até o próximo post :)

Waldemir.

patterns & practices : Application Architecture Guide - v2.0 (Beta 1 Release)

Olá pessoal, tudo certo?

image Recentemente, o patterns & practices publicou a versão 2.0, ainda Beta 1, do Application Architecture Guide. Já vimos alguns itens desse material na série sobre patterns de arquitetura, aqui no blog.

Esse guia fornece uma série de arquiteturas de referência e discussões sobre os principais cenários de aplicações na plataforma Microsoft, ajudando arquitetos de soluções e desenvolvedores no momento da definição por patterns e estruturas de uma aplicação. Ainda é um pacote Beta, mas já fornece uma bela discussão sobre vários cenários, como aplicações Mobile, Rich Internet Application, Services, Rich Client, SOA, etc.

O diagrama abaixo apresenta o framework conceitual que o time utilizou para organizar as informações do App Arch Guide 2.0:

image

Veja mais aqui:

patterns & practices Application Architecture Guide - v2.0 (Beta 1 Release)
Ref.: http://www.codeplex.com/AppArchGuide

Por enquanto é só! Até o próximo post :)

Waldemir.

Leitura recomendada: WCF 3.5 e Oslo Modeling Language.

Olá pessoal, tudo certo?

Aproveitando o ritmo de PDC 2008, alguns novos livros são leituras recomendadas para os próximos meses. Vejamos:

image

O primeiro que recomendo é o Windows Communication Foundation 3.5 Unleashed (SAMS). Encontrei esse livro durante o PDC e seu lançamento foi agora em outubro.

O livro apresenta os novos bindings do WCF 3.5, assim como bons exemplos para a construção de serviços integrando WCF e WF. Outro ponto forte é a discussão sobre segurança, além das customizações em Behaviors. Finalmente, a parte sobre REST está bem legal. É o livro que estou lendo hoje e parece muito bom!
(ISBN-10: 0672330245)

image Outra dica é o The Oslo Modeling Language: Draft Specification - October 2008 (Addison-Wesley Professional). Também uma novidades do PDC 2008, o livro apresenta a especificação da linguagem "M" sobre a plataforma "Oslo", que será a plataforma de modelagem da Microsoft. Ainda estou nas primeiras páginas :)

O objetivo do "Oslo" será simplificar o processo de desenvolvimento, implantação e monitoração de software. Para isso, as funcionalidades de um software serão expressas por dados estruturados, os modelos, que serão lidos em runtime pela plataforma e executados pelos serviços associados. A plataforma "Oslo" também deve fornecer uma ferramenta gráfica, uma DSL textual na verdade, para permitir a construção dos modelos que serão manipulados na plataforma. Assim, "M" é uma linguagem para a definição de modelos e linguagens. Para saber mais sobre a iniciativa MDD - Model Driven Development na Microsoft, o livro é um bom início. (ISBN-10: 0321606353). Veja também o link: http://www.modelsremixed.com/ para mais algumas informações sobre "Oslo"

Por enquanto é só! Até o próximo post :)

Waldemir.

PDC 2008 : Um resumo do evento.

Olá pessoal, tudo certo?

O PDC 2008 terminou nesta quinta-feira, em Los Angeles, depois de uma inundação de informações, anúncios e novidades. Ainda estou digerindo alguns assuntos, enquanto que outros já estão virando posts, artigos e webcasts.

Alguns destaques que tivemos durante o evento foram:

  • Apresentação da visão Software + Services e anúncio da platafoma de serviços sobre o Windows Azure, o novo sistema operacional para a nuvem, durante a abertura do evento por Ray Ozzie, Chief Software Architect da Microsoft;
  • Lançamento dos portais de serviços sobre o Windows Azure, que você encontra aqui;
  • Anúncio do SQL Services, para manipulação de dados na nuvem sobre a plataforma Azure. Veja mais aqui e aqui;
  • Anúncio dos serviços do Live Services. Veja mais aqui;
  • Anúncio do .NET Services, com seus componentes Access Control, Workflow Services e Service Bus Services. Veja mais aqui;
  • Anúncio do Dynamics CRM Services;
  • Anúncio do SharePoint Services;
  • Apresentação da tecnologia Messaging Overlay, que é responsável pelo controle de réplica de dados, particionamento de informações, confiabilidade e disponibilidade de dados sobre a infra-estrutura de datacentes da Microsoft. Esse assunto vai merecer um belo post no futuro;
  • Anúncio dos serviços de Identity através do Geneva Server, Geneva Framework, Microsoft Services Connector, Federated Gateway e Microsoft Identity Backbone. Veja mais aqui;
  • Anúncio do Windows 7, próximo sistema operacional da Microsoft para o enterprise. Veja mais aqui;
  • Anúncio do "Dublin", infra-estrutura integrada do Windows 7 para o tratamento e hosting de serviços WCF e WF, com gerenciamento, controle de deployment e monitoração. Veja mais aqui;

Muita informação, não é mesmo? Abaixo, algumas fotos, enquanto o conteúdo vai sendo preparado para o Brasil! Aguardem...

image

Por enquanto é só! Até o próximo post :)

Waldemir.

Windows Azure : Uma questão sobre patterns e cenários de aplicações.

Olá pessoal, tudo certo?

image Estive conversando com outros arquitetos do Brasil (Selonke, Christen e Otávio) aqui no PDC e uma questão interessante que apareceu foi sobre patterns e considerações de design para aplicações sobre o Windows Azure. Tá bom, é cedo, acabamos de ver a plataforma, mas já surge o assunto.

Conhecemos diversos patterns aplicáveis para a construção de aplicações, como Abstract Factory, Command, Composite, Observer, Singleton, entre tantos outros. Alguns desses patterns são bem agnósticos sobre a composição entre enterprise e nuvem. Mas alguns cenários exigirão adaptações ou boas práticas mais específicas.

Para as novas aplicações que utilizam um modelo irrestrito de dados, não estruturados, blobs ou registros relacionais que serão persistidos na nuvem, quais serão os patterns mais aplicáveis? Como serão tratadas questões como ACID, processos envolvendo múltiplos serviços na nuvem, sincronização, workflows, etc.? Como será a composição entre EAI no enterprise com processos publicados na nuvem através do Service Bus Services do Azure? Quais serão os patterns para desfazimento, compensação, tratamento de exceções pela aplicação, etc.?

Durante o PDC tivemos alguns painéis de discussões e simpósios, onde muitas dessas questões foram tratadas. Entre os cenários que deveremos considerar temos:

  • Poderemos consumir serviços WCF e WF hosteados em servidores de aplicação no enterprise (sobre Windows 2003, 2008, etc.), assim como serviços WCF e WF publicados no Service Bus Services, autenticados através do .NET Services Access Control, na nuvem, ou seja, na plataforma Azure;
  • Nossas aplicações poderão ser autenticadas no enterprise, através do AD ou do Geneva Server, utilizando o Geneva Framework para esse processo. Através do Geneva Server, também poderemos conversar com serviços publicados na plataforma Azure, de forma transparente para a aplicação;
  • Através dos serviços do Live Services, poderemos integrar recursos como Mesh, Sincronização, Application Mesh, Device Mesh, etc., com aplicações locais parcialmente conectadas, realizando eventos de sincronização totalmente transparentes para o usuário. Os pimeiros exemplos de Mesh integrando smartphones, notebooks, desktops remotos e dispositivos móveis diversos começam a aparecer, inclusive consumindo workflows publicados na plataforma Azure;
  • Através do SQL Services, poderemos criar aplicações que suportam uma grande massa de dados persistidas na nuvem, trabalhando dados flexíveis, entidades e containers de dados, enquanto utiliza providers de sincronização do Sync Framework para manter a sincronização dos dados na nuvem com folders, bancos de dados corporativos ou estuturas em cache persistidas no Velocity (não esqueça dele);
  • Finalmente, nossas aplicações na Web poderão aproveitar todos os recursos do Silverlight API's, JavaScripts API's, Controles Cliente e Web, além do suporte a protocolos como ATOM, JSON, POX, RSS, Binary XML para consumir os serviços locais ou nuvem.

Enfim, uma série de novas combinações criativas e aplicações será possível, mas exigirá boas práticas e recomendações para aproveitarmos o melhor de cada framework, serviço ou recurso, seja local ou remoto.

imageFiquem de olho no Channel9, que já começa a publicar algumas dessas discussões. Aliás, a foto ao lado consegui com a ajuda do Godinho, que cercou o bonequinho do Channel9 para uma foto do fan clube :)

E para quem deseja ler um texto oficial sobre o anúncio da plataforma Azure, segue aqui um link interessante:

Windows Azure and the Azure Services Platform: Making Microsoft’s Software-plus-Services Vision a Reality
Ref.: http://www.microsoft.com/presspass/features/2008/oct08/10-27pdcfeature1.mspx

Como já disse, uma nova onda de aplicações está nascendo! Aguardem as demos...

Por enquanto é só! Até o próximo post :)

Waldemir.

More Posts Next page »
Page view tracker