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

Slides:



Advertisements
Apresentações semelhantes
Instalação e Configuração
Advertisements

Desenvolvimento Web.
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas distribuídos
DNS Domain Name System.
O Paradigma Cliente/Servidor Prof. Carlos A. Maziero, PhD PPGIA PUCPR.
Invocação Remota de Procedimentos (RPC) Alexandre Bragança 2001 DEI / ISEP.
Engenharia de Software
Iniciando na plataforma Eclipse
Peer to Peer Referência:
ZK RIA com ZK Framework.
Simple Network Management Protocol (SNMP)
Linux Servidor de Redes WEB Prof. Roberto Amaral.
Apresentações Rich Media Áudio/Vídeo/Slides/Chat
Caio Nakashima Hibernate Associação Caio Nakashima
S ISTEMA DE G ERENCIAMENTO F INANCEIRO. O S I NTEGRANTES Caio Mac Cord Fernando Bianchini Pessoa Joel Ferreira José Enes Mateus Mauricio Lederer.
Controle de Versão SVN e Tortoise SVN
Obtenção de IP TCP UDP.
Introdução às Redes Privadas Virtuais - VPN
A PRESENTAÇÃO I NIT N ET A INIT NET é uma empresa idealizada no final de 1999 tendo como finalidade fornecer soluções comerciais baseadas em três pilares:
Nosso Negócio Comercialização de utilitários de uso geral e desenvolvimento de software sob medida.
Aplicativos Web Com Orientação a Objetos
Ubuntu Day [ SAMBA ] (Servidor de Compartilhamento de Arquivos e Impressoras) Sistema utilizado: Ubuntu Rodrigo Almeida Costa.
Atualização de Cadastro de Usuários
Desenvolvendo para a web com Grails
Fundamentos de Engenharia de SW
A Security Framework for Smart Grids
Cloud Computing Universidade Federal do Rio de Janeiro
Sistemas Distribuídos
Tópicos avançados em internet B Carlos Oberdan Rolim Ciência da Computação.
CCNA 1 – Modelos OSI e TCP/IP
Cliente.... E ele tem um problema grave e precisa de uma boa solução em software.
Tipos Abstratos de Dados
SEQUENCE, PROCEDURE, FUNÇÃO, TRIGGER
Programação WEB Transferência de Arquivos Prof. Timoteo Lange Junho2014.
Prognus Software Livre Airton Bordin Junior
Repositório do PBL-VS.
Projeto de Bloco: Engenharia de Software
“Menos é Mais!” Apresentação Alunos:
Apresentação da Linha de produtos ESET Business Linha de Produtos:
Felipe Ferreri Tonello
Educast.fccn.pt Procedimento de Upload de Vídeos por FTP Nelson Dias.
Aplicações Web com Orientação a Objetos
Profª Elaine Duarte Ano 2012 / 2013 – Aulas 100% presenciais INTERNET Londrina(PR) – Maringá(PR)
COMPUTAÇÃO NAS NUVENS.
Padrões de Interação com o Usuário
Introdução ao ASP.Net 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Aplicações de alto desempenho e Cache Distribuído com o Windows Server AppFabric Solutions Architect Hewlett-Packard Brasil.
XI Jornada de Informática Controlando Projetos com Netbeans e Subversion.
SQLite Banco de Dados II.
Servidor Cliente Cache 1 Cliente Cache 2 A,B A B A? A A A A,B Exemplo: Cache simples.
Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto.
Web Game Engine Mário Barbosa João Pascoal. Game Engine Um software com um conjunto de bibliotecas que serve para simplificar e abstrair e desenvolvimento.
Infra-Estrutura de Comunicação (IF678)
”The world's most advanced Open Source vulnerability scanner”
ZK RIA com ZK Framework.
N o ç õ e s de F T P F i l e T r a n s f e r P r o t o c o l.
NOÇÕES DE INTERNET E NAVEGADORES
Utilizando subversion como controle de versão
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Introdução ao Projeto.
RMI Java Remote Method Invocation em Java. Introdução Java Remote Method Invocation (Java RMI) permite desenvolver sistemas distribuídos baseados em Java.
ARQUITETURA WEB SERVICE TGM
Programação Web Comunicação entre Cliente e Servidor Leonardo IFRN.
Um Ambiente Web Moderno para Desenvolvimento e Produção de Software Paulo Mattos Diretor Técnico Olympya
Internet - Intranet - Extranet Internet Rede pública mundial Padrões e protocolos multiplataforma Intranet Rede privada, corporativa Mesmos protocolos.
Instalação e Utilização phpLDAPadmin
Escola de Ciência e Tecnologia Arquitetura TCP/IP Arquitetura TCP/IP Interface entre o Nível Lógico e Físico Protocolo IP Etienne César R. de Oliveira.
Title.
NoSQL.
Transcrição da apresentação:

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

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

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

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

Problema 1 Offline

Ruby2Exe Ruby em Tar Tar com bootstrap

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

Joyent

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

Estrutura

Aplicação

Mongrel

Embedded Browser

GUI

Slingshot

Problema 2 Atualização

Open Source

Subversion

Problema 3 Sincronização

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

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

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

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

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

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

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

Alex MacCaw

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

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

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

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

Rastreamento Slingshot

Rastreamento

Polymorphic Association

idTitle Post idpost_idComment Comments crudidtypedeleted_id Syncs

idTitle 1000New Post Post idpost_idComment Comments crudidtypedeleted_id create1000Post Syncs

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

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

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

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

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

Identificação

UserStamp

Comunicação

Transferência de Dados

Processo

Handshake GET /syncs/handshake.yaml

Handshake GET /syncs/handshake.yaml session_id challenge_key

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

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

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

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

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=

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

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

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

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

Perguntas? code.google.com/p/actsasreplica

Obrigado!