Au début du mois, sur Hacker News le protocole JMAP, . Nous avons décidé de discuter de l'utilité de ce protocole et de son fonctionnement.
/ / PD
Qu'est-ce qui ne convenait pas Ă IMAP ?
Protocole a Ă©tĂ© introduit en 1986. De nombreuses choses dĂ©crites dans la norme ne sont aujourd'hui plus pertinentes. Par exemple, le protocole peut renvoyer le nombre de lignes d'un e-mail et les sommes de contrĂŽle, â cette fonctionnalitĂ© est pratiquement inutilisĂ©e dans les clients de messagerie modernes.
Un autre problĂšme concerne la consommation de bande passante. Avec IMAP, les e-mails sont stockĂ©s sur le serveur et synchronisĂ©s pĂ©riodiquement avec les clients locaux. Si, pour une raison quelconque, la copie sur l'appareil de l'utilisateur est 'endommagĂ©e', il faut resynchroniser l'ensemble des e-mails. Dans un monde moderne oĂč des milliers d'appareils mobiles peuvent ĂȘtre connectĂ©s au serveur, cette approche entraĂźne une augmentation de la consommation de bande passante et des ressources informatiques.
Les difficultĂ©s ne se limitent pas au protocole lui-mĂȘme, mais aussi aux clients de messagerie qui travaillent avec lui. Depuis sa crĂ©ation, IMAP a Ă©tĂ© soumis Ă de nombreuses rĂ©visions â la version actuelle est IMAP4. De nombreuses extensions optionnelles existent Ă©galement â il y a soixante-dix RFC avec des complĂ©ments. L'un des plus rĂ©cents est , prĂ©sentĂ© en 2019.
De nombreuses entreprises proposent Ă©galement leurs propres solutions propriĂ©taires, censĂ©es simplifier l'utilisation d'IMAP ou mĂȘme le remplacer : , , . Au final, cela signifie que les clients de messagerie existants ne supportent qu'une partie des fonctionnalitĂ©s disponibles. Cette diversitĂ© entraĂźne une segmentation du marchĂ©.
« De plus, un client de messagerie moderne doit non seulement transmettre des messages, mais aussi pouvoir gĂ©rer des contacts et se synchroniser avec un calendrier, dit Sergey Belkin, responsable du dĂ©veloppement chez un fournisseur IaaS. . â Aujourd'hui, des protocoles tiers comme , et sont utilisĂ©s Ă cette fin. Cette approche complique la configuration des pare-feu dans les rĂ©seaux d'entreprise et ouvre de nouvelles voies aux cyberattaques ».
Le JMAP est conçu pour résoudre les problÚmes identifiés. Il est développé par des spécialistes de FastMail sous la direction du Conseil d'ingénierie Internet (IETF). Ce protocole fonctionne sur HTTPS, utilise JSON (c'est pourquoi il convient non seulement pour l'échange de courriels, mais aussi pour résoudre un certain nombre de tùches dans le cloud) et simplifie l'organisation du travail avec les emails dans les systÚmes mobiles. En plus de traiter des courriels, le JMAP permet également de connecter des extensions pour gérer les contacts et les calendriers.
Caractéristiques du nouveau protocole
Le JMAP est (stateless) et ne nécessite pas de connexion permanente au serveur de messagerie. Cette caractéristique facilite l'utilisation dans des réseaux mobiles instables et permet d'économiser la batterie des appareils.
Un courriel en JMAP est prĂ©sentĂ© sous forme de structure JSON. Elle contient toutes les informations nĂ©cessaires au message (Internet Message Format), qui peuvent ĂȘtre nĂ©cessaires pour les applications de messagerie. Selon les dĂ©veloppeurs, cette approche devrait simplifier la crĂ©ation de clients, car le serveur sera responsable de la gestion des Ă©ventuelles complications (liĂ©es Ă , Ă la lecture des en-tĂȘtes et Ă l'encodage).
Pour interagir avec le serveur, le client utilise une API. Pour cela, il forme une requĂȘte POST authentifiĂ©e, dont les propriĂ©tĂ©s sont dĂ©crites dans l'objet de session JMAP. La requĂȘte a le format application/json et se compose d'un seul objet de requĂȘte JSON. Le serveur gĂ©nĂšre Ă©galement un seul objet de rĂ©ponse.
Dans (point 3) les auteurs donnent l'exemple suivant avec une requĂȘte :
{
"using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ],
"methodCalls": [
[ "method1", {
"arg1": "arg1data",
"arg2": "arg2data"
}, "c1" ],
[ "method2", {
"arg1": "arg1data"
}, "c2" ],
[ "method3", {}, "c3" ]
]
}
Voici un exemple de réponse que le serveur pourrait générer :
{
"methodResponses": [
[ "method1", {
"arg1": 3,
"arg2": "foo"
}, "c1" ],
[ "method2", {
"isBlah": true
}, "c2" ],
[ "anotherResponseFromMethod2", {
"data": 10,
"yetmoredata": "Hello"
}, "c2" ],
[ "error", {
"type":"unknownMethod"
}, "c3" ]
],
"sessionState": "75128aab4b1b"
}
La spĂ©cification complĂšte de JMAP avec des exemples d'implĂ©mentation peut ĂȘtre trouvĂ©e sur le projet. LĂ , les auteurs ont Ă©galement placĂ© la description des spĂ©cifications pour et â elles sont destinĂ©es Ă travailler avec des calendriers et des listes de contacts. Selon les auteurs, Contacts et Calendars ont Ă©tĂ© isolĂ©s dans des documents distincts afin de pouvoir ĂȘtre dĂ©veloppĂ©s et standardisĂ©s indĂ©pendamment du « noyau ». Les codes sources pour JMAP sont disponibles sur .

/ / PD
Perspectives
Bien que le travail sur la norme ne soit pas encore officiellement terminĂ©, elle est dĂ©jĂ mise en Ćuvre dans des environnements de production. Par exemple, les crĂ©ateurs du serveur de messagerie ouvert ont rĂ©alisĂ© sa version JMAP. Les dĂ©veloppeurs de FastMail ont créé un cadre serveur pour le nouveau protocole en Perl, et les auteurs de JMAP ont prĂ©sentĂ© .
On peut s'attendre à ce que le nombre de projets basés sur JMAP augmente à l'avenir. Par exemple, il y a une certaine probabilité que les développeurs d'Open-Xchange, qui conçoivent un serveur IMAP pour les systÚmes Linux, adoptent ce nouveau protocole. Les membres de la communauté demandent fortement , qui se sont formés autour des outils de l'entreprise.
Les développeurs de l'IETF et de FastMail affirment que de plus en plus d'utilisateurs voient la nécessité d'une nouvelle norme ouverte pour l'échange de messages. Les auteurs de JMAP espÚrent qu'à l'avenir, davantage d'entreprises commenceront à adopter ce protocole.
Nos ressources et sources supplémentaires :
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Source : habr.com
