Kuu alguses arutleti Hacker News'is JMAP protokolli ĂŒle, Otsustasime rÀÀkida, miks see on vajalik ja kuidas see töötab.
/ / PD
Mis ei sobinud IMAP-iga?
Protokoll tutvustati 1986. aastal. Paljud asjad, mis on standardses, ei ole tĂ€napĂ€eval enam aktuaalsed. NĂ€iteks suudab protokoll tagastada meili ridade arvu ja kontrollsummad, â see funktsionaalsus ei ole tĂ€napĂ€evastes postiklientides praktiliselt kasutusel.
Teine probleem on seotud liikluse tarbimisega. IMAP-i puhul salvestatakse kirjad serverisse ja sĂŒnkroonitakse perioodiliselt kohalike klientidega. Kui mingil pĂ”hjusel kasutaja seadme koopia "rikkub", tuleb kogu post uuesti sĂŒnkroniseerida. TĂ€napĂ€eva maailmas, kus serveriga vĂ”ivad olla ĂŒhendatud tuhanded mobiilseadmed, toob selline lĂ€henemine kaasa suurenenud liiklustarbimise ja arvutusressursside kulu.
Probleemid tekivad mitte ainult protokolliga, vaid ka postiklientidega, mis sellega töötavad. Alates IMAP-i loomise hetkest on see korduvalt erinevatele ĂŒlevaatusele allutatuna, â tĂ€napĂ€eval kehtiv versioon on IMAP4. Samuti on olemas palju valikuliselt laiendusi â veebis on kokku ĂŒheksakĂŒmmend RFC-d lisadega. Ăks vĂ€rskemaid on , esitatud 2019. aastal.
Paljud ettevÔtted pakuvad samas enda patenteeritud lahendusi, mis peaksid hÔlbustama IMAP-i kasutamist vÔi isegi selle tÀielikku asendamist: , , . Tulemuseks on see, et olemasolevad postiklientid toetavad vaid mÔningaid kÔigist saadavalolevatest funktsioonidest. Selline mitmekesisus toob kaasa turu segmenteerimise.
"Veelgi enam, tĂ€napĂ€evane postiklient ei tohiks lihtsalt sĂ”numeid edastada, vaid olema vĂ”imeline töötama kontaktidega ja sĂŒnkroniseeruma kalendri, â ĂŒtleb Sergei Belkin, IaaS-teenuse pakkuja arenduse juht. â TĂ€napĂ€eval kasutatakse nende eesmĂ€rkide saavutamiseks kol mandate protokolle, nagu , ja . Selline lĂ€henemine raskendab tulekahjusĂŒttimise seadistamist ettevĂ”tte vĂ”rkudes ja avab uusi kĂŒberrĂŒnnakute suundi."
MĂ€rkeeritud probleemide lahendamiseks on loodud JMAP. Seda arendavad FastMaili spetsialistid Interneti insenerinĂ”ukogu (IETF) juhendamisel. Protokoll töötab HTTPS-i peal, kasutab JSON-i (seetĂ”ttu sobib see mitte ainult e-kirjade vahetamiseks, vaid ka mitmete ĂŒlesannete lahendamiseks pilves) ja lihtsustab e-posti halduse korraldamist mobiilsĂŒsteemides. Lisaks e-kirjade töötlemisele on JMAP-is olemas vĂ”imalus lisada laiendusi kontaktide ja kalendri-planeerija haldamiseks.
Uue protokolli omadused
JMAP on (stateless) ja ei vaja pidevat ĂŒhendust postiserveriga. See omadus lihtsustab tööd ebastabiilsetes mobiilsetes vĂ”rkudes ja sÀÀstab seadmete akku.
E-kiri JMAP-is esitatakse JSON-struktuuris. See sisaldab kogu teavet sÔnumi kohta (Internet Message Format), mis vÔib olla vajalik postirakendustele. Arendajate sÔnul peaks selline lÀhenemine lihtsustama klientide loomist, kuna potentsiaalsete keerukuste lahendamise eest (mis on seotud , pealkirjade lugemise ja kodeerimisega) vastutab server.
Kliendi serveriga suhtlemiseks kasutatakse API-d. Selleks koostab ta autentitud POST-pĂ€ringu, milles omadused on kirjeldatud JMAP seansi objektis. PĂ€ring on formaadis application/json ja koosneb ĂŒhest JSON-i pĂ€ringu objektist. Server genereerib samuti ĂŒhe vastuse objekti.
Uues (punkt 3) autorid toovad jÀrgmise nÀite pÀringust:
{
"using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ],
"methodCalls": [
[ "method1", {
"arg1": "arg1data",
"arg2": "arg2data"
}, "c1" ],
[ "method2", {
"arg1": "arg1data"
}, "c2" ],
[ "method3", {}, "c3" ]
]
}
Allpool on nÀide vastusest, mille server genereerib:
{
"methodResponses": [
[ "method1", {
"arg1": 3,
"arg2": "foo"
}, "c1" ],
[ "method2", {
"isBlah": true
}, "c2" ],
[ "anotherResponseFromMethod2", {
"data": 10,
"yetmoredata": "Tere"
}, "c2"],
[ "error", {
"type":"unknownMethod"
}, "c3" ]
],
"sessionState": "75128aab4b1b"
}
TĂ€pse JMAP spetsifikatsiooni koos rakendamise nĂ€idetega vĂ”ib leida projektist. Seal on autorid avalikustanud spetsifikatsioonide kirjeldused ja â need on suunatud kalendrite ja kontaktide nimekirjade haldamiseks. Autorite sĂ”nul on Contacts ja Calendars eraldi dokumentidesse vĂ€lja tĂ”stetud, et neid saaks tĂ€iendada ja standardiseerida sĂ”ltumata "tuumast". JMAP-i lĂ€htekoodid on saadaval autorid, Contacts ja Calendars on eraldi dokumentidena, et neid saaks tĂ€iendada ja standardiseerida sĂ”ltumatult "tuumast". JMAP-i lĂ€htekoodid on saadaval .

/ / PD
Prospects
Kuigi standardi arendamine ei ole ametlikult veel lÔpetatud, kasutatakse seda juba tootmisringkeskkondades. NÀiteks on avatud postiserveri loojad rakendanud selle JMAP versiooni. FastMail arendajad esitasid uue protokolli serveriraamistiku Perlis ja JMAP autorid tutvustasid .
On oodata, et tulevikus tekib ĂŒha rohkem JMAP-pĂ”hiseid projekte. NĂ€iteks on teatud tĂ”enĂ€osus, et avatud protokollile ĂŒleminevad Open-Xchange arendajad, kes loovad Linuxi sĂŒsteemide IMAP-serveri. Kommuuni liikmed paluvad neil hĂŒvasti jĂ€tta IMAP-st , mis on moodustunud ettevĂ”tte tööriistade ĂŒmber.
IETF ja FastMail arendajad ĂŒtlevad, et ĂŒha rohkem kasutajaid nĂ€evad vajadust uue avatud sĂ”numivahetuse standardi jĂ€rele. JMAP autorid loodavad, et tulevikus hakkavad rohkem ettevĂ”tteid seda protokolli juurutama.
Meie tÀiendavad ressursid ja allikad:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Allikas: habr.com
