A hónap elején a Hacker News-on a JMAP protokollt, . Beszéljünk arról, miért van szükség rá és hogyan működik.
/ / PD
Miért nem felelt meg az IMAP
Protokoll 1986-ban mutatták be. Sok dolog, ami a szabványban van, ma már elavult. Például a protokoll képes visszaadni a levél sorainak számát és az ellenőrzőösszegeket, — ez a funkció a modern levelezőkliensekben szinte nem használatos.
Egy másik probléma a forgalomfogyasztás. Az IMAP esetében az elektronikus levelek a szerveren tárolódnak, és időszakosan szinkronizálódnak a helyi kliensekkel. Ha valamilyen oknál fogva a felhasználó eszközén lévő másolat "megrongálódik", újra kell szinkronizálni az egész levelezést. A modern világban, amikor a szerverhez ezer mobil eszköz csatlakozhat, ez a megközelítés megnövekedett forgalmat és számítási erőforrás-igényt eredményez.
A nehézségek nemcsak magával a protokollal, hanem a vele dolgozó levelezőkliensekkel is vannak. Az IMAP létrehozása óta számos felülvizsgálatot megélt — a mai napig aktuális verzió az IMAP4. Ugyanakkor számos opcionális kiterjesztés létezik számára — az interneten kilencven RFC kiegészítéssel. Az egyik legújabb , amelyet 2019-ben mutattak be.
Sok vállalat saját tulajdonú megoldásokat kínál, amelyeknek egyszerűsíteniük kell az IMAP használatát vagy akár teljesen helyettesíteniük kell azt: , , . Ennek eredményeként úgy tűnik, hogy a meglévő levelezőkliensek csak néhány, a rendelkezésre álló funkciók közül támogatják. Ez a sokféleség piaci szegmentáltáshoz vezet.
"Ráadásul a modern levelezőklientnek nemcsak üzeneteket kell továbbítania, hanem kezelnie kell a kapcsolattartókat és szinkronizálnia kell a naptárral — mondja Szergej Belkin, az IaaS szolgáltató fejlesztési osztályának vezetője, . — Ma ezekhez a célokhoz harmadik féltől származó protokollokat használnak, mint például , és . Ez a megközelítés bonyolítja a tűzfalak beállítását a vállalati hálózatokban, és új támadási vektorokat nyit meg a kiberbűnözés számára."
A JMAP célja a megjelölt problémák megoldása. A protokollt a FastMail szakemberei fejlesztik az Internet Engineering Task Force (IETF) irányítása alatt. A protokoll HTTPS-en működik, JSON-t használ (ezért alkalmas nemcsak az e-mailek cseréjére, hanem számos felhőalapú feladat megoldására is) és megkönnyíti a levelezés kezelését mobil rendszerekben. Az e-mailek feldolgozása mellett a JMAP lehetőséget biztosít bővítmények csatlakoztatására is, amelyek a kapcsolatokat és a naptár-menedzsereket kezelik.
Az új protokoll jellemzői
A JMAP egy (stateless), és nem igényel folyamatos kapcsolatot a levelezőszerverrel. Ez a tulajdonság megkönnyíti a munkát instabil mobil hálózatokon, és segít megtakarítani az eszközök akkumulátortöltöttségét.
A JMAP-ban az elektronikus levél JSON struktúrában van megjelenítve. Ez tartalmazza az üzenet összes információját (Internet Message Format), amelyekre a levelező alkalmazásoknak szükségük lehet. A fejlesztők elmondása szerint ez a megközelítés megkönnyíti a kliensek létrehozását, mivel a potenciális nehézségekkel (melyek a , a fejléc olvasása és a kódolás) a szerver fog foglalkozni.
A kliens API-n keresztül lép kapcsolatba a szerverrel. Ehhez egy hitelesített POST-kérést alakít ki, amelynek tulajdonságait a JMAP munkameneti objektumban írják le. A kérés application/json formátumú, és egy JSON kérés objektumból áll. A szerver szintén generál egy válasz objektumot.
A (3. pont) a szerzők a következő példát hozzák fel a kérésre:
{
"using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ],
"methodCalls": [
[ "method1", {
"arg1": "arg1data",
"arg2": "arg2data"
}, "c1" ],
[ "method2", {
"arg1": "arg1data"
}, "c2" ],
[ "method3", {}, "c3" ]
]
}
Az alábbiakban egy példa válaszra, amelyet a szerver generál:
{
"methodResponses": [
[ "method1", {
"arg1": 3,
"arg2": "foo"
}, "c1" ],
[ "method2", {
"isBlah": true
}, "c2" ],
[ "anotherResponseFromMethod2", {
"data": 10,
"yetmoredata": "Hello"
}, "c2"],
[ "error", {
"type":"unknownMethod"
}, "c3" ]
],
"sessionState": "75128aab4b1b"
}
A JMAP teljes specifikációját megvalósítási példákkal itt találhatja: projekt. Itt találhatók a specifikációk leírásai is, amelyek a és — a naptárakkal és a kapcsolatokkal való munkavégzéshez irányulnak. A szerzők szerint a Contacts és Calendars külön dokumentumokba lettek kiemelve, hogy azokat függetlenül lehessen fejleszteni és szabványosítani a "mag"-tól. A JMAP forráskódjai itt találhatóak — az állítólagos szerzők, a Kapcsolatok és a Naptárak külön dokumentumokba kerültek, hogy őket a "mag" függetlenül lehessen továbbfejleszteni és standardizálni. A JMAP forráskódja itt található — .

/ / PD
Kilátások
Bár a szabvány hivatalos kidolgozása még nem fejeződött be, már most is implementálják éles környezetekben. Például, az nyílt levelezőszerver készítői, megvalósították a JMAP verzióját. A FastMail fejlesztői a Perl alapú új protokollhoz készült szerverkeretrendszer, míg a JMAP szerzői bemutatták, .
Várható, hogy a jövőben egyre több JMAP alapú projekt jelenik meg. Például van rá némi esély, hogy az Open-Xchange fejlesztői, akik Linux rendszerekhez IMAP szervert készítenek, átállnak az új protokollra. Az IMAP-ról való átállás iránt a közösség tagjai nagyon , amely a cég eszközei köré alakult.
A fejlesztők az IETF és a FastMail részéről azt nyilatkozzák, hogy egyre több felhasználó látja szükségét egy új nyílt üzenetküldési szabványnak. A JMAP szerzői remélik, hogy a jövőben több cég is elkezdi ezt a protokollt alkalmazni.
További forrásaink és erőforrásaink:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Forrás: habr.com
