Android - Truco Online Autores: Jacqueline de Moura Oliveira Thiago Negreiros da Silva Introdução A proposta Android Desenvolvimento do Servidor Google Protocol Buffer Desenvolvimento Cliente Android A proposta Android Alguns Celulares que suportam Android Continuum - Samsung Lynx 3D - fabricado pela Sharp Galaxy S - Samsung Desenvolvimento do Servidor Sistemas Distribuídos O que caracteriza um Sistema Distribuído Heterogeneidade: O sistema deve ser construído para funcionar em uma grande variedade de redes, sistema operacional, hardware, e linguagens de programação. Os protocolos de comunicação da Internet mascaram a diferença das redes, e o Middleware pode lidar com as outras diferenças. Facilidade de implementação por terceiros: Os componentes devem ter uma fácil interface de comunicação para que outros programadores possam fazer os componentes deles se comunicarem sem muitas dificuldades. Segurança: Encriptação pode ser utilizada para proteção adequada, protegendo assim as informações que são passadas pela rede. Tratamento de Erros: Como se trata de um Sistema Distribuído onde a comunicação é pela rede podem ocorrem diversos tipos de erros com os clientes ou com o próprio servidor, e estes erros devem ser tratados apropriadamente. Concorrência: A presença de múltiplos usuários em um Sistema Distribuído implica em múltiplos acessos simultâneos, sendo assim o sistema deve assegurar a integridade dos dados de cada requisição em particular. Transparência: O objetivo é encapsular os problemas do Sistema Distribuído para que o programador de uma aplicação cliente precise se preocupar com seus próprios problemas. Modelo peer-to-peer Modelo client server Subdivisões do Modelo client-server Thin-Client A lógica do aplicativo fica no servidor, sendo assim o cliente só se preocupa em requisitar os dados de que precisa. Fat-Client A lógica da aplicação fica no cliente, sendo assim o cliente faz toda a lógica e manda as informações para serem gravadas no servidor. Google Protocol Buffer Google Protocol Buffer Exemplo arquivo .proto // Person created with Protobuf message Person { required string name = 1; required int32 id = 2; optional string email = 3; repeated PhoneNumber phone = 4; enum PhoneType { MOBILE = 0; HOME = 1; WORK = 2; } message PhoneNumber { required string number = 1; optional PhoneType type = 2 [default = HOME]; } } Trabalhos correlatos Truco Montilla Trabalhos correlatos Poker King Sobre o projeto Desenvolvimento do Cliente Android Rokon - Framework Reconhecimento de Voz Trabalhos Futuros Para futuros trabalhos poderiam ser aproveitadas a estrutura de multiplayer e de jogo de cartas para criar outros jogos, como poker, tranca etc. com apostas como no truco Montilla. Podem ser adicionados bots com inteligência artificial para interagir com os usuários ou então aproveitar a estrutura básica de salas/comunicação entre os usuários para fazer alguma ferramenta de colaboração. Este trabalho(código fonte do servidor e do cliente) pode ser baixado com qualquer cliente SVN no seguinte endereço: https://trucoonline.googlecode.com/svn/trunk Considerações Finais Referências GOOGLE. Android Developers Guide, 2010. Disponível em: < http://developer.android.com/guide/index.html >. Acesso em: 03 ago. 2010. GOOGLE. Android Market, 2010. Disponível em: <http://www.android.com/market>. Acesso em: 03 ago. 2010. GOOGLE. Google Protocol Buffer,2010. Disponível em: <http://code.google.com/p/protobuf/>. Acesso em: 05 set. 2010. GOOGLE. Protobuf: examples, 2010. Disponível em: <http://code.google.com/apis/protocolbuffers/docs/overview.html>. Acesso em: 05 set. 2010. GOOGLE. Protobuf: ThirdPartyAddOns, 2010. Disponível em: <http://code.google.com/p/protobuf/wiki/ThirdPartyAddOns>. Acesso em: 05 set. 2010. KANNAN (Org.). JVM-Serializers, 2010. Disponível em: <https://github.com/eishay/jvm-serializers/wiki/>. Acesso em: 05 set. 2010. RICHARD. Rokon, 2010. Disponível em: <http://code.google.com/p/rokon/>. Acesso em: 20 set. 2010. SONG HO AHN. OpenGL VBO, 2010. Disponível em: <http://www.songho.ca/opengl/gl_vbo.html>. Acesso em: 20 set. 2010. COULOURIS, George; DOLLIMORE, Jean; KINDENBERG, Tim. Distributed Systems: concepts and design. 4. ed. Addison Wesley, 2005. LECHETA, Ricardo. Android: aprenda a criar aplicações para dispositivos móveis com Android SDK. 2. ed. Novatec, 2010.