Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouLuca Vaz Alterado mais de 10 anos atrás
1
Rails Standalone Rails como aplicação desktop por Fabio Akita - 2007 Surgeworks Brazil Rails Practice Manager Rails como aplicação desktop por Fabio Akita - 2007 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
11
Estrutura
12
Aplicação
13
Mongrel
14
Embedded Browser
15
GUI
16
Slingshot
19
Problema 2 Atualização
20
Open Source
22
Subversion
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 4122 - (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 David25 0886defc-4c61-11dc-861f-0016cbcc6803 Steve55 Servidor
38
Rastreamento Slingshot
39
Rastreamento
40
Polymorphic Association
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 20001000Hello World! Comments crudidtypedeleted_id create1000Post create2000Comment Syncs
45
idTitle 1000New Post Post idpost_idComment 20001000Hello World! 20101000Hello Again! Comments crudidtypedeleted_id create1000Post create2000Comment create2010Comment Syncs
46
idTitle 1000Editing Title Post idpost_idComment 20001000Hello World! 20101000Hello Again! Comments crudidtypedeleted_id create1000Post create2000Comment create2010Comment update1000Post Syncs
47
idTitle 1000Editing Title Post idpost_idComment 20101000Hello Again! Comments crudidtypedeleted_id create1000Post create2000Comment create2010Comment update1000Post destroy2000Comment2000 Syncs
48
idTitle 1000Editing Title Post idpost_idComment 20101000Hello! Comments crudidtypedeleted_id create1000Post create2000Comment create2010Comment update1000Post destroy2000Comment2000 update2010Comment Syncs
49
Identificação
50
UserStamp
51
Comunicação
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=9999-99-99T99: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=9999-99-99T99: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=9999-99-99T99:99:99-99:99 POST /syncs/up.yaml?syncs=
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? www.akitaonrails.com code.google.com/p/actsasreplica
69
Obrigado!
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.