Arquitetura SOA: Uso eficiente de Web Services, WSDL e UDDI José Francisco Salm Junior Diretor de Engenharia de Sistemas Instituto Stela M-II Instituto Stela Missão do Instituto Stela Conjugar a pesquisa científica com a inovação tecnológica na geração de conhecimento que vise o desenvolvimento das organizações e da sociedade Visão do Instituto Stela Ser referência internacional em inovação científica e tecnológica, elo entre academia e mercado, promotor de spin-offs empresariais e gerador de soluções de impacto sócio-econômico M-II 2 Agenda • Sociedade Orientada a Serviços • Conceitos em Service-Oriented Architecture (SOA) • Aspectos relevantes em Web Services e SOA M-II 3 Sociedade Orientada a Serviços Imagine se tivéssemos que fazer tudo sozinhos, sem puder contar com serviços de terceiros. M-II 4 Transformação do Artesão em Provedor de Serviços • Muito do que nossa sociedade é hoje provem da: – Especialização – Padronização – Escalabilidade • Nossa sociedade é quase que exclusamente orientada a serviços – – – – Transporte Telecomunicação Planos de Saúde Bibliotecas Virtuais / Busca especializada M-II 5 O que é SOA SOA é uma arquitetura de software que está baseada nos elementos de repositório de serviços, BUS de serviços e aplicação frontend. M-II 6 Principais elementos SOA Implementação SOA Serviços (Web Services) Repositório de Serviços) Regras de Serviços / SLA-WS Interface Aplicação Frontend Bus de Serviços Lógica na Instituição Dados M-II 7 Conectividade possibilita o processamento global da informação Internet LAN 1980 Web 1990 LAN WAN XML WS 2000 SOA 2010 Web Informação Local Global Processos M-II 8 O que são Web Services • Serviços Web são aplicações de negócio modulares • Nele é exposta a lógica de negócio em forma serviços sobre a Internet através de interfaces programáveis • Utiliza de protocolos de Internet com o propósito de fornecer meios para buscar, assinar e acessar esses serviços M-II 9 Modelo básico operacional dos Web Services • Serviços Web podem ser conceituados em um modelo simples operacional que tem um pouco em comum com o modelo padrão de comunicação • As operações são concebidas em 3 distintas regras e relacionamentos que definem os usuários e fornecedores dos serviços: – Service provider – Service broker – Service requestor M-II 10 Modelo básico operacional – Service provider: Desenvolvedor e publicador dos serviços (interage com o service broker); – Service broker: Responsável por registrar e descobrir os serviços na Web. Ele lista os vários tipos de serviços, descrições e locais do serviços que auxiliam o solicitante dos serviços (service requestor) a encontrar e acessar os serviços requiridos; – Service requestor: Usuário dos serviços. Ele localiza o serviço usando o service broker, invoca o serviço requerido e executa ele do service provider M-II Developing Java Web Services. Nagappan, et al (2004) 11 Árvore de Padrões Linguagens de Semântica Representação de IA Adaptado de: IBM Linguagens de Gestão de Conteúdo Linguagem de Processos Linguagens de Modelagem de Software M-II 12 Arquitetura em camadas (WS) Interface de Serviços com o usuário XML Schema +WSDL + SOAP Diálogo com o usuário (Troca de Mensagem) WSDL + SOAP Diretório de Serviços Broker (UDDI + WSDL) Coordenação dos Serviços Broker (UDDI + WSDL) M-II 13 Entidade de Informação em SOA • “No coração de um Web services está um problema complexo: com uma aplicação distribuída trata a necessidade de compartilhamento de dados” – Identificação e equivalência – Autenticação – Autorização e privacidade – mediação – sincronização fonte: The Dataweb: An Introduction to XDI, Drummond Reed et al. M-II 14 Entidades de informação em SOA • Diferentes dimensões estão presentes quanto a gerencia da informação agregada em uma SOA Identidade Conteúdo Entidades de Informação Estado Localização Replicação Privacidade Específico to SOA M-II 15 Padrões Web vs. Padrões Dataweb Web Dataweb 100% endereçamento de recurso URIs XRIs Representação comum e formato de link’s HTML XML/XDI HTTP XDI/HTTP XDI/SOAP Protocolo de intercâmbio fonte: Drummond Reed M-II 16 Padrões Web vs. Padrões Dataweb HTML HTML XML/ XDI XML/ XDI XDI Link contracts HTML HTML HTML HTML XML/ XDI XML/ XDI XML/ XDI XML/ XDI HTML HTML HTML HTML XML/ XDI XML/ XDI XML/ XDI XML/ XDI Website A fonte: Drummond Reed Website B Dataweb site A Dataweb site B M-II 17 Projeto de SOA e WS M-II 18 Possibilidades com os Padrões M-II 19 Especificando Contratos • Dois tipos diferentes de contratos: – Contrato de Utilização: contrato entre a interface do objeto e seus clientes; – Contrato de Realização: contrato entre a especificação do WS e sua implementação M-II 20 Contrato de Utilização • Define o relacionamento entre a interface do objeto WS e o cliente (usuário), e é especificado em forma de uma interface. – Operações: uma lista de operações que a interface dispoem, incluindo suas assinaturas e definições; – Modelo de Informação: a definição abstrata de uma informação ou estado existente entre o cliente e o objeto que dá suporte a interface. M-II 21 Contrato de Utilização Interface Cliente Especificação do WS utilização Pré-Condições : é uma afirmação que o componente assume ser verdade antes que uma operação seja invocada. Pós-Condição :é uma afirmação do componente garante imediatamente após a operação ser invocada. É um predicado sobre os parâmetros de entrada e de saída, bem como para o estado do componente logo após a operação ser invocada M-II 22 Onda SOA – ou esperar pela tsunami Especificação Semântica Especificação Avançada Especificação de Núcleo ? OWL e outros Adaptado de: IBM UDDI, BPEL WS-Security etc. SOAP, WSDL M-II 23 Obrigado! José Francisco Salm Junior [email protected] M-II 24