Mostrando postagens com marcador computação. Mostrar todas as postagens
Mostrando postagens com marcador computação. Mostrar todas as postagens

domingo, 18 de dezembro de 2011

Artigo publicado na capa da Java Magazine 98!

Olá!

Revista Java Magazine 98É com muita satisfação que digo que meu primeiro artigo em revistas foi publicado, e muito felizmente foi escolhido para ser a capa da Java Magazine edição 98!

Seu nome é "Padrões de projeto, aprecie com moderação". Este artigo é este sobre Padrões de Projeto e princípios para sua utilização adequada, que pode ser conferido como prévia, e acessado completamente por meio de assinatura do portal, no endereço abaixo:



Bibliografia utilizada (recomendo como ótimas leituras):
  • Applying UML and Patterns – An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd ed.); Craig Larman; Prentice Hall; 2004: é um livro referência quanto aos princípios GRASP, expondo-os de maneira clara e consistente.
  • Design Patterns: Elements of Reusable Object-Oriented Software; Erich Gamma,  Richard Helm, Ralph Johnson, John Vlissides; Addison-Wesley; 1994: é o catálogo oficial de padrões de projeto GoF.
  • Refactoring: Improving the Design of Existing Code; Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts; Addison-Wesley; 1999: é um livro sobre o processo de refatoração ágil. Discute muito sobre problemas causados por padrões de projeto.
  • Head First Design Patterns; Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra; O’Reilly, 2004: é um livro muito didático sobre padrões de projeto, apresenta várias reflexões interessantes.
De que se trata o artigo:
O artigo trata de apresentar princípios, discussões e reflexões sobre a utilização de padrões de projeto, para ajudar ao leitor a desenvolver senso crítico sobre os mesmos. Assim, o leitor poderá extrair de si mesmo o conhecimento para a aplicação de padrões de projeto com moderação.
Em que situação o tema útil:
O tema é útil por alertar ao desenvolvedor sobre a utilização adequada de padrões de projeto, que são soluções para determinados problemas, mas podem ser problemas para determinadas soluções. É importante ao desenvolvedor saber julgar a utilização de um padrão de projeto em um determinado contexto, avaliando sua aplicabilidade e consequências, buscando uma solução ótima.
Resumo DevMan:
O artigo apresenta reflexões a respeito da utilização de padrões de projeto, e descreve algumas causas comuns da má utilização dos mesmos, além de alguns exemplos de má implementação dos mesmos. Em seguida, mostra os princípios GRASP e sua relação com os padrões de projeto, para orientar o desenvolvedor a utilizá-los adequadamente. Ao final, disponibiliza perguntas para avaliar a implementação de um padrão de projeto e considerações para o leitor desenvolver senso crítico.

Se você tiver a oportunidade de ler meu artigo, saiba que estou ansiosamente esperando sua opinião, crítica ou sugestão.

sexta-feira, 27 de fevereiro de 2009

Proteja seu site contra SPAM e ajude a digitalização de livros com reCAPTCHA

Resumo


Ainda hoje, SPAM é um problema altamente relevante. Desenvolvedores vêm tomando diversas medidas para tentar conter os prejuízos causados por SPAM. Hoje apresentarei reCAPTCHA, uma implementação CAPTCHA para neutralizar os ataques feitos por robôs, que ao mesmo tempo que realiza testes que apenas humanos conseguem resolver, contribui para a digitalização de livros antigos.

1. Introdução


Não é de hoje que sites e sistemas web são vitimados por spammers e robôs que visam a proliferação de suas mensagens indesejadas. Esta prática é denominada SPAM: o abuso em sistemas eletrônicos de mensagens com respeito ao envio indiscriminado em massa de mensagens indesejadas. Existem várias formas de SPAM, apesar de que sua variante mais conhecida é o SPAM por e-mail. Teoricamente, qualquer sistema disponível publicamente (por exemplo, na internet) sem medidas anti-SPAM está sujeito a receber SPAM. 

Neste cenário, vêm sendo trabalhadas algumas soluções para tentar impedir, ou ao menos diminuir o envio de SPAM. 

Hoje vou apresentar uma solução apresentada contra a ação de robôs. Robôs são softwares projetados para enviar SPAM automaticamente. Realizam tarefas como criar contas em sites, realizar login, enviar mensagens, etc. 

2. CAPTCHA


É sabido que robôs podem realizar ações de interação com a interface, como acessar caixas de texto, digitar texto, selecionar botões, clicar, etc. Mas há certas ações que apenas os seres humanos são capazes de realizar, como copiar texto distorcido. Se o texto não estiver devidamente distorcido, o robô pode utilizar técnicas de OCR (Optical character recognition) para interpretar o texto, exatamente da mesma forma que os scanners trabalham para reconhecer páginas escaneadas, e assim copiá-lo.

Esta solução se chama CAPTCHA (Completely Automated Public Turing Test To Tell Computers and Humans Apart), e busca proteger sites contra robôs através da geração e avaliação de testes que humanos conseguem realizar, mas softwares atuais não.

E CAPTCHA tem sido adotada em massa. É comum de se encontrar, ao criar uma conta em algum site, um campo com letras distorcidas a serem copiadas, para verificar a autenticidade humana do usuário. Observemos que esta parece ser uma solução eficaz contra robôs.

CAPTCHA é indicado especialmente para:
  • Prever SPAM em comentários de blogs.
  • Proteger registros em sites.
  • Proteger endereços de email de spammers.
  • Enquetes on-line.
  • Prever ataques dicionário.
  • Robôs de mecanismos de busca.
  • Worms e SPAM.
Pois bem, temos uma solução. E agora você se pergunta: como embutir esta funcionalidade em meu site?

Felizmente, há diversas implementações de CAPTCHA disponíveis. Apresentarei a implementação mais popular de hoje em dia, o Projeto reCAPTCHA.

3. O Projeto reCAPTCHA


O Projeto reCAPTCHA é uma implementação free, segura e disponível para WordPress, MediaWiki, Java, PHP, ASP.NET, Perl, Python e diversos outros ambientes. reCAPTCHA também realiza testes de áudio como uma alternativa a usuários deficientes de visão.

Além disso, reCAPTCHA ajuda a digitalizar livros de Internet Archive e edições antigas do New York Times. A cada teste realizado com sucesso, mais uma palavra é digitalizada.

Este processo de digitalização ocorre da seguinte forma: cada palavra que não consegue ser reconhecida corretamente por OCR é enviada aos usuários de sites com reCAPTCHA em forma de um teste, junto com outra palavra já conhecida. O usuário deverá interpretar ambas palavras e enviar sua resposta. O sistema aprovará a resposta do usuário se ele digitou corretamente a palavra já conhecida. Aí, o sistema considerará a resposta dada à palavra desconhecida como uma candidata a ser o reconhecimento correto da palavra. Agora, o sistema enviará esta mesma palavra desconhecida a outras pessoas para determinar, com maior certeza, se a resposta candidata é realmente a correta.

reCAPTCHA é utilizado por mais de 100 mil sites, incluindo Facebook, Ticketmaster, e Craigslist.

4. Como reCAPTCHA funciona


O seguinte diagrama ilustra o funcionamento de reCAPTCHA.

  1. O usuário carrega a página web com o código JavaScript para o teste reCAPTCHA embutido.
  2. O browser requisita um teste ao servidor de API reCAPTCHA. O servidor fornece ao usuário um teste e um token que identificará o teste.
  3. O usuário preenche o formulário na página web, e envia o resultado a seu servidor de aplicações, juntamente com o token do teste.
  4. O servidor de aplicação envia a resposta do usuário para o servidor de verificação reCAPTCHA. Este a avaliará e retornará para o servidor de aplicações.
  5. Se estiver correto, o servidor de aplicações irá permitir ao usuário acessar algum serviço ou informação. Se não estiver, poderá permitir ao usuário tentar novamente.

5. Como implementar reCAPTCHA em meu site


Para implementar reCAPTCHA, siga este processo:
  1. Registre-se em reCAPTCHA Administration Portal para obter um par de chaves pública/privada para cada domínio ou todos os domínios.
    Mais informações em http://recaptcha.net/apidocs/captcha/ 
  2. Insira o código client-side na página desejada. Aqui será inserida sua chave pública. Você pode utilizar a API padrão (utiliza JavaScript), a API não-JavaScript e a API AJAX. Existem diversas opções para a customização do Look & Feel e comportamento.
    Mais informações em http://recaptcha.net/apidocs/captcha/client.html 
  3. Escreva o código server-side que receberá a requisição, verificará o teste e retornará. Aqui será inserida sua chave privada.
    Em Java: http://wheelersoftware.com/articles/recaptcha-java.html

6. Observações


Implementei reCAPTCHA no projeto Favorpals e até agora tem sido bem satisfatório. Quem tiver algum comentário a fazer, ou experiência com reCAPTCHA ou outra implementação CAPTCHA, está convidado a comentar este post.

terça-feira, 16 de dezembro de 2008

Sun Certified Web Component Developer for the Java 2 Platform, Enterprise Edition

Como eu havia dito no post anterior Livro Head First Servlets & JSP, eu passei 1 mês me preparando para realizar a prova de certificação Sun Certified Web Component Developer for the Java 2 Platform, Enterprise Edition (SCWCD). Eu realizei a prova hoje e felizmente fui aprovado com 81%! :)

E vou contar nesse post como que foi.

Em primeiro lugar, eu já venho trabalhando com servlets e JSPs desde junho. E já tive experiência anterior com servlets. Isto me ajudou bastante para fixar o conteúdo.

Apesar de ter feito a versão mais nova dessa certificação, referente à versão 5 do JEE, eu li o Head First Servlets referente à versão 1.4 e consegui fazer a prova numa boa! Segundo Bryan Basham, co-autor da prova e também do livro mencionado, as diferenças entre as 2 últimas versões são as seguintes:
  1. Não há diferenças nos objetivos do exame entre as versões.
  2. O novo exame (SCWCD 5) é ainda baseado na versão J2EE 1.4 (com Servlet 2.5 e JSP 2.0). Os novos tópicos adicionados ou atualizados são: JSTL tags, dynamic attributes e um pouco mais de SingleThreadModel.
  3. O exame SCWCD 5 não possui questões relacionadas a JSF, mas SCWCD 6 possuirá.
  4. O exame SCWCD 5 tem questões baseadas em performance, diferentemente do teórico exame SCWCD 1.4.
Após ler o livro (e reler pontos que não tinham ficado muito claros), eu li bastante um ótimo resumo publicado por Daniel Martins em um artigo em seu blog (indisponível no momento).

Depois disso, tirei o restante do tempo antes da prova em fazer vários simulados (os famosos mocks). Nos seguintes links há vários mocks bacanas, e melhor, FOR FREE (evite mocks do SCWCD da versão J2EE 1.3, eles podem confundir a cabeça):
No dia anterior, eu preferi não ocupar muito a minha cabeça e fiz apenas o coffee cream mock do final do livro Head First.

E é isso aí. Ano que vem vamos ver se eu começo a estudar pras provas de SCBCD e SCEA :)

quarta-feira, 10 de dezembro de 2008

Livro Head First Servlets & JSP

Faz tempo que não posto, é porque estou me preparando para realizar a certificação SCWCD (Sun Certified Web Component Developer) e estou lendo este ótimo livro: Head First Servlets & JSP. Os autores do livro são co-autores da prova de certificação.

O livro cobre todo o conteúdo da prova de uma maneira bem-humorada e não-cansativa.

Confesso que virei fã da série Head First. A maneira que os conceitos são apresentados é muito interessante, o livro utiliza de recursos como personagens, diálogos, cenários da vida real, lembretes e outras coisas doidas e até mesmo idiotas que fazem o gosto de quem estuda computação.

Realmente atingem o efeito de fixar o conceito e também fazem muitas divagações acerca do que é ensinado. Também tem muitos exercícios práticos e é necessário exercitar muito a imaginação.

Uma dica: como qualquer livro de TI e computação, prefira sempre ler em inglês, pois traduções quase nunca ficam 100%, e além disso você já se acostuma com os termos utilizados na prova de certificação.

Link para leitura on-line completa do livro: http://books.google.com.br/books?id=WoA3F0UQfvQC

domingo, 23 de novembro de 2008

Trabalho de Diploma: Suporte da Arquitetura Orientada a Serviços na integração de sistemas médicos

Resumo

Nesta última sexta-feira 21, apresentamos nosso Trabalho de Diploma (ou TD, mesma coisa que TCC) na UNIFEI e fomos aprovados! :D

Nosso TD foi sobre SOA. Na época, li os seguintes materiais para aprender sobre este assunto:

1. Proposta

O co-orientador e o orientador deste trabalho apresentaram um artigo, onde demonstraram a implementação de um sistema médico para o gerenciamento de imagens digitais denominado Picture Archiving and Communication System (PACS). O PACS, em conjunto com Radiology Information System (RIS) e Hospital Information System (HIS), formam a base para um serviço de Radiologia Filmless (tecnologia que indica a manipulação de imagens médicas sem utilizar filme fotográfico, que demandava relevante custo e tempo para revelar).

As imagens são obtidas de modalidades de imagens médicas digitais, como Ressonância Magnética Nuclear (RMN) e Tomografia Computadorizada (TC), em formato DICOM (Digital Imaging and Communication in Medicine) 3.0, indexadas, armazenadas e vinculadas ao RIS do Hospital para posterior visualização.

Este sistema PACS foi concebido e desenvolvido dentre um escopo bem-definido. No entanto, há diversos outros requisitos de negócio em ambientes médicos que necessitam de manipular as informações obtidas pelo sistema apresentado. De forma a permitir futuras integrações com tal sistema de forma escalável e padronizável, é proposta a utilização de SOA.

Com essa proposta em mente, é possível utilizar de serviços pré-existentes e também integrá-los entre si e também com serviços que venham a ser criados. Assim tem-se um sistema que pode trabalhar com todo o sistema legado, integrar as bases de dados e ser distribuído, facilitando o acesso das várias redes hospitalares que necessitam dessas informações.

A proposta baseia-se em realizar serviços de consulta utilizando dois sistemas existentes: um sistema RIS e um sistema de aquisição de imagens médicas. Cada serviço realizará consultas em ambos sistemas e depois unirá seus resultados sob uma mesma resposta, conforme o diagrama UML de caso de uso abaixo:

Diagrama UML de caso de uso

2. Desenvolvimento

Cada sistema acima teve suas principais funcionalidades exportadas como Web Services. Para cada sistema foi gerado um Web Service para expor seus serviços simples.

Utilizando estes Web Services, foi construido um outro Web Service de integração, denominado Web Service PACS, caracterizando-se como um serviço composto. Este Web Service possui interface parecida ao Web Service do sistema RIS, com exceção da mensagem de resposta, e segue o seguinte fluxo para cada requição:
  1. Extrai os parâmetros da requisição
  2. Chama o Web Service do sistema RIS, passando os parâmetros recebidos. Receberá uma lista com exames radiológicos ou uma lista com pacientes.
  3. Se recebeu uma lista com exames radiológicos, para cada exame radiológico chama o Web Service do sistema de aquisição de imagens, passando a identificação do exame como parâmetro. Receberá uma imagem para cada exame.
  4. Retorna uma mensagem SOAP contendo todas as informações solicitadas, provenientes de ambos sistemas.
Os Web Services descritos acima foram publicados no servidor Apache Axis2. Por sua vez, o Web Service PACS também foi publicado no ESB Apache ServiceMix. Assim, qualquer componente membro deste barramento poderá usufruir da mesma maneira e sob o controle da mesma infra-estrutura.

O diagrama UML de atividades abaixo ilustra todo o processo:

Diagrama UML de atividades

3. Conclusão

Com a organização em serviços das funcionalidades dos sistemas apresentados, e sua utilização sobre uma infra-estrutura padronizada, alcança-se a robustez necessária para que o sistema cresça sem maiores problemas, aumentando assim seu valor agregado. Além disso, é possível ter controle sólido sobre segurança, roteamento e monitoramento do serviço.

Ao publicar tais serviços sobre tal arquitetura orientada a serviços, torna-se possível a construção de operações mais complexas com respeito à gestão e manipulação de informações dos pacientes, como por exemplo a obtenção de prontuário completo para um paciente, baseado num histórico médico que possa estar distribuído em sistemas distintos e em localidades distintas.

Ainda, a utilização de SOA introduz diretrizes para guiar o desenvolvimento de futuras integrações entre outros sistemas médicos, fazendo respeito tanto sobre a questão tecnológica quanto a questão de pessoal.

Desta forma, ao aplicar SOA em um ambiente médico, concluimos que SOA é uma tecnologia adequada para a integração de ambientes heterogêneos como os ambientes da área médica.


4. Arquivos

sexta-feira, 7 de novembro de 2008

JMRP, um sistema acadêmico para MRP (Materials Requirement Planning)

Um trabalho acadêmico muito interessante que fiz na UNIFEI em 2006 foi um sistema MRP para realizar a programação de uma linha de produção em termos do PCP – Planejamento e Controle da Produção.

Segundo meu professor Fabiano Leal:
Materials Requirement Planning (MRP) é um sistema de informações computadorizado, desenvolvido especificamente para auxiliar as empresas na administração do estoque de demanda dependente e programar pedidos de reposição. Desenvolvido nos anos 60, na IBM, era voltado exclusivamente ao planejamento de materiais. Com o desenvolvimento dos meios computacionais, a idéia básica transformou-se no MRP II (Manufacturing Resource Planning) para atender não apenas ao setor produtivo, mas a toda a corporação.

O objetivo do sistema MRP é calcular as quantidades e os prazos dos vários elementos (materiais) necessários à constituição de uma certa quantidade de um certo produto num prazo de entrega definido.

Quem quiser se aprofundar no assunto, pode consultar o material do curso da disciplina do professor Fabiano Leal. Muito bom e auto-explicativo!

MRP usualmente compõe um sistema Enterprise Resource Planning (ERP), que segundo Wikipedia é um sistema de informações que integra todos os dados e processos de uma organização. A integração pode ser vista sob a perspectiva funcional (sistemas de: finanças, contabilidade, recursos humanos, fabricação, marketing, vendas, compras, etc) e sob a perspectiva sistêmica (sistema de processamento de transações, sistemas de informações gerenciais, sistemas de apoio a decisão, etc).

Pois bem, na ocasião que cursei as disciplinas EPR-27 (Planejamento e Controle da Produção) e CCO-511 (Programação Orientada a Objetos), eu desenvolvi um software em Java para calcular as Ordens Liberadas de uma produção, chamado de JMRP.

As atividades suportadas pelo sistema Java Materials Resource Planning (JMRP) são: gerenciamento de materiais, listas de materiais, políticas de loteamento, planos mestre de produção, estoques e ordens abertas, cálculo de programações de produção e emissão de relatórios de ordens liberadas de programações de produção.

O JMRP busca obter programações de produção otimizadas, de acordo com o mais difundido algoritmo de cálculo computacional da gestão de materiais. Desta forma, provê a simulação de cenários de problemas práticos de sistemas MRP, assumindo o papel de ferramenta de apoio ao ensino.

Para conhecer melhor o JMRP e ver alguns diagramas UML veja sua apresentação na disciplina CCO-511.

Na disciplina de EPR-27 apresentamos um artigo propondo a utilização do JMRP como complemento das aulas de EPR-27 em sala de aula, por ser um software de cunho didático, que dessa forma procura contribuir para a assimilação do conteúdo pelo aluno. Veja o artigo apresentado na disciplina EPR-27.

Este foi um projeto edificante para mim, onde pratiquei bastante meus conhecimentos em desenvolvimento OO em Java e MVC. Eu tinha intenção de dar continuidade ao mesmo, melhorando sua arquitetura e construindo interface web para disponibilizá-lo para acadêmicos em rede nacional, visando neste sentido escrever artigos sobre isto.

Se você possui intenção de ajudar, fique à vontade. Quem sabe um dia eu faço isso! :)

quarta-feira, 5 de novembro de 2008

O lançamento de favorpals.com, um mundo sem dinheiro!

San Francisco, CA (PRWEB), 22 de outubro de 2008

Favorpals.com está agora aberto ao público, oferecendo um método alternativo para satisfazer necessidades da vida sem o uso do dinheiro. Apoiado em seu slogan, “um mundo sem dinheiro”, oferece a seus membros trocarem serviços por outros sem o uso ou mesmo menção de valor monetário. Adequado especialmente para nossas épocas econômicas desafiadoras, Favorpals representa um substituto à economia monetária permitindo trocas diretamente entre as pessoas.

“Favorpals é uma comunidade de relacionamento social online, onde serviços são trocados por outros serviços e/ou bens,” disse Zeo Solomon, co-fundador de Favorpals. “Artesãos, artistas, trabalhadores, profissionais — de fato qualquer um com habilidades ou bens a trocar pode intercambiar com serviços ou artigos de qualquer um na comunidade Favorpals. Devido ao amplo alcance da Web, os usuários podem fazer trocas com outros em sua esquina ou até mesmo num continente distante.”

“Projetamos nossa tecnologia de maneira que permite às pessoas encontrarem com facilidade correspondência entre o que precisam e o que estão oferecendo em troca”, disse Amir Razmara, outro co-fundador de Favorpals. Favorpals também fornecerá a seus usuários um sistema de avaliação inteligente a fim de certificar-se que os demais membros do site serão reconhecidos por suas boas ações. “Desta maneira, estamos fazendo uma reviravolta moderna sobre o antigo sistema de troca”, disse Sr. Razmara.

Favorpals é especialmente significativo quando uma troca de favores cruza a divisão entre pessoas de diferentes classes sociais, onde ambas as partes se beneficiarão igualmente, não obstante a classe ou o status. Favorpals tanto é um movimento social quanto uma economia alternativa. A utilização de Favorpals é gratuita e todas as trocas são confidenciais e seguras.

Favorpals é mantido em escritórios start-up situados em San Francisco no endereço 300 Beale Street.

O site de Favorpals pode ser visto em http://www.favorpals.com.

Todas as questões podem ser dirigidas a Zeo Solomon, +1 (415) 300-6652

sexta-feira, 17 de outubro de 2008

Computação Ubíqua

Um trabalho interessante que realizei foi uma iniciação científica na UNIFEI sob orientação do prof. Laércio Baldochi, sobre computação ubíqua.

Vou apresentar esse tema – computação ubíqua – segundo a proposta de minha iniciação científica:
A computação ubíqua tem se estabelecido como um novo paradigma de interação usuário-computador. Sua essência está em auxiliar atividades humanas de modo minimamente intrusivo, permitindo a integração transparente de tecnologia no cotidiano dos indivíduos [Weiser, 1991]. A computação ubíqua explora a utilização de novos dispositivos de interação, dentre os quais destacam-se os dispositivos portáteis, tais como celulares, palmtops e handhelds, e também superfícies eletrônicas em geral. Formas de interação mais naturais com esses dispositivos, baseadas em comandos de voz e interpretação de gestos, vêm sendo investigadas e constituem um tema de pesquisa importante nessa área.
Além de interfaces naturais, dois outros temas são relevantes para a área de computação ubíqua: ciência de contexto e aplicações de captura e acesso [Abowd & Mynatt, 2000]. Aplicações cientes de contexto são aquelas capazes de identificar pessoas e objetos, adaptando o ambiente a fim de atender as necessidades de seus usuários.

Já as aplicações de captura e acesso são utilizadas para permitir a captura e o acesso automatizados das mais diferentes experiências humanas, desde reuniões de trabalho até atividades educacionais em sala de aula. Gerenciando um conjunto de dispositivos ubíquos que incluem lousas eletrônicas, tablets, câmeras de vídeo e microfones, essas aplicações são capazes de registrar e armazenar diferentes fluxos de informação, permitindo visualizar posteriormente o conteúdo capturado em diferentes formatos de exibição.

As três grandes áreas nas quais se subdivide a Computação Ubíqua não são estanques. Uma aplicação de captura e acesso apresenta, em geral, interfaces naturais e processa informação de contexto. A representação, o armazenamento e o processamento de informação de contexto são problemas em aberto e têm sido objeto de investigação por diferentes grupos de pesquisa ao redor do mundo [Coutaz et al. 2005]

É um tema com muito campo de pesquisa, falando em termos acadêmicos. E na mesma época eu trabalhava com o mesmo professor com desenvolvimento de software que faça comunicação com Smart Cards.

Smart Cards são chips capazes de armazenar e executar aplicações computacionais, trabalhando com segurança robusta devido a criptografia utilizada nestes dispositivos.

Eu trabalhava utilizando Smart Cards com o SO MULTOS e utilizávamos uma API existente no Java 6 – javax.smartcardio– para realizar o acesso a tais dispositivos. No projeto de iniciação científica utilizamos Java Card dentro do cartão, JEE na aplicação que se comunicava com o cartão e Java Card RMI como middleware para tal comunicação.

O objetivo deste projeto é demonstrar a efetividade do uso de smart cards na construção de aplicações adaptáveis. Para tanto, o projeto utiliza de uma abordagem baseada na construção de um protótipo de software, que prevê a construção de aplicações de computação ubíqua adaptáveis às preferências e necessidades de seus usuários através do uso de smart cards para realizar a autenticação dos usuários e armazenar suas preferências pessoais.

Tal protótipo constitui-se de dois módulos: construção de uma aplicação web que permita a um usuário carregar e atualizar seus dados e preferências pessoais a partir de qualquer computador conectado à web; e construção de um componente de software responsável por comunicar-se com as aplicações de um smart card e recuperar dados pessoais do usuário, bem como suas preferências pessoais para diversas aplicações de captura e acesso, as quais se encontra habilitado a utilizar.

O projeto, financiado pela FAPEMIG, não foi concluído em vista de que surgiram oportunidades diferentes para mim. Entretanto, apresentei um pôster sobre este trabalho na Jornada de Iniciação Científica 2008 na UNIFEI. Seguem os links:
Se alguém se interessar em dar continuidade à pesquisas e trabalhos na área de computação ubíqua e/ou smart cards, favor entrar em contato que eu encaminho para o professor.

Referências bibliográficas:
  • Weiser, M. (1991). The computer for the 21st century. Scientific American 265(3), 94–104. Reprinted in IEEE Pervasive Computing vol 1, n.1, 2002.
  • Abowd, G. D. and E. D. Mynatt (2000). Charting past, present, and future research in ubiquitous computing. ACMTransactions on Computer-Human Interaction 7 (1), 29–58.
  • Coutaz, J., J. L. Crowley, S. Dobson, and D. Garlan (2005). Context is key. Communications of the ACM. 48(3), 49–53.