engenharia de software orientada a serviços · 4 contexto • premissas do desenvolvimento de...
TRANSCRIPT
![Page 1: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/1.jpg)
Engenharia de Software
Orientada a Serviços
Paulo Cesar Masiero
Engenharia de Software
![Page 2: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/2.jpg)
2
Roteiro
• Contexto
• Arquiteturas Orientadas a Serviços
• Engenharia de Serviços
• Desenvolvimento de Software como
Serviço
• Teste de Serviços
• Tópicos de Pesquisa
![Page 3: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/3.jpg)
3
Roteiro
• Contexto
• Arquiteturas Orientadas a Serviços
• Engenharia de Serviços
• Desenvolvimento de Software como
Serviço
• Teste de Serviços
• Tópicos de Pesquisa
![Page 4: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/4.jpg)
4
Contexto
• Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido muda muito devagar e
o software pode permanecer estável por um longo período.
– Todos os requisitos das interações do sistema com o mundo externo (fechado) podem ser previamente elicitados.
– As mudanças são feitas por meio de solicitações que são organizadas por prioridades e em seguida implementadas, testadas e implantadas.
– As mudanças são prejudiciais à qualidade do software e devem ser evitadas.
![Page 5: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/5.jpg)
5
Contexto • Cenário real e atual:
– As premissas do desenvolvimento tradicional (mundo fechado) não são válidas para muitos casos atualmente.
– Há muitas aplicações que funcionam em um “mundo aberto”, em que o ambiente muda constantemente e o software deve se adaptar e reagir dinamicamente a essas mudanças.
– No mundo aberto os sistemas podem localizar e utilizar funcionalidades dinamicamente, mesmo as que não estavam disponíveis quando o software foi criado.
– As mudanças devem ser “abraçadas”, pois são naturais e inevitáveis.
![Page 6: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/6.jpg)
Serviços como componente
reusável • São componentes reusáveis, com baixo
acoplamento, encapsulam funcionalidade
discreta (que pode ser distribuída) e são
acessados por meio de programas.
• Tem uma interface “provides” e não
possui interface “requires”
• Geralmente não armazena estado.
• São usados em composições (ou
aplicações) 6
![Page 7: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/7.jpg)
7
Roteiro
• Contexto
• Arquiteturas Orientadas a Serviços
• Engenharia de Serviços
• Desenvolvimento de Software como
Serviço
• Teste de Serviços
• Tópicos de Pesquisa
![Page 8: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/8.jpg)
8
Arquiteturas Orientadas a Serviços
• O serviço é o bloco de construção principal de
um software orientado a serviços
• Serviços são módulos independentes e auto-
contidos que oferecem funcionalidades de
negócio específicas.
• Os serviços são descritos de forma
padronizada, possuem interfaces publicadas e
se comunicam com outros serviços por meio de
invocações remotas.
![Page 9: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/9.jpg)
9
Arquiteturas Orientadas a Serviços
• Um serviço pode assumir dois papéis em
uma arquitetura orientada a serviços:
– Servidor/Provedor
• Prestador de um serviço.
• Possui interface publicada com a descrição dos
serviços prestados.
– Cliente/Consumidor
• Solicita (consome) serviços de um provedor.
![Page 10: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/10.jpg)
10
Arquiteturas Orientadas a Serviços
• Serviços compartilham muitas
características com os componentes de
software:
– São auto-contidos
– São altamente reusáveis
– São unidades de composição com interfaces
bem definidas
– São fornecidos como caixa-preta
![Page 11: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/11.jpg)
11
Arquiteturas Orientadas a Serviços
• Existem algumas diferenças entre
componentes e serviços:
– Serviços devem ser mais fracamente
acoplados do que os componentes
– Os componentes podem ser instalados
fisicamente na máquina de seus
clientes/consumidores enquanto os serviços
são acessados apenas remotamente
![Page 12: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/12.jpg)
12
Arquiteturas Orientadas a Serviços
![Page 13: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/13.jpg)
13
Serviços Web
• Um Web Service é um tipo de serviço, isto é, é uma instância de uma ideia mais geral de serviço.
• Cada serviço Web deve ser identificado por uma URI (Uniform Resource Identifier).
• A comunicação entre os serviços Web ocorre via protocolos como o SOAP (Simple Object Access Protocol).
![Page 14: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/14.jpg)
14
Serviços Web
• As descrições dos serviços Web e suas interfaces são expressas por meio de um arquivo WSDL (Web Services Description Language).
• A composição de serviços Web é feita por meio de linguagens como a BPEL (Business Process Execution Language), mas podem ser usadas outras linguagens.
• Tanto SOAP quando WSDL e BPEL são baseados na linguagem XML
![Page 15: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/15.jpg)
15
Exemplo
![Page 16: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/16.jpg)
16
WSDL
• Tem a função de descrever o web service.
• Informações contidas no arquivo.wsdl:
– O que o serviço faz.
– Como o consumidor pode invocar o serviço.
– Formatos das mensagens.
– Tipos de dados envolvidos.
– etc.
![Page 17: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/17.jpg)
17
DOCUMENTO WSDL
DESCRIÇÃO ABSTRATA
DESCRIÇÃO CONCRETA
TYPES
MESSAGES
OPERATIONS
OPERATIONS
PORTTYPES
SERVICES
PORTS
BINDINGS
OPERATIONS
Tipos de dados usados e
definidos no documento WSDL
Mensagens enviadas e recebidas
Juntamente com suas partes
(Parâmetros de entrada/saída)
Operações disponibilizadas
pelo serviço
Como o serviço será acessado
na rede, através de qual protocolo
Onde o serviço está localizado p/
acesso – endereço do serviço
na rede
![Page 18: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/18.jpg)
18
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.labes.br/InfoTempo/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="InfoTempo" targetNamespace="http://www.labes.br/InfoTempo/">
<wsdl:types>
<xsd:schema targetNamespace="http://www.labes.br/InfoTempo/">
<xsd:element name="obterInfoTempo">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CEP" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="obterInfoTempoResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="clima" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
![Page 19: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/19.jpg)
19
<wsdl:message name="obterInfoTempoRequest">
<wsdl:part element="tns:obterInfoTempo" name="parameters"/>
</wsdl:message>
<wsdl:message name="obterInfoTempoResponse">
<wsdl:part element="tns:obterInfoTempoResponse" name="parameters"/>
</wsdl:message>
<wsdl:portType name="InfoTempoInterface">
<wsdl:operation name="obterInfoTempo">
<wsdl:input message="tns:obterInfoTempoRequest"/>
<wsdl:output message="tns:obterInfoTempoResponse"/>
</wsdl:operation>
</wsdl:portType>
![Page 20: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/20.jpg)
Exemplo
Um sistema de informação em um carro
fornece aos motoristas informações sobre o
clima, condições de tráfego da estrada,
informações locais etc. Ele é ligado ao rádio
do carro para entregar ao um sinal a um
canal específico. O carro tem receptor GPS
para descobrir sua posição e com base
nessa posição recebe informação de
serviços como postos e restaurantes. O
motorista pode especificar a linguagem
desejada. 20
![Page 21: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/21.jpg)
21
Roteiro
• Contexto
• Arquiteturas Orientadas a Serviços
• Engenharia de Serviços
• Desenvolvimento de Software como
Serviço
• Teste de Serviços
• Tópicos de Pesquisa
![Page 22: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/22.jpg)
22
Engenharia de serviços • É o processo de desenvolvimento de
serviços para reuso nas aplicações orientadas a serviços.
• Os engenheiros devem assegurar que o serviço desenvolvido representa uma abstração reusável que poderia ser útil em diversos sistemas
• Esse processo inclui a documentação e registro do serviços
![Page 23: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/23.jpg)
23
![Page 24: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/24.jpg)
24
Engenharia de serviços
• É o processo de desenvolvimento de
serviços para reúso em aplicações
orientadas a serviços.
• Existem três atividades principais
– Identificação de serviço candidato
– Projeto de interface do serviço
– Implementação e implantação de serviço
![Page 25: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/25.jpg)
25
Identificação de serviço candidato
• Envolve a compreensão e análise dos
processos de negócio de um organização
para decidir quais serviços reusáveis são
necessários para apoiar os processos
• Não existe uma fórmula pronta para definir
o que é e o que não é um serviço
• O resultado do processo de identificação é
uma lista de serviços candidatos e seus
requisitos funcionais e não-funcionais
![Page 26: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/26.jpg)
26
Identificação de serviço candidato
• Três tipos fundamentais de serviços:
– Utilitário
– De negócios
– De coordenação ou de processo
![Page 27: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/27.jpg)
27
Identificação de serviço candidato
• Serviços podem ser orientados a entidades ou a tarefas
• Serviços orientados a tarefas são os associados com alguma atividade, enquanto os orientados a entidade estão associados a alguma entidade do negócio.
• É preciso identificar os requisitos funcionais e não-funcionais de cada serviço candidato
![Page 28: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/28.jpg)
28
Identificação de serviço candidato
• A identificação de serviços não é simples,
assim como não é tão simples decompor
um sistema em objetos ou componentes.
• Existem métodos de identificação de
componentes a partir dos requisitos e
modelos de análise que podem ser
utilizados na identificação de serviços
![Page 29: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/29.jpg)
29
Identificação de serviço candidato
• Ao pensar em possíveis candidatos a serem fornecidos como serviços, algumas perguntas devem ser respondidas:
1. Para um serviço orientado a entidade, o serviço é associado a uma única entidade lógica usada em diferentes processos de negócios? Quais operações normalmente executadas sobre aquela entidade devem ser fornecidas?
![Page 30: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/30.jpg)
30
Identificação de serviço candidato
2. Para um serviço orientado a tarefas, a
tarefa é cumprida por diferentes pessoas na
organização? Elas estarão prontas a aceitar
a inevitável padronização que ocorre
quando um único serviço é fornecido?
3. O serviço é independente? Em que
extensão ele depende de outros serviços?
![Page 31: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/31.jpg)
31
Identificação de serviço candidato
4 – O serviço precisa manter estado? Existe
um banco de dados para manter este
estado? Em geral serviços que dependem
de estado interno são menos reusáveis.
5 – O serviço poderia ser usado por clientes
fora da organização? Ele pode ser
acessado interna e externamente?
![Page 32: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/32.jpg)
32
Identificação de serviço candidato
6 – Espera-se que diferentes consumidores
do serviço tenham diferentes requisitos
não-funcionais? Se sim, isso sugere que
mais de uma versão de um serviço deva
talvez ser implementada.
![Page 33: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/33.jpg)
33
Projeto de interface de serviço
• É necessário definir as operações e os
parâmetros de cada serviço selecionado
na fase anterior
• Deve-se projetar a interface do serviço
para minimizar a troca de mensagens – o
maior número de informações possíveis
deve ser passada de uma vez (Exemplo:
Garçom)
![Page 34: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/34.jpg)
34
Projeto de interface de serviço
• Há três estágios na especificação da interface:
– Projeto de interface lógica: identificação das
operações associadas ao serviço, as entradas e as
saídas, e as exceções
– Projeto de mensagem: estruturação das mensagens
enviadas e recebidas pelo serviço
– Criação da interface: tradução do projeto lógico e das
mensagens para uma descrição abstrata escrita em
WSDL.
![Page 35: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/35.jpg)
35
Projeto de interface de serviço
• O estágio final do processo de projeto de
serviço é traduzir o projeto de interface de
serviço em WSDL
• A tradução da especificação da interface
para o WSDL pode ser feita manualmente,
mas em geral os ambientes de
desenvolvimento fazem isto
automaticamente
![Page 36: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/36.jpg)
36
Implementação e Implantação
• A implementação de um serviço pode ser
feita em diversas linguagens.
• A linguagem em que o serviço é
desenvolvido não importa muito para o
cliente final, pois a comunicação é feita via
rede e com protocolos padronizados
![Page 37: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/37.jpg)
37
Implementação e Implantação
• Após a implementação o serviço deve ser
publicado para acesso de seus
consumidores
• Se o objetivo é tornar o serviço público
para outras organizações deve-se
registrá-lo em um registro de serviços
![Page 38: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/38.jpg)
38
Serviços de sistemas legados
• Um dos usos mais importantes de
serviços é a criação de “wrappers” em
sistemas legados.
• Esses sistemas podem então ser
acessados por meio da Web e integrado
com outras aplicações, mesmo de forma
heterogênea
![Page 39: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/39.jpg)
39
Roteiro
• Contexto
• Arquiteturas Orientadas a Serviços
• Engenharia de Serviços
• Desenvolvimento de Software como
Serviço
• Teste de Serviços
• Tópicos de Pesquisa
![Page 40: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/40.jpg)
40
Desenvolvimento de software
como serviço
• Baseia-se na idéia de compor e configurar
serviços para criar um serviço composto
(composição).
• Os serviços envolvidos em uma
composição podem ser:
– criados especificamente para uma aplicação
serviços de negócios de uma empresa
parceira
– reusados de um provedor externo
![Page 41: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/41.jpg)
41
Desenvolvimento de software
como serviço
• Muitas empresas dedicam-se à conversão de aplicações em serviços. Com isso abre-se a possibilidade para ampliar o reuso dentro da empresa.
• Os serviços também são utilizados de forma interorganizacional entre fornecedores confiáveis.
• Em um cenário mais amplo as empresas podem acessar “mercados de serviços” para adquirir serviços para suas composições.
![Page 42: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/42.jpg)
42
Desenvolvimento de software
como serviço
• A composição de serviços pode ser usada
para integrar processos de negócios
separados a fim de fornecer um processo
integrado que ofereça funcionalidades
extensas e mais completas.
• Obs. Não confundir com o termo “software
como serviço” usado para um tipo de
modelo de negócio.
![Page 43: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/43.jpg)
43
Desenvolvimento de software
como serviço
• Estágios no processo de construção de
um serviço composto (ou uma
aplicação):
1. Formular esboço de workflow
2. Descobrir serviços
3. Selecionar serviços
4. Refinar workflow
5. Criar programa de workflow
6. Testar serviço
![Page 44: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/44.jpg)
44
Composição de serviços
• Orquestração
![Page 45: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/45.jpg)
45
Composição de serviços
• Coreografia (Colaboração)
![Page 46: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/46.jpg)
Exemplo de composição
• Compartilhamento de recursos de alto
desempenho.
• Duas organizações com workflows
separados que colaboram entre si.
• No exemplo usamos a linguagem gráfica
BPMN
46
![Page 47: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/47.jpg)
47
![Page 48: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/48.jpg)
48
Exemplo de processo
![Page 49: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/49.jpg)
49
Composição de serviços
• processo BPEL
![Page 50: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/50.jpg)
50
BPEL
• Uma linguagem de especificação de composição de serviços Web
• É usada para compor um conjunto de serviços Web em um fluxo de negócios e funciona basicamente como um código de ligação (glue code).
• Possui mecanismos para especificar parceiros, variáveis, atividades básicas, estruturadas e de tratamento de dados.
• A linguagem também trata eventos e exceções.
![Page 51: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/51.jpg)
51
Roteiro
• Contexto
• Arquiteturas Orientadas a Serviços
• Engenharia de Serviços
• Desenvolvimento de Software como
Serviço
• Teste de Serviços
• Tópicos de Pesquisa
![Page 52: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/52.jpg)
52
Teste de serviços
• Dificuldades e desafios
– Aplicações orientadas a serviços são
altamente dinâmicas – a longo prazo não
será capaz de saber quais serviços serão
utilizados pelas aplicações. Isto será definido
em tempo de execução
– Os serviços das composições estão sob o
controle dos fornecedores
![Page 53: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/53.jpg)
53
Teste de serviços
• Dificuldades e desafios
– O comportamento não-funcional dos serviços não
depende apenas de como são usados nas
aplicações. O uso por parte de outros consumidores
também influencia seu desempenho.
– O modelo de pagamento de serviços pode tornar o
teste uma atividade muito cara. Se o serviço for
gratuito, pode haver cláusulas de quantidade de
invocações por período de tempo.
![Page 54: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/54.jpg)
54
Teste de serviços
• Dificuldades e desafios
– Serviços dependente de estados podem ser
afetados por outros consumidores.
– Serviços estão em ambiente real de
execução (produção) e não estão em
ambientes de teste.
![Page 55: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/55.jpg)
55
Perspectivas
• Desenvolvedor/Fornecedor/Provedor
• Cliente/Integrador
• Certificador
• Usuário final
![Page 56: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/56.jpg)
56
Roteiro
• Contexto
• Arquiteturas Orientadas a Serviços
• Engenharia de Serviços
• Desenvolvimento de Software como
Serviço
• Teste de Serviços
• Tópicos de Pesquisa
![Page 57: Engenharia de Software Orientada a Serviços · 4 Contexto • Premissas do desenvolvimento de software tradicional (“mundo fechado”): – O mundo externo ao sistema desenvolvido](https://reader033.vdocuments.pub/reader033/viewer/2022052717/5cc4fc8d88c993296f8cec0f/html5/thumbnails/57.jpg)
57
Tópicos de Pesquisa
• Requisitos
• Especificação
• Integração/Composição
• Registros de serviços
• Teste
• Manutenção
• Monitoração
• Certificação