Peer-to-peer framework

Este artigo não cita fontes confiáveis. Ajude a inserir referências. Conteúdo não verificável pode ser removido.—Encontre fontes: Google (N • L • A • I • WP refs)  • ABW  • CAPES (Março de 2014)

|

Mesmo dispondo de plataformas de comunicação Peer-to-Peer, como o Pastry e o JXTA, os desenvolvedores ainda precisam projetar suas aplicações considerando requisitos não-funcionais, tais como validação do usuário, operações de manutenção da rede Peer-to-Peer (criar grupo, localizar grupo, ingresso em grupo, localizar peer, localizar recursos), desenvolvimento baseado em componentes (locais ou remotos), interface gráfica com o usuário, entre outros. Portanto, tais funcionalidades precisam estar disponíveis, sobre a plataforma de rede Peer-to-Peer, de maneira reutilizável e adaptável. Este modelo de desenvolvimento é conhecido como framework de aplicações.

No entanto, para sistemas Peer-to-Peer, ainda não existe um modelo de desenvolvimento elaborado e consolidado, análogo aos frameworks para sistemas Cliente/Servidor. O J2EE, baseado em Java, é um bom exemplo. Seu modelo é tão elaborado que ultrapassa os domínios da computação distribuída, abrangendo também frameworks MVC, componentes de interface gráfica com o usuário, manipulação de documentos XML, mecanismos de persistência de objetos, entre outros.

Assim, diversas pesquisas estão em curso para o desenvolvimento de um "Peer-to-Peer Application Framework" sobre alguma plataforma de comunicação Peer-to-Peer. Sua definição deve compreender uma descrição conceitual e um conjunto de mecanismos de suporte que orientam como aplicações semelhantes podem ser arquitetadas e implementadas. Usualmente, um framework deste tipo incluiria: uma proposta de arquitetura básica, padrões de projeto, entre outros recursos para desenvolvimento. Entre os benefícios advindos da disponibilização de um framework, podemos citar:

* Definição de conceitos e padrões de projeto para um mesmo domínio (de aplicação ou de tecnologia);
* Atendimento de requisitos não-funcionais, permitindo que o desenvolvedor se dedicar mais aos requisitos funcionais do modelo de negócio;
* Viabilização da interoperabilidade e do reuso de componentes desenvolvidos por fornecedores distintos;
* Agilidade no desenvolvimento.

Entre diferenças notáveis de domínio tecnológico a serem consideradas no desenvolvimento de um framework para aplicações Cliente/Servidor e um similar para aplicações Peer-to-Peer [Roussopoulos 2004], podemos destacar:

* Ausência de controle central dos computadores participantes da computação distribuída, parcial ou total, bem como dos processos e recursos localizados nos mesmos;
* Imprevisibilidade dos computadores participantes, tanto em número de participantes quanto em disponibilidade na rede;
* Alta latência, alta variância da latência (jitter) e não-confiabilidade da comunicação entre os computadores participantes;
* Heterogeneidade de plataformas e do poder computacional dos nós participantes.

Exemplos de frameworks para desenvolvimento de aplicações Peer-to-Peer são o XNap, o Oog (Duke University), o Lancaster´s P2P Framework (University of Lancaster) e o COPPEER (UFRJ), sendo os dois últimos abstrações construídas sobre a plataforma JXTA.

* v
* d
* e

Plataforma Java

Plataforma Java|

JVM - Máquina virtual Java • JRE - Java Runtime Environment • JAR - Java Archive • Java SE • Java ME • Java EE • Java Card • Android SDK

Tecnologias Sun|

Squawk • JDK - Java Development Kit • JavaFX • OpenJDK • Máquina virtual Java • Maxine VM

Tecnologias de plataforma|

Applets • Servlets • MIDlets • jsp • Web Start (jnlp)

Principais tecnologias de terceiros|

JRockit • GNU Classpath • Kaffe • TopLink • Apache Harmony • Apache Struts • JBoss Application Server • Tapestry • Jazelle • Superwaba

Linguagens de programação|

Java • Kotlin • Groovy • Jython • JRuby • Scala • BeanShell • Clojure • Oxygene • Java Tcl • Processing • Rhino • mais…

Framework|

JPA • Hibernate • Framework Peer-to-Peer • Spring Framework

Conferências Java|

JavaOne

| Este artigo sobre redes de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.

* v
* d
* e

|

* Portal das tecnologias de informação

*[ABW]: A Biblioteca da Wikipédia
*[v]: Ver esta predefinição
*[d]: Discutir esta predefinição
*[e]: Editar esta predefinição