Arquitecturas de Serviços Internet Service Bus João Pedro Martins jota@create.pt http://blogit.create.pt/blogs/joaomartins http://www.arquitecturadesoftware.org/blogs/joaomartins
Agenda S de Serviço Serviços, SOA, SaaS e S+S Internet Service Bus BizTalk Services Demo P&R 2
O que é um serviço? Funcionalidade acessível através de um mecanismo estruturado de troca de mensagens Não tem de ser SOAP+HTTP (WS-*) REST, XML, SOAP, imagens, JSON, etc., trocados via TCP, HTTP, MSMQ, WebSphere MQ, etc.
Orientação a Serviços/SOA Estilo arquitectural que foca na troca de mensagens entre serviços Emissor/Receptor em vez de Cliente/Servidor Independência e autonomia entre emissor e receptor Promoção de Loose Coupling Utilização de Standards para suporte a interoperabilidade WS-*, XML, RSS, 4
Serviços: flexibilidade e reutilização Web 2.0 Aplicações Portal Pessoas e Dispositivos Processo de Negócio Legacy LOB Embebidos Parceiros Cloud
SOA - Duas visões Consumo Guiado pelo Utilizador Composição Interacção e User Experience Acesso a Conteúdos, BI, Colaboração, Mashups SOA como forma de interacção Interoperabilidade baseada em standards Composição Integração de Sistemas e Informação Processos de Negócio Automatização e Optimização SOA como mecanismo transaccional Exposição Sistemas existentes
Recomendações adopção SOA Começar pelas necessidades de negócio Não pelos interesses do IT Focar no benefício de agilizar o negócio Reutilização é benefício secundário Focar no time to value Não sobre-planear Fornecer valor em iterações Adicionar funcionalidades incrementalmente Planear e arquitectar para a mudança (Não se fazem omeletes sem partir alguns ovos) Recorrer a recursos com experiência Não repetir os erros Consumo Exposição Requisito de negócio Composição
Desafios Serviços Como expôr e compor serviços de forma eficiente? Como encontrar e reutilizar serviços já existentes? Sistemas Como compôr serviços e tecnologias e pô-los a funcionar em harmonia? Como manter consistência face a mudanças nos vários módulos das aplicações distribuídas? Ciclo de Vida Como instalar e gerir o sistema como um todo? Como antecipar os problemas, removendo barreiras entre as fases do desenvolvimento?
Modelos aplicacionais Sistemas fechados/ tradicionais Possiblidade de adicionar e consultar informação Centrado nas necessidades da indústria, não no utilizador Mashups/Web 2.0 Vários sistemas de back-end/fonte com apresentação consolidada Importância da visibilidade em pesquisas web Modelo misto Clientes finos e clientes inteligentes User Experience rica e adequada ao caso de uso
Evolução do SOA: SaaS, composição e S+S Solução SaaS S. Financeiros Portfolio de Serviços Interface Utilizador unificado Finanças Portal Apoio cliente Web 2.0 Composição Solução SaaS de Apoio ao Cliente Produção Utilizador Aplicações Core Aplicações LOB Pessoas e Dispositivos Software+Serviços
Software Continuum Aplicações Tradicionais Saas puro Licenciamento Propriedade, Licença perpétua Tarifa Plana Subscrição Pay-per-use Localização Local Appliance Internet, cloud Gestão IT Application service Provider (ASP) SLA
BizTalk Services the Internet Service Bus
Portugal O Problema
Integração de serviços tradicional Portais BPM B2B Disp. Móveis Enterprise Service Bus (ESB) ERP CRM Mainframes Bases de Dados
...extendido à escala da Internet Service Bus Naming Messaging Identity Directory Eventing Enterprise Localmente Service (On-Premise) Bus Internet Service Cloud Bus BizTalk Server 2006 R2 Infra-estrutura SOA para comunicação loosely-coupled baseada em standards Automatização e gestão de processos de negócio Integração de sistemas Orientação (docs/exemplos) para implementações ESB disponível em www.codeplex.com/esb BizTalk Services Serviços de conectividade/troca de mensagens através de firewalls, identidade, e workflow Extensão a cenários entre organizações e aplicações compostas CTP R9 disponível em http://www.biztalk.net
BizTalk Services (ISB) Bus de serviços alojado na cloud em data centers Microsoft Disponibiliza serviços genéricos que facilitam desenvolvimento de aplicações SOA Conectividade/Relay Identidade e Autorização Workflow Desenvolvimento facilitado por SDK Facilidade ligação ao ISB e suporte a técnicas de programação Web Extensões ao.net 3.0 Actualmente em CTP (R9), sem custos
Arquitectura BizTalk Services Composition Workflow Policy/Rules Processes Models Naming Internet Service Bus Messaging Identity Directory Eventing
Identidade Bloco essencial da plataforma, responsável por Identificação e Controlo de Acessos Secure Token Service acessível publicamente via WS Claims-based authentication Permite federação com outras aplicações/sites Autorização nos endpoints geridos pelo serviço de conectividade (Listen, Send) Via API / Web UI Suporta CardSpace https://identity.biztalk.net/
Identidade gestão permissões
Conectividade Permite que aplicações atrás de firewalls registem endpoints no ISB, fazendo relay para troca de mensagens Possibilidade de registar endpoints no ISB Possibilidade de enviar mensagens para e de esse endpoint Endpoints identificados por URI s, ex: sb://connect.biztalk.net/services/createit/meuservico Implementa modelo 1-1, pub/sub ou comunicação directa Controlo de acessos feito com serviço de identidade http://connect.biztalk.net/
Identidade + Conectividade = Conectividade segura universal A Questão da Confiança
Workflow Possibilidade de executar workflows alojados no ISB Baseado em actividades WF específicas ao ISB, ex: Mapeamentos (ex:xml RSS) Routing Desenvolvimento com interface Web Formato declarativo Ainda não disponível
SDK Extensões à.net Framework para tornar mais fácil a utilização da plataforma e criar aplicações compostas Extensões ao WCF: novo binding para usar com ISB: relaybinding, encapsula toda a lógica de identificação/conectividade Pode ser configurado com WS-Security e WS-ReliableMessaging Utilizar em conjunto com.net 3.0/VS2005 Incompatível com Orcas /.Net 3.5 Exemplos de código Ajuda
Esquema geral
BizTalk Services e a Web.Net Framework 3.5/WCF inclui potencialidades de programação web, ex: Acesso a serviços usando GET/POST http://connect.biztalk.net/services/jota/images?id=50 Feeds RSS Estas potencialidades também existem no ISB
Oportunidades de Negócio (ISVs) Serviços Infraestruturais Ex: armazenamento de dados, workflow mais desenvolvido, logging, tracking Serviços de Negócio Ex: taxa de câmbio, serviço de catálogo de produtos, serviço de marcação de salas, anti-spam Soluções completas configuráveis Composição de serviços para construir soluções completas Modelo à-la-facebook, Salesforce.com, CRM Live Mercado de Serviços
Perguntas Frequentes Onde? http://www.biztalk.net Latest & Greatest: http://labs-ppe.biztalk.net/ Quanto? Não divulgado Quando? Divulgação de condições de utilização, SLA s, até ao final do ano Depois de.net 3.5 Versão on-premise /produto?...
DEMO BizTalk Services R9 BizTalk Server R2 BizTalk RFID
Cenário BizTalk Services Cliente WPF (.Net 3.0) BizTalk RFID (BizTalk Server 2006 R2)
Building Blocks Conectividade Identidade e Controlo de Acessos Workflow (TBD) Ferramentas desenvolvimento BizTalk Services SDK Pre-Production Environment Microsoft BizTalk Services Aplicações de Negócio Connect to multiple LOB apps Orchestrate business process Apply business logic Business Intelligence BAM for Process BI SQL/SQL BI for data analytics Gestão de Sensores e Serviços RFID Manage devices at the edge Add context and turn raw events into business-process relevant information Interpret events at the edge through filters, rules & alerts Dispositivos Leitura RFID fixed and mobile readers Barcode scanners PLCs, etc. Distributed edge sites running BizTalk RFID Camada Física RFID tags, barcodes Biometric systems Environmental sensors, etc. Manufacturing Quality Assurance Inventory Packaging Warehouse Distribution Reception
Notas finais O «S de Serviço» faz definitivamente parte das arquitecturas de sistemas actuais Objectivo: aumentar agilidade do negócio e flexibilidade dos sistemas ISB permite nova forma de desenhar e pensar aplicações, com: Loose coupling, interoperabilidade Possibilidade de expôr, compor e consumir serviços Plataforma tecnológica coerente local/cloud
Recursos BizTalk Services http://www.biztalk.net/ BizTalk Services Explained (video) http://channel9.msdn.com/showpost.aspx?postid=317646 SOA WebCast Series for Architects http://www.microsoft.com/soa Architect Journal http://msdn2.microsoft.com/en-us/arcjournal/default.aspx BizTalk Server 2006 R2 http://www.microsoft.com/biztalk/default.mspx BizTalk RFID http://www.microsoft.com/biztalk/technologies/rfid/default.mspx Phidgets RFID reader http://www.arquitecturadesoftware.org/blogs/joaomartins/archive/2007/07/2 9/biztalk-rfid-notes.aspx
Obrigado! João Pedro Martins jota@create.pt http://blogit.create.pt/blogs/joaomartins http://www.arquitecturadesoftware.org/blogs/joaomartins