datasnap e cloud - danysoft · deep dive agenda • rad cloud overview • dbexpress • novo api...

19
01/12/2011 1 DataSnap e Cloud Deep Dive Agenda RAD Cloud Overview DBExpress Novo API Cloud Novidades no DataSnap

Upload: others

Post on 22-May-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DataSnap e Cloud - Danysoft · Deep Dive Agenda • RAD Cloud Overview • DBExpress • Novo API Cloud • Novidades no DataSnap. ... Queue Azure Queue Service Amazon SQS. 01/12/2011

01/12/2011

1

DataSnap e Cloud

Deep Dive

Agenda

• RAD Cloud Overview

• DBExpress

• Novo API Cloud

• Novidades no DataSnap

Page 2: DataSnap e Cloud - Danysoft · Deep Dive Agenda • RAD Cloud Overview • DBExpress • Novo API Cloud • Novidades no DataSnap. ... Queue Azure Queue Service Amazon SQS. 01/12/2011

01/12/2011

2

API Cloud

Page 3: DataSnap e Cloud - Danysoft · Deep Dive Agenda • RAD Cloud Overview • DBExpress • Novo API Cloud • Novidades no DataSnap. ... Queue Azure Queue Service Amazon SQS. 01/12/2011

01/12/2011

3

O que é novo no API Cloud?

“Delphi API for accessing cloud application services from Amazon and Microsoft Azure.”

Serviços suportados pelo API Cloud

Storage Azure Blobs Service Amazon S3

Table Azure Table Service SimpleDB

Queue Azure Queue Service Amazon SQS

Page 4: DataSnap e Cloud - Danysoft · Deep Dive Agenda • RAD Cloud Overview • DBExpress • Novo API Cloud • Novidades no DataSnap. ... Queue Azure Queue Service Amazon SQS. 01/12/2011

01/12/2011

4

Convenção de nomes

• Amazon e Microsoft utilizam diferentes nomes para as mesmas coisas…

Container = Bucket

Blobs = Object

Page = Multipart

ACL = ACL (Access Control List)

Microsoft Azure

• Blob Storage– Unstructured storage– Defined Container– For storing large pieces of data such as: Images, Video, 

Documents, etc.

• Azure Tables– Scalable structured storage– NOSQL type tables– Entities stored in a table– Different set of properties made up of different types

• Queues– Persistent asynchronous messaging– Each message is up to 8kb long

Page 5: DataSnap e Cloud - Danysoft · Deep Dive Agenda • RAD Cloud Overview • DBExpress • Novo API Cloud • Novidades no DataSnap. ... Queue Azure Queue Service Amazon SQS. 01/12/2011

01/12/2011

5

Amazon WS

• Simple Storage Service (S3)– Blob Storage– Unstructured storage– Defined Container– For storing large pieces of data such as: Images, Video, Documents, 

etc.

• SimpleDB ‐ Tables– Scalable structured storage– NOSQL type tables– Entities stored in a table– Different set of properties made up of different types

• Simple Queue Service (SQS)– Persistent asynchronous messaging– Each message is up to 64kb long

Distribuição para Cloud

• O gestor de distribuição suporta:

– Microsoft Azure

– Amazon EC2

Page 6: DataSnap e Cloud - Danysoft · Deep Dive Agenda • RAD Cloud Overview • DBExpress • Novo API Cloud • Novidades no DataSnap. ... Queue Azure Queue Service Amazon SQS. 01/12/2011

01/12/2011

6

O que há de novo no DataSnap 

O que há de novo no DataSnap

• Enhancements

– Server

– REST Interfaces

– Callback

– Authentication Manager

• New DataSnap Monitoring and Control

Page 7: DataSnap e Cloud - Danysoft · Deep Dive Agenda • RAD Cloud Overview • DBExpress • Novo API Cloud • Novidades no DataSnap. ... Queue Azure Queue Service Amazon SQS. 01/12/2011

01/12/2011

7

Server 

• Suporte de informação de Proxy para ligações DataSnap HTTP em TSQLConnection e TDSRESTConnection

• Novo TDBXChannelInfo.DBXClientInfo(TDBXClientInfo record) que fornece:

– IP Address

– Protocol

– Application Name (se possível) – apenas em HTTP

Suporte HTTPS

• Para servidores stand‐alone DataSnap

• Para servidores stand‐alone WebBroker

• DataSnap wizards actualizados com suporte HTTPS

Page 8: DataSnap e Cloud - Danysoft · Deep Dive Agenda • RAD Cloud Overview • DBExpress • Novo API Cloud • Novidades no DataSnap. ... Queue Azure Queue Service Amazon SQS. 01/12/2011

01/12/2011

8

Gestor de Sessão

• Suporte de sessão para protocolo TCP/IP

• Suporte para “store” e “retrieve” Tobject nas sessões

• Sessões “criadas” e “destruídas” com o protocolo TCP/IP agora notificam o nowAddSessionEvent e RemoveSessionEvent

• Suporte para múltiplos Callback Tunnels na interface DataSnap REST

Gestor Callback Tunnel

• Classe TDSCallbackTunnelManager na unidade DSServer

• Permite o seguimento quando:

– Callback é adicionado ou removido

– Tunnel é criado ou encerrado

Page 9: DataSnap e Cloud - Danysoft · Deep Dive Agenda • RAD Cloud Overview • DBExpress • Novo API Cloud • Novidades no DataSnap. ... Queue Azure Queue Service Amazon SQS. 01/12/2011

01/12/2011

9

Callbacks 

• “Heavyweight callbacks” agora suportam a difusão para callbacks específicos

• GetAllChannelNames adicionado ao DSServerpara obter o nome de todos os canais callback

Eventos Callback no lado cliente

• As notificações de quando o gestor de Tunnelé aberto ou encerrado, ou quando os Callbacks são adicionados ou removidos, são também disponibilizadas para:

– Delphi DBX Client Events

– Delphi REST Client Events

– JavaScript REST Client Events

Page 10: DataSnap e Cloud - Danysoft · Deep Dive Agenda • RAD Cloud Overview • DBExpress • Novo API Cloud • Novidades no DataSnap. ... Queue Azure Queue Service Amazon SQS. 01/12/2011

01/12/2011

10

Eventos cliente Delphi DBX

• Componente TDSClientCallbackChannelManager, evento OnChannelStateChange

• Method signature:(Sender: TObject; const EventItem: TDSClientChannelEventItem);

• TunnelClosedByServer – tipo de evento para ligações fechadas pelo servidor ou perda de ligação

Eventos cliente Delphi REST

• Componente TDSRestClientChannel, evento OnChannelStateChange

• Method signature:(Sender: TObject; const EventItem: TDSRESTChannelEventItem);

• ChannelClosedByServer – tipo de evento para uma perda de ligação não‐esperada com o servidor

Page 11: DataSnap e Cloud - Danysoft · Deep Dive Agenda • RAD Cloud Overview • DBExpress • Novo API Cloud • Novidades no DataSnap. ... Queue Azure Queue Service Amazon SQS. 01/12/2011

01/12/2011

11

Eventos cliente JavaScript

• Cria‐se uma função que devolve um evento quando acontecer uma alteração no canal ou num dos seus callbacksvar channel = new ClientChannel (clientID, channelName);channel.onChannelStateChange = HandleChannelEvent;

• Se o servidor fechar o canal correctamente, o cliente terá um evento do tipo“ClientChannel. EVENT_CHANNEL_STOP”

• Se a ligação for perdida, o cliente terá um evento do tipo“ClientChannel. EVENT_SERVER_DISCONNECT”. 

Suporte de sessão JavaScript

• initSessionData function (inserverFunctionExecutor.js) poderá levar um segundo parâmetro (opcional)

• O parâmetro irá fazer referência à ID geral do cookie – dssessionid

• Vai permitir ter o controlo total sobre que aplicação utiliza cada ID/cookie de sessão

Page 12: DataSnap e Cloud - Danysoft · Deep Dive Agenda • RAD Cloud Overview • DBExpress • Novo API Cloud • Novidades no DataSnap. ... Queue Azure Queue Service Amazon SQS. 01/12/2011

01/12/2011

12

JSON results e REST calls

• O evento OnResult event foi adicionado aos componentes TDSHTTPWebDispatcher e TDSHTTPService

• Permite transformar o formato do resultado JSON em chamada REST

• Method signature:

(Sender: TObject; var ResultVal: TJSONValue; const Command: TDBXCommand; var Handled: 

Boolean);

Query parameters in REST calls

• GetInvocationMetadata().QueryParams

• Devolve uma TStrings que contém os valores dos parâmetros de todas as queries que passaram pelo URL da chamada REST

Page 13: DataSnap e Cloud - Danysoft · Deep Dive Agenda • RAD Cloud Overview • DBExpress • Novo API Cloud • Novidades no DataSnap. ... Queue Azure Queue Service Amazon SQS. 01/12/2011

01/12/2011

13

Monitorização e controloDataSnap

Monitorização e Controlo DataSnap

“DataSnap servers in XE2 are able to easily monitor connections, and close any TCP 

connection they wish.”

Page 14: DataSnap e Cloud - Danysoft · Deep Dive Agenda • RAD Cloud Overview • DBExpress • Novo API Cloud • Novidades no DataSnap. ... Queue Azure Queue Service Amazon SQS. 01/12/2011

01/12/2011

14

O que consegue fazer

• Ter controlo sobre as ligações cliente

• Monitorizar os pedidos cliente

• Limitar o número de pedidos por ligação

• Melhorar a segurança

• E mais…

Como funciona isso?

• Os componentes TDSTCPServerTransport têm dois novos eventos:

– onConnect

– onDisconnect

• As ligações estão relacionadas com um ID de sesão

Page 15: DataSnap e Cloud - Danysoft · Deep Dive Agenda • RAD Cloud Overview • DBExpress • Novo API Cloud • Novidades no DataSnap. ... Queue Azure Queue Service Amazon SQS. 01/12/2011

01/12/2011

15

Estar “à escuta” dos eventos TCP/IP

Detectando o desligar “normal”

• Por defeito, o evento OnDisconnect não será notificado se o cliente perder a ligação de internet de modo não‐esperado

• Este comportamento depende da configuração do sistema operativo

• Utilizar os métodos TDSTCPChannel para controlar este comportamento em cada ligação

– EnableKeepAlive

– DisableKeepAlive

Page 16: DataSnap e Cloud - Danysoft · Deep Dive Agenda • RAD Cloud Overview • DBExpress • Novo API Cloud • Novidades no DataSnap. ... Queue Azure Queue Service Amazon SQS. 01/12/2011

01/12/2011

16

Como utilizar o EnableKeepAlive

• Se a ligação estivar “parada” durante 10 segundos, então envia um pacote para verificar se o client ainda está…

Event.Channel.EnableKeepAlive(10000); 

Como utilizar o EnableKeepAlive

• Se o cliente não responde, o SO irá tentar enviar o pacote X vezes (Win 7 tenta 10x).

• Poderá especificar o número de milissegundos de intervalo entre tentativas se o cliente não responder

Event.Channel.EnableKeepAlive(10000, 100); 

Page 17: DataSnap e Cloud - Danysoft · Deep Dive Agenda • RAD Cloud Overview • DBExpress • Novo API Cloud • Novidades no DataSnap. ... Queue Azure Queue Service Amazon SQS. 01/12/2011

01/12/2011

17

KeepAlive Enablement

• Com o componente TDSTCPServerTransport

• Três novas propriedades:

– KeepAliveEnablement ‐ (Set: Default, Enabled, Disabled)

– KeepAliveTime ‐ Integer Milliseconds value

– KeepAliveInterval ‐ Integer Milliseconds value

Como utilizar o DisableKeepAlive

• Com o canal associado a determinada ligaçãoe chamar:

DisableKeepAlive;

Page 18: DataSnap e Cloud - Danysoft · Deep Dive Agenda • RAD Cloud Overview • DBExpress • Novo API Cloud • Novidades no DataSnap. ... Queue Azure Queue Service Amazon SQS. 01/12/2011

01/12/2011

18

Encerrar as ligações Client

• A ligação pode ser encerrada a qualquer momento

• O Channel fornece a instância da ligação

//Saber o Channel associado a determinada ligação e se conseguir, encerrá‐la

if FConnections.TryGetValue(Connection, Channel) then

Channel.Close; 

Demo

• Fazer o seguimento de todas as ligaçõesTCP/IP e correspondentes sessões

• Como encerrar manualmente uma ligaçãoTCP/IP a partir do servidor

• Como detectar quando um cliente perdeu a ligação à internet durante a ligação

Page 19: DataSnap e Cloud - Danysoft · Deep Dive Agenda • RAD Cloud Overview • DBExpress • Novo API Cloud • Novidades no DataSnap. ... Queue Azure Queue Service Amazon SQS. 01/12/2011

01/12/2011

19

Mais informações

• Mais informações em portugues sobre as novidades e promoções XE2 http://www.danysoft.com/embarcadero.pt

• Tem uma questão? Contacte com Danysoft http://www.danysoft.com/asp/formulario.php?lang=pt | 707 500260