Você está na página 1de 46

Engenharia

de So-ware Orientada a Servios


Centro de Inform-ca - Universidade Federal de Pernambuco Sistemas de Informao Vinicius Cardoso Garcia vcg@cin.ufpe.br Slides originais elaborados por Ian Sommerville
O autor permite o uso e a modicao dos slides para ns did-cos

Tpicos da aula
Servios como componentes reusveis Engenharia de servios Desenvolvimento de soHware como servios

[if977] Engenharia de SoHware - SI - CIn - UFPE

Web services
Um web service uma instncia de uma noo geral de um servio:
an act or performance oered by one party to another. Although the process may be 8ed to a physical product, the performance is essen3ally intangible and does not normally result in ownership of any of the factors of produc8on.

A essncia de um servio portanto, que a prestao do servio independente da aplicao usando o servio. Provedores de servio podem desenvolver servios especializados e oferec-los a um conjunto de consumidores de servio (usurios) de diferentes organizaes
[if977] Engenharia de SoHware - SI - CIn - UFPE

Arquiteturas orientadas a servios


um meio de desenvolvimento de sistemas distribudos onde os componentes so servios dedicados. Os servios podem ser executados em computadores diferentes a par-r de provedores de servios diferentes. Protocolos padronizados foram desenvolvidos para apoiar a comunicao de servios e a troca de informaes.
[if977] Engenharia de SoHware - SI - CIn - UFPE 4

Arquiteturas orientadas a servios

Ian Sommerville, Engenharia de SoHware, 8. edio. Captulo 31 [if977] Engenharia de SoHware - SI - CIn - UFPE 5

Bene@cios do SOA
Os servios podem ser providos localmente ou terceirizados para provedores externos. Os servios so independentes de linguagem. Inves-mentos em sistemas legados podem ser preservados. A computao interorganizacional facilitada por meio da troca simplicada de informaes.
[if977] Engenharia de SoHware - SI - CIn - UFPE 6

Padres de Web services

Ian Sommerville, Engenharia de SoHware, 8. edio. Captulo 31 [if977] Engenharia de SoHware - SI - CIn - UFPE 7

Principais padres
SOAP
um padro de troca de mensagens que apia a comunicao entre servios.

WSDL (Web Service Deni-on Language)


Este padro permite que uma interface de servio e suas ligaes sejam denidas.

UDDI
Dene os componentes de uma especicao de servios que pode ser usada para descobrir a existncia de um servio.

WS-BPEL
um padro para linguagens de workow usado para denir a composio de servios.
[if977] Engenharia de SoHware - SI - CIn - UFPE 8

RESTful web services


Atualmente, padres web services tm sido cri-cados como padres heavyweight que so over-general e inecientes. REST (REpresenta8onal State Transfer) um es-lo arquitetural baseado na transferncia de representao de recursos de um servidor para um cliente. Este es-lo est subjacente a web como um todo e mais simples que SOAP / WSDL para a implementao de web services. Servios RESTFul envolvem uma menor sobrecarga do que os chamados 'grandes' web services e so u-lizados por muitas organizaes que implementam servios baseados em sistemas que no contam com servios prestados externamente.
[if977] Engenharia de SoHware - SI - CIn - UFPE 9

Cenrio de servios
Um sistema de informao no carro fornece aos motoristas informaes sobre clima, condies de trnsito, informaes locais, etc. Esse sistema est ligado ao rdio do carro, ento a informao entregue como um sinal em um canal de rdio especca. O carro equipado com receptor GPS para descobrir a sua posio e, com base nessa posio, o sistema acessa uma srie de servios de informao. Informaes podem ser entregues no idioma especicado pelo motorista.
[if977] Engenharia de SoHware - SI - CIn - UFPE 10

Sistema de informao baseado em servios no carro


Ian Sommerville, Engenharia de SoHware, 9. edio. Captulo 19
Weather info Facilities info gps coord Road traffic info Road locator Traffic info gps coord gps coord Service discovery Finds available services

Mobile Info Service Translator Language info Collates information command gps coord

Info stream

Receiver Receives information stream from services

Transmitter Sends position and information request to services

User interface Receives request from user

Radio Translates digital info stream to radio signal

Locator Discovers car position In-car software system

[if977] Engenharia de SoHware - SI - CIn - UFPE

11

Vantagens de SOA para esta aplicao


No necessrio decidir quando o sistema programado ou implantado, que fornecedor de servio deve ser u-lizado ou que servios especcos devem ser acessados.
medida que o carro se move, o soHware no carro usa o servio de descoberta de servios para encontrar o servio de informao mais adequada e que se liga a ele. Por causa do uso de um servio de traduo, que pode atravessar fronteiras e, portanto, tornar a informao local disponvel para as pessoas que no falam a lngua local.
[if977] Engenharia de SoHware - SI - CIn - UFPE 12

Engenharia de so-ware orientada a servios


As abordagens existentes para engenharia de soHware devem evoluir para ree-r a abordagem orientada a servios para o desenvolvimento de soHware
Engenharia de servios o desenvolvimento de servios conveis e reusveis
Desenvolvimento de soHware para reuso.

Desenvolvimento de soHware com servios o desenvolvimento de soHware convel, onde servios so componentes fundamentais
Desenvolvimento de soHware com reuso.
[if977] Engenharia de SoHware - SI - CIn - UFPE 13

Servios como componentes reusveis


Um servio pode ser denido como:
Um componente de soAware reusvel, no rmemente acoplado, que engloba a funcionalidade discreta, que pode ser distribudo e acessado por meio de programa. Um Web service um servio acessado que usa protocolos-padro da Internet e baseados em XML.

Uma cr-ca dis-no entre um servio e um componente, conforme denido no CBSE, que os servios so independentes
Os servios no tem uma interface requires. Os servios contam com comunicao baseada em mensagens com mensagens expressas em XML.
[if977] Engenharia de SoHware - SI - CIn - UFPE 14

Interao sncrona

Ian Sommerville, Engenharia de SoHware, 8. edio. Captulo 31 [if977] Engenharia de SoHware - SI - CIn - UFPE 15

Um pedido como uma mensagem XML

Ian Sommerville, Engenharia de SoHware, 8. edio. Captulo 31 [if977] Engenharia de SoHware - SI - CIn - UFPE 16

Web service descripOon language


A interface de servio denida em uma descrio de servio expressa em WSDL. A especicao WSDL dene:
Quais operaes o servio apia e o formato das mensagens que so enviadas e recebidas pelo servio; Como o servio acessado a ligao mapeia a interface abstrata em um conjunto concreto de protocolos; Onde o servio est localizado. Isto geralmente expresso como uma URI (Universal Resource Iden8er).

[if977] Engenharia de SoHware - SI - CIn - UFPE

17

Estrutura de uma especicao WSDL

Ian Sommerville, Engenharia de SoHware, 8. edio. Captulo 31 [if977] Engenharia de SoHware - SI - CIn - UFPE 18

Um fragmento de descrio WSDL

Ian Sommerville, Engenharia de SoHware, 8. edio. Captulo 31 [if977] Engenharia de SoHware - SI - CIn - UFPE 19

Engenharia de servios
o processo de desenvolvimento de servios para reuso em aplicaes orientadas a servios. O servio deve ser projetado como uma abstrao reusvel, que pode ser usada em sistemas diferentes. Envolve:
Iden-cao do servio candidato Projeto do servio Implementao do servio
[if977] Engenharia de SoHware - SI - CIn - UFPE 20

O processo de engenharia de servios

Ian Sommerville, Engenharia de SoHware, 8. edio. Captulo 31 [if977] Engenharia de SoHware - SI - CIn - UFPE 21

IdenOcao de servio candidato


Trs -pos fundamentais de servio
Servios de u-lidades que implementam funcionalidades gerais usada por diferentes processos de negcio. Servios de negcio que so associados uma funo especca de negcio, por exemplo, em uma universidade, registro de estudantes. Servios de coordenao que apiam processos compostos, tais como pedidos.

[if977] Engenharia de SoHware - SI - CIn - UFPE

22

Classicao de servios

Ian Sommerville, Engenharia de SoHware, 8. edio. Captulo 31 [if977] Engenharia de SoHware - SI - CIn - UFPE 23

IdenOcao de servios
O servio associado com uma nica en-dade lgica usada em diferentes processos de negcio? A tarefa aquela que cumprida por pessoas diferentes na organizao? O servio independente? O servio tem de manter o status? Uma base de dados necessria? O servio poderia ser usado por clientes de fora da organizao? Diferentes usurios de servios devem ter diferentes requisitos no funcionais?
[if977] Engenharia de SoHware - SI - CIn - UFPE 24

Servios de catlogo
Criado por um fornecedor para mostrar qual bem pode ser solicitado por outras empresas Requisitos de servios

Uma verso especca de catlogo deve ser criada para cada cliente. O catlogo poder ser baixado. A especicao e os preos de at 6 itens podem ser comparados. Recursos de browsing e pesquisa sero fornecidos. Uma funo que permita que a data de entrega seja prevista para itens pedidos ser fornecida. Pedidos virtuais sero apoiados que reservam produtos por 48 horas para permi-r que um pedido real seja colocada sero fornecidos.
[if977] Engenharia de SoHware - SI - CIn - UFPE 25

Catlogo requisitos no-funcionais


O acesso ser restrito aos empregados das organizaes credenciadas. Os preos e conguraes oferecidos para cada organizao sero condenciais. O catlogo estar disponvel de 0700 GMT a 1100 GMT. O catlogo ser capaz de processar at 10 solicitaes por segundo.
[if977] Engenharia de SoHware - SI - CIn - UFPE 26

Operaes de servios de catlogo

Ian Sommerville, Engenharia de SoHware, 8. edio. Captulo 31 [if977] Engenharia de SoHware - SI - CIn - UFPE 27

Projeto de interface de servio


Envolve pensar sobre as operaes associadas ao servio e s mensagens trocadas. O nmero de mensagens trocadas para completar uma solicitao de servio deve, normalmente, ser minimizado. Informaes de status de servio podem ser includas nas mensagens.

[if977] Engenharia de SoHware - SI - CIn - UFPE

28

Estgios de projeto de interface


Projeto de interface lgica
Inicia com os requisitos de servios e dene os nomes das operaes e parmetros associados ao servio. As excees tambm devem ser denidas.

Projeto de mensagem
Projetar a estrutura e a organizao das mensagens de entrada e de sada. Notaes, tais como a UML, so representaes mais abstratas que XML.

Descrio WSDL
A especicao lgica traduzida para uma descrio WSDL.
[if977] Engenharia de SoHware - SI - CIn - UFPE 29

Projeto de interface de catlogo

Ian Sommerville, Engenharia de SoHware, 8. edio. Captulo 31 [if977] Engenharia de SoHware - SI - CIn - UFPE 30

Estrutura de entrada e sada de mensagem

Ian Sommerville, Engenharia de SoHware, 8. edio. Captulo 31 [if977] Engenharia de SoHware - SI - CIn - UFPE 31

Implementao e implantao de servio


Pode envolver a programao de servios usando uma linguagem padronizada de programao ou uma linguagem de workow. Os servios devem, ento, ser testados, criando mensagens de entrada e vericando se as mensagens de sada produzidas so conforme esperadas. Implantao envolve a publicao do servio usando UDDI e sua instalao em um servidor Web. Os servidores atuais fornecem apoio para a instalao de servio.
[if977] Engenharia de SoHware - SI - CIn - UFPE 32

Uma descrio UDDI


Detalhes dos negcios que fornecem o servio. Descrio informal da funcionalidade fornecida pelo servio. Informaes sobre onde encontrar a especicao WSDL do servio. Informaes de assinatura que permitem que os usurios se registrem para obter atualizaes de servios.
[if977] Engenharia de SoHware - SI - CIn - UFPE 33

Servios de sistemas legados


Uma aplicao importante dos servios fornecer acesso funcionalidade embu-da em sistemas legados. Sistemas legados oferecem funcionalidade extensiva e isso pode reduzir o custo de implementao de servio. Aplicaes externas podem acessar essa funcionalidade por meio de interfaces de servio.
[if977] Engenharia de SoHware - SI - CIn - UFPE 34

Acesso a sistema legado

Ian Sommerville, Engenharia de SoHware, 8. edio. Captulo 31 [if977] Engenharia de SoHware - SI - CIn - UFPE 35

Desenvolvimento de so-ware com servios


Os servios existentes so compostos e congurados para criar novos servios compostos e aplicaes A base para composio do servio , frequentemente, um workow
Workows so sequncias lgicas de a-vidades que, juntos, modelam um processo coerente de negcio; Por exemplo, fornecer servios de reserva de viagens que permitem que reservas de vos, aluguel de carro e hotel sejam coordenados.

[if977] Engenharia de SoHware - SI - CIn - UFPE

36

Workow de pacote de frias

Ian Sommerville, Engenharia de SoHware, 8. edio. Captulo 31 [if977] Engenharia de SoHware - SI - CIn - UFPE 37

Construo por composio

Ian Sommerville, Engenharia de SoHware, 8. edio. Captulo 31 [if977] Engenharia de SoHware - SI - CIn - UFPE 38

Workow de reserva de hotel

Ian Sommerville, Engenharia de SoHware, 8. edio. Captulo 31 [if977] Engenharia de SoHware - SI - CIn - UFPE 39

Projeto e implementao de workow


WS-BPEL um padro XML para especicao de workows. Contudo, as descries WS- BPEL so longas e ilegveis. Notaes grcas de workow, tal como BPMN, so mais legveis, e as WS-BPEL podem ser geradas a par-r delas. Em sistemas interorganizacionais, workows separados so criados para cada organizao e ligados por meio de troca de mensagem.
[if977] Engenharia de SoHware - SI - CIn - UFPE 40

Interao entre workows

Ian Sommerville, Engenharia de SoHware, 8. edio. Captulo 31 [if977] Engenharia de SoHware - SI - CIn - UFPE 41

Teste de servios
O teste dedica-se a encontrar defeitos e a demonstrar que um sistema atende aos requisitos funcionais e no-funcionais. O teste de servio di}cil, visto que os servios (externos) so caixas-pretas. Tcnicas de teste baseadas em cdigo de programa fonte no podem ser usadas.

[if977] Engenharia de SoHware - SI - CIn - UFPE

42

Problemas de teste de servios


Servios externos podem ser modicados pelo provedor de servio, portanto, invalidam os testes que foram realizados. Ligao dinmica signica que o servio usado em uma aplicao pode variar os testes de aplicao no so, portanto, conveis. O comportamento no funcional do servio imprevisvel porque dependente da carga. Se os servios devem ser pagos quando forem usados, testar um servio pode ser oneroso. Pode ser di}cil invocar aes de compensao em servios externos, visto que estes podem se basear em falhas de outros servios que no podem ser simulados.
[if977] Engenharia de SoHware - SI - CIn - UFPE 43

Pontos-chave
Engenharia de soHware orientada a servios baseada na noo de que programas podem ser construdos pela composio de servios independentes que englobam funcionalidade reusvel. Interfaces de servios so denidas em WSDL. Uma especicao WSDL inclui a denio de -pos de interface e operaes, o protocolo de ligao usado pelo servio e a localizao do servio. Os servios podem ser classicdos como servios de u-lidades, servios de negcios ou servios de coordenao. O processo de engenharia de servio envolve a iden-cao de servios candidatos para implementao, denio de interface de servio e implementao, teste e implantao do servio.
[if977] Engenharia de SoHware - SI - CIn - UFPE 44

Pontos-chave
Interfaces de servio podem ser denidas para sistemas de soHware legados que podem, ento, ser reusados em outras aplicaes. O desenvolvimento de soHware usando servios envolve a criao de programas pela composio e congurao de servios para criar novos servios compostos. Modelos de processo de negcio denem as a-vidades e troca de informaes em processos de negcio. As a-vidades em processo de negcio podem ser implementadas por servios e, desse modo, o modelo de processo de negcio representa uma composio de servios. Tcnicas de teste de soHware baseadas em anlise de cdigo fonte no podem ser usadas em sistemas orientadas a servios que contam com servios fornecidos externamente.
[if977] Engenharia de SoHware - SI - CIn - UFPE 45

Leituras recomendadas
SOMMERVILLE, I. Engenharia de SoHware. 8. Ed. So Paulo: Pearson Educa-on, 2007
Captulo 31

[if977] Engenharia de SoHware - SI - CIn - UFPE

46

Você também pode gostar