Download - Aula-04-04-11-EngSwOrientadaServicos.pdf
-
Engenharia de Software
Orientada a Servios
Paulo Cesar Masiero
Engenharia de Software
-
2
Roteiro
Contexto
Arquiteturas Orientadas a Servios
Engenharia de Servios
Desenvolvimento de Software como Servio
Teste de Servios
Tpicos de Pesquisa
-
3
Roteiro
Contexto
Arquiteturas Orientadas a Servios
Engenharia de Servios
Desenvolvimento de Software como Servio
Teste de Servios
Tpicos de Pesquisa
-
4
Contexto
Premissas do desenvolvimento de software tradicional (mundo fechado): O mundo externo ao sistema desenvolvido muda muito devagar e
o software pode permanecer estvel por um longo perodo.
Todos os requisitos das interaes do sistema com o mundo externo (fechado) podem ser previamente elicitados.
As mudanas so feitas por meio de solicitaes que so organizadas por prioridades e em seguida implementadas, testadas e implantadas.
As mudanas so prejudiciais qualidade do software e devem ser evitadas.
-
5
Contexto Cenrio real e atual:
As premissas do desenvolvimento tradicional (mundo fechado) no so vlidas para muitos casos atualmente.
H muitas aplicaes que funcionam em um mundo aberto, em que o ambiente muda constantemente e o software deve se adaptar e reagir dinamicamente a essas mudanas.
No mundo aberto os sistemas podem localizar e utilizar funcionalidades dinamicamente, mesmo as que no estavam disponveis quando o software foi criado.
As mudanas devem ser abraadas, pois so naturais e inevitveis.
-
Servios como componente
reusvel So componentes reusveis, com baixo
acoplamento, encapsulam funcionalidade
discreta (que pode ser distribuda) e so
acessados por meio de programas.
Tem uma interface provides e no possui interface requires
Geralmente no armazena estado.
So usados em composies (ou aplicaes)
6
-
7
Roteiro
Contexto
Arquiteturas Orientadas a Servios
Engenharia de Servios
Desenvolvimento de Software como Servio
Teste de Servios
Tpicos de Pesquisa
-
8
Arquiteturas Orientadas a Servios
O servio o bloco de construo principal de um software orientado a servios
Servios so mdulos independentes e auto-contidos que oferecem funcionalidades de
negcio especficas.
Os servios so descritos de forma padronizada, possuem interfaces publicadas e
se comunicam com outros servios por meio de
invocaes remotas.
-
9
Arquiteturas Orientadas a Servios
Um servio pode assumir dois papis em uma arquitetura orientada a servios:
Servidor/Provedor
Prestador de um servio.
Possui interface publicada com a descrio dos servios prestados.
Cliente/Consumidor
Solicita (consome) servios de um provedor.
-
10
Arquiteturas Orientadas a Servios
Servios compartilham muitas caractersticas com os componentes de
software:
So auto-contidos
So altamente reusveis
So unidades de composio com interfaces bem definidas
So fornecidos como caixa-preta
-
11
Arquiteturas Orientadas a Servios
Existem algumas diferenas entre componentes e servios:
Servios devem ser mais fracamente acoplados do que os componentes
Os componentes podem ser instalados fisicamente na mquina de seus
clientes/consumidores enquanto os servios
so acessados apenas remotamente
-
12
Arquiteturas Orientadas a Servios
-
13
Servios Web
Um Web Service um tipo de servio, isto , uma instncia de uma ideia mais geral de servio.
Cada servio Web deve ser identificado por uma URI (Uniform Resource Identifier).
A comunicao entre os servios Web ocorre via protocolos como o SOAP (Simple Object Access Protocol).
-
14
Servios Web
As descries dos servios Web e suas interfaces so expressas por meio de um arquivo WSDL (Web Services Description Language).
A composio de servios 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 so baseados na linguagem XML
-
15
Exemplo
-
16
WSDL
Tem a funo de descrever o web service.
Informaes contidas no arquivo.wsdl:
O que o servio faz.
Como o consumidor pode invocar o servio.
Formatos das mensagens.
Tipos de dados envolvidos.
etc.
-
17
DOCUMENTO WSDL
DESCRIO ABSTRATA
DESCRIO 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
(Parmetros de entrada/sada)
Operaes disponibilizadas
pelo servio
Como o servio ser acessado
na rede, atravs de qual protocolo
Onde o servio est localizado p/
acesso endereo do servio na rede
-
18
-
19
-
Exemplo
Um sistema de informao em um carro
fornece aos motoristas informaes sobre o
clima, condies de trfego da estrada,
informaes locais etc. Ele ligado ao rdio
do carro para entregar ao um sinal a um
canal especfico. O carro tem receptor GPS
para descobrir sua posio e com base
nessa posio recebe informao de
servios como postos e restaurantes. O
motorista pode especificar a linguagem
desejada. 20
-
21
Roteiro
Contexto
Arquiteturas Orientadas a Servios
Engenharia de Servios
Desenvolvimento de Software como Servio
Teste de Servios
Tpicos de Pesquisa
-
22
Engenharia de servios o processo de desenvolvimento de
servios para reuso nas aplicaes orientadas a servios.
Os engenheiros devem assegurar que o servio desenvolvido representa uma abstrao reusvel que poderia ser til em diversos sistemas
Esse processo inclui a documentao e registro do servios
-
23
-
24
Engenharia de servios
o processo de desenvolvimento de servios para reso em aplicaes
orientadas a servios.
Existem trs atividades principais
Identificao de servio candidato
Projeto de interface do servio
Implementao e implantao de servio
-
25
Identificao de servio candidato
Envolve a compreenso e anlise dos processos de negcio de um organizao
para decidir quais servios reusveis so
necessrios para apoiar os processos
No existe uma frmula pronta para definir o que e o que no um servio
O resultado do processo de identificao uma lista de servios candidatos e seus
requisitos funcionais e no-funcionais
-
26
Identificao de servio candidato
Trs tipos fundamentais de servios:
Utilitrio
De negcios
De coordenao ou de processo
-
27
Identificao de servio candidato
Servios podem ser orientados a entidades ou a tarefas
Servios orientados a tarefas so os associados com alguma atividade, enquanto os orientados a entidade esto associados a alguma entidade do negcio.
preciso identificar os requisitos funcionais e no-funcionais de cada servio candidato
-
28
Identificao de servio candidato
A identificao de servios no simples, assim como no to simples decompor
um sistema em objetos ou componentes.
Existem mtodos de identificao de componentes a partir dos requisitos e
modelos de anlise que podem ser
utilizados na identificao de servios
-
29
Identificao de servio candidato
Ao pensar em possveis candidatos a serem fornecidos como servios, algumas perguntas devem ser respondidas:
1. Para um servio orientado a entidade, o servio associado a uma nica entidade lgica usada em diferentes processos de negcios? Quais operaes normalmente executadas sobre aquela entidade devem ser fornecidas?
-
30
Identificao de servio candidato
2. Para um servio orientado a tarefas, a
tarefa cumprida por diferentes pessoas na
organizao? Elas estaro prontas a aceitar
a inevitvel padronizao que ocorre
quando um nico servio fornecido?
3. O servio independente? Em que
extenso ele depende de outros servios?
-
31
Identificao de servio candidato
4 O servio precisa manter estado? Existe um banco de dados para manter este
estado? Em geral servios que dependem
de estado interno so menos reusveis.
5 O servio poderia ser usado por clientes fora da organizao? Ele pode ser
acessado interna e externamente?
-
32
Identificao de servio candidato
6 Espera-se que diferentes consumidores do servio tenham diferentes requisitos
no-funcionais? Se sim, isso sugere que
mais de uma verso de um servio deva
talvez ser implementada.
-
33
Projeto de interface de servio
necessrio definir as operaes e os parmetros de cada servio selecionado
na fase anterior
Deve-se projetar a interface do servio para minimizar a troca de mensagens o maior nmero de informaes possveis
deve ser passada de uma vez (Exemplo:
Garom)
-
34
Projeto de interface de servio
H trs estgios na especificao da interface:
Projeto de interface lgica: identificao das operaes associadas ao servio, as entradas e as
sadas, e as excees
Projeto de mensagem: estruturao das mensagens enviadas e recebidas pelo servio
Criao da interface: traduo do projeto lgico e das mensagens para uma descrio abstrata escrita em
WSDL.
-
35
Projeto de interface de servio
O estgio final do processo de projeto de servio traduzir o projeto de interface de
servio em WSDL
A traduo da especificao da interface para o WSDL pode ser feita manualmente,
mas em geral os ambientes de
desenvolvimento fazem isto
automaticamente
-
36
Implementao e Implantao
A implementao de um servio pode ser feita em diversas linguagens.
A linguagem em que o servio desenvolvido no importa muito para o
cliente final, pois a comunicao feita via
rede e com protocolos padronizados
-
37
Implementao e Implantao
Aps a implementao o servio deve ser publicado para acesso de seus
consumidores
Se o objetivo tornar o servio pblico para outras organizaes deve-se
registr-lo em um registro de servios
-
38
Servios de sistemas legados
Um dos usos mais importantes de servios a criao de wrappers em sistemas legados.
Esses sistemas podem ento ser acessados por meio da Web e integrado
com outras aplicaes, mesmo de forma
heterognea
-
39
Roteiro
Contexto
Arquiteturas Orientadas a Servios
Engenharia de Servios
Desenvolvimento de Software como Servio
Teste de Servios
Tpicos de Pesquisa
-
40
Desenvolvimento de software
como servio
Baseia-se na idia de compor e configurar servios para criar um servio composto
(composio).
Os servios envolvidos em uma composio podem ser:
criados especificamente para uma aplicao servios de negcios de uma empresa
parceira
reusados de um provedor externo
-
41
Desenvolvimento de software
como servio
Muitas empresas dedicam-se converso de aplicaes em servios. Com isso abre-se a possibilidade para ampliar o reuso dentro da empresa.
Os servios tambm so utilizados de forma interorganizacional entre fornecedores confiveis.
Em um cenrio mais amplo as empresas podem acessar mercados de servios para adquirir servios para suas composies.
-
42
Desenvolvimento de software
como servio
A composio de servios pode ser usada para integrar processos de negcios
separados a fim de fornecer um processo
integrado que oferea funcionalidades
extensas e mais completas.
Obs. No confundir com o termo software como servio usado para um tipo de modelo de negcio.
-
43
Desenvolvimento de software
como servio
Estgios no processo de construo de um servio composto (ou uma
aplicao):
1. Formular esboo de workflow
2. Descobrir servios
3. Selecionar servios
4. Refinar workflow
5. Criar programa de workflow
6. Testar servio
-
44
Composio de servios
Orquestrao
-
45
Composio de servios
Coreografia (Colaborao)
-
Exemplo de composio
Compartilhamento de recursos de alto desempenho.
Duas organizaes com workflows separados que colaboram entre si.
No exemplo usamos a linguagem grfica BPMN
46
-
47
-
48
Exemplo de processo
-
49
Composio de servios
processo BPEL
-
50
BPEL
Uma linguagem de especificao de composio de servios Web
usada para compor um conjunto de servios Web em um fluxo de negcios e funciona basicamente como um cdigo de ligao (glue code).
Possui mecanismos para especificar parceiros, variveis, atividades bsicas, estruturadas e de tratamento de dados.
A linguagem tambm trata eventos e excees.
-
51
Roteiro
Contexto
Arquiteturas Orientadas a Servios
Engenharia de Servios
Desenvolvimento de Software como Servio
Teste de Servios
Tpicos de Pesquisa
-
52
Teste de servios
Dificuldades e desafios
Aplicaes orientadas a servios so altamente dinmicas a longo prazo no ser capaz de saber quais servios sero
utilizados pelas aplicaes. Isto ser definido
em tempo de execuo
Os servios das composies esto sob o controle dos fornecedores
-
53
Teste de servios
Dificuldades e desafios
O comportamento no-funcional dos servios no depende apenas de como so usados nas
aplicaes. O uso por parte de outros consumidores
tambm influencia seu desempenho.
O modelo de pagamento de servios pode tornar o teste uma atividade muito cara. Se o servio for
gratuito, pode haver clusulas de quantidade de
invocaes por perodo de tempo.
-
54
Teste de servios
Dificuldades e desafios
Servios dependente de estados podem ser afetados por outros consumidores.
Servios esto em ambiente real de execuo (produo) e no esto em
ambientes de teste.
-
55
Perspectivas
Desenvolvedor/Fornecedor/Provedor
Cliente/Integrador
Certificador
Usurio final
-
56
Roteiro
Contexto
Arquiteturas Orientadas a Servios
Engenharia de Servios
Desenvolvimento de Software como Servio
Teste de Servios
Tpicos de Pesquisa
-
57
Tpicos de Pesquisa
Requisitos
Especificao
Integrao/Composio
Registros de servios
Teste
Manuteno
Monitorao
Certificao