DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS · DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS Web Services...

Post on 22-Jul-2020

3 views 0 download

Transcript of DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS · DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS Web Services...

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

Prof. Marcelo de Sá Barbosa

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

�MÓDULO 6: �Sistemas distribuídos baseados em coordenação.

�Coordenação de serviços Web

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

Coordenação de serviços Web

A infraestrutura SOAP suporta interações requisição-

resposta entre clientes e serviços web. Entretanto, muitas

aplicações úteis envolvem várias requisições que precisam

ser executadas em uma ordem em particular. Por exemplo,

ao se fazer reservas para um vôo, são reunidas as

informações sobre preço e disponibilidade, antes que as

reservas sejam feitas. Quando o usuário interage com

páginas web por intermédio de um navegador para fazer

reserva em um vôo ou para dar um lance em um leilão, a

interface fornecida pela navegador controla a sequência

em que as operações são executadas.

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

Transações distribuidas planas e aninhadas

Uma transação cliente se torna distribuída se ativa operações em

vários servidores diferentes. Existem duas maneiras distintas

pelas quais as transações distribuídas podem se estruturadas:

como transações planas e transações aninhadas.

Em uma transação plana, um cliente faz pedidos para mais de um

servidor.

Em uma transação aninhada, a transação de nível superior pode

abrir subtransações e assim sucessivamente em qualquer

profundidade de aninhamento.

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

(a) Flat transaction (b) Nested transactions

Client

X

Y

Z

X

Y

M

NT1

T2

T11

Client

P

T

T12

T21

T22

T

T

Transações distribuídas planas e aninhadas

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

Os servidores que executam pedidos como parte de uma

transação distribuida precisam se comunicar uns com os outros

para coordenar suas ações quando a transação é efetivada

Coordenação de uma transação distribuida

a.withdraw(10)

c.deposit(10)

b.withdraw(20)

d.deposit(20)

Client A

B

C

T1

T2

T3

T4

T

D

X

Y

Z

T = openTransaction

openSubTransactiona.withdraw(10);

closeTransaction

openSubTransactionb.withdraw(20);

openSubTransactionc.deposit(10);

openSubTransactiond.deposit(20);

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

Tem-se trabalhado em um modelo geral para a coordenação de

serviços web, o qual é semelhante ao modelo de transação

distribuida descrito anteriormente pois têm funções de

coordenador e participante que são capazes de atuar em

protocolos específicos, por exemplo, para executar uma transação

distribuida. Esse trabalho, que é chamado WS-Coordination é

descrito por Langworthy[2004].

Requisitos de coreografia: se destina a suportar interações entre

serviços web que geralmente são gerenciadas por diferentes

empresas e organizações.

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

�MÓDULO 8: �Introdução ao SOA

�Serviços

�Gerenciamento de Processos de Negócios

�MODULO 9: �SOA e Desempenho;

�SOA e Segurança;

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

SOA – SERVICE ORIENTED ARCHITECTURE

Process management facilitates organizational change supporting

innovation.

“SOA é uma abordagem arquitetural corporativa que permite a

criação de serviços de negócio interoperáveis que podem facilmente

ser reutilizados e compartilhados entre aplicações e empresas.”

Gartner Group

Businesses want change at the speed of business.

Is yours an innovation-driven business?

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

BPM

– Business process management

• BAM

– Business activity monitoring

• KPI

– Key performance indicator

• Organization, business, company, corporation, and enterprise

will be used interchangeably

• Free-form process layout in WebSphere Business Modeler

– The traditional flowchart layout with object attributes

• Swimlane process layout in Modeler

– Emphasis is on the handoffs between performers

• Governance

– Implementing standards, controls, and ownership of processes

throughout the enterprise

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

Service

– Web service: integration of machine-to-machine interaction over the Web

• SOA

– Service-oriented architecture

• J2EE (Java 2 Platform, Enterprise Edition)

– A programming platform

• Eclipse

– An open source platform-independent software framework

• Business object

– A set of attributes that represents a business entity

• Relationships (data cross-referencing)

– An association between two or more data entities

• WSDL

– Web Services Description Language

• BPEL

– Business Process Execution Language

• Process choreography

– The order in which services will be invoked

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

• Simple things do not necessarily need a model.

– The solution is relatively easy to construct.

– Few people collaborate or use the solution (often only one).

– The scope of future needs is unlikely to grow substantially.

• Certain complex systems must begin with a design or another

abstract representation.

– Construction of an office building needs architectural plans and a

mock-up for visualization.

• Modeling provides visualization of the entire system.

– Allows assessment of various options

– Communicates design risks before actual construction

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

A model serves as an abstraction of the item being built.

• Business analysts, engineers, scientists, and other

professionals who build complex structures or systems create

models.

– Sometimes the models are physical.

• Scaled mock-ups of airplanes, houses, or autos

– Sometimes the models are less tangible.

• Financial models, market trading simulations, electrical circuit

diagrams

• Traditional flow charts are a common method for representing

the paths of a process.

– Structure charts, or simple block diagrams with arrows, are often

used on whiteboards.

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

Web Services Description Language (WSDL) is the XMLbased

file that describes the Web service.

– The Web service request uses this file to bind to the service.

• SOAP is the XML-based protocol that the Web service request

uses to invoke the service.

• Universal Description Discovery and Integration protocol is the

registry that hosts the service broker.

– UDDI is similar to the Yellow Pages in a phone book.

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

�MODULO 9:

�SOA e Desempenho.

�SOA e Segurança.

30

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

SOA

O seu serviço está seguro?

31

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

ATAQUE x DEFESA

32

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

FOOTPRINT

33

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

SNIFFING, DATA TAMPERING, REPLAY-ATTACK, MITM

Man-in-the-middle-attack

34

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

SOLUÇÕES

35

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

ATAQUES DE FORÇA BRUTA XDOS – XML denial of service

36

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

SOLUÇÕES

37

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

CODE INJECTION - XML

38

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

SOLUÇÕES

39

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

PARSING ATTACKS

40

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS

SOLUÇÕES

XML Schema é uma linguagem baseada no

formato XML para definição de regras de

validação ("esquemas") em documentos no

formato XML41