SOA vs ESB
Ang SOA ay isang hanay ng mga konsepto ng arkitektura na ginagamit para sa pagbuo at pagsasama-sama ng mga serbisyo. Ang isang serbisyo ay isang pampubliko na pakete ng pag-andar na inaalok sa web. Ang ESB ay isang piraso ng software sa imprastraktura na nagbibigay ng isang software architecture na binuo para sa pagbibigay ng mga pangunahing serbisyo para sa mga kumplikadong arkitektura. Maaaring gamitin ang ESB bilang isang plataporma kung saan naisasakatuparan ang SOA.
Ano ang SOA?
Ang SOA (Service-oriented architecture) ay isang hanay ng mga konseptong arkitektura na ginagamit para sa pagbuo at pagsasama-sama ng mga serbisyo. Ang SOA ay tumatalakay sa distributed computing kung saan ang mga consumer ay gumagamit ng isang hanay ng mga interoperable na serbisyo. Maramihang mga mamimili ay maaaring kumonsumo ng isang solong serbisyo at vice versa. Samakatuwid, ang SOA ay kadalasang ginagamit upang isama ang maramihang mga application na gumagamit ng iba't ibang mga platform. Para maayos na gumana ang SOA, ang mga serbisyo ay dapat na maluwag na isinama sa mga operating system at mga teknolohiya ng pinagbabatayan na mga application. Lumilikha ang mga developer ng SOA ng mga serbisyo gamit ang mga unit ng functionality, at ginagawang available ang mga ito sa internet. Maaaring gamitin ang mga serbisyo sa web upang ipatupad ang SOA architecture. Sa kasong iyon, ang mga serbisyo sa web ay nagiging mga yunit ng functionality ng SOA na naa-access sa internet. Ang mga serbisyo sa web ay maaaring gamitin ng sinuman nang hindi nababahala tungkol sa mga platform o mga programming language na ginagamit para sa pagbuo ng mga ito. Direktang binuo ang SOA sa prinsipyo ng service-orientation, na nagsasalita tungkol sa mga serbisyong may simpleng interface na maaaring ma-access nang hiwalay ng mga user, nang hindi nababahala tungkol sa aktwal na pagpapatupad ng platform ng serbisyo.
Ano ang ESB?
Ang ESB (Enterprise Service Bus) ay isang piraso ng infrastructure software na nagbibigay ng software architecture na binuo para sa pagbibigay ng mga pangunahing serbisyo para sa mga kumplikadong arkitektura. Ngunit mayroong malaking argumento kung tatawagin ang ESB na isang istilo ng arkitektura o isang produkto ng software o kahit isang pangkat ng mga produkto. Nagbibigay ito ng mga serbisyo sa pamamagitan ng event driven at standards based engine para sa pagmemensahe (na talagang service bus). Sa ibabaw ng messaging engine na ito, isang layer ng abstraction ang ibinibigay upang payagan ang mga arkitekto na samantalahin ang mga pasilidad na inaalok ng bus, nang hindi nagsusulat ng anumang aktwal na code. Karaniwang ipinapatupad ang ESB sa pamamagitan ng mga imprastraktura ng middleware na nakabatay sa pamantayan.
Ang paggamit ng terminong “bus” sa ESB ay dahil sa katotohanan na ang ESB ay nagbibigay ng halos kaparehong function sa pisikal na computer bus, ngunit sa mas mataas na antas ng abstraction. Isa sa mga pangunahing bentahe ng pagkakaroon ng ESB ay ang kakayahang bawasan ang bilang ng mga point-of-contact; kaya, ginagawang mas madali ang pagbagay sa mga pagbabago. Maaaring gamitin ang ESB bilang isang plataporma kung saan naisasakatuparan ang SOA. Ang mga konsepto ng pagbabago/pagruruta (kaugnay ng daloy) ay maaaring dalhin sa SOA ng ESB. Higit pa rito, sa pamamagitan ng pagpapatunay ng abstraction para sa mga endpoint (sa SOA), itinataguyod ng ESB ang maluwag na pagsasama sa pagitan ng mga serbisyo.
Ano ang pagkakaiba ng SOA at ESB?
May ilang pangunahing pagkakaiba sa pagitan ng SOA at ESB. Ang SOA ay isang modelo ng arkitektura para sa pagpapatupad ng maluwag na pinagsamang mga application na batay sa serbisyo. Ang ESB ay isang piraso ng infrastructure software na tumutulong sa mga developer na bumuo ng mga serbisyo, at makipag-ugnayan sa pagitan ng mga serbisyo sa pamamagitan ng mga angkop na API. Maaaring gamitin ang ESB bilang isang plataporma kung saan naisasakatuparan ang SOA. Ang ESB lamang ang daluyan kung saan dumadaloy ang mga serbisyo. Nagbibigay ang ESB ng mga pasilidad para sa komposisyon at pag-deploy ng mga serbisyo, na nagpapatupad naman ng SOA.