ஒப்பந்த சோதனைகள்

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

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

எனவே, இரு நுண்சேவைகளுக்கிடையேயான தரவுப் பரிமாற்றம் எப்படி அமையவேண்டும் என்பதை, அந்தந்த சேவைகளே முடிவு செய்கின்றன. இந்த தரவுப் பரிமாற்றத்தில், ஒரு சேவை தரவைக் கொடுக்கிறது, மற்றொரு சேவை பெற்றுக்கொள்கிறது.

தரவைப் பெற்றுக்கொண்ட சேவை, அதைப் பயன்படுத்தி வேறொரு வேலையைச் செய்யவேண்டியிருக்கும். எடுத்துக்காட்டாக, ஒரு வலைத்தளத்தில் பதிவுசெய்வதற்கென ரகசியக் குறியீட்டை அனுப்புகிற சேவையையும், அதனை வலைப்பக்கத்தில் காட்டுகிற சேவையையும் எடுத்துக்கொள்ளலாம். அதற்கான வரையறை கீழே.

{
    "path": "/{user_id}/secret_code",
    "method": "GET",
    "response": {
        "user_id": "string",
        "secret_code": "integer"
    }
}

பயனரின் அடையாள எண்ணைக்கொடுத்து, ரகசியக்குறியீட்டை, /{user_id}/secret_code என்ற பாதையில் உள்ள சேவையிடமிருந்து பெறலாம் என்றும், அது பயனரின் அடையாளத்தையும் (user_id), ரகசியக் குறியீட்டையும் (secret_code) தருகிறது என்பதையும், அவற்றின் தரவினங்களையும் (முறையே string, integer) இதிலிருந்து நாம் புரிந்து கொள்ளலாம். இந்த புரிந்துணர்வின் அடிப்படையில், தரவைப் பெற்றுக்கொள்ளும் சேவை தன் வேலையைச் செய்யும்.

ஒருவேளை, ஏதோவொரு காரணத்திற்காக, இந்த ரகசியக் குறியீட்டை எண்ணிலிருந்து, சரமாக மாற்ற முடிவுசெய்தால், அதன் வரையறை பின்வருமாரு மாறுகிறது.

{
    "path": "/{user_id}/secret_code",
    "method": "GET",
    "response": {
        "user_id": "string",
        "secret_code": "string"
    }
}

ஒரு எண்ணை (integer) எதிர்பார்த்துக்கொண்டிருந்த சேவைக்கு, சரத்தை (string) அனுப்பினால் அதனால் கையாள முடியாது. இது போன்ற மாற்றங்களை அடையாளம் கண்டு சொல்வதற்காக ஒப்பந்தச் சோதனைகள் பயன்படுகின்றன.

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

%d bloggers like this: