Olá pessoal, tudo certo?
Você se lembra de alguma das telas abaixo?
Realmente, desde o início em 1985 (puxa, já se foram 25 anos), a interface Windows evoluiu ao longo dos anos, acompanhando a mesma tendência de evolução em hardware cliente, que vimos ano após ano.
Só para recordar, veja quantas versões de Windows já tivemos:
Windows 1.0 (1985)
Windows 2.0 (1987)
Windows 3.0 (1990)
Windows 3.1 (1992)
Windows for Workgroups 3.11 (1993)
Windows NT 3.1 (1993)
Windows NT 3.5, NT 3.51, NT 4.0 (que evolui até 1998)
Windows 95 (1995)
Windows 98 (1997)
Windows 98 SE (1998)
Windows Neptune (1999)
Windows 2000 (2000)
Window ME (2000)
Windows XP (2001)
Windows Server 2003 (2003)
Windows Vista (2007)
Windows Server 2008 (2008)
Windows 7 (2009)
A lista cima não é completa, deve ter escapado alguma versão de menor impacto. Mas se você procurar pela Web, vai encontrar diversos sites dedicados a essa evolução, o que deve garantir bons momentos de nostalgia e muitas recordações :)
Estamos agora na era do Windows 7, que vive num contexto de cloud computing, Web 2.0, SOA/SOI, Aplicações de Composição, Software + Serviços, composição de serviços on-premise com serviços na nuvem, etc. Porém, gostaria de destacar a evolução do lado das interfaces, com streaming de videos, telas multi-toque, transparência, temas e skins dinâmicos, suporte a dispositivos, etc. De fato, a expectativa de experiência de usabilidade das aplicações mudou muito nesses últimos anos.
Esse conjunto formado por Windows 7, .NET 4.0 e WPF 4 tem oferecido um novo patamar para a construção de interfaces, com usabilidade e experiência de usuário realmente interessantes!
Assim, ficam aqui algumas perguntas: como você está projetando as interfaces de suas novas aplicações, aquelas que deverão ter uma vida de mais 3 ou 5 anos dentro da corporação? Você está prevendo novos recursos de interatividade, animação, multi-touch, etc.? Você tem dado atenção as diferentes abordagens existentes, mais inovadoras e intuitivas para os vários perfis de usuários que irão utilizar sua aplicação no futuro?
Em muitos casos e não são poucos, os recursos para interfaces deixaram o escopo da aplicação, passando para o sistema operacional, que aproveita melhor os recursos avançados presentes nos hardwares mais atuais.
Estive acompanhando algumas discussões em projetos que exigirão grande usabilidade e interatividade para o usuário numa interface desktop, na vertical de finanças. Por isso meu post aqui colocado.
Alguns links que utilizei nesse início de estudo estão abaixo, espero que gostem!
Features new to Windows 7
Ref.: http://en.wikipedia.org/wiki/Features_new_to_Windows_7
Windows 7 features
Ref.: http://windows.microsoft.com/en-US/windows7/products/features
Tag Windows 7
Ref.: http://blogs.msdn.com/wcamb/archive/tags/Windows+7/default.aspx
Antes de terminar, alguém pode perguntar: mas e o Windows Azure? Ele não tem interface! Será que não? :)
É! não deixa de ser uma interface! :)
Por enquanto é só! Até o próximo post :)
Waldemir.
Olá pessoal, tudo certo?
Tivemos algumas novidades essa semana para a plataforma Windows Azure.
Além do lançamento comercial da plataforma em 01 de Fevereiro, tivemos o lançamento do Windows Azure Drive Beta, como anunciado durante o pdc09, com o nome xDrive. Veja a sessão de anúncio abaixo:
Windows Azure Blob and Drive Deep Dive
Ref.: http://microsoftpdc.com/Sessions/SVC14
Pense nisso…
- Você tem alguma aplicação existem no ambiente on-premise, que você gostaria de colocar na nuvem?
- Já teve vontade de utilizar o Windows Azure para reduzir a necessidade por gerenciamento de servidores ou mesmo para ampliar a escalabilidade de sua aplicação?
- Você já pensou sobre o esforço necessário para a migração de aplicação legadas para a nuvem? Vimos alguns cenários nos posts da série migração, mas não falamos muito de esforço.
Podemos colocar essas perguntas quando falamos sobre Windows Azure Drive, um serviço que oferece uma API NTFS para aplicações sobre a plataforma. Imagine aplicações legadas colocadas na nuvem:
E como funciona o Windows Azure Drive?
O Windows Azure Drive provê um volume NTFS durável sobre a plataforma Windows para aplicações, usando uma API NTFS para acesso às informações do drive. Um dos pontos fortes desse serviço é possibilitar a migração de aplicações NTFS on-premise para a nuvem, como vimos na figura acima.
No fundo, o Windows Azure Drive é um Page Blob, que pode ser colocado como um drive montado, por exemplo:
http://<accountname>.blob.core.windows.net/<containername>/<blobname>
Todas as escritas feitas sobre o Page Blob são duráveis. Isso garante a persistência das informações, mesmo quando os drives não estão montados como um Page Blob. Pela documentação, um Page Blob do Windows Azure Drive é formato como um único volume NTFS VHD - Virtual Hard Drive, com capacidade de até 1 TB.
Uma VM no Windows Azure pode montar dinamicamente até 8 Windows Azure Drives, sendo ainda possível a administração remota dos VHDs com upload/download via interface de Page Blobs.
Alguns comando da interface Windows Azure Drive Client são:
- Create Drive
- Mount Drive
- Unmount Drive
- Snapshot Drive
- Copy Drive, entre outros.
A figura a seguir ilustra os passos envolvidos no uso de um Drive por uma aplicação Azure:
Em resumo, Windows Azure Drive deve ampliar o número de aplicações e recursos de aplicações que estarão sobre a plataforma Azure, aumentando assim o número de cenários portáveis para a nuvem.
Para saber mais sobre o Windows Azure Drive, confira os links abaixo:
Beta Release of Windows Azure Drive
Ref.: http://blogs.msdn.com/windowsazure/archive/2010/02/02/beta-release-of-windows-azure-drive.aspx
Understanding Block Blobs and Page Blobs
Ref.: http://msdn.microsoft.com/en-us/library/ee691964.aspx
Em posts futuros, veremos alguns exemplos mais detalhados, com a utilização do Windows Azure Drive. Fique ligado.
Por enquanto é só! Até o próximo post :)
Waldemir.
Olá pessoal, tudo certo?
Hoje o dia é de screencast, desta vez um exemplo de administração de bases de dados na nuvem através do SSMS - SQL Server Management Studio:
Em breve, novos screencasts sobre a plataforma. Fique ligado!
Por enquanto é só! Até o próximo post :)
Waldemir.
Olá pessoal, tudo certo?
Segue abaixo um screencast sobre SQL Azure Database, que publiquei como exemplo sobre como consumir dados da nuvem a partir de uma aplicação Web local ou no Azure.
Bem simples…
Por enquanto é só! Até o próximo vídeo!
Waldemir.
Olá pessoal, tudo certo?
Vai aqui mais um screencast, com um exemplo de migração de base de dados local para a nuvem, usando o SQL Azure Migration Wizard:
Para saber mais sobre o SQL Azure Migration Wizard veja o link abaixo:
SQL Azure Migration Wizard
Ref.: http://sqlazuremw.codeplex.com/
Por enquanto é só! Até o próximo vídeo :)
Waldemir.
Olá pessoal, tudo certo?
Temos novidades na plataforma Windows Azure. Esta semana foram publicados duas atualizações para os pacotes de SDK e Tools no Visual Studio, abaixo:
Windows Azure Tools for Microsoft Visual Studio 1.1 (February 2010)
Ref.: http://www.microsoft.com/downloads/details.aspx?FamilyID=5664019e-6860-4c33-9843-4eb40b297ab6&displaylang=en
Windows Azure Software Development Kit (February 2010)
Ref.: http://www.microsoft.com/downloads/details.aspx?familyid=DBA6A576-468D-4EF6-877E-B14E3C865D3A&displaylang=en
As duas grandes novidades no SDK de Fevereiro do Windows Azure são:
- o Windows Azure Drives, que atua como um drive local para acesso dentro de uma role da plataforma. Os dados escritos num Azure drive são persistidos em páginas de blogs, criados previamente com o Windows Azure Blob Service. Ainda o Windows Azure Managed Library agora oferece uma classe chamada CloudDrive, que permite o gerenciamento desses drives "locais na nuvem".
- o Windows Azure Guest OS Versioning: esse recurso permite rodar seu serviço sobre a versão de Windows Azure que você especificar. Desse modo, você controla configurações de upgrade que possam afetar seu serviço na nuvem, escolhendo a versão de Guest OS compatível com o SDK utilizado por sua aplicação.
Veja a tabela abaixo com os Guests OS e SDKs compatíveis, para ilustrar:
Ou seja, serviços criados com o SDK v1.0 de Nov2009 rodam sobre o Azure Guest OS versões 1.0 e 1.1. Serviços criados com o novo SDK v1.1 de Fev2010 rodam apenas com o Azure Guest OS 1.1.
Isso é justificável pelo próprio suporte ao Azure Drive, por exemplo. Na prática, vamos precisar apenas escolher o Azure Guest OS através de uma configuração no projeto, isto é, adicionar o atributo “osVersion” em nosso ConfigurationSettings de projeto. Com o SDK você ganha uma atualização do help que trás maiores informações.
Faça suas atualizações e confira as novidades!
Por enquanto é só! Até o próximo post :)
Waldemir.
Olá pessoal, tudo certo?
Enquando avançamos em nossa série sobre migração para o Windows Azure, estou aproveitando para lembrar de alguns cenários e soluções que estive discutindo com empresas do mercado. Por isso, o cenário de hoje envolve uma arquitetura mista, de plataforma .NET e Java, Oracle, Windows Server e Solaris.
Considere o ambiente on-premise, a seguir:

Imagine uma solução de e-Commerce, com interface Web e diversas funcionalidades implementadas em uma plataforma de serviços, usando Java sobre Tomcat em sistema operacional Solaris. Para essa solução, ainda temos um banco corporativo em Oracle, que persiste os dados de usuários, fornecedores e empresas parceiras.
Ainda, imagine que fornecedores e empresas parceiras podem consumir serviços através de uma VPN implementada com equipamentos Cisco, sendo o consumo feito através de componentes em VB6 sobre Windows 2000 Server e serviços C# em Windows Server 2003.
Um belo cenário de e-Commerce com serviços internos e externos. Como toda solução de alta demanda com serviços exportados, temos diversos desafios que são comuns em ambas plataforma, .NET ou JAVA. Vejamos alguns:
- Necessidade de alta escalabilidade para o consumo de serviços por empresas fornecedoras;
- Administração e manutenção de uma VPN para segurança e provisionamento dos serviços para empresas fornecedoras;
- Necessidade de alta escalabilidade e controle para o crescimento do banco de dados da solução;
- etc…
Para essa migração, vamos considerar dois aspectos importantes:
- maior facilidade para integração entre sua empresa e empresas fornecedoras;
- maior escalabilidade para serviços e páginas da solução web;
Assim, o desenho abaixo ilustra uma arquitetura proposta sobre o Windows Azure, veja:
Na proposta acima, a interface Web é colocada através de Web Roles sobre o Windows Azure, oferecendo alta disponibilidade para os clientes online da solução. Ao mesmo tempo, note que os serviços inicialmente colocados sobre Java / TomCat agora são disponibilizados através de WCF Service Web Roles, que implementam as funcionalidades e serviços antes colocados no ambiente on-premise.
Outro ponto interessante da arquitetura é a utilização do Windows Azure platform AppFabric para exportação de serviços para empresas parceiras na solução. O que antes eram garantido com uma VPN entre sua empresa e empresas externas, agora é obtido através do registro de serviços na infraestrutura de Service Bus (barramento de serviços) do platform AppFabric do Windows Azure, antes chamado .NET Services Service Bus.
Maiores detalhes sobre o processo de registro e exportação de serviços no AppFabric confira nos links abaixo:
Windows Azure platform AppFabric SDK V1.0
Ref.: http://www.microsoft.com/downloads/details.aspx?FamilyID=39856a03-1490-4283-908f-c8bf0bfad8a5&displaylang=en
Microsoft Windows Azure platform AppFabric
Ref.: http://msdn.microsoft.com/en-us/azure/netservices.aspx
Aproveito esse post também para lembrar que a plataforma Azure oferece uma grande interoperabilidade com outras plataforma, suportando além do .NET Framework, componentes em python, Java, Ruby, php, OpenID e Eclipse. Assim, outra opção para essa arquitetura é o registro de serviços em Java sobre o Services Bus do AppFabric. Veja maiores informações sobre essa funcionalidade no link a seguir:
AppFabric SDK for Java Developers
Ref.: http://www.jdotnetservices.com/
E para desenvolvedores de componentes em Ruby, veja o que existe para a integração com o Windows Azure:
AppFabric SDK for Ruby Developers
Ref.: http://www.dotnetservicesruby.com/
Finalmente, outro componente interessante da solução é o uso do Azure Storage para persistência de dados estruturados e não estruturados da aplicação, garantindo alta escalabilidade e disponibilidade para o ambiente na nuvem. Para os dados relacionais ainda existentes na solução, podemos ainda aplicar um banco SQL Azure Database, com considerações conhecidas sobre particionamento manual (sharding), instâncias múltiplas e conectividade transparente para componentes sobre o Windows Azure ou a partir do ambiente on-premise.
Em posts futuros, vamos conferir alguns detalhes de migração e hospedagem de serviços Java sobre a plataforma Azure, além dos mecanismos de interoperabilidade e consumo entre as duas plataformas. Maiores detalhes virão… Fique ligado!
Por enquanto é só! Até o próximo post :)
Waldemir.
Olá pessoal, tudo certo?
Vejamos mais um cenário que pode aproveitar os benefícios de um ambiente na nuvem.
Imagine uma solução baseada em Web Services, que oferecem recursos de CRUD e regras de negócio operando sobre um banco de dados. Ao mesmo tempo, a solução prevê usuários administrativos, que consomem regras de negócio em bibliotecas como serviços, que também operam sobre o modelo de dados da solução. Assim, através de clientes Web os usuários navegam as funcionalidades da aplicação, enquanto que usuários administrativos usam um cliente consumindo recursos de um App Server, para tarefas de configuração, monitoração de negócio, customização, administração, etc.
A figura a seguir ilustra o cenário, que é muito comum em aplicações Web departamentais:
Desafios
Um dos aspectos importantes nesse tipo de arquitetura é o plano de capacidades sobre os Web Services da solução. É comum aplicações departamentais lançarem serviços que rapidamente são bons candidatos para reuso por outros departamentos. Já vi empresas que criaram baterias de Web Services para um departamento, oferecendo rapidamente esses serviços para outros grupos internos da empresa, aumentando o volume de usuários do sistema.
Nesse caso, surge o velho problema de escalabilidade crescente sobre esses Web Services. Em casos mais sofisticados, alguns desses serviços podem fazer parte de novas ofertas de negócio para o público externo, além de clientes e potenciais consumidores. Esse tipo de aspiração também é interessante e muito comum, quase um mantra em algumas empresas: gostaria de aproveitar meus Web Services internos em novos produtos para sistemas comerciais externos, que devo oferecer para o mercado.
Atacando esses Web Services criados pela empresa, podemos aproveitar um cenário de nuvem como o Windows Azure, hospedando esses serviços na nuvem. Veja o desenho abaixo:
De modo simplificado, a escalabilidade dos Web Services agora é garantida através de WCF Service Web Roles, que podem ser escalados conforme a necessidade do negócio. Ao mesmo tempo, o banco de dados da solução pode ser migrado para o SQL Azure Database, tornando o acesso a dados mais direto no ambiente no Azure.
Quais são os principais desafios nesse tipo de migração:
- Gerenciamento de estados
- Performance
- Segurança
- Migração da base de dados para a nuvem
- Particionamento da base de dados (Sharding)
Um dos grandes componentes desta solução é o AppFabric no Azure, que oferece os recursos para hosting de serviços na nuvem. Veja o portal que consolida as principais informações sobre o AppFabric na nuvem a seguir:
Microsoft Windows Azure platform AppFabric
Ref.: http://msdn.microsoft.com/en-us/azure/netservices.aspx
Alguns pontos de atenção
Para aproveitar o post, vejamos alguns pontos de atenção para projetos na nuvem:
- Esteja preparado para sacrificar o controle de hardware e de software em troca de um custo de gerenciamento menor;
- Nessa combinação de ambientes, manter uma disciplina de log e instrumentação será garantia de um processo de troubleshooting mais eficiente;
- Projete seu sistema e web services para a escalabilidade horizontal (scale-out) e não vertical (scale-up). Nesse processo, algum refactoring de sistemas legados existentes pode acontecer, fique preparado;
- Utilize técnicas de particionamento de bases de dados, já que o SQL Azure Database possui o limite de bases de até 10 GB, não havendo particionamento automático na nuvem;
- Muito importante: faça um plano detalhado para a migração de dados. Dependendo do cenário de negócio, mantenha on-premise (localmente) os dados críticos de clientes na aplicação. Regulation ou políticas de risco e segurança podem ser motivadores para essa persistência local de dados;
- Finalmente, pense sempre em serviços sem manutenção de estado, "Stateless". Isso garante a alta escalabilidade de processos e serviços colocados na nuvem, sem risco de afinidade.
Vimos assim mais um cenário interessante de migração para a nuvem. Claro, essa análise não é extensiva e muitos outros aspectos existem. Semana que vem tem mais.
Por enquanto é só! Até o próximo post :)
Waldemir.
Olá pessoal, tudo certo?
Dando início a série de migração para a nuvem, vamos começar com um cenário de infraestrutura de aplicações Web. Imagine os seguintes componentes abaixo:
Já vimos esse tipo de cenário em posts passados, onde escalamos as várias camadas através de um crescimento de hardware para a camada Web e a camada de negócios, além do particionamento da base de dados, como vemos a seguir:
Também notamos a presença do banco de dados corporativo e do repositório de objetos do AD, onde temos os recursos de autenticação, autorização, perfis de usuário, administração, etc.
Entre os principais pontos de atenção que destacamos durante um processo de migração para a nuvem temos:
- autenticação
- autorização
- sincronização de dados
- segurança de dados
- integração de aplicações no ambiente on-premise
- gerenciamento e operação
- escalabilidade e investimentos para o crescimento da infraestrutura
Como seria um cenário aproveitando a infraestrutura do Windows Azure, integrando com o ambiente on-premise?
O desenho a seguir ilustra uma arquitetura proposta considerando os recursos do Windows Azure:
Acima, estou dando destaque para a integração do ambiente on-premise com a nuvem, onde temos as interfaces Web implementadas via Web Roles, assim como dados persistidos sobre o SQL Azure Database.
Vejamos então alguns pontos importantes para considerar sobre essa migração:
Autenticação – no desenho acima destaquei um servidor ADFS no ambiente corporativo, integrado ao AD original. Isso oferece os recursos de um modelo CBA – Claim-based autenthication, que oferece um bom desacoplamento em relação ao provedor de identidades na solução. Falamos sobre CBA um tempo atrás, neste post;
Autorização - da mesma forma, podemos trabalhar com declarações customizadas sobre o ADFS - Active Directory Federation Services, para a tomada de decisões e implementação de autorização nas funcionalidades da aplicação e serviços existentes;
Sincronização de Dados - uma recomendação aqui é utilizar o SSIS - SQL Server Integration Services, que permite a sincronização de porções de linhas e colunas entre o SQL Server on-premise e o SQL Azure Database. Sobre o SSIS, veja mais nos links abaixo:
Ref.: http://www.microsoft.com/sqlserver/2008/en/us/integration.aspx
Ref.: http://www.microsoft.com/sqlserver/2008/en/us/wp-sql-2008-integration-services.aspx
Segurança e Auditoria - aspectos de segurança e auditoria são muitas vezes específicos de cada indústria ou empresa. Operações e dados podem exigir níveis diferentes de segurança, conforme a orientação da empresa. Porém devido a integração entre on-premise e nuvem, recomenda-se uma atenção especial para uma visão unificada em toda a solução;
Integração de Aplicação - uma alternativa interessante para a integração entre aplicações de diferentes domínios ou localidades é usar o ADFS Passive Fed, suportado através do padrão WS-Federation Passive Requestor Profile (WS-F PRP), que permite um modelo de Single Sign-On via Web, para essas aplicações. Veja mais no link abaixo:
Ref.: http://www.microsoft.com/downloads/details.aspx?familyid=921379CA-BBB0-4E9A-A0D4-495D620832F6&displaylang=en
Operação/Gerenciamento - outro ponto de atenção nessa integração é não se basear apenas no modelo de Windows Event Log e SCOM (famílía System Center). De fato, vamos combinar a monitoração SCOM no ambiente on-premise, com a monitoração via logs e estatísticas do ambiente na nuvem. Por enquanto, não temos pacotes de gerenciamento (Management Packs) para o Windows Azure integrado ao SCOM, que deve aumentar a visibilidade de eventos e ações nesse tipo de solução integrada. Enquanto isso não vem, devemos usar os recursos da Management API para o Windows Azure. Veja mais a seguir:
Windows Azure Monitoring, Logging, and Management APIs
Ref.: http://microsoftpdc.com/Sessions/SVC15
Um exemplo de monitoração em aplicação no Azure
Ref.: http://diags.cloudapp.net/
Migração de interface Web - em cenários de aplicações Web, o suporte do Azure aos componentes ASP.NET, MVC, AJAX e Silverlight torna o processo de migração bem simples e rápido. \Um cuidado maior deve ser observado com o tratamento das regras de negócios e serviços existentes. Avalie a necessidade de migração dessas regras para modelos como Worker Roles ou WCF Web Roles.
Já deu para perceber que são vários os aspectos que podemos tratar num processo de migração e integração entre aplicações on-premise e cloud. Procurei enriquecer o cenário, para provocar novos pontos de atenção e cuidados que normalmente não são tratados.
Cenários mais simples ou de presença apenas na cloud são muito mais fáceis de migração para o Azure. Vale experimentar!
Como última dica do post, vale acompanhar o blog do time de Azure, a seguir:
Ref.: http://blogs.msdn.com/windowsazure/
Por enquanto é só! Até o próximo post :)
Waldemir.
Olá pessoal, tudo certo?
Esta semana, vamos começar uma mini-série sobre migração de aplicações para a plataforma Windows Azure. Que tal?
Uma questão recorrente em sessões sobre cloud computing é justamente sobre cenários existentes no on-premise e como migramos para a nuvem.
O que podemos migrar? Que camadas vamos aproveitar? Qual é a arquitetura mais indicável? Quais são os aspectos de conectividade, controle, hardware, administração, etc, que serão impactados?
Assim, escolhi alguns cenários interessantes de migração para discutirmos aqui no blog. Entre eles veremos:
- Aplicações Line Of Business (LOB) departamentais
- Sites de Comércio Eletrônico
- Implementações de SOA
- Map Reducing e distribuição de processos
- Aplicações com vídeo/audio/streaming, entre outras.
A idéia é provocar algumas questões, enquanto apresentamos arquiteturas antes/depois para cada cenário. Veja, o espaço é pequeno para passar por todos os aspectos de um projeto, mas vamos trocar algumas idéias por aqui.
Por exemplo, você tem COM, COM+ ou MFC em sua solução on-premise? Essas tecnologias não são suportadas no Windows Azure. Tive esse papo semana passada com uma empresa, que possui uma série de soluções antigas em VB6, COM+ e alguns componentes em MFC e C++.
Atualmente, a plataforma Windows Azure oferece suporte para bibliotecas standard em C++, algumas funções da Win32 API e todos os recursos do .NET 3.5 SP1, além dos templates para Web Roles, WCF Web Roles, Worker Roles e Fast CGI. Por isso, veremos mais detalhes de opções de arquitetura ao longo da série.
E fique a vontade para sugerir novos cenários ou casos reais em sua empresa. Esta semana vamos começar com uma aplicação LOB.
Por enquanto é só! Até o próximo post :)
Waldemir.
Olá pessoal, tudo certo?
De tempos em tempos me perguntam sobre soluções e ofertas gratuítas na plataforma Microsoft, para empresas de pequeno e médio porte, profissionais autônomos, estudantes, usuários domésticos, startups, etc.
A Microsoft possui uma série de ofertas e possibilidades que atendem tanto a experimentação de soluções, como o uso de recursos em cenários específicos, sem custo algum para o usuário.
Para conhecer esses vários cenários, vejam o link abaixo:
Grátis é melhor!!! :)
Ref.: http://www.gratisemelhor.com.br/
Por enquanto é só! Até o próximo post :)
Waldemir.
Olá pessoal, tudo certo?
Outro assunto que tem surgido como novidade é a nova tecnologia StreamInsight, presente no SQL Server 2008 R2.
A tecnologia StreamInsight está relacionada aos cenários de event data streaming ou aplicações com o processamento complexo de eventos (CEP - Complex Event Processing), muito comuns no mercado hoje em dia.
Por que o StreamInsight é importante?
- Você já deve ter visto esse tipo de cenário no mercado financeiro, com feeders de cotações de mercado e dados históricos. Outro cenário comum é em agências de notícias, com o tratamento de headlines, mensagens de texto ou informativas, sobre as quais se aplicam regras e filtros com um grande volume de mensagens em tráfego.
- Ainda, em verticais de indústrias e manufatura, a análise, monitoração e atuação sobre mensagens recebidas de sensores, coletores RFID, filtros, etc. são também candidatos potenciais para o StreamInsight.
O desenho abaixo ilustra alguns aspectos da sua arquitetura:
No desenho acima, note que o CEP Engine, Complex Event Processing Engine, está presente no CEP Server. A partir de adaptadores de entrada para diversos tipos de fontes de eventos, o CPE Engine consolida esses eventos através de lógicas de consulta (Query Logic). A partir do tratamento, seja de monitoração, mining, logging ou ação, novos eventos são enviados pelo CEP Engine para os sistemas clientes, através de adaptadores de saída.
Veja, não confunda um motor de CEP com um motor de EAI - Enterprise Application Integration, ou mesmo um ESB - Enterprise Service Bus, muito menos com uma camada de virtualização de serviços. Nesses casos, o EAI é dado pelos recursos do BizTalk Server 2009. Sobre o BizTalk Server 2009, podemos adicionar o BizTalk ESB Toolkit, que oferece os recursos de ESB na plataforma Microsoft.
Um CEP envolve a agregação e a correlação de eventos de fontes diversas como dispositivos, web services, sensores, feeders, etc. Uma vez recebidos esses eventos, eles podem ser analisados, consolidados e monitorados pelo motor de CEP com um alto desempenho e baixa latência, trabalhando os eventos em memória e persistindo informações sobre o SQL Server, quando necessário.
Portanto, em aplicações CEP não estamos falando de transformação de mensagens, mapeamento entre tipos, adaptadores de sistemas, múltiplos protocolos e formatos de mensagens, pub/sub de mensagens, repositório de serviços, UDDI, message box, etc, patterns comuns de EAI e ESB. Ficou claro!? :)
Mas vale notar que exitem cenários que eram tratados com motores de EAI e agora podem ser simplificados através do StreamInsight, aproveitando esse novo recurso nativo do próprio SQL Server 2008 R2.
Você pode saber mais sobre o StreamInsight através dos links abaixo:
SQL Server 2008 R2 – StreamInsight Technology
Ref.: http://www.microsoft.com/sqlserver/2008/en/us/R2-complex-event.aspx
StreamInsight Blog Team
Ref.: http://blogs.msdn.com/streaminsight/
Não deixe de conferir também o Books OnLine a seguir, que está muito completo (Leitura Obrigatória!!):
Microsoft StreamInsight Books Online
Ref.: http://technet.microsoft.com/en-us/library/ee362541(SQL.105).aspx
Você pode baixar o CTP de Novembro do SQL Server 2008 R2 no link abaixo:
Microsoft® SQL Server® 2008 R2 November CTP StreamInsight Refresh
Ref.: http://www.microsoft.com/downloads/details.aspx?FamilyID=01c664e4-1c98-4fc8-93ee-08cc039503c1&displaylang=en
O Markus já começou alguns testes com a plataforma, fazendo inclusive algumas demos. Em breve ele deve publicar novidades.
Por enquanto é só! Até o próximo post :)
Waldemir.
Olá pessoal, tudo certo?
No post anterior eu apresentei uma lista com alguns projetos importantes publicados no codeplex pelo time do patterns & practices.
Mas como bem comentado pelo Don Smith, Senior Program Manager do time do p&p, depois da evolução desses projetos no CodePlex, a versão final de cada um deles é colocada no MSDN.
Assim, vale esse novo post, com a lista de links de releases finais dos projetos no MSDN:
Microsoft Enterprise Library 4.1 – October 2008
Ref.: http://msdn.microsoft.com/en-us/library/cc467894.aspx?rssCatalog
patterns & practices: Enterprise Library
Ref.: http://entlib.codeplex.com/
Composite Application Guidance for WPF and Silverlight
Ref.: http://msdn.microsoft.com/en-us/library/dd458809.aspx
patterns & practices: Composite WPF and Silverlight
Ref.: http://compositewpf.codeplex.com/
Microsoft Application Architecture Guide, 2nd Edition
Ref.: http://msdn.microsoft.com/en-us/library/dd673617.aspx
patterns & practices: Application Arch Guide 2.0
Ref.: http://apparchguide.codeplex.com/
Developing SharePoint Applications
Ref.: http://msdn.microsoft.com/en-us/library/dd203468.aspx?rss
patterns & practices: SharePoint Guidance
Ref.: http://spg.codeplex.com/
Improving Web Services Security: Scenarios and Implementation Guidance for WCF
Ref.: http://msdn.microsoft.com/en-us/library/cc949034.aspx?rssCatalog
patterns & practices: Improving Web Services Security Guide
Ref.: http://www.codeplex.com/WCFSecurityGuide
E vale conferir também o blog do Don Smith, a seguir:
Ref.: http://blogs.msdn.com/donsmith
Thanks Don, for all the support! :)
Best Regards,
Waldemir.
Olá pessoal, tudo certo?
Semana passada eu estava com um time de desenvolvedores quando comentamos sobre alguns projetos interessantes do CodePlex, que sempre são boas dicas para consultas.
A lista ficou tão legal que aproveito o post para compartilhar com vocês, a seguir:
patterns & practices – Enterprise Library
Ref.: http://entlib.codeplex.com/
patterns & practices: Composite WPF and Silverlight
Ref.: http://compositewpf.codeplex.com/
patterns & practices Application Architecture Guide 2.0
Ref.: http://apparchguide.codeplex.com/
patterns & practices: WCF Security Guidance
Ref.: http://wcfsecurity.codeplex.com/
Visual Studio 2010 Quick Reference Guidance
Ref.: http://vs2010quickref.codeplex.com/
patterns & practices Improving Web Services Security Guide
Ref.: http://wcfsecurityguide.codeplex.com/
O recém lançado:
patterns & practices SharePoint Guidance
Ref.: http://spg.codeplex.com/
E os mais antigos:
patterns & practices - Smart Client Guidance
Ref.: http://smartclient.codeplex.com/
Web Service Software Factory
Ref.: http://servicefactory.codeplex.com/
patterns & practices: Team Development with Visual Studio Team Foundation Server
Ref.: http://tfsguide.codeplex.com/
Um belo material, sem dúvida! Fica a dica de consulta!
Por enquanto é só! Até o próximo post :)
Waldemir.
Olá pessoal, tudo certo?
Um assunto que é emergente na plataforma Microsoft é o Windows Server AppFabric (antigo “Dublin”), uma extensão para o Windows Server 2008 que o torna um container perfeito para serviços e workflows. Estive com diversos grupos essa semana, falando sobre container de serviços e processos e o AppFabric é realmente uma novidade na plataforma que deve atender diversas necessidades em ambientes de SOA.
Por que o AppFabric é importante?
- Pensando em soluções, o AppFabric torna o Windows Server um container para serviços e workflows com recursos de administração, monitoração, caching e persistência muito interessantes para um ambiente de TI.
Antes do AppFabric, para o container de serviços e processos você tinha como opção os seguintes hosts:
- IIS6 (W2K3), IIS7 (W2K8)
- WAS – Windows Activation Service (W2K8)
- Serviço doméstico (Windows Service)
- Na própria aplicação (Managed Application)
Cada host acima oferece benefícios e restrições próprios, envolvendo segurança, protocolos suportados, nível de administração, monitoração, etc. Com o AppFabric, a administração de um Application Server torna-se mais eficiente e com mais recursos para o ITPro e para o Desenvolvedor.
A arquitetura geral do Windows Server AppFabric é dada abaixo, veja:
No desenho acima temos em destaque os componentes de serviços e workflows, que são hospedados sobre o AppFabric on-premise. Para esses componentes, o AppFabric oferece aspectos de persistência, hosting, monitoração e caching, que facilitam a administração de um ambiente de serviços e processos, comum em cenários de SOA, por exemplo.
Um outro destaque nessa arquitetura é a camada de cache, oferecida através do projeto codenome “Velocity”. Esse framework oferece uma infraestrutura de cache unificado, facilitando o desenvolvimento de aplicações com necessidades de baixa latência ou alto desempenho. Podemos utilizar a camada de cache “Velocity” para a persistência de variáveis de sessão em memória, tabelas de consulta, etc, eliminando viagens ao banco de dados ou operações de I/O.
Se você ficou interessante sobre o “Velocity”, recomendo conferir também o projeto no CodePlex, a seguir:
Ref.: http://velocityshop.codeplex.com/
Note ainda que aspectos de monitoração e persistência para workflows são nativos da infraestrutura AppFabric, facilitando esse tipo de implementação. Até o AppFabric, monitoração e persistência eram recursos que precisavam ser implementados de forma explícita em sua aplicação, gerando um trabalho extra de desenvolvimento.
Sobre os recursos presentes no Windows Server AppFabric, vale destacar os links abaixo:
Architectural Overview
Ref.: http://msdn.microsoft.com/en-us/library/ee677374.aspx
Cache Concepts (Velocity)
Ref.: http://msdn.microsoft.com/en-us/library/ee790849.aspx
Persistence Concepts
Ref.: http://msdn.microsoft.com/en-us/library/ee677272.aspx
Hosting Concepts
Ref.: http://msdn.microsoft.com/en-us/library/ee677371.aspx
Em breve vamos falar mais sobre o AppFabric como container de serviços sobre o Windows Server 2008 R2. Estou preparando minhas demos por enquanto, mas o assunto será muito importante ao longo do ano.
Atualmente, você já pode experimentar o AppFabric a partir dos links abaixo:
Windows Server AppFabric Beta 1
Ref.: http://www.microsoft.com/downloads/details.aspx?FamilyID=0bd0b14f-d112-4f11-94bf-90b489622edd&displaylang=en
Windows Server AppFabric
Ref.: http://msdn.microsoft.com/pt-br/windowsserver/ee695849(en-us).aspx
Para a instalação do pacote Beta 1 do AppFabric, vale atenção na escolha do arquivo correto, de acordo com a tabela abaixo:
Se você ficou interessado no Windows Server AppFabric, não deixe de conferir as sessões apresentadas durante o PDC09, abaixo:
Workflow Services and Windows Server AppFabric
Ref.: http://microsoftpdc.com/Sessions/FT14
Scaling Your Data Tier with Windows Server AppFabric
Ref.: http://microsoftpdc.com/Sessions/FT26
Application Server Extensibility with Microsoft .NET 4 and Windows Server AppFabric
Ref.: http://microsoftpdc.com/Sessions/FT27
Fique ligado!
Por enquanto é só! Até o próximo post :)
Waldemir.