Այս ամսվա սկզբին Hacker News-ում JMAP արձանագրություն . Մենք որոշեցինք խոսել, թե ինչու է դա անհրաժեշտ և ինչպես է այն աշխատում:
/ /PD
Ինչն ինձ դուր չեկավ IMAP-ում
Արձանագրություն ներդրվել է 1986 թ. Ստանդարտում նկարագրված շատ բաներ այսօր այլևս տեղին չեն: Օրինակ, արձանագրությունը կարող է վերադարձնել տառերի և չեկային գումարների քանակը - այս ֆունկցիոնալությունը գործնականում չի օգտագործվում ժամանակակից էլփոստի հաճախորդների մեջ:
Մեկ այլ խնդիր կապված է երթեւեկության սպառման հետ։ IMAP-ի միջոցով էլ. նամակները պահվում են սերվերում և պարբերաբար համաժամացվում տեղական հաճախորդների հետ: Եթե ինչ-ինչ պատճառներով օգտատիրոջ սարքի պատճենը փչանա, ամբողջ փոստը պետք է նորից համաժամացվի: Ժամանակակից աշխարհում, երբ հազարավոր շարժական սարքեր կարող են միացված լինել սերվերին, այս մոտեցումը հանգեցնում է տրաֆիկի և հաշվողական ռեսուրսների սպառման ավելացման:
Դժվարություններ են առաջանում ոչ միայն բուն արձանագրության, այլ նաև դրա հետ աշխատող էլփոստի հաճախորդների հետ: Իր ստեղծման օրվանից IMAP-ը բազմիցս ենթարկվել է տարբեր վերանայումների՝ ներկայիս տարբերակը IMAP4 է: Միևնույն ժամանակ, դրա համար կան բազմաթիվ ընտրովի ընդարձակումներ՝ ցանցում իննսուն RFC հավելումներով: Վերջիններից մեկն այն է , ներկայացվել է 2019 թ.
Միևնույն ժամանակ, շատ ընկերություններ առաջարկում են իրենց սեփական լուծումները, որոնք պետք է պարզեցնեն IMAP-ի հետ աշխատանքը կամ նույնիսկ փոխարինեն այն. , , . Արդյունքն այն է, որ առկա էլփոստի հաճախորդները աջակցում են միայն առկա որոշ գործառույթներ: Նման բազմազանությունը հանգեցնում է շուկայի սեգմենտավորման:
«Ավելին, էլփոստի ժամանակակից հաճախորդը ոչ միայն պետք է ուղարկի հաղորդագրություններ, այլև կարողանա աշխատել կոնտակտների հետ և համաժամեցնել օրացույցի հետ», - ասում է Սերգեյ Բելկինը, IaaS մատակարարի զարգացման բաժնի ղեկավարը: . — Այսօր երրորդ կողմի արձանագրությունները նման են , и . Այս մոտեցումը բարդացնում է կորպորատիվ ցանցերում firewalls-ի կազմաձևումը և բացում նոր վեկտորներ կիբերհարձակումների համար»:
JMAP-ը նախատեսված է այս խնդիրները լուծելու համար: Այն մշակվում է FastMail-ի փորձագետների կողմից՝ Internet Engineering Task Force-ի (IETF) ղեկավարությամբ: Արձանագրությունն աշխատում է HTTPS-ի վրա, օգտագործում է JSON (այդ պատճառով այն հարմար է ոչ միայն էլեկտրոնային հաղորդագրությունների փոխանակման, այլ նաև ամպի մեջ մի շարք առաջադրանքներ լուծելու համար) և հեշտացնում է փոստի հետ աշխատելու կազմակերպումը բջջային համակարգերում։ Բացի տառերի մշակումից, JMAP-ն ապահովում է նաև կոնտակտների հետ աշխատելու համար ընդլայնումներ և օրացույցի ժամանակացույցի միացման հնարավորություն:
Նոր արձանագրության առանձնահատկությունները
JMAP-ն է (քաղաքացիություն չունեցող) և չի պահանջում մշտական կապ փոստի սերվերի հետ: Այս հատկությունը հեշտացնում է աշխատանքը անկայուն բջջային ցանցերում և խնայում է մարտկոցի էներգիան սարքերում:
JMAP-ում նամակը ներկայացված է JSON կառուցվածքի ձևաչափով: Այն պարունակում է հաղորդագրությունից ստացված ողջ տեղեկատվությունը (Ինտերնետ հաղորդագրությունների ձևաչափ), որը կարող է անհրաժեշտ լինել էլփոստի հավելվածներին: Ըստ մշակողների, այս մոտեցումը պետք է հեշտացնի հաճախորդների ստեղծումը, քանի որ լուծելով հնարավոր դժվարությունները (կապված , վերնագրերի ընթերցում և կոդավորում) սերվերը կպատասխանի:
Հաճախորդն օգտագործում է API՝ սերվերի հետ կապվելու համար: Դա անելու համար այն ստեղծում է վավերացված POST հարցում, որի հատկությունները նկարագրված են JMAP նիստի օբյեկտում։ Հարցումը դիմում/json ձևաչափով է և բաղկացած է մեկ JSON հարցման օբյեկտից: Սերվերը նաև առաջացնում է մեկ պատասխան օբյեկտ:
В (կետ 3) հեղինակները խնդրանքով ներկայացնում են հետևյալ օրինակը.
{
"using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ],
"methodCalls": [
[ "method1", {
"arg1": "arg1data",
"arg2": "arg2data"
}, "c1" ],
[ "method2", {
"arg1": "arg1data"
}, "c2" ],
[ "method3", {}, "c3" ]
]
}
Ստորև բերված է պատասխանի օրինակ, որը սերվերը կստեղծի.
{
"methodResponses": [
[ "method1", {
"arg1": 3,
"arg2": "foo"
}, "c1" ],
[ "method2", {
"isBlah": true
}, "c2" ],
[ "anotherResponseFromMethod2", {
"data": 10,
"yetmoredata": "Hello"
}, "c2"],
[ "error", {
"type":"unknownMethod"
}, "c3" ]
],
"sessionState": "75128aab4b1b"
}
JMAP-ի ամբողջական ճշգրտումը օրինակների իրականացման հետ կարելի է գտնել այստեղ նախագիծը։ Այնտեղ հեղինակները տեղադրել են նաև բնութագրերի նկարագրությունը и — դրանք ուղղված են օրացույցների և կոնտակտային ցուցակների հետ աշխատելուն: Ըստ հեղինակները, Կոնտակտները և Օրացույցները բաժանվել են առանձին փաստաթղթերի, որպեսզի դրանք հետագայում կարողանան մշակվել և ստանդարտացվել՝ անկախ «հիմնականից»: JMAP-ի աղբյուրի կոդերը՝ in .

/ /PD
Հեռանկարները
Չնայած այն հանգամանքին, որ ստանդարտի վրա աշխատանքը դեռ պաշտոնապես չի ավարտվել, այն արդեն իրականացվում է արտադրական միջավայրերում: Օրինակ՝ բաց փոստի սերվերի ստեղծողները իրականացրել է իր JMAP տարբերակը: Մշակողները FastMail-ից սերվերի շրջանակը նոր արձանագրության համար Perl-ում, և JMAP-ի հեղինակները ներկայացրել են .
Ապագայում կարող ենք ակնկալել ավելի ու ավելի շատ JMAP-ի վրա հիմնված նախագծեր։ Օրինակ, կա հնարավորություն, որ Open-Xchange-ի մշակողները, ովքեր ստեղծում են IMAP սերվեր Linux-համակարգեր։ IMAP-ից հրաժարվելը շատ դժվար է։ , ձեւավորվել է ընկերության գործիքների շուրջ։
IETF-ի և FastMail-ի ծրագրավորողները ասում են, որ ավելի ու ավելի շատ օգտվողներ են տեսնում հաղորդագրությունների նոր բաց ստանդարտի անհրաժեշտությունը: JMAP-ի հեղինակները հույս ունեն, որ ապագայում ավելի շատ ընկերություններ կսկսեն իրականացնել այս արձանագրությունը։
Մեր լրացուցիչ ռեսուրսները և աղբյուրները.
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Source: www.habr.com
