Você está na página 1de 21

Ferramenta

de apoio ao professor para o controle de disciplinas u2lizando disposi2vo mvel

Acadmico Wagner Lino Orientador Dalton Solano dos Reis

Roteiro
Introduo Fundamentao terica Desenvolvimento Resultados e discusses Concluso e extenses Demonstrao

Introduo
ObjeDvos do trabalho
Efetuar o registro da frequncia GaranDr a integridade e autenDcidade das informaes atravs de criptograa Comunicao com a base de dados do CFN atravs de um webservice Armazenar os dados no aparelho uDlizando uma biblioteca de persistncia Atualizar as frequncias salvas em modo oine

Fundamentao Terica
CFN
Desenvolvido pela Diviso de Modalidades de Ensino (DME)

Xcode/ObjecDve-C
Ambiente para o desenvolvimento de aplicao iPhone/iPad e Mac OS X Linguagem criada nos anos 80 sendo resultado da unio da linguagem C com a orientao a objetos da linguagem Smalltalk

Fundamentao Terica
Webservice
Integrao/Comunicao Desenvolvido em linguagem Java Retorna os dados em formato JSON

Criptograa
Algoritmo assimtrico (RSA)

Persistncia
Biblioteca CoreData

Desenvolvimento
Requisitos
Disponibilizar uma interface grca para o registro da frequncia Comunicao atravs de um webservice com a base de dados do CFN

Desenvolvimento
Especicao

Desenvolvimento
Pacotes da aplicao

Desenvolvimento
Tcnicas e ferramentas uDlizadas
Xcode iPhone SDK 5.1 Simulador do iPhone Instruments Dia (Especicao) SQLite Database Browser

Desenvolvimento
Webservice <SOAP-ENV> b <SOAP-Body>

<mensagem> <string_criptografada>mtodo</string_criptografada> </mensagem> </SOAP-Body> </SOAP-ENV> 1) url = [NSURL URLWithString:@"hop://ava.furb.br/servicos/cfn/ webservice_cfn_json_crypt.php"]; 2) request = [NSMutableURLRequest requestWithURL:url]; 3) [request setHTTPMethod:@"POST"]; 4) [request setHTTPBody:[xml dataUsingEncoding:NSUTF8StringEncoding]];

Desenvolvimento
Criptograa
1) UDlizado o algoritmo RSA para criar a chave pblica, privada e chave geral atravs do mtodo generate_keys 2) Chamada do mtodo solicitaChaves do webservice passando a chave pblica e chave geral como parmetro 3) O retorno vai ser uma cadeia de caracteres conforme o exemplo: 83400585681889533178704403824517828810218100820833624 4) UDlizado o mtodo rsa_decrypt para desencriptar 5) O resultado do mtodo vai ser uma cadeia de caracteres conforme o exemplo: [{"chave":"139"}] 6) Chamada dos demais mtodos do webservice uDlizando este nmero para encriptar

Desenvolvimento
Persistncia
1) NSFetchRequest *request = [NSFetchRequest fetchRequestWithEnDtyName:@"Professor"]; 2) rerequest.predicate = [NSPredicate predicateWithFormat:@"usuario = %@ and senha = %@", usuario, senha]; 3) NSArray *objects = [context executeFetchRequest:request error:nil]; 4) professor = [NSEnDtyDescripDon insertNewObjectForEnDtyForName:@"Professor" inManagedObjectContext:context]; professor.usuario = usuario; professor.senha = senha; 5) [context save:nil];

Desenvolvimento
Atualizao de dados
1) [[NSNoDcaDonCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNoDcaDon object:nil]; 2) Reachability *reach = [Reachability reachabilityWithHostname:@"hop:// ava.furb.br/servicos/cfn/webservice_cfn_json_crypt.php"]; 3) [reach startNoDer]; 4) [reach isReachable] 5) Efetua o login se necessrio 6) Para cada frequncia salva na Pool chamado o mtodo do webservice que efetua a frequncia 7) Remove a frequncia da tabela de Pool

Desenvolvimento
Operacionalidade da aplicao

Resultados e Discusses
Performance
Webservice (Tempo em milisegundos)

Resultados e Discusses
Performance
Interface (Tempo em milisegundos)

Resultados e Discusses
Memria

Resultados e Discusses
Memria
- Baseline - Heapshot 1 Heapshot 2 Heapshot 3 Heapshot 4 954,23 KB 1,67 MB 98,71 KB 129,02 KB 40,07 KB

Concluso
Foi possvel registrar a frequncia e enviar os dados de forma criptografada para o webservice A aplicao no consome muito processamento Pode tornar-se uma ferramenta mais completa com a adio de novas funcionalidades

Extenses
Extenses
Implementao das demais funcionalidades do CFN disponibilizadas no webservice Sincronizao dos dados Verso para Android

Demonstrao

Demonstrao no simulador

Você também pode gostar