Service Oriented Architecture SOA

Documentos relacionados
Service Oriented Architecture SOA

UFG - Instituto de Informática

UNIVERSIDADE. Sistemas Distribuídos

Web services. Um web service é qualquer software que está disponível através da Internet através de uma interface XML.

Web Services. (Introdução)

Integração de sistemas utilizando Web Services do tipo REST

REST Um Estilo de Arquitetura de Sistemas Distribuídos

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa

Serviços Web: Arquitetura

Introdução a Web Services

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP

Web Services. Integração de aplicações na Web. Sistemas Distribuídos

Programação Cliente em Sistemas Web

3 Serviços na Web (Web services)

Serviços Web: Introdução

Arquiteturas SOA, WOA, e REST

PROGRAMA DE MBA em Gestão e Engenharia do Produto. O Produto Internet e suas Aplicações

Kassius Vargas Prestes

Microsoft.NET. Desenvolvimento Baseado em Componentes

SOA Introdução. SOA Visão Departamental das Organizações

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.

Sistemas Distribuídos na Web. Pedro Ferreira DI - FCUL

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Desenvolvimento Cliente-Servidor 1

WOW Mobile Rui Miguel Miranda Ramos

Web Services REST. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

2 Conceitos relativos a Web services e sua composição

Web Services e SOAP. Alexandre Zua CaldeiraTecnologias de Middleware 2006/ Faculdade de Ciências da Universidade de Lisboa

Projecto Integrador. Introdução ao REST. Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 1

INTERNET. TCP/IP protocolo de comunicação sobre o qual se baseia a Internet. (conjunto de regras para a comunicação entre computadores)

SISTEMAS DISTRIBUIDOS

Web Services. Autor: Rômulo Rosa Furtado

Sistemas Distribuídos Arquiteturas Middlewares

Camadas de Software - o Middleware. Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas. Aplicações. Middleware.

18/04/2006 Micropagamento F2b Web Services Web rev 00

Criando e consumindo Web service REST com PHP e JSON. Palestrante: Weiberlan Garcia

REST. Caio Nakashima

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Programação para Internet Avançada. 4. Web Services. Nuno Miguel Gil Fonseca

Sistemas Distribuídos

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

Web Services: Metodologias de Desenvolvimento

INE Sistemas Distribuídos

SOA - Service Oriented Architecture. Marcelo Canevello Ferreira

Introdução a Web Services

Sistemas Distribuídos

CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida

Projecto Integrador. Introdução ao REST. Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 1

Projeto: Plataforma de Integração. Data: 01/08/2014

TC - IOT M2M CORE Services Protocol. Mensagens do FemtoM2M. Versão: 1.0 Data:

Universidade da Beira Interior

Sistemas Distribuídos

WSDL e UDDI. Pedro Miguel Martins Nunes WSDL. WSDL Exemplo prático Resumo UDDI. Serviço UDDI Estruturas de dados UDDI e WSDL API Resumo

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

CONSTRUÇÃO DE APLICAÇÕES DISTRIBUÍDAS UTILIZANDO SERVIÇOS WEB

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio


Integração Orientada a Serviços

Integre pela Internet com os Web Services OpenEdge

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Service Oriented Architecture (SOA)

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

R/3 e SAP WAS. 8/28/2003 José Alves Marques. R/3 e SAP WAS(2)

: : Interoperabilidade entre Sistemas de Informação baseados na WEB - uma abordagem Multicanal

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Sistemas Distribuídos

Web Services: Metodologias de Desenvolvimento Carlos J. Feijó Lopes José Carlos Ramalho Fevereiro de 2004

Desenvolvimento de Aplicações Web

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE. Kellen Kristine Perazzoli 1, Manassés Ribeiro 2 RESUMO

SOA. Service Oriented Architecture. Maxmiliano Franco Braga

Modelos de Arquiteturas. Prof. Andrêza Leite

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Componentes para Computação Distribuída

DISTRIBUTED SYSTEMS ARCHITECTURES. Ian Sommerville, 8º edição Capítulo 12 Aula de Luiz Eduardo Guarino de Vasconcelos

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas)

Anexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP

Tutorial. Introdução ao XML e tecnologias associadas. Aplicações e dialectos XML. Sessão Fevereiro XATA 06

Criando Web Services. Palestrante: Daniel Destro do Carmo

Sistemas Distribuídos e Paralelos

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)

Padrões Arquiteturais. Sistemas Distribuídos: Broker

RestFull WebServices. Rafael Nunes Arquiteto de Software / Instrutor Globalcode. Globalcode Open4Education

MADALENA PEREIRA DA SILVA SLA Sociedade Lageana de Educação DCET Departamento de Ciências Exatas e Tecnológica

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

Web Services. José Mocito. Web Services. Tecnologias de Middleware 2004/2005. Universidade de Lisboa. 11 de Novembro, 2004

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

com Repositórios Abertos

Uma Arquitectura Web para Serviços Web

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Sistemas Distribuídos

Transcrição:

Service Oriented Architecture SOA Arquitetura orientada aos serviços Definição: Arquitetura de sistemas distribuídos em que a funcionalidade é disponibilizada sob a forma de serviços (bem definidos e independentes) Objetivos: - Interoperabilidade de sistemas heterogéneos - Independência de plataformas e linguagens 2

Service Oriented Architecture SOA Arquitetura implementada em: CORBA: Common Object Request Broker Architecture. (Especificação muito completa mas difícil de implementar e de utilizar) DCOM : Distributed Component Object Model (MicroSoft) DCOM/Com+/ActiveX Sun-Oracle Java RMI (Remote Method Invocation) 3

Desvantagens : - Tecnologia proprietária - Específica para uma plataforma - Não interoperáveis - Necessário configurar Firewalls 4

Os Web Services surgem como uma nova resposta SOA - Usam HTTP como protocolo de transporte das mensagens - Com a explosão da web torna-se natural a escolha do transporte over-http - São descritos através de uma linguagem de descrição (em XML): WSDL (Web Services Description Language). Definição das operações suportadas. Definição dos Tipos utilizados. URL (Endpoint) do Web Service. etc. 5

Troca de Mensagens XML segundo o protocolo SOAP (Simple Object Access Protocol) 6

Web Services - Definições da Internet Definição do www consortium (W3C): A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machineprocessable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards. 7

Web Services - Definições da Internet Outras definições: - Web services are part of an effort to build a distributed computing platform for the Web - Web services are enabling technology for systematic application-toapplication interaction on the Web - A web service is a programmable component that provides a service and is accessible over the Internet. 8

Web Services (from http://www.w3.org/tr/ws-arch/#introduction) 9

Web Services Vantagens - Independência de plataformas e linguagens. - Standards abertos:. HTTP. SOAP. WSDL. XML - Menos suscetível a restrições de segurança (e.g. a nível de firewalls). Não há necessidade de configurar portos específicos. Tráfego trocado na rede é HTTP - Críticos argumentam que a performance (pelo facto de lidar com mensagens XML e HTTP) é inferior a um protocolo binário. 10

Web Services Arquitetura Publica Fornecedor do serviço Invoca Localizador Descoberta Utilizador do Serviço 11

Publicação processo, opcional pelo qual o fornecedor de WS dá a conhecer a existência do serviço. Regista o serviço no reservatório de WS (UDDI Universal Description, Discovery and Integration) Descoberta processo, opcional, através do qual uma aplicação cliente faz uma pesquisa sobre o reservatório de WS e toma conhecimento da existência do WS requerido. 12

Descrição a aplicação cliente tem acesso à interface do WS, à descrição das funcionalidades disponibilizadas, e aos tipos de mensagens que permitem aceder a essas funcionalidades. (WSDL - Web Services Description Language ) Invocação processo pelo qual cliente e servidor interagem, através da troca de mensagens. (SOAP - Simple Object Access Protocol) 13

XML extensible Markup Language - Linguagem de anotação estruturada de documentos - Apresentar a informação de forma estruturada facilita:. Validação. Reutilização. Normalização Ex.lo: <aluno> <nome> Maria Sousa</nome> <numero> 1111</numero> <curso> TSI</curso> </aluno> 14

SOAP Simple Object Access Protocol - Protocolo para a troca de mensagens, em formato XML, entre processos - Cada recetor de uma mensagem chama-se endpoint - Cada endpoint quando recebe uma mensagem:. Analisa-a verificando se alguma parte lhe é endereçada. Verifica se das partes que lhe são dirigidas alguma é para processar e executa as operações. Se parte da mensagem é para reenviar para outro endpoint retira a parte já processada e envia. 15

WSDL Web Services Description Language - Formato XML para descrever WS e a forma de os invocar - Quatro tipos básicos de operações (primitivas de transmissão):. Operação de pedido o servidor recebe um pedido mas não envia resposta. Operação de pedido/resposta o servidor recebe um pedido e envia uma resposta. Operação de solicitação/resposta o servidor envia uma mensagem ao cliente e recebe uma resposta. Operação de notificação mensagem enviada pelo servidor e para a qual não é esperada nenhuma resposta 16

UDDI Universal Description, Discovery and Integration - Projeto iniciado pela IBM, Microsoft e Ariba para criar um método standard capaz de divulgar e descobrir os WS (2000) - Consiste numa base de dados replicada de informação sobre WS (diversas empresas disponibilizavam réplicas da BD, IBM, Microsoft, SAP, Oracle) - Com um serviço de registo com três funções básicas:. Divulgação. Procura. Mapeamento Entretanto IB, SAP e Microsoft encerraram os seus nós (2006/2007) 17

RESTful Web Services REST - Representational State Transfer - SOAP um arquitetura baseada em mensagens. - REST é uma arquitetura para sistemas distribuídos de hypermedia sistemas onde recursos como texto, imagens, vídeo são guardados numa rede e ligados via hyperlinks (por ex.lo a WWW). 18

RESTful Web Services - Abstração fundamental é a noção de Recurso - Um recurso é uma entidade que tem um URI (Universal Resource Identifier) Roy Fielding (Co-Founder Apache) Architectural Styles and the Design of Network-based Software Architectures. PhD 2000. http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm 19

RESTful Web Services - REST web services comunicam (cliente/servidor) sobre o protocolo HTTP usando o vocabulário HTTP É uma arquitetura baseada na transferência de representações de recursos através de pedidos (requests) e respostas (responses). Os recursos são manipulados através de um conjunto fixo de operações: Métodos: PUT, GET, POST, DELETE. 20

RESTful Web Services Dados e funcionalidades são considerados recursos, e são acedidos pelos seus URIs (Uniform Resource Identifiers) - HTTP URI syntax (paths, parameters, etc.) - HTTP Response codes. As mensagens são auto-descritivas: Os recursos são desacoplados da sua representação, podendo o seu conteúdo ser acedido em vários formatos: xml, json (javascript object notation), html, plain text, PDF, JPEG, etc 21

Java API para RESTful Web Services Jax-RS Anotações Java-RS são usadas para definir recursos a as ações que podem ser realizadas sobre esses recursos: Uma Root resource class é um POJO que tem a anotação @path ou tem pelo menos um método anotado com um request method designator como: @GET, @PUT, @POST, @DELETE. Resource methods são métodos anotados com um request method designator 22

Java API para RESTful Web Services Jax-RS Anotações @Path - caminho relativo para a localização da classe exemplo: @Path ( /HelloWorld ) @Path ( /users/{username} ) - username é o nome de uma variável que é passada à aplicação. @GET pedidos HTTP GET. - O método Java anotado com @ GET vai processar 23

Java API para RESTful Web Services Jax-RS Exemplo: /** * Root resource (exposed at "HelloWorldApplication" path) */ @Path("HelloWorldApplication") A classe vai ser armazenada em / HelloWorldApplication public class HelloWorld { @Context private UriInfo context; /** Creates a new instance of HelloWorld */ public HelloWorld() { } 24

Java API para RESTful Web Services Jax-RS /** * Retrieves representation of an instance of HelloWorldApplicationWorld.HelloWorld * @return an instance of java.lang.string */ @GET @Produces("text/html") especifica o MIME media type em que o recurso vai ser enviado para o cliente public String gethtml() { return "<html lang=\"en\"><body><h1>hello, World!! PPX </body></h1></html>"; } 25

Java API para RESTful Web Services Jax-RS @POST @Consumes( text/plain ) especifica o MIME media type enviado pelo cliente para o recurso. public void posthtml(string message) { // } 26

Java API para RESTful Web Services Jax-RS Uma aplicação Jax-RS consiste em pelo menos um package com uma classe dentro de um war (web archive) 27

Java API para RESTful Web Services Jax-RS O endereço base a partir do qual os vários recursos de uma aplicação respondem pode ser construído usando a anotação, @ ApplicationPath numa subclasse de javax.ws.rs.core.application arquivada dentro do ficheiro war: 28

Java API para RESTful Web Services Jax-RS Exemplo do exercicio A (FP11): Para cada entity criada a partir das tabelas da base de dados, foi criado um stateless bean que expõe os recursos para aceder à respectiva tabela: @Stateless @Path("entities.customer") public class CustomerFacadeREST extends AbstractFacade<Customer> { @PersistenceContext(unitName = "ws1pu") private EntityManager em; public CustomerFacadeREST() { super(customer.class); } 29

Java API para RESTful Web Services Jax-RS @POST @Override @Consumes({"application/xml", "application/json"}) public void create(customer entity) { super.create(entity); } @PUT @Path("{id}") @Consumes({"application/xml", "application/json"}) public void edit ( @PathParam("id") Integer id, Customer entity) { super.edit(entity); } 30

Java API para RESTful Web Services Jax-RS public abstract class AbstractFacade<T> { private Class<T> entityclass; public AbstractFacade(Class<T> entityclass) { this.entityclass = entityclass; } protected abstract EntityManager getentitymanager(); public void create(t entity) { } getentitymanager().persist(entity); public void edit(t entity) { } getentitymanager().merge(entity); 31

Java API para RESTful Web Services Jax-RS @javax.ws.rs.applicationpath("webresources") URI base public class ApplicationConfig extends Application { @Override public Set<Class<?>> getclasses() { Set<Class<?>> resources = new java.util.hashset<>(); addrestresourceclasses(resources); return resources; } // As resource classes são registadas na aplicação. private void addrestresourceclasses(set<class<?>> resources) { resources.add(entities.service.customerfacaderest.class); resources.add(entities.service.discountcodefacaderest.class); resources.add(entities.service.micromarketfacaderest.class); } 32