Arquitecturas de Serviços
Internet Service Bus
João Pedro Martins jota@create.pt
http://blogit.create.pt/blogs/joaomartins
Agenda
S de Serviço
Serviços, SOA, SaaS e S+S
Internet Service Bus – BizTalk Services
Demo
P&R
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, …
Serviços: flexibilidade e reutilização
Aplicações Pessoas e Dispositivos Web 2.0 Portal Parceiros Legacy LOB Processo de Negócio Embebidos CloudComposição
Interacção e User Experience
Acesso a Conteúdos, BI, Colaboração, Mashups
Composição
Integração de Sistemas e Informação Processos de Negócio
Automatização e Optimização
Interoperabilidade baseada em standards
SOA - Duas visões
SOA como mecanismo transaccional SOA como forma de interacção Exposição Sistemas existentes Consumo
Recomendações adopção SOA
Começar pelas
necessidades de negócio
Não pelos interesses do ITFocar no benefício de
agilizar o negócio
Reutilização é benefício secundárioFocar no time to value
Não sobre-planear
Fornecer valor em
iterações
Adicionar funcionalidadesincrementalmente
Planear e
arquitectar para a mudança
(Não se fazem omeletes sem partiralguns ovos)
Recorrer a recursos
com experiência
• Não repetir os errosExposição
Requisito de negócio
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 mistoClientes finos e clientes inteligentes
User Experience rica e
adequada ao caso de uso
Evolução do SOA: SaaS, composição e S+S
Utilizador Interface Utilizador unificado Pessoas e Dispositivos Web 2.0 Portal Apoio cliente Portfolio de Serviços Finanças Produção Solução SaaS S. Financeiros Solução SaaS de Apoio ao Cliente Aplicações “Core” Aplicações “LOB”” Composição Software+ServiçosSoftware Continuum
Propriedade, Licença perpétua Tarifa Plana Subscrição Pay-per-useLocal Appliance Internet, cloud
IT Application service Provider (ASP)
SLA
Aplicações
Tradicionais
Saas
puro
Licenciamento
Localização
BizTalk Services
O Problema
Mainframes Bases de Dados B2B BPM Portais Disp. Móveis ERP
Integração de serviços “tradicional”
Enterprise Service Bus (ESB)
Internet Service Bus Enterprise Service Bus
...extendido à escala da Internet
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
Service Bus
Naming Messaging Identity Directory Eventing …
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
Arquitectura BizTalk Services
Internet Service Bus
Naming
Composition
Workflow Policy/Rules Processes Models …
Directory Identity
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
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
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:XMLRSS)
Routing
Desenvolvimento com interface Web
Formato declarativo
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
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
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 BizTalk RFID (BizTalk Server 2006 R2) Cliente WPF (.Net 3.0)Distribution Inventory
Manufacturing Quality Assurance Packaging Warehouse Reception
Distributed ’edge’sites running
BizTalk RFID
Dispositivos Leitura
• RFID fixed and mobile
readers
• Barcode scanners • PLCs, etc.
Camada Física
• RFID tags, barcodes • Biometric systems
• Environmental sensors, etc.
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
Business Intelligence
BAM for Process BI
SQL/SQL BI for data analytics
Aplicações de Negócio
Connect to multiple LOB apps Orchestrate business process Apply business logic
Building Blocks
Conectividade
Identidade e Controlo de Acessos Workflow (TBD) Microsoft
BizTalk Services
Ferramentas desenvolvimento BizTalk Services SDK Pre-Production EnvironmentNotas 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
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.aspxBizTalk Server 2006 R2
http://www.microsoft.com/biztalk/default.mspxBizTalk RFID
http://www.microsoft.com/biztalk/technologies/rfid/default.mspxPhidgets RFID reader
http://www.arquitecturadesoftware.org/blogs/joaomartins/archive/2007/07/2
Obrigado!
João Pedro Martins jota@create.pt
http://blogit.create.pt/blogs/joaomartins