Réseaux Node-to-Node
et
Architectures
Node-to-Node

Node-to-Node
(N2N) Network :  JxNode Network

Document réalisé par :  DUARTE       ERNEST

ERNEST Duarte : Distributed systems of services and applications  based on  Node-to-Node (N2N)  Architecture.

Idées abordées par Ernest Duarte  dans cette  page web :   Node-to-Node Architecture  et  Node-to-Node Networks et Overlay Networks

Toutes les idées concernant les réseaux d'applications et services  distribués basés sur des architectures  N2N (soit  Node-to-Node)  exposés ici  viennent de ma vision et  mon imagination  ...


Deux observations :
         1- JXTA permet de réaliser des réseaux d'applications et services Node-to-Node.
         2-  JXTA est architecturé avec trois couches : le Noyau les Services et les Applications.

Remarques : Le terme  Peer que j'utilise dans ce document, est un nom propre JXTA, décrit dans la spécification JXTA.
Quant au peer-to-peer, il faudrait qu'on ce mettent d'accord sur une définition qui soit accéptée par tous, y compris moi, ce qui est loin d'être le cas.
De toute façon, les définitions que, l'on trouve sur internet ne  permetent pas d'avancer dans l'élaboration et le développement des applications, basés sur un nouveau paradigme, d'applications distribuées.
On  effet ce qu'il me faut c'est un ensemble de conceptes me permettant de bien comprendre les interactions dans les structures topologiques des réseaux  virtuels (overlay networks).
Si  on plus du concepte peer-to-peer avec sa confusion des genres, est mélangé avec les idées de réseaux sociaux  ou encore "small worlds"  et bien d'autres  ... 
L'objectif de mon travail, c'est de  analyser  les  entités ainsi que les interactions de ces entités dans un réseau  d'applications et services distribués, afin de concevoir et architecturer  ces entités
avec un paradigme de programmation bien défini pour ce genre d'architectures  Node-to-Node.
Je me place donc d'un point de vue d'un architecte et concepteur et développeur de ce genre de réseaux  que j'ai nomé Node-to-Node ou N2N.




Afin de mieux comprendre, j'utilise des images et  metaphores :

   
Un Noeud (Node) peut être representé visuellement  par une sphère, (image afin de mieux comprendre) elle représente le noyau jxta, plus les services génériques qui sont communs a un ensemble d'applications.
 Il existe plusieurs types de Nodes , les Nodes minimaux  ce sont des Nodes qui fonctionnent sur des appareils limités par la memoire et le processeur , il existe aussi des Nodes simples, ils repondent aux requêtes et stockent des informations permetant la recherche des ressources , et enfin les super Node qui  sont les rendez-vous et relays .

Les Nodes ne sont pas tous "égaux"  ils se comportent differement en fonction de leur configuration par l'utilisateur ou l'application  a la quelle ils sont associés.
Et on plus ils n'implementent pas tous l'ensemble des 6 protocoles JXTA.
Il n'est pas aproprié dans ce cas de parler de  réseau d'égal à égal ou de parité soit réseau pair à pair.
Il n'est pas exacte non plus de parler de réseaux point a point,  puisque les connections ne sont pas forcément directes d'un point a un  autre du réseau pour des raisons, par exemple de barrières artificielles comme  par exemple les firewalls ou les NAT.

Les Peers JXTA ce sont l'ensembe Node + services spécifiques + applications

Les Peers JXTA communiquent via des Pipes ce sont des cannaux virtuels de communication.

La Communication Inter-Peer (IPC) est réalisée soit par des pipes point a point (Unicast Pipes) ou Propagate Pipes (communication muticast) les pipes peuvent etre sécurisés "secure pipes" il existe aussi des pipes bidirectionnels "JxtaBiDiPipes"  ou JxtaSockets
mais en peut imaginer l'implémentation d'autres pipes dans le futur comme par exemple des pipes pour  le flux continu  "streaming" .

A un Node est associé zero ou une application ,  une application peut  être composée de plusieurs fonctions , modules ou plugins. Les applications peuvent être soit de nouveau type d'applications distribués ou des applications existantes , dans ce cas, les advertisements seront alors publiés sur le réseau JXTANet ou le JVN(Jxta Virtual Network).

Un Node jxta est un logiciel . mais il peut "abstraire" un appareil materiel , un node peut aussi être programmé dans le hardware(implementer phisiquement les protocoles).
On peut dire que un node Jxta est une entité qui "parle" le ou les protocoles JXTA.


Pour plus de precisions sur les réseaux Node-to-Node,
 et définir quels sont les différences entre les réseau P2P et  N2N:
Un réseau P2P peut être basé sur un réseau N2N mais l'inverse n'est pas possible.
Un réseau N2N est indépendant des applications qui l'utilisent, c'est un réseau générique, l'ensemble des Nodes et ces interactions forment un "Overlay Network".
Un système N2N peut être vu  comme un intergiciel, entre les applications et services répartis.

Vision sous forme de niveaux , dans le cas de l'implémentation JAVA :

7-Utilisateurs
6-Application= modules applications
5-JxNode = noyau Jxta+module services génériques
4-Java Virtual Machine (processeur virtuel)
3-fonctions JNI (système java), primitives d'accès au système
2-Système d'exploitation+pile TCP/IP
1-Système materiel (processeur+cables+bus+cartes réseau+peripheriques)

JXTA permet de réaliser des réseaux d'applications et services distribués Node-to-Node  N2N.

Les systèmes d'applications et services distribués Node-to-Node ou  N2N, permettent de réaliser des réseaux dits en anglais "overlay networks" et de relier differents types d'applications.
Ces systémes sont indépendants des applications et permettent de créer une couche logiciel homogène par dessus l'hétérogénité sousjacente.

Lectures divers :
http://www.dynamicobjects.com/papers/w4spot.pdf
http://www-db.stanford.edu/~crespo/publications/op2p.pdf


Résumé :

Le terme N2N dans le cadre JXTA est une idée de Ernest DUARTE.

En effet d'après Ernest, JXTA permet de créer des réseaux N2N , des réseaux "virtuels" (ou plutôt logiciels) génériques "overlay networks".
Dans le cadre JXTA le concepte N2N devrai être utilisé au lieu de parler de P2P qui est entaché de beaucoup de conotations qui empechent de progresser dans le domaine des applications distribuées de ce genre.


Remarques l'expression N2N ou Node-to-Node est une idée de DUARTE  ERNEST:
JXTA est trop souvant associé à tort avec le P2P ( peer-to-peer). ceci dit la question c'est :

Qu'est ce que le P2P?

Pourquoi  DUARTE  ERNEST a  utilisé pour la première fois le terme N2N soit  Node-to-Node dans le cadre de JXTA  et non P2P :

Pour cinq raisons  au moins  :

1- La première est une raison technique :

L'implementation de reference de l'architecture JXTA a trois couches ( noyau, services, applications) ,  nous permet de distinguer la partie Noyau
qui est une entité générique, c'est ce que j'appel le Node. Dans la terminologie JXTA en parle aussi de "plateforme JXTA".
Sur cette plateforme en fait tourner une ou plusieurs modules d'applications.


2- La deuxième est une raison conceptuelle :
On effet un  Node est une entité formelle permettant une modélisation mathematique issue de la theorie des graphes et de recherche operationnelle.
C'est donc un moyen de concidérer  le réseau (ou plutôt le graphe dans le cadre plus générale de la theorie des graphes)  comme un être mathematique.
Il est important  aussi lors de la concéption et architecture de ce type d'applications distribuées  de  utiliser des conceptes claires et bien définis.


3- La troisième c'est une raison sociale :
Le P2P a une mauvaise presse. et il est souvent considéré a tort  comme permettant de partager des fichiers en mode lecture seulement.
Alors que Le P2P a l'origine d'Internet  est beaucoup plus que ca: Il permet le partage de resources, la communication, IM, P2P computing...etc.
Dans ce point de vue, le P2P est souvent concidéré comme un réseau  d'applications , donc il  est lié  aux applications , il se trouve que les applications P2P  les plus
 connues sont le partage de fichiers DiVX et MP 3.  Alors que les réseaux N2N sont indépendants du type d'applications.

4- Dans une certaine mesure aussi une raison  économique:
Les entreprises ont parfois une mauvaise opinion du P2P , pourtant elles ont un réel besoin de faire  réaliser des réseaux facilement controlables pour les employés leur permettant d'être mobiles et disponibles.
Si on leur dit que JXTA est une architecture de réseau N2N générique a partir de laquelle, elles peuvent realiser tous leurs besoins, et de le sécurisé a leur guise par exemple avec un PKI.
Alors on risque de moins leur faire peur avec la bête noir qu'est le P2P. et ainsi remporter les contrats.

5- Pour des  raisons  juridiques " et surtout des lois du marché " le P2P est illégal :
Tout d'abord il y a des personnes qui font des lois, qui ne font pas la difference entre les protocoles, algorithmes, applications, fichiers et contenu.
Et entre ceux qui réalisent les applications et  la façon dont on les utilise.
De plus celui qui développe une application de partage de fichiers n'est pas responsable, s'il y a des personnes qui partagent des fichiers piratés.
Ce qui a pour consequence, que les développeurs  P2P ... risquent  300 000 Euros d'amende et 3 ans de prison.
Les développeurs de réseaux "overlay networks" ou réseaux N2N ne sont pas responsables de la façon dont on les utilisent, et si oui il faut mèttre
les concepteurs du réseau Internet  en prison.

Conclusion :
JXTA permet de réaliser des réseaux d'applications et services Node-to-Node  (N2N).

_________________________________________________
Historique de ce  document :

Date de dernière modification  :  12  novembre 2007
Date de modification  : 25 avril 2005

Document initialisé en 2001

Idées de ce document datent de 1998

------------------------------------------------------------------

Auteur : Duarte Ernest


Presentation artistique  d'une vision de  DUARTE ERNEST  avec  Open Office :