Finalmente a tal apresentação e o que já foi feito...
De novo sem muito tempo e há muito sem postar, resolvi dar uma passada por aqui pra um update. Dessa vez serei mais demorado.
Começando pela apresentação do nosso projeto final 1 (que aconteceu no fim do ano passado) que está nesse link aqui. Bom... Explicando um pouco a apresentação e dizendo de forma resumida o que apresentamos, o projeto é um aplicativo de troca de mensagens que visa facilitar a vida dos alunos e professores na universidade. Recados, avisos, divulgação de notas e eventos podem ser enviados pelo sistema. O funcionamento básico é o seguinte: um usuário cadastrado mantém uma lista de contatos. Contatos podem ser outros usuários ou grupos de usuários (como uma turma). O usuário, então, deve ser capaz de enviar mensagens, recebê-las e ele pode ou não ser parte de um grupo. Coisa simples. A parte interessante é o fato do sistema ter 2 interfaces: uma web e uma Java ME, sendo que esta última é capaz de dizer se uma conexão Bluetooth com o sistema está disponível para uso ou não. Em caso positivo (aluno na faculdade, dentro do alcance de um dos servidores), o sistema usa esta conexão. Em caso negativo, o sistema é capaz de usar uma conexão com a web, via GPRS por exemplo.
Para desenvolver o projeto, estamos usando uma metodologia ágil, montada usando conceitos comprovadamente úteis em desenvolvimento de software. A começar pelo fato do projeto se desenvolver em espiral. Para a parte de modelagem, será feito uso da UML e de casos de uso. Para a parte de implementação, Java EE, Java SE e Java ME serão aplicados. Na conexão com banco de dados e persistência, usaremos Hibernate.
Uma olhada no esquema do slide 14 da apresentação que fizemos, mostra o esquema de comunicação da aplicação. Um servidor Java EE abrigará a camada de negócio da aplicação. Este servidor se comunicará com uma aplicação Java SE via socket (usando um protocolo simples de rede criado por nós), que por sua vez, se comunica via Bluetooth com os aparelhos móveis contendo a parte Java ME do projeto. Esta comunicação usará o Bluecove, stack Bluetooth que implementa as interfaces da JSR-82, padrão para comunicação Bluetooth com Java. Cada máquina com a aplicação Java SE deve estar equipada com um adaptador Bluetooth compatível com o Bluecove. Como esta API implementa a JSR-82, a mesma pode ser substituída por qualquer outra que também o faça, diminuindo assim o problema da compatibilidade. Tanto a aplicação Java ME quanto o servidor Java EE suportam o acesso ao sistema via web também. O modelo de divisão em camadas da aplicação sugere um controlador dividido em duas partes: uma parte genérica e uma específica para cada interface. Hoje já estamos considerando a possibilidade de implementar um FrontController simples, para simplificar o desenvolvimento e fazer com que o sistema se torne mais extensível. Uma idéia de como a divisão pode ficar é esta (clique para ampliar):

Vamos ao que foi implementado agora: o framework de comunicação está modelado e 90% implementado. Este framework é basicamente uma forma genérica de trocar objetos entre as várias partes remotas do sistema. Um canal de comunicação abre uma conexão (que pode ser de qualquer tipo - Bluetooth, HTTP, etc -, basta implementar as interfaces corretas), codifica os objetos, os inclui em um pacote e os envia. Do outro lado, o processo oposto ocorre. Este pacote e a codificação são parte do protocolo simples de comunicação criado por nós. Os objetos a ser enviados têm que implementar uma interface e devem ter uma classe responsável por codificá-los e decodificá-los (chamada na implementação de "serializador"). Esta parte, quase terminada está no site do projeto no sourceforge, dentro do cvs. O acesso público deve estar habilitado, siga as instruções do sourceforge para utilizá-lo.
Infelizmente, segundo nossas previsões iniciais e nosso cronograma, estamos já bastante atrasados. Mas com esse pontapé inicial e com as férias do trabalho chegando, acredito que possamos ainda terminar em tempo.
Por hoje acho que não escrevo mais. Tentarei explicar detalhes da implementação assim que estes forem aparecendo.
Começando pela apresentação do nosso projeto final 1 (que aconteceu no fim do ano passado) que está nesse link aqui. Bom... Explicando um pouco a apresentação e dizendo de forma resumida o que apresentamos, o projeto é um aplicativo de troca de mensagens que visa facilitar a vida dos alunos e professores na universidade. Recados, avisos, divulgação de notas e eventos podem ser enviados pelo sistema. O funcionamento básico é o seguinte: um usuário cadastrado mantém uma lista de contatos. Contatos podem ser outros usuários ou grupos de usuários (como uma turma). O usuário, então, deve ser capaz de enviar mensagens, recebê-las e ele pode ou não ser parte de um grupo. Coisa simples. A parte interessante é o fato do sistema ter 2 interfaces: uma web e uma Java ME, sendo que esta última é capaz de dizer se uma conexão Bluetooth com o sistema está disponível para uso ou não. Em caso positivo (aluno na faculdade, dentro do alcance de um dos servidores), o sistema usa esta conexão. Em caso negativo, o sistema é capaz de usar uma conexão com a web, via GPRS por exemplo.
Para desenvolver o projeto, estamos usando uma metodologia ágil, montada usando conceitos comprovadamente úteis em desenvolvimento de software. A começar pelo fato do projeto se desenvolver em espiral. Para a parte de modelagem, será feito uso da UML e de casos de uso. Para a parte de implementação, Java EE, Java SE e Java ME serão aplicados. Na conexão com banco de dados e persistência, usaremos Hibernate.
Uma olhada no esquema do slide 14 da apresentação que fizemos, mostra o esquema de comunicação da aplicação. Um servidor Java EE abrigará a camada de negócio da aplicação. Este servidor se comunicará com uma aplicação Java SE via socket (usando um protocolo simples de rede criado por nós), que por sua vez, se comunica via Bluetooth com os aparelhos móveis contendo a parte Java ME do projeto. Esta comunicação usará o Bluecove, stack Bluetooth que implementa as interfaces da JSR-82, padrão para comunicação Bluetooth com Java. Cada máquina com a aplicação Java SE deve estar equipada com um adaptador Bluetooth compatível com o Bluecove. Como esta API implementa a JSR-82, a mesma pode ser substituída por qualquer outra que também o faça, diminuindo assim o problema da compatibilidade. Tanto a aplicação Java ME quanto o servidor Java EE suportam o acesso ao sistema via web também. O modelo de divisão em camadas da aplicação sugere um controlador dividido em duas partes: uma parte genérica e uma específica para cada interface. Hoje já estamos considerando a possibilidade de implementar um FrontController simples, para simplificar o desenvolvimento e fazer com que o sistema se torne mais extensível. Uma idéia de como a divisão pode ficar é esta (clique para ampliar):
Vamos ao que foi implementado agora: o framework de comunicação está modelado e 90% implementado. Este framework é basicamente uma forma genérica de trocar objetos entre as várias partes remotas do sistema. Um canal de comunicação abre uma conexão (que pode ser de qualquer tipo - Bluetooth, HTTP, etc -, basta implementar as interfaces corretas), codifica os objetos, os inclui em um pacote e os envia. Do outro lado, o processo oposto ocorre. Este pacote e a codificação são parte do protocolo simples de comunicação criado por nós. Os objetos a ser enviados têm que implementar uma interface e devem ter uma classe responsável por codificá-los e decodificá-los (chamada na implementação de "serializador"). Esta parte, quase terminada está no site do projeto no sourceforge, dentro do cvs. O acesso público deve estar habilitado, siga as instruções do sourceforge para utilizá-lo.
Infelizmente, segundo nossas previsões iniciais e nosso cronograma, estamos já bastante atrasados. Mas com esse pontapé inicial e com as férias do trabalho chegando, acredito que possamos ainda terminar em tempo.
Por hoje acho que não escrevo mais. Tentarei explicar detalhes da implementação assim que estes forem aparecendo.


0 Comentarios:
Postar um comentário
<< InÃcio