REST at SOAP
Panimula
Tinatalakay ng artikulong ito ang dalawang mga protocol sa pag-access sa serbisyo ng web, SOAP ("Simple Object Access Protocol") at REST ("Kinatawan ng Paglipat ng Estado").
Mga serbisyo sa web
Ang mga serbisyo sa web ay tinukoy upang aktibong kunin, basahin, o ilipat ang data mula sa tinukoy na mapagkukunan upang makagawa ng tinukoy na kinalabasan - isang resulta.
Ang sumusunod na halimbawa ay nagpapakita ng isang pangunahing paggamit ng mga serbisyo sa web bago maunawaan kung paano ang data ay inilipat sa at mula sa serbisyo sa web, gamit ang SOAP o REST.
Kung ang isang developer ay nagsusulat ng isang application na nangangailangan ng ilang pagkalkula ng data sa isang lugar, isusulat ang paraan ng pagkalkula sa code, sa isang lugar na iyon. Gayunpaman, kung ang pagkalkula ng data ay kinakailangan sa ibang mga bahagi ng aplikasyon, magiging hindi sapat at hindi praktikal upang mapanatili kung inilagay ng developer ang paraan ng pagkalkula sa bawat lugar na kinakailangan nito.
Ang pagkakaroon ng isang pagbabago sa paraan na iyon ay nangangailangan ng paghahanap ng bawat pagkakataon na i-edit (at muling subukan). Ang sitwasyong ito ay makikinabang mula sa paggamit ng isang serbisyo sa web upang gumana nang mahusay at pagbutihin ang agility ng negosyo.
Sa pamamagitan ng paglikha ng isang serbisyo sa web na may mga naa-access na paraan upang idagdag, ibawas, hatiin at i-multiply, ang application ay sasali sa serbisyong web na iyon sa tuwing kinakailangan ang pagkalkula ng data; tinatawag nito ang serbisyo sa web upang gawin ang pagkalkula at gumawa ng resulta. Kaya mayroon lamang isang lugar para sa developer na mapanatili ang paraan ng pagkalkula ng data.
Ang paraan ng paghawak ng data sa mga serbisyo ng web ay tinutukoy ng kung ipinapatupad ang SOAP o REST.
SOA at BPMN
Ang isang application na binuo sa mga proseso ng executable ay batay sa isang Serbisyo na Nakatuon sa Architecture ("SOA"). Ito ay isang diskarte sa kung paano gumamit ng mga serbisyo na naglilipat, gumagawa, nagpapatunay o nagkakalkula ng data.
SOA ay nagiging mas at mas kanais-nais na mapabuti sa kalidad at oras ng pag-unlad, at pagbutihin ang pagganap ng application at kakayahang sumukat.
Proseso ng Pagpaplano sa Proseso ng Negosyo ("BPMN") ay pagmomodelo ng isang serbisyo o proseso ng negosyo, na maaaring gawin ng mga di-teknikal na mga tao, i.e. ang business analyst. Paggamit BPMN, ang mga modelo ng negosyo (para sa mga serbisyo) ay madaling ipaliwanag sa pamamagitan ng mga developer na nagpapatupad ng modelo bilang isang maipapatupad na proseso, at ang mga prosesong ito ay maaaring o hindi maaaring mangailangan ng pakikipag-ugnayan ng tao.
Simple Object Access Protocol (SOAP)
Ang SOAP ay isang paraan ng paglilipat ng data sa internet.
Orihinal na binuo ng Microsoft dahil sa pagdating ng internet, pinalitan ng SOAP ang lumang DCOM at CORBA teknolohiya, at ito ay sa paligid para sa isang mas mahaba kaysa sa REST.
Ang SOAP ay itinuturing na mas mabigat kaysa sa REST i.e. mayroong higit pang mga bagahe na kinakailangan upang maglipat ng data, na nangangahulugan ng mas maraming bandwidth ay kinakailangan sa bawat kahilingan ng mensahe at ang pinagmulan ng data at mga target ay may mas maraming trabaho na gagawin kapag ang packaging at pagtanggap ng data.
Ginagamit lamang ng SOAP XML para sa mga serbisyo ng pagmemensahe sa internet, at ang mga kahilingan sa mensahe ng XML ay maaaring maging lubhang kumplikado at kung binuo nang manu-mano, kailangan ang maingat na atensyon dahil ang SOAP ay hindi maayos sa mga pagkakamali.
Posible na i-automate ang mga kahilingan ng mensahe ng SOAP gamit ang mga wika ng NET (bilang isang halimbawa), kung saan ang mga developer ay hindi kailangang gumana sa XML dahil awtomatiko itong binuo sa background.
Kung may anumang mga problema ay nakatagpo sa kahilingan ng mensahe, ang detalyadong impormasyon ng error ay ibinalik sa tugon ng mensahe, at ang prosesong ito ay maaari ring awtomatiko sa pamamagitan ng pagtukoy sa karaniwang mga error code na ibinigay sa tugon ng mensahe.
Samakatuwid, ang programming language na ginamit ay isang kadahilanan sa pagtukoy sa kung gaano kahirap na ipatupad ang SOAP.
Ang isa sa mga piraso ng bagahe na kasama ng isang mensahe ng SOAP ay ang Mga Serbisyo sa Web Paglalarawan Wika ("WSDL") upang ipaliwanag kung paano gumagana ang serbisyo sa web. Kapag ang isang application ay tumutukoy sa serbisyo sa web, nagbabasa at nauunawaan kung ano ang gagawin sa web service.
Ang SOAP ay hindi nakatali sa paggamit HTTP (HyperText Transfer Protocol) eksklusibo; maaari itong magamit sa SMTP, at iba pang mga protocol ng transportasyon.
Bilang SOAP ay standardized, ito ay mas matibay kaysa REST, bagaman ang parehong umaasa sa itinatag na mga patakaran.
REST
Ang REST ay ang mas bagong at mas malambot na pinsan ng SOAP, at mabilis na nagiging pagpipilian para sa karamihan sa mga web at mobile na mga application.
Mahigit sa isang dekada pagkatapos ng pagpapakilala nito, ang REST ay isang mas magaan, mas mapanatili at masusukat na paraan ng pakikipag-ugnayan sa mga serbisyo sa web.
Hindi tulad ng SOAP, hindi ginagamit ng REST XML eksklusibo; plain text, CSV, at RSS ay maaaring gamitin, pati na rin JSON para sa mga tawag sa AJAX; hangga't ang parehong pinagmumulan at mga target ay maaaring maunawaan ang mga format na ginamit.
Ang REST ay mas kumplikado at itinuturing na isang mas maliit na curve sa pagkatuto kumpara sa SOAP. Karamihan sa mga modernong programming language ay may mga aklatan at balangkas upang mapadali ang mga serbisyong REST (RESTful), tulad ng C #, Python, Java, at Perl.
Mas mabilis ang REST dahil sa minimal na pagproseso at pagiging mas mahusay gamit ang iba't ibang mga format ng mensahe.
May mga pakinabang at disadvantages sa pareho, kaya kapag isinasaalang-alang kung aling access protocol na gagamitin, isaalang-alang ang mga programming language na ginagamit sa organisasyon, ang application na kapaligiran at mga kinakailangan sa application.