A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Rails Standalone Rails como aplicação desktop por Fabio Akita - 2007 Surgeworks Brazil Rails Practice Manager Rails como aplicação desktop por Fabio Akita.

Apresentações semelhantes


Apresentação em tema: "Rails Standalone Rails como aplicação desktop por Fabio Akita - 2007 Surgeworks Brazil Rails Practice Manager Rails como aplicação desktop por Fabio Akita."— Transcrição da apresentação:

1 Rails Standalone Rails como aplicação desktop por Fabio Akita Surgeworks Brazil Rails Practice Manager Rails como aplicação desktop por Fabio Akita Surgeworks Brazil Rails Practice Manager

2 Obs. Software inacabado Discussão de idéias e conceitos

3 Por quê? Força de Vendas Suporte e manutenção Coleta de Dados Regiões sem cobertura Quiosques

4 Requerimentos O usuário precisa trabalhar offline A aplicação precisa ser atualizada Os dados precisam ser sincronizados

5 Problema 1 Offline

6 Ruby2Exe Ruby em Tar Tar com bootstrap

7 Ruby2Exe Problemas Descompacta em dir. temporário Não tem interface de cliente Suporte genérico a Ruby (não a Rails) Melhor para apps. menores

8 Joyent

9 Slingshot Interface de Usuário (Mac e Win) Encapsulamento de Apps. Ruby Suporte a Rails (Mongrel) Agora Open Source

10

11 Estrutura

12 Aplicação

13 Mongrel

14 Embedded Browser

15 GUI

16 Slingshot

17

18

19 Problema 2 Atualização

20 Open Source

21

22 Subversion

23

24

25 Problema 3 Sincronização

26 IDNameAge Usuário 1 IDNameAge Usuário 2 IDNameAge Servidor

27 IDNameAge 1David25 Usuário 1 IDNameAge Usuário 2 IDNameAge Servidor

28 IDNameAge 1David25 Usuário 1 IDNameAge 1Steve55 Usuário 2 IDNameAge Servidor

29 IDNameAge 1David25 Usuário 1 IDNameAge 1Steve55 Usuário 2 IDNameAge 1David25 1Steve55 Servidor

30 IDNameAge 1David25 Usuário 1 IDNameAge 1Steve55 Usuário 2 IDNameAge 1David25 1Steve55 Servidor

31 Google Gears Sincronização servidor-cliente Não é replicação bi-direcional Melhor para apps. tipo Readers Melhor como cache offline

32 Problemas Primary Keys sequenciais Rastreamento Identificação Comunicação Transferência de dados

33 Alex MacCaw

34 Acts As Syncable Primary Keys sequenciais Rastreamento Identificação Comunicação Transferência de dados

35 Primary Keys gem install uuidtools >> UUID.timestamp_create().to_s => "7030ef1c-4c60-11dc-861f-0016cbcc6803"

36 UUID 128-bits 1 trilhão de UUIDs / 1 nanoseg. por 10 bilhões de anos RFC (Version 4 - Random Numbers) Risco de Duplicar: levar um meteorito na cabeça

37 IDNameAge 7030ef1c-4c60-11dc-861f-0016cbcc6803 David25 Usuário 1 IDNameAge 0886defc-4c61-11dc-861f-0016cbcc6803 Steve55 Usuário 2 IDNameAge 7030ef1c-4c60-11dc-861f-0016cbcc6803 David defc-4c61-11dc-861f-0016cbcc6803 Steve55 Servidor

38 Rastreamento Slingshot

39 Rastreamento

40 Polymorphic Association

41

42 idTitle Post idpost_idComment Comments crudidtypedeleted_id Syncs

43 idTitle 1000New Post Post idpost_idComment Comments crudidtypedeleted_id create1000Post Syncs

44 idTitle 1000New Post Post idpost_idComment Hello World! Comments crudidtypedeleted_id create1000Post create2000Comment Syncs

45 idTitle 1000New Post Post idpost_idComment Hello World! Hello Again! Comments crudidtypedeleted_id create1000Post create2000Comment create2010Comment Syncs

46 idTitle 1000Editing Title Post idpost_idComment Hello World! Hello Again! Comments crudidtypedeleted_id create1000Post create2000Comment create2010Comment update1000Post Syncs

47 idTitle 1000Editing Title Post idpost_idComment Hello Again! Comments crudidtypedeleted_id create1000Post create2000Comment create2010Comment update1000Post destroy2000Comment2000 Syncs

48 idTitle 1000Editing Title Post idpost_idComment Hello! Comments crudidtypedeleted_id create1000Post create2000Comment create2010Comment update1000Post destroy2000Comment2000 update2010Comment Syncs

49 Identificação

50 UserStamp

51 Comunicação

52

53 Transferência de Dados

54 Processo

55 Handshake GET /syncs/handshake.yaml

56 Handshake GET /syncs/handshake.yaml session_id challenge_key

57 Handshake GET /syncs/handshake.yaml session_id challenge_key POST /syncs/handshake.yaml?client_id=&challenge_response=

58 Handshake GET /syncs/handshake.yaml session_id challenge_key POST /syncs/handshake.yaml?client_id=&challenge_response= 99/99/9999T99:99:99

59 Download GET /syncs/handshake.yaml session_id challenge_key POST /syncs/handshake.yaml?client_id=&challenge_response= 99/99/9999T99:99:99 POST /syncs/down.yaml&for_when= T99:99:99-99:99

60 Download GET /syncs/handshake.yaml session_id challenge_key POST /syncs/handshake.yaml?client_id=&challenge_response= 99/99/9999T99:99:99 POST /syncs/down.yaml&for_when= T99:99:99-99:99

61 Upload GET /syncs/handshake.yaml session_id challenge_key POST /syncs/handshake.yaml?client_id=&challenge_response= 99/99/9999T99:99:99 POST /syncs/down.yaml&for_when= T99:99:99-99:99 POST /syncs/up.yaml?syncs=

62

63

64 Requerimentos O usuário precisa trabalhar offline A aplicação precisa ser atualizada Os dados precisam ser sincronizados

65 Solução O usuário precisa trabalhar offline Joyent Slingshot A aplicação precisa ser atualizada Os dados precisam ser sincronizados

66 Solução O usuário precisa trabalhar offline Joyent Slingshot A aplicação precisa ser atualizada Subversion Client Os dados precisam ser sincronizados

67 Solução O usuário precisa trabalhar offline Joyent Slingshot A aplicação precisa ser atualizada Subversion Client Os dados precisam ser sincronizados Acts As Replica

68 Perguntas? code.google.com/p/actsasreplica

69 Obrigado!


Carregar ppt "Rails Standalone Rails como aplicação desktop por Fabio Akita - 2007 Surgeworks Brazil Rails Practice Manager Rails como aplicação desktop por Fabio Akita."

Apresentações semelhantes


Anúncios Google