SOAP este un protocol simplu, utilizat pentru transferul de informaţie intr-un mediu descentralizat, distribuit.

Este un protocol bazat pe XML care presupune 3 parţi: un înveliş care defineşte un framework pentru descrierea conţinutului unui mesaj şi cum se procesează acesta, un set de reguli de codificare pentru instanţe ale unor expresii din aplicaţii – tipuri de date definite, şi o convenţie pentru reprezentarea apelurilor şi răspunsurilor procedurilor apelate la distanta. SOAP poate fi utilizat in combinaţie cu o varietate de alte protocoale, in special in combinaţie cu HTTP.

Protocolul SOAP

Exista câteva tipuri diferite ale modelelor de mesaje in SOAP, dar pe departe cel mai comun este modelul Apel de Procedura la Distanta (RPC), in care un nod de reţea (clientul) trimite un mesaj cerere către alt nod (serverul), şi serverul imediat trimite un mesaj răspuns clientului. SOAP este succesorul XML-RPC, de aceea împrumuta transportul şi neutralitatea interacţiunii şi envelope/header/body.

SOAP iniţial a fost perceput ca Simple Object Access Protocol, iar mai târziu şi ca Service Oriented Architecture Protocol, dar acum este doar SOAP. Acronimul original a fost abandonat cu Versiunea 1.2 a Standardului, care a devenit o Recomandare W3C pe 24 Iunie 2003, când denumirea a fost considerata ca fiind derutanta.

Aplicaţiile din ziua de astăzi comunica utilizând “Apelurile de Procedura la Distanta” (RPC – Remote Procedure Calls) dintre obiecte, ca DCOM sau Corba, dar HTTP nu a fost creat pentru acest lucru. RPC reprezintă o problema de compatibilitate şi securitate; firewall-urile şi serverele proxy blochează in mod normal acest tip de trafic.

O cale mai buna de comunicaţie intre aplicaţii este prin HTTP, deoarece HTTP este suportat de toate browserele şi serverele Internet. SOAP a fost creat sa îndeplinească acest aspect.

SOAP furnizează o cale de comunicaţie intre aplicaţii care rulează pe diferite sisteme de operare, cu tehnologii şi limbaje de programare diferite.

UserLand, Ariba, Commerce One, Compaq, Developmentor, HP, IBM, IONA, Lotus, Microsoft şi SAP au propus organizaţiei W3C, in Mai 2000, protocolul SOAP in speranţa ca va revoluţiona dezvoltarea aplicaţiilor prin conectarea interfeţei grafice utilizator a aplicaţiilor desktop la servere puternice Internet, utilizând standardele Internet: HTTP şi XML.

Avantaje

  • Utilizând SOAP cu HTTP este permisa comunicaţia mai buna in spatele unui proxy sau firewall decât presupunea precedenta tehnologie de apel la distanţa.
  • SOAP este destul de versatil pentru a permite utilizarea protocoalelor de transport diferite. Stiva standard utilizează HTTP ca protocol de transport, dar alte protocoale sunt de asemenea utilizabile (TCP, SNMP).

Dezavantaje

  • Din cauza lungimii formatului XML, SOAP poate fi destul de lent in comparaţie cu tehnologiile middleware, cum este CORBA. Aceasta poate sa nu fie o problema când se trimit numai mesaje scurte.
  • Când ne bazam pe HTTP ca protocol de transport, rolurile părţilor care interacţionează sunt stabilite. Doar o parte (clientul) poate utiliza serviciile altuia. Deci dezvoltătorii trebuie sa utilizeze polling in schimbul notificării in aceste cazuri comune.
  • Multe implementări SOAP limitează cantitatea de date care poate fi trimisa.