# சிம்பிள் ஆப்ஜக்ட் ஆக்சஸ் புரோட்டாக்கால்



*சிம்பிள் ஆப்ஜக்ட் ஆக்சஸ் புரோட்டாக்கால்* என உண்மையில் விரிவாக்கப்படும் **SOAP** என்பது கணினி நெட்வொர்க்குகளின் வலை சேவைகளின் செயல்படுத்தலில் பரிமாற்றக் கட்டமைப்புத் தகவலுக்கான ஒரு நெறிமுறை விவரக்கூற்று ஆகும். இது அதன் செய்தி வடிவத்தில் எக்ஸ்டென்சிபில் மார்க்கப் லாங்வேஜைச் (XML) சார்ந்திருக்கிறது, மேலும் இது பொதுவாக செய்தி ஒப்பந்தம் மற்றும் பரிமாற்றத்துக்காக மற்ற பயன்பாட்டு அடுக்கு நெறிமுறைகளைச் (மிகவும் குறிப்பாக தொலை செயல்முறை அழைப்பு (RPC) மற்றும் HTTP) சார்ந்திருக்கிறது. SOAP வலை சேவைகள் நெறிமுறை அடுக்கின் அடித்தள அடுக்கை உருவாக்கலாம், இது உருவாக்க முடிந்த வலை சேவைகளின் மேல் அடிப்படைச் செய்திக் கட்டமைப்பை வழங்குகிறது. இந்த XML சார்ந்த நெறிமுறை பின்வரும் மூன்று பகுதிகள் கொண்டது: செய்தியில் என்ன இருக்கிறது மற்றும் எப்படி அதைச் செயல்படுத்துவது என்பதை விவரிக்கும் ஒரு என்வலெப், பயன்பாடு-விவரிக்கப்பட்ட தரவுவகைகளின் வெளிப்படுத்தப்பட்ட எடுத்துக்காட்டுகளுக்கான குறியீடுடுதல் விதிகளின் தொகுப்பு மற்றும் செயல்முறை அழைப்புகள் மற்றும் பதில்களைக் குறிப்பிடுவதற்கான மரபு ஆகியவை.  

எப்படி SOAP செயல்முறைகளைப் பயன்படுத்தலாம் என்பதற்கான லேமனின் எடுத்துக்காட்டாக, SOAP செய்தி தேடுவதற்கு தேவைப்படும் துணையலகுடன் வலை சேவை இயங்கும் வலைதளத்துக்கு அனுப்பப்படலாம் (எடுத்துக்காட்டாக, வீட்டு விலை தரவுத்தளம்). இந்தத் தளமானது பின்னர் முடிவுத் தரவுடன் (விலைகள், இடம், சிறப்பியல்புகள் மற்றும் பல) XML-வடிவ ஆவணத்தைத் திரும்ப அனுப்பும். ஏனெனில் தரவானது தரப்படுத்தப்பட்ட இயந்திர-சொல்லாக்க வடிவமாகக் திரும்பக் கிடைக்கும், இதனைப் பின்னர் மூன்றாம் தரப்பு வலைத்தளத்தால் நேரடியகா உள்ளிணைக்க முடியும்.  

செய்தி வடிவம், செய்திப் பரிமாற்ற உருமாதிரிகள் (MEP), அடிப்படைப் போக்குவரத்து நெறிமுறை கட்டமைவுகள், செய்தி செயல்பாட்டு மாதிரிகள் மற்றும் நெறிமுறை நீள்-திறன் ஆகியவற்றுக்கான விவரக்கூற்றின் பல்வேறு அடுக்குகளைக் கொண்டதாக SOAP கட்டமைப்பு இருக்கிறது. SOAP என்பது XML-RPCயின் அடுத்த வந்ததாகும், இருப்பினும் இது வேறோர் இடத்தில் இருந்து (பெரும்பாலும் WDDX இலிருந்து) அதன் போக்குவரத்தையும் இடைவினை நடுநிலைத்தன்மையையும் மற்றும் என்வலெப்/ஹெட்டர்/உடல்பகுதி ஆகியவற்றையும் கடனாகப் பெறுகிறது.  

## வரலாறு
**SOAP** என்பது முன்னர் 'சிம்பிள் ஆப்ஜக்ட் ஆக்சஸ் புரோட்டோகால்' என அழைக்கப்பட்டது, ஆனால் இந்த விரிவுப்பெயர், தரத்தின் பதிப்பு 1.2 உடன் கைவிடப்பட்டது. பதிப்பு 1.2 ஜூன் 24, 2003 இல் W3C பரிந்துரையைப் பெற்றது. இந்த விரிவுப்பெயர் சிலநேரங்களில் சர்வீஸ்-ஓரியன்டட் ஆர்கிடெக்ச்சர் எனப்படும் **SOA** உடன் குழப்பத்தை ஏற்படுத்துகிறது; எனினும் SOAP என்பது SOA இலிருந்து முற்றிலும் மாறுபட்டது.  

SOAP, டேவ் ஒயினர், டான் பாக்ஸ், பால் ஆட்கின்சன் மற்றும் மோசன் ஆல்-கோசியன் ஆகியோரால் 1998 இல் மைக்ரோசாஃப்டின் (அந்த நேரத்தில் ஆட்கின்சன் அங்கு பணிபுரிந்தார்) ஆதரவுடன் முதன்முதலில் பொருள்-அணுகல் நெறிமுறையாக வடிவமைக்கப்பட்டது. SOAP விவரக்கூற்று வேர்ல்ட் வைடு வலை கூட்டமைப்பின் XML நெறிமுறைப் பணிக் குழு மூலமாகத் தற்போது பராமரிக்கப்படுகிறது.  

## போக்குவரத்து முறைகள்
SOAP, போக்குவரத்து நெறிமுறையாக இணையப் பயன்பாட்டு அடுக்கு நெறிமுறையைப் பயன்படுத்துகிறது. இதில் சில நெறிமுறைகள் அவற்றின் திட்டமிடப்படாதப் நோக்கமாகத் தவறாகப் பயன்படுத்தப்பட்டிருக்கிறது என விமர்சகர்கள் வாதிடுகிறார்கள், மேலும் ஆகையால் அதன் பங்கை அவை நன்றாக நிறைவு செய்யவில்லை. SOAP இன் ஆதரவாளர்கள் மற்ற நெறிமுறைகளின் நுழைவுவழிக்கான பல்வேறு நிலைகளில் நெறிமுறைகளின் வெற்றிகரமான பயன்பாட்டுக்கு இணையானவைகளாக இதனை விவரிக்கிறார்கள்.  

SMTP மற்றும் HTTP இரண்டும் SOAPக்கான போக்குவரத்தாக பயன்படுத்தக்கூடிய ஏற்கத்தக்க பயன்பாட்டு அடுக்கு நெறிமுறைகளாக இருக்கின்றன, ஆனால் HTTP இன்றைய இணைய உட்கட்டமைப்புடன் நன்றாகச் செயல்படுவதன் மூலமாக பரவலாக ஏற்றுக்கொள்ளப்படுகிறது; குறிப்பாக, நெட்வொர்க் ஃபயர்வால்களுடன் HTTP நன்றாகச் செயல்படுகிறது. எளிமையான அல்லது பரஸ்பர உறுதிப்பாட்டுடன் HTTPSஇன் (இது பயன்பாட்டு நிலையில் HTTP ஆக அதே நெறிமுறையாக இருக்கிறது, ஆனால் மறையிடப்பட்ட போக்குவரத்து நெறிமுறையின் கீழ் பயன்படுத்துகிறது) மேலும் SOAP பயன்படுத்தப்படலாம்; இது வலை சேவைப் பாதுகாப்பு வழங்குவதற்கு ஏற்றுக்கொள்ளப்பட்ட WS-I முறை என WS-I பேசிக் புரொஃபைல் 1.1 இல் குறிக்கப்பட்டிருக்கிறது. இது பொதுவாக ஃபயர்வால்கள் மூலமாக வடிகட்டப்படும் GIOP/IIOP அல்லது DCOM போன்ற மற்ற பங்கிடப்பட்ட நெறிமுறைகளின் மேல் முக்கியமாக நன்மையளிப்பதாக இருக்கிறது. *SOAP ஓவர் AMQP* சில செயல்படுத்தல் ஆதரவுக்கான மற்ற சாத்தியக்கூறும் கொண்டு இருக்கிறது.  

XML பெரும்பாலான கார்ப்பரேசன்கள் மற்றும் திறந்த மூல மேம்பாட்டு முயற்சிகள் மூலமாக அதன் பரவலான பயன்பாடு காரணமாக தரமான செய்தி வடிவமாகத் தேர்ந்தெடுக்கப்பட்டது. கூடுதலாக, பரவலான பல்வேறு வகைகளில் இலவசமாகக் கிடைக்கக்கூடிய கருவிகள், SOAP-சார்ந்த செயல்படுத்தலுக்கு நிலைமாற்றத்தைக் கணிசமான அளவில் எளிதாக்குகின்றன. ஓரளவு நீண்ட தொடரியல் உடைய XML, நன்மைகள், குறைபாடுகள் இரண்டையும் கொண்டிருக்கின்றன. இது மனிதர்கள் படிக்கக்கூடிய திறன், பிழை கண்டறிதல் மற்றும் பைட்-வரிசை (என்டீயன்னஸ்) போன்ற உள்ளியக்கத்திறன் பிரச்சினைகளைத் தவிர்த்தல் போன்றவற்றை ஊக்குவித்த போதும், இது செயல்பாட்டு வேகத்தைத் தாமதப்படுத்தலாம் மற்றும் சிக்கலாக்கலாம். எடுத்துக்காட்டாக, CORBA, GIOP, ICE மற்றும் DCOM போன்றவை மிகவும் குறுகிய பைனரி செய்தி வடிவத்தைப் பயன்படுத்துகின்றன. மற்றொரு வகையில், வன்பொருள் சாதனங்கள், XML செய்திகளின் செயல்பாட்டைத் துரிதப்படுத்தும் வகையில் கிடைக்கின்றன. பைனரி XML என்பது XML இன் செயல்வீதத் தேவைகளை ஒழுங்குபடுத்துவதற்கான வழிவகையாகவும் ஆராயப்படுகிறது.  

## மாதிரி SOAP செய்தி
### கோரிக்கை
<source lang="xml">  
<soapenv:Envelope  
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/  
http://schemas.xmlsoap.org/soap/envelope/">  
<soapenv:Body>  
<req:echo xmlns:req="http://localhost:8080/axis2/services/MyService/">  
<req:category>classifieds</req:category>  
</req:echo>  
</soapenv:Body>  
</soapenv:Envelope>  
</source>  

### பிரதிசெயல்
<source lang="xml">  
<soapenv:Envelope  
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"  
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/  
http://schemas.xmlsoap.org/soap/envelope/">  
<soapenv:Header>  
<wsa:ReplyTo>  
<wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>  
</wsa:ReplyTo>  
<wsa:From>  
<wsa:Address>http://localhost:8080/axis2/services/MyService</wsa:Address>  
</wsa:From>  
<wsa:MessageID>ECE5B3F187F29D28BC11433905662036</wsa:MessageID>  
</soapenv:Header>  
<soapenv:Body>  
<req:echo xmlns:req="http://localhost:8080/axis2/services/MyService/">  
<req:category>classifieds</req:category>  
</req:echo>  
</soapenv:Body>  
</soapenv:Envelope>  
</source>  

## தொழில்நுட்பத் திறனாய்வு
### நன்மைகள்
- SOAP ஓவர்** HTTP** பயன்படுத்துதல் முந்தைய தொலைதூர நிறைவேற்றல் தொழில்நுட்பத்தைக் காட்டிலும் எளிதாக ப்ராக்சீக்கள் மற்றும் ஃபயர்வால்கள் மூலமாகத் தொடர்புகொள்வதற்கு அனுமதிக்கிறது.
- SOAP மாறுபட்ட போக்குவரத்து நெறிமுறைகளைப் பயன்படுத்த அனுமதிப்பதற்குப் போதுமான பல்துறைத்திறனுடன் இருக்கிறது. வழக்கமான அடுக்குகள் போக்குவரத்து நெறிமுறையாக HTTPஐப் பயன்படுத்துகின்றன, ஆனால் மற்ற நெறிமுறைகளும் பயன்படுத்தலாம் (எ.கா., SMTP).
- SOAP இயக்குதளம் சாராததாக இருக்கிறது.
- SOAP மொழி சாராததாகவும் இருக்கிறது.

### குறைபாடுகள்
- வெர்போஸ் XML வடிவத்தின் காரணமாக, CORBA போன்ற போட்டி மிடில்வேர் தொழில்நுட்பங்களைக் காட்டிலும் SOAP கணிசமான அளவில் மெதுவாக இருக்கலாம். இது சிறிய செய்திகளை மட்டுமே அனுப்பும் போது ஒரு பிரச்சினையாக இல்லாமல் இருக்கலாம். பதிக்கப்பட்ட பைனரி பொருட்களுடன் கூடிய XML இன் சிறப்பு நிலைகளுக்கான செயல்பாட்டை மேம்படுத்துவதற்கு, செய்திப் பரிமாற்ற உகப்புப்பாட்டு இயங்கமைப்பு அறிமுகப்படுத்தப்பட்டது.
- HTTP ஐ ஒரு போக்குவரத்து நெறிமுறையாகச் சார்ந்திருத்தல் மற்றும் WS-அட்ரசிங் அல்லது ESB பயன்படுத்தப்படாத போது, இடைவினையாளர்களின் பங்குகள் நிலையானதாக இருக்கிறது. ஒரு நபர் (கிளையண்ட்) மட்டுமே மற்றதன் சேவைகளைப் பயன்படுத்த முடியும். டெவலப்பர்கள் இந்தப் பொதுவான நிகழ்வில் அறிவித்தலுக்கு மாறாகப் போலிங்கைப் பயன்படுத்த வேண்டும்.
- போக்குவரத்து நெறிமுறையாக HTTPயின் பெரும்பாலான பயன்பாடுகள் HTTP இல் செயல்பாடுகள் எப்படி வடிவமைக்கப்பட்டிருக்கிறது என்பதை அறியாதவையாக இருக்கின்றன. இது IP அடுக்கில் மாறுபட்ட நெறிமுறைகள் எப்படி ஒன்றுக்கொன்று உச்சியில் அமர்ந்திருக்கின்றன என்பதற்கு வடிவமைப்பு ஒத்ததாக இருக்கின்றன. ஆனால் இந்த ஒப்புமை சரியானதாக இல்லை; போக்குவரத்து நெறிமுறையாக பயன்படுத்தப்படும் பயன்பாட்டு நெறிமுறைகள் உண்மையில் போக்குவரத்து நெறிமுறைகள் அல்ல. அதன் விளைவாக, செயல்பாட்டிற்கு உகந்த முறை பயன்படுத்தப்பட்டிருக்கிறதா என்பதை அறிந்து கொள்வதற்கு வழி இல்லை. இது உப-உகந்த முடிவுகளுடன் பிரச்சினைக்குரிய பயன்பாட்டு-நெறிமுறை நிலையில் நல்ல பகுப்பாய்வை உருவாக்குகிறது, எடுத்துக்காட்டாக, ஒரு POST செயல்பாடு அது மிகவும் இயல்பாக GET ஆக வடிவமைக்கப்படும் போது பயன்படுத்தப்படுகிறது. REST கட்டமைப்பு HTTPயின் வரையறுக்கப்பட்ட முறைகளின் ஏற்ற பயன்பாட்டை உருவாக்கும் மாற்று வலை சேவையாக மாறியிருக்கிறது.
- ஒரு போக்குவரத்து நெறிமுறையாக HTTPஐச் சார்ந்திருக்கும் போது, வலை உலவுவதற்கு மட்டுமே வடிவமைக்கப்பட்டிருக்கும் ஒரு ஃபயர்வால், HTTP தொகுப்புகளின் மிகவும் விரிவான (ஆகையால் அது மிகவும் விலையுயர்ந்தது) பகுப்பாய்வைச் செயல்படுத்துவதற்குக் கட்டாயப்படுத்தப்படுகிறது.
- SOAP திறந்த தரநிலை உடையதாக இருந்த போதும், அனைத்து மொழிகளும் ஏற்ற ஆதரவை வழங்குவது இல்லை. ஜாவா, கர்ல், டெல்பி, PHP, .NET மற்றும் ஃபிளெக்ஸ் போன்றவை சிறப்பான SOAP உள்ளிணைப்பு மற்றும்/அல்லது IDE ஆதரவை வழங்குகின்றன. சில பெர்ல் மற்றும் பைத்தான் ஆதரவு ஏற்கனவே இருக்கிறது.