பொருளடக்கம்[மறை][காட்டு]
WhatsApp என்பது ஒரு சமூக செய்தியிடல் திட்டமாகும், இது பயனர்கள் ஒருவருக்கொருவர் செய்திகளை பரிமாறிக்கொள்ள அனுமதிக்கிறது.
WhatsApp எவ்வாறு செயல்படுகிறது என்பதை நீங்கள் எப்போதாவது யோசித்திருக்கிறீர்களா?
அதன் உருவாக்கம் மற்றும் செயல்பாட்டை ஆதரிக்கும் கருத்துக்கள் யாவை?
இந்தக் கட்டுரை வாட்ஸ்அப்பின் அடிப்படைகளைப் பற்றியது அமைப்பு வடிவமைப்பு.
எந்த வகையான அரட்டை மென்பொருளையும் உருவாக்கப் பயன்படும் வாட்ஸ்அப்பின் பொதுவான கட்டமைப்பையும் நாங்கள் படிப்போம்.
எனவே, மேலும் கவலைப்படாமல், வாட்ஸ்அப்பின் கணினி வடிவமைப்பைப் பார்ப்போம்!
1. முக்கிய தேவைகள்
வாட்ஸ்அப் என்பது உலகெங்கிலும் உள்ள பலரால் பயன்படுத்தப்படும் மிகவும் அளவிடக்கூடிய தொழில்நுட்பமாகும். இதன் விளைவாக, அது எப்போதும் நம்பகத்தன்மையுடனும் செயல்படக்கூடியதாகவும் இருக்கும்படி நன்கு வடிவமைக்கப்பட வேண்டும்.
இதன் விளைவாக, கணினியின் முக்கியமான தேவைகளைத் தீர்மானிப்பது மிகவும் முக்கியமானது.
வாட்ஸ்அப் மெசஞ்சருக்கான குறைந்தபட்ச தேவைகள் இவை:
- ஒருவருக்கொருவர் தொடர்புகளை எளிதாக்கும் திறன் கொண்டது.
- செய்தி ஒப்புகை மற்றும் கடைசியாகப் பார்த்தது இரண்டும் சாத்தியமாகும் (அனுப்பப்பட்டது, வழங்கப்பட்டது மற்றும் படித்தது).
- எண்ட்-டு-எண்ட் என்க்ரிப்ஷன் மற்றும் மீடியா ஆதரவை (படங்கள்/வீடியோக்கள்) அனுமதிக்கவும்.
நமது அவசியமான சேவைக்கு எவ்வளவு திறன் தேவைப்படுகிறது என்பதைக் கண்டுபிடிப்போம்.
2. மதிப்பிடும் திறன்
பெரிய அளவிலான போக்குவரத்தை கையாளும் திறன் கொண்ட தளத்தை உருவாக்குவதே எங்கள் நோக்கம். ஒரு நாளைக்கு 10 பில்லியன் எஸ்எம்எஸ் அனுப்பப்படுகிறது என்று வைத்துக்கொள்வோம். எங்களுக்கு கிடைத்துள்ளது:
- ஒவ்வொரு நாளும், ஒரு பில்லியன் மக்களால் 10 பில்லியன் எஸ்எம்எஸ் அனுப்பப்படுகிறது.
- உச்ச ட்ராஃபிக்கில் (வினாடிக்கு), 700,000 பேர் சுறுசுறுப்பாக இருந்தனர் (6X சராசரி)
- உச்ச பயன்பாட்டில், ஒரு வினாடிக்கு 40 மில்லியன் செய்திகள் அனுப்பப்படுகின்றன.
- ஒரு செய்தியின் சராசரி நீளம் 160 எழுத்துகள்: 10B * 160 = 1.6TB தரவு ஒவ்வொரு நாளும் உருவாக்கப்படுகிறது.
- உதாரணமாக பத்து வருட சேவையை எடுத்துக் கொள்ளுங்கள்: 10 * 1.6B * 365 PB
- முழு பயன்பாடும் மைக்ரோ சர்வீஸால் ஆனது, ஒவ்வொன்றும் ஒரு சிறப்பு பணியைச் செய்யும். ஒரு செய்தியை அனுப்புவதற்கு 20 மில்லி விநாடிகள் ஆகும் என்றும் ஒரு சர்வருக்கு 100 ஒரே நேரத்தில் இணைப்புகள் உள்ளன என்றும் வைத்துக் கொள்வோம். இதன் விளைவாக, எதிர்பார்க்கப்படும் அரட்டை சேவையகங்களின் எண்ணிக்கை = (ஒரு வினாடிக்கு அரட்டை செய்திகள் தாமதம்)/ ஒரு சர்வருக்கு ஒரே நேரத்தில் இணைப்புகள் = 40M * 20ms / 100 = 8000 சர்வர்கள்.
3. உயர் நிலை கட்டிடக்கலை
இந்த அமைப்பு இரண்டு முக்கிய சேவைகளில் கட்டமைக்கப்பட்டுள்ளது. எடுத்துக்காட்டாக, அரட்டை சேவை மற்றும் இடைநிலை சேவை. அரட்டை சேவையானது பயனர்களின் ஆன்லைன் செய்திகளால் உருவாக்கப்படும் அனைத்து போக்குவரத்தையும் கையாளுகிறது. அதே நேரத்தில், தற்காலிக சேவையானது பயனர் ஆஃப்லைனில் இருக்கும்போது போக்குவரத்தை கையாளுகிறது.
பயனர் ஆன்லைனில் இருந்தால், செய்திகளை வழங்குவதற்கு அரட்டை சேவை பொறுப்பாகும்.
செய்தியைப் பெறுபவர் ஆன்லைனில் உள்ளாரா இல்லையா என்பதை இது சரிபார்க்கும்; பெறுநர் ஆன்லைனில் இருந்தால், இந்த சேவை உடனடியாக செய்தியை வழங்கும்; பெறுநர் ஆன்லைனில் இல்லை என்றால், அவர்கள் ஆன்லைனில் திரும்பும் போது இடைநிலை சேவை அவர்களுக்கு செய்தியை அனுப்பும்.
ஆஃப்லைன் பயனர் மீண்டும் இணைக்கும் வரை தற்காலிகமாக அணுகக்கூடிய தரவை வைத்திருப்பதற்காக இடைநிலை சேவை ஒரு தனி சேமிப்பிடத்தை வைத்திருக்கிறது.
உயர்நிலை APIகளை வடிவமைத்தல்
இந்தச் சேவையில் செய்திகளை அனுப்புவதற்கும் படிப்பதற்கும் இரண்டு உயர்நிலைச் செயல்பாட்டு APIகள் உள்ளன. REST கட்டமைப்பைப் பயன்படுத்தி கணினியை செயல்படுத்தலாம்.
செய்திகளை அனுப்புவதற்கான அளவுருக்கள்
இரண்டு பயனர்களுக்கு இடையே செய்திகளை அனுப்ப இந்த API பயன்படுத்தப்படும்.
உரையாடலின் அளவுருக்கள்
இந்த API ஆனது திரிக்கப்பட்ட அரட்டைகளைக் காண்பிக்கப் பயன்படுகிறது. நீங்கள் வாட்ஸ்அப்பைத் திறக்கும் போது முதலில் பார்ப்பது இதுதான். ஒரு ஏபிஐ வினவலில் ஒரு பயனருக்கு சில செய்திகளை மட்டுமே பெற விரும்புகிறோம். இதைக் கையாள, ஆஃப்செட் மற்றும் செய்தி எண்ணிக்கை அளவுருக்கள் தேவை.
கடைசியாகப் பார்த்தது, ஒற்றை டிக் மற்றும் இரட்டை டிக் போன்ற அம்சங்களின் செயல்பாடுகள் என்ன?
இந்தச் சேவைகளைப் பயன்படுத்துவதில் முக்கிய பங்கு ஒப்புகைச் சேவையாகும். இந்தச் சேவை தொடர்ந்து ஒப்புகைப் பதில்களை உருவாக்கிச் சரிபார்ப்பதால் இந்த அம்சங்கள் உருவாக்கப்பட்டன.
- ஒற்றை டிக்: பயனர் A இலிருந்து ஒரு செய்தி பயனர் B ஐ அடையும் போது, அந்தச் செய்தி அனுப்பப்பட்டதை ஒப்புக்கொண்டு சேவையகம் ஒரு டிக் ஐ அனுப்புகிறது.
- இரட்டை டிக்: சரியான இணைப்பு மூலம் சேவையகத்தின் செய்தி பயனர் B க்கு அனுப்பப்பட்ட பிறகு, பயனர் B, அந்தச் செய்தியை சர்வருக்குப் பெற்றதை ஒப்புக்கொள்வார். சேவையகம் பயனர் A க்கு மற்றொரு ஒப்புதலை வழங்கும். இதன் விளைவாக, ஒரு நகல் டிக் தோன்றும்.
- நீல டிக்: செய்தியைச் சரிபார்த்த பிறகு பயனர் பி மற்றொரு ஒப்புகையை சர்வருக்கு அனுப்புவார். சேவையகம் பயனர் A க்கு கூடுதல் ஒப்புகைச் செய்தியை அனுப்பும். அதன் பிறகு யூசர் ஏ திரையில் நீல நிற டிக் தோன்றும்.
- இறுதியாக பார்த்தது: கடைசியாகக் காணப்பட்ட அம்சத்திற்கு இதயத் துடிப்பு பொறிமுறையே முற்றிலும் பொறுப்பாகும். ஒவ்வொரு 5 வினாடிகளுக்கும், ஒரு இதயத் துடிப்பு சேவையகத்திற்கு அனுப்பப்படுகிறது, இது ஒவ்வொரு பயனரின் கடைசியாகப் பார்த்த நிலையை அட்டவணையில் கண்காணிக்கும், அதை வேறு எந்த பயனரும் உடனடியாக அணுக முடியும்.
4. முக்கிய அம்சங்களை வடிவமைத்தல்
தனிப்பயனாக்கப்பட்ட தொடர்பு
இது அரட்டை சேவையின் அவசியமான பகுதியாகும். ஒரு பயனர் இந்தச் சேவையைப் பயன்படுத்தி மற்றொரு பயனருக்குச் செய்திகளை அனுப்பலாம். இது எவ்வாறு செயல்படுகிறது என்பதைப் பார்ப்போம்:
ஜெய் ஆயுஷுடன் தொடர்பு கொள்ள விரும்புகிறார் என்று வைத்துக்கொள்வோம். ஜெய் ஒரு அரட்டை சேவையகத்துடன் இணைக்கப்பட்டுள்ளார், அதில் அவர் செய்தியைப் பெறுகிறார். சேட் அனுப்பப்பட்டதை அரட்டை சேவையகத்திலிருந்து ஜெய் உறுதிப்படுத்தினார். அரட்டை சேவையகம் இப்போது ஆயுஷ் இணைக்கப்பட்டுள்ள அரட்டை சேவையகத்தைப் பற்றிய தகவல்களை டேட்டா ஸ்டோரில் இருந்து கோருகிறது. ஜெய்யின் அரட்டை சேவையகம் இப்போது செய்தியை ஆயுஷின் அரட்டை சேவையகத்திற்கு அனுப்புகிறது, மேலும் ஆயுஷ் புஷ் மெக்கானிசம் மூலம் செய்தியைப் பெறுகிறார். ஆயுஷ் இப்போது ஜெய்யின் அரட்டை சேவையகத்திற்கு ஒரு ஒப்புகையை அனுப்புகிறார், இது செய்தி அனுப்பப்பட்டதை ஜெய்க்கு தெரிவிக்கிறது. ஆயுஷ் மீண்டும் செய்தியைப் படித்தால், அந்தச் செய்தி வாசிக்கப்பட்டதாக ஒரு புதிய ஒப்புதல் ஜெய்க்கு வழங்கப்பட்டது.
பயனர் செயல்பாட்டின் நிலை
ஒருவர் கடைசியாக செயலில் இருப்பது உடனடி தூதர்களின் வழக்கமான அம்சமாகும்.
கிளையன்ட் மற்றும் சர்வர் இடையே இணைப்பை பராமரிப்பதற்கான ஒரு அமைப்பு இந்த வரைபடத்தில் சித்தரிக்கப்பட்டுள்ளது. சேவையகத்திற்கும் கிளையண்டிற்கும் இடையே இருதரப்பு இணைப்பை ஏற்படுத்த இணைய சாக்கெட்டுகள் பயன்படுத்தப்பட்டன. இந்த இணைப்புகள் இதயத் துடிப்பை அனுப்புகின்றன, அவை பயனரின் செயல்பாட்டு நிலையைக் கண்காணிக்கப் பயன்படுகின்றன.
இறுதி முதல் இறுதி வரை தனியுரிமை
எண்ட்-டு-எண்ட் என்க்ரிப்ஷன் என்பது உரையாடும் பயனர்கள் மட்டுமே தகவல்தொடர்புகளைப் படிக்க முடியும் என்பதை உறுதிப்படுத்தும் ஒரு முக்கிய அம்சமாகும். தகவல்தொடர்புகளில் ஈடுபட்டுள்ள அனைத்து பயனர்களிடையேயும் ஒரு பொது விசை பகிரப்படுகிறது மற்றும் எண்ட்-டு-எண்ட் குறியாக்கத்தைத் தக்கவைக்க முக்கியமானது. சேனலில் ஜெய் மற்றும் ஆயுஷ் ஆகிய இரண்டு பயனர்கள் ஒருவருக்கொருவர் தொடர்பு கொள்கிறார்கள் என்று வைத்துக்கொள்வோம்.
ஜெய்யிடம் ஆயுஷின் பொது விசை உள்ளது, மேலும் ஆயுஷிடம் ஜெய்யின் பொது விசை மற்றும் பகிரப்படாத தனிப்பட்ட விசை உள்ளது. இதன் விளைவாக, ஜெய் செய்தியை அனுப்பும் போது, ஆயுஷின் பொது விசையுடன் அதை என்க்ரிப்ட் செய்கிறார், இது ஆயுஷின் பிரைவேட் கீ மூலம் மட்டுமே டிகோட் செய்ய முடியும்.
அதேபோல ஜெய் ஆயுஷின் தொடர்பை மட்டும் டீகோட் செய்ய முடியும். இதன் விளைவாக, Jay மற்றும் Aaysuh மட்டுமே ஒருவருக்கொருவர் தகவல்தொடர்புகளைப் பார்க்க முடியும், மேலும் சேவையகம் முழு செயல்முறையிலும் ஒரு நுழைவாயிலாக மட்டுமே செயல்படும்.
5. தடைகள்
ஒவ்வொரு அமைப்பும் செயலிழக்க வாய்ப்புள்ளது. இவ்வளவு பெரிய அளவிலான போக்குவரத்தை நிர்வகிக்க, இடையூறுகளைத் தவிர்க்க, சேவையானது எப்போதும் செயல்பாட்டில் இருக்க வேண்டும் மற்றும் தவறுகளை பொறுத்துக்கொள்ள வேண்டும். எங்கள் சேவையானது Chat மற்றும் Transient சேவையகங்களை முழுவதுமாக நம்பியிருப்பதால், அவற்றின் செயல்பாட்டினால் ஏற்படும் அனைத்து சிக்கல்களையும் நாங்கள் தீர்க்க வேண்டும்.
அரட்டை சேவையகத்தின் தோல்வி: இது எங்கள் அமைப்பின் இதயம். பயனர்கள் ஆன்லைனில் இருக்கும்போது, செய்திகளை நிர்வகிப்பதற்கும் வழங்குவதற்கும் பொறுப்பாகும். இதன் விளைவாக, இந்த அமைப்பு அதன் பயனர்களுடன் இணைப்புகளைப் பராமரிக்கிறது.
இதன் விளைவாக, இந்த சேவை தோல்வியுற்றால், ஒட்டுமொத்த கட்டிடக்கலை பாதிக்கப்படும். அரட்டை சேவையகத்தின் தோல்வியை நிர்வகிப்பதற்கு இரண்டு அணுகுமுறைகள் உள்ளன. ஒரு முறை TCP இணைப்புகளை மற்றொரு சேவையகத்திற்கு மாற்றுவது, மற்றொன்று இணைப்பு இழப்பு ஏற்பட்டால் தானாகவே இணைப்புகளைத் தொடங்க பயனர்களை அனுமதிப்பது.
நிலையற்ற சேமிப்பகத்தின் தோல்வி: செயலிழப்புக்கு ஆளாகும் மற்றொரு கூறு, இது முழு சேவையையும் இறுதியில் சேதப்படுத்தும். இந்தச் சேவை தோல்வியுற்றால் ஆஃப்லைன் பயனர்களுக்குச் செல்லும் செய்திகள் இழக்கப்படும்.
ஒவ்வொரு பயனரின் தற்காலிக சேமிப்பகத்தைப் பிரதியெடுப்பதன் மூலம் செய்தி இழப்பைத் தடுக்கலாம். இதன் விளைவாக, பயனர் ஆன்லைனில் திரும்பும் போதெல்லாம் செயல்பாடுகளைச் செயல்படுத்த பிரதியைப் பயன்படுத்தலாம். அசல் சேவையகம் அணுகக்கூடியதாக இருந்தால், பயனரின் இடைநிலை சேமிப்பகத்தின் அசல் மற்றும் பிரதி நிகழ்வுகள் இரண்டும் ஒரே அங்காடியாக இணைக்கப்படும்.
6. தேர்வுமுறை நுட்பங்கள்
தாமதத்தைத்: தடையற்ற மற்றும் மேம்படுத்தப்பட்ட கிளையன்ட் அனுபவத்தை வழங்க, மெசஞ்சர் சேவை நிகழ்நேரமாக இருக்க வேண்டும். இதன் விளைவாக, அடிக்கடி அணுகப்படும் தரவின் ஒரு பகுதியை தற்காலிகமாக சேமிப்பதன் மூலம் தாமதத்தை குறைக்க வேண்டும். ரெடிஸ் போன்ற விநியோகிக்கப்பட்ட தற்காலிக சேமிப்பைப் பயன்படுத்தி, பயனர் செயல்பாட்டு நிலை மற்றும் சமீபத்திய உரையாடல்களை நினைவகத்தில் தேக்ககப்படுத்தலாம்.
கிடைக்கும்: எங்கள் சேவை பெரும்பாலான நேரங்களில் கிடைக்க வேண்டும். எங்கள் கணினி தவறு-சகிப்புத்தன்மை கொண்டதாக இருக்க வேண்டும், இதனால் நாம் இடைநிலை செய்திகளின் பல நகல்களை வைத்திருக்க முடியும், இதனால் தொலைந்து போன எந்த செய்தியையும் அதன் நகல்களில் இருந்து விரைவாக மீட்டெடுக்க முடியும். இதன் விளைவாக, அமைப்பின் கிடைக்கும் தன்மையை பாதிக்க முடியாது.
தீர்மானம்
எங்கள் சிஸ்டம் இப்போது சில திறன்களை மட்டுமே ஆதரிக்கிறது, ஆனால் பல நபர்களுக்கு செய்திகளை விநியோகிக்க குழு அரட்டைகளைச் சேர்க்க அதை எளிதாக விரிவாக்கலாம். நீங்கள் வீடியோ மற்றும் தொலைபேசி அழைப்பு வசதிகளையும் வழங்கலாம். பயனர்கள் நிலை புதுப்பிப்புகள் அல்லது கதைகளை வெளியிடலாம் மற்றும் ஒருவருக்கொருவர் படிக்கும் வகையில் இந்த அமைப்பு உருவாக்கப்படலாம்.
வாட்ஸ்அப் சிஸ்டம் வடிவமைப்பின் உயர்நிலை மேலோட்டத்தை உங்களுக்கு வழங்க நான் கடுமையாக உழைத்தேன். நீங்கள் அதை ரசித்தீர்கள், அதை நன்றாகப் பயன்படுத்துவீர்கள் என்று நம்புகிறேன்.
ஒரு பதில் விடவும்