Na začátku měsíce se na Hacker News o protokolu JMAP, . Rozhodli jsme se promluvit o tom, proč je potřeba a jak funguje.
/ / PD
Co nebylo v pořádku s IMAP
Protokol byl představen v roce 1986. Mnoho věcí, které jsou popsány ve standardu, dnes již není aktuálních. Například protokol umí vrátit počet řádků e-mailu a kontrolní součty, — tato funkcionalita se v moderních e-mailových klientech prakticky nepoužívá.
Další problém souvisí s využitím datového provozu. V případě IMAP jsou e-maily uloženy na serveru a pravidelně se synchronizují s místními klienty. Pokud z nějakého důvodu dojde k poškození kopie na zařízení uživatele, musí se synchronizovat celá pošta znovu. V moderním světě, kdy může být k serveru připojeno tisíce mobilních zařízení, tento přístup vede k vyšší spotřebě dat a výpočetních zdrojů.
Problémy nastávají nejen se samotným protokolem, ale také s e-mailovými klienty, které s ním pracují. Od vzniku IMAP byl mnohokrát revidován — aktuální verzí je IMAP4. Na něj existuje mnoho volitelných rozšíření — na síti existuje devadesát RFC s dodatky. Jedním z nejnovějších je , které bylo představeno v roce 2019.
Mnohé společnosti přitom nabízejí vlastní proprietární řešení, která mají usnadnit práci s IMAP nebo ho dokonce nahradit: , , . Výsledkem je, že stávající e-mailové klienty podporují pouze některé z dostupných funkcí. Toto rozmanité spektrum vede k segmentaci trhu.
„Navíc moderní e-mailový klient by neměl pouze přeposílat zprávy, ale měl by umět pracovat s kontakty a synchronizovat se s kalendářem,“ říká Sergey Belkin, vedoucí oddělení vývoje IaaS poskytovatele. „Dnes se k těmto cílům používají alternativní protokoly jako , a . Tento přístup komplikuje konfiguraci firewallů v podnikových sítích a otevírá nové vektory pro kybernetické útoky.“
Řešení vyznačených problémů bylo svěřeno JMAP. Jeho vývoj probíhá pod vedením specialistů z FastMail pod záštitou Inženýrské rady pro internet (IETF). Protokol funguje nad HTTPS, využívá JSON (z tohoto důvodu je vhodný nejen pro výměnu e-mailů, ale i pro řešení řady úloh v cloudu) a usnadňuje organizaci práce s poštou v mobilních systémech. Kromě zpracování e-mailů JMAP rovněž umožňuje připojení rozšíření pro práci s kontakty a kalendářem.
Specifika nového protokolu
JMAP je (stateless) a nevyžaduje trvalé spojení s poštovním serverem. Tato vlastnost usnadňuje práci v nestabilních mobilních sítích a šetří energii baterie zařízení.
Elektronická pošta v JMAP je představena ve formátu JSON struktury. Obsahuje všechny informace z zprávy (Formát internetových zpráv), které mohou být potřebné poštovním aplikacím. Podle slov vývojářů by měl tento přístup usnadnit vytváření klientů, protože řešení potenciálních obtíží (spojených s , čtením hlaviček a kódováním) bude odpovědností serveru.
Pro přístup k serveru klient používá API. K tomu vytváří autentizovaný POST dotaz, jehož vlastnosti jsou popsány v objektu relace JMAP. Dotaz má formát application/json a skládá se z jednoho objektu JSON požadavku. Server také generuje jeden objekt odpovědi.
V (bod 3) autoři uvádějí následující příklad s dotazem:
{
"using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ],
"methodCalls": [
[ "method1", {
"arg1": "arg1data",
"arg2": "arg2data"
}, "c1" ],
[ "method2", {
"arg1": "arg1data"
}, "c2" ],
[ "method3", {}, "c3" ]
]
}
Níže je ukázka odpovědi, kterou server vygeneruje:
{
"methodResponses": [
[ "method1", {
"arg1": 3,
"arg2": "foo"
}, "c1" ],
[ "method2", {
"isBlah": true
}, "c2" ],
[ "anotherResponseFromMethod2", {
"data": 10,
"yetmoredata": "Hello"
}, "c2"],
[ "error", {
"type":"unknownMethod"
}, "c3" ]
],
"sessionState": "75128aab4b1b"
}
Úplnou specifikaci JMAP s příklady implementace lze nalézt na projektu. Tam autoři uveřejnili popis specifikací pro a — ty jsou určeny pro práci s kalendáři a seznamy kontaktů. Podle autorů, Kontakty a Kalendáře byly vyčleněny do samostatných dokumentů, aby je bylo možné rozvíjet a standardizovat nezávisle na „jádru“. Zdrojové kódy pro JMAP jsou v .

/ / PD
Vyhlídky
I když oficiálně není práce na standardu ještě dokončena, již se implementuje v produkčních prostředích. Například tvůrci otevřeného poštovního serveru realizovali jeho JMAP verzi. Vývojáři z FastMail serverový framework pro nový protokol na Perl, a autoři JMAP představili .
Můžeme očekávat, že v budoucnu bude vznikat stále více projektů založených na JMAP. Například existuje určitá pravděpodobnost, že nový protokol přejdou vývojáři z Open-Xchange, kteří vytvářejí IMAP server pro Linuxové systémy. Účastníci komunity , která se utvářela kolem nástrojů společnosti.
Vývojáři z IETF a FastMail tvrdí, že stále více uživatelů vidí potřebu nového otevřeného standardu pro výměnu zpráv. Autoři JMAP doufají, že více společností začne v budoucnu tento protokol implementovat.
Naše další zdroje a odkazy:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Zdroj: habr.com
