Кіріспе

XML RPC – деректерді тізбектеу форматы. Бұл алыстан процедура шақыру (RPC) протоколы, шақыруларын кодтау үшін XML-ді және HTTP-ді тасымалдау механизмі ретінде пайдаланады.

Тарих

XML RPC протоколы 1998 жылы UserLand Software және Microsoft компаниясының Dave Winer-і жасаған. Microsoft бұл протоколды бизнес-бизнес электрондық коммерциядағы өз күш-жігерін кеңейтудің маңызды бөлігі деп қарастырды. Жаңа мүмкіндіктер енгізілген сайын стандарт қазіргі SOAP нысанына дамыды. UserLand өзінің Frontier веб-контент басқару жүйесінің 5.1 нұсқасынан бастап XML RPC-ді қолдады. XML RPC-нің HTTP-ге негізделген сұраулар мен жауаптар үшін адам оқи алатын және жаза алатын, скрипттермен талдауға болатын стандартты идеясы Allaire's Web Distributed Data Exchange (WDDX) және webMethod's Web Interface Definition Language (WIDL) сияқты бәсекелес спецификацияларда да іске асырылды. XML синтаксисінде COM, CORBA және Java RMI объектілерін орап, оларды HTTP арқылы тасымалдаудың бұрынғы тәжірибесі DataChannel-дің WebBroker технологиясында да болған. XML-ді қашықтықтан процедура шақыру (RPC) үшін жалпы пайдалануды Филипп Меррик, Стюарт Аллен және Джозеф Лапп 2006 жылдың сәуірінде патенттеді, бұл 1998 жылдың наурыз айында берілген алдын ала өтінімге сілтеме жасады. Патент Вирджиния штатының Фэрфакс қаласында орналасқан webMethods компаниясына тиесілі болды. Патент 2019 жылдың 23 наурызында тоқтап қалды.

Қолданылуы

XML RPC-де клиент серверге HTTP сұранысын жіберіп, XML RPC-ні іске асырады және HTTP жауабын алады. Шақыру бірнеше параметрлерді және бір нәтижені қамтуы мүмкін. Протокол параметрлер мен нәтиже үшін бірнеше дерек типін анықтайды. Осы дерек типтерінің кейбіреуі күрделі, яғни біріне ішкі бірі енген. Мысалы, параметр бес бүтін санды қамтитын массив болуы мүмкін. Параметрлер/нәтижелер құрылымы және дерек типтері жиынтығы, көптеген бағдарламалау тілдерінде қолданылатындай болуға тиіс. Авторизациялау үшін клиенттерді анықтау, кең таралған HTTP қауіпсіздік әдістерін пайдалану арқылы жүзеге асырылады. Негізгі кіру аутентификациясы идентификациялау және аутентификациялау үшін қолданылуы мүмкін. Ресурстардың ұсынылымдары (құжаттар) жіберілетін RESTful протоколдарымен салыстырғанда, XML RPC әдістерді шақыруға арналған. Басты айырмашылық – XML RPC әлдеқайда құрылымдалған, бұл клиенттер мен серверлерді жүзеге асыру үшін ортақ кітапхана кодтарын пайдалануға мүмкіндік береді және нақты қолданба протоколы үшін жобалау және құжаттама жұмысын азайтады. Типикалық RESTful протоколдары мен XML RPC арасындағы маңызды техникалық айырмашылық – көптеген RESTful протоколдары параметрлік ақпарат үшін HTTP URI-ді пайдаланса, XML RPC-де URI тек серверді анықтайды. JSON RPC, XML RPC-ге ұқсас.

Сын

XML RPC-нің соңғы сыншылары (2010 жылдан бері) RPC шақыруларын қарапайым XML арқылы жасауға болады және XML RPC, XML-ден ешқандай артықшылық бермейді деп мәлімдейді. XML RPC де, XML де қолданба деңгейіндегі деректер моделін қажет етеді, мысалы, XML схемасындағы өріс атаулары немесе XML RPC-дегі параметрлердің атаулары осы модельде анықталады. Сонымен қатар, XML RPC бірдей объектілерді кодтау үшін қарапайым XML-ге қарағанда шамамен 4 есе көп байтты пайдаланады, ал XML өзі JSON-мен салыстырғанда ауыр болып саналады.