Apache Thrift
சிக்கனம் என்பது ஒரு இடைமுக வரையறை மொழி மற்றும் பைனரி தகவல்தொடர்பு நெறிமுறை ஆகும், இது பல நிரலாக்க மொழிகளுக்கான சேவைகளை வரையறுக்கவும் உருவாக்கவும் பயன்படுத்தப்படுகிறது. இது ஃபேஸ்புக்கில் "அளவிடக்கூடிய குறுக்கு மொழி சேவைகள் மேம்பாட்டிற்காக" உருவாக்கப்பட்டது மற்றும் 2020 ஆம் ஆண்டு நிலவரப்படி அப்பாச்சி மென்பொருள் அறக்கட்டளையின் திறந்த மூல திட்டமாகும். தொலைநிலை செயல்முறை அழைப்பு (ஆர். பி. சி) கட்டமைப்புடன் இது ஒரு குறியீடு உருவாக்கும் இயந்திரத்துடன் ஒரு மென்பொருள் அடுக்கை இணைத்து குறுக்கு-தள சேவைகளை உருவாக்குகிறது, இது ஆக்ஷன்ஸ்கிரிப்ட், சி, சி + +, சி #, கப்பூச்சினோ, கோகோ, டெல்பி, எர்லாங், கோ, ஹாஸ்கெல், ஜாவா, ஜாவாஸ்கிரிப்ட், அப்ஜெக்டிவ்-சி, ஓ. சி. ஏ. எம். எல், பெர்ல், பிஎச்பி, பைதான், ரூபி, எலிக்ஸிர், ரஸ்ட், ஸ்கலா, ஸ்மால்டாக் மற்றும் ஸ்விஃப்ட் உள்ளிட்ட பல்வேறு மொழிகள் மற்றும் கட்டமைப்புகளில் எழுதப்பட்ட பயன்பாடுகளை இணைக்க முடியும். ஏப்ரல் 2007 இல் ஃபேஸ்புக் வெளியிட்ட தொழில்நுட்பக் கட்டுரையில் இந்த நடைமுறை விவரிக்கப்பட்டது, இப்போது அப்பாச்சியில் ஹோஸ்ட் செய்யப்பட்டுள்ளது. கட்டிடக்கலை சிக்கனம் வாடிக்கையாளர்கள் மற்றும் சேவையகங்களை உருவாக்குவதற்கான ஒரு முழுமையான அடுக்கை உள்ளடக்கியது. மேல் பகுதி சிக்கன வரையறையிலிருந்து குறியீட்டை உருவாக்குகிறது. இந்த கோப்பிலிருந்து, சேவைகள் கிளையன்ட் மற்றும் செயலி குறியீடுகளை உருவாக்குகின்றன. உள்ளமைக்கப்பட்ட வகைகளுக்கு மாறாக, உருவாக்கப்பட்ட தரவு கட்டமைப்புகள் உருவாக்கப்பட்ட குறியீட்டின் விளைவாக அனுப்பப்படுகின்றன. நெறிமுறை மற்றும் போக்குவரத்து அடுக்கு ஆகியவை இயக்க நேர நூலகத்தின் ஒரு பகுதியாகும். த்ரிஃப்ட் மூலம், ஒரு சேவையை வரையறுத்து, குறியீட்டை மறுசீரமைக்காமல் நெறிமுறை மற்றும் போக்குவரத்தை மாற்ற முடியும். கிளையன்ட் பகுதியைத் தவிர, தடுப்பது, தடுக்காதது மற்றும் பல திரிக்கப்பட்ட சேவையகங்கள் போன்ற நெறிமுறைகள் மற்றும் போக்குவரத்துகளை ஒன்றாக இணைப்பதற்கான சேவையக உள்கட்டமைப்பை மிதவை உள்ளடக்கியது. அடுக்கின் அடிப்படை I/O பகுதி வெவ்வேறு மொழிகளுக்கு வித்தியாசமாக செயல்படுத்தப்படுகிறது. சிக்கனம் பல நெறிமுறைகளை ஆதரிக்கிறதுஃ டிபினரி புரோட்டோகால்-ஒரு நேரடியான பைனரி வடிவம், எளிய, ஆனால் இட செயல்திறனுக்காக உகந்ததாக இல்லை. உரை நெறிமுறையை விட வேகமாக செயலாக்குகிறது, ஆனால் பிழைத்திருத்தம் செய்வது மிகவும் சவாலானது. டி. சி. காம்பாக்ட் புரோட்டோகால்-மிகவும் கச்சிதமான பைனரி வடிவம்; பொதுவாக டி. ஜே. எஸ். ஓ. என் புரோட்டோகாலுடன் செயலாக்க மிகவும் திறமையானது-தரவை குறியாக்குவதற்கு ஜே. எஸ். ஓ. என் பயன்படுத்துகிறது. டிசிம்பிள்ஜேசன் புரோட்டோகால்-ஒரு எழுத மட்டுமே நெறிமுறை, இது ஜேஎஸ்ஓஎன் பயன்படுத்தி மெட்டாடேட்டாவைக் குறைப்பதால் சிக்கனத்தால் பகுப்பாய்வு செய்ய முடியாது. ஸ்கிரிப்டிங் மொழிகள் மூலம் பகுப்பாய்வு செய்ய ஏற்றது. ஆதரிக்கப்படும் போக்குவரத்து பின்வருமாறுஃ டிசிம்பிள்ஃபைல் டிரான்ஸ்போர்ட்-இந்த போக்குவரத்து ஒரு கோப்புக்கு எழுதுகிறது. டிஃப்ரேமெட் டிரான்ஸ்போர்ட்-தடுக்காத சேவையகத்தைப் பயன்படுத்தும் போது இந்த போக்குவரத்து தேவைப்படுகிறது. இது தரவை பிரேம்களில் அனுப்புகிறது, ஒவ்வொன்றும் நீளத் தகவல்களுக்கு முன்னதாக. டி. எம். மெமரி டிரான்ஸ்போர்ட்-I/O க்கு நினைவகத்தைப் பயன்படுத்துகிறது. ஜாவா செயல்படுத்தல் ஒரு எளிய உள் பயன்பாட்டைப் பயன்படுத்துகிறது. டிசாக்கெட்-போக்குவரத்துக்கு சாக்கெட் I/O ஐத் தடுக்கிறது. TZlibTransport-zlib ஐப் பயன்படுத்தி சுருக்கத்தை செய்கிறது. மற்றொரு போக்குவரத்துடன் இணைந்து பயன்படுத்தப்படுகிறது. சிக்கனம் பல சேவையகங்களையும் வழங்குகிறது, அவை டிஎன்என்ப்ளாகிங் சர்வர்-ஐ/ஓ ஐத் தடுக்காத பல திரிதல் சேவையகம் (ஜாவா செயல்படுத்தல் என்ஐஓ சேனல்களைப் பயன்படுத்துகிறது). இந்த சேவையகத்துடன் TFramedTransport பயன்படுத்தப்பட வேண்டும். டிசிம்பிள் சர்வர்-நிலையான தடுப்பு I/O ஐப் பயன்படுத்தும் ஒற்றை-நூல் சேவையகம். சோதனைக்கு பயனுள்ளதாக இருக்கும். TThrededServer-ஒரு இணைப்பு மாதிரிக்கு ஒரு நூல் மற்றும் நிலையான தடுப்பு I/O ஐப் பயன்படுத்தும் பல-நூல் சேவையகம். TThredPoolServer-ஒரு நூல் குளம் மற்றும் நிலையான தடுப்பு I/O ஐப் பயன்படுத்தும் பல-நூல் சேவையகம். த்ரிஃப்ட்டின் சில கூறப்பட்ட நன்மைகள் பின்வருமாறுஃ பைனரி வடிவமைப்பைப் பயன்படுத்துவதன் காரணமாக எஸ். ஓ. ஏ. பி போன்ற மாற்றுகளை விட குறைந்த மேல்நிலையுடன் குறுக்கு மொழி வரிசைப்படுத்தல். எக்ஸ்எம்எல் உள்ளமைவு கோப்புகள் இல்லை. மொழி பிணைப்புகள் இயற்கையாகவே உணர்கின்றன. எடுத்துக்காட்டாக, ஜாவா பயன்படுத்துகிறது. சி + + ஸ்டிடிஃஃ வெக்டர் <ஸ்டிடிஃஃ ஸ்ட்ரிங்> ஐப் பயன்படுத்துகிறது. பயன்பாட்டு நிலை கம்பி வடிவம் மற்றும் வரிசைப்படுத்தல் நிலை கம்பி வடிவம் ஆகியவை சுத்தமாக பிரிக்கப்பட்டுள்ளன. அவற்றை சுயாதீனமாக மாற்றியமைக்கலாம். முன்னரே வரையறுக்கப்பட்ட வரிசைப்படுத்தல் பாணிகளில் பின்வருவன அடங்கும்ஃ பைனரி, HTTP-நட்பு மற்றும் கச்சிதமான பைனரி. குறுக்கு மொழி கோப்பு வரிசைப்படுத்தலாக இரட்டிப்பாகிறது. நெறிமுறை. சிக்கனத்திற்கு பெரிய-பதிப்பு/சிறிய-பதிப்பு போன்ற மையப்படுத்தப்பட்ட மற்றும் வெளிப்படையான பொறிமுறை தேவையில்லை. தளர்வாக இணைக்கப்பட்ட அணிகள் ஆர். பி. சி அழைப்புகளை சுதந்திரமாக உருவாக்க முடியும். கட்டுமான சார்பு அல்லது தரமற்ற மென்பொருள் இல்லை. பொருந்தாத மென்பொருள் உரிமங்களின் கலவை இல்லை. ஒரு சிக்கன சேவையை உருவாக்குவது சிக்கனம் சி + + இல் எழுதப்பட்டுள்ளது, ஆனால் பல மொழிகளுக்கான குறியீட்டை உருவாக்க முடியும். ஒரு சிக்கன சேவையை உருவாக்க, ஒருவர் அதை விவரிக்கும் சிக்கன கோப்புகளை எழுத வேண்டும், இலக்கு மொழியில் குறியீட்டை உருவாக்க வேண்டும், சேவையகத்தைத் தொடங்க சில குறியீட்டை எழுத வேண்டும், மேலும் அதை வாடிக்கையாளரிடமிருந்து அழைக்க வேண்டும். அத்தகைய விளக்கக் கோப்பின் குறியீடு எடுத்துக்காட்டு இங்கேஃ enum PhonType {HOME, WORK, MOBILE, OTHER} கட்டமைக்கப்பட்ட தொலைபேசி {1: i32 ஐடி, 2: சரம் எண், 3: ஃபோன்டைப் வகை} சேவை ஃபோன்சர்விஸ் {ஃபோன் ஃபைண்ட்பைட் (1: i32 ஐடி), பட்டியல் <ஃபோன்> ஃபைண்டால் ()) இந்த விளக்கத் தகவல்களிலிருந்து குறியீட்டை உருவாக்கும். உதாரணமாக, ஜாவாவில், ஃபோன் வகை ஃபோன் வகுப்பிற்குள் ஒரு எளிய எனமாக இருக்கும். மேலும் காண்க தரவு வரிசைப்படுத்தல் வடிவங்களின் ஒப்பீடு அப்பாச்சி அவ்ரோ சுருக்கம் தொடரியல் குறிப்பு ஒன்று (ASN.1) ஹெஸியன் நெறிமுறை இடையகங்கள் வெளிப்புற தரவு பிரதிநிதித்துவம் (எக்ஸ். டி. ஆர்) இணைய தகவல்தொடர்பு இயந்திரம் (ஐஸ்) ஜி. ஆர். பி. சி எஸ். டி. எக்ஸ். எஃப் குறிப்புகள் வெளிப்புற இணைப்புகள் சிக்கன பயன்பாட்டு அடுக்கு நெறிமுறைகள் தரவு வரிசைப்படுத்தல் வடிவங்கள் இடை-செயல்முறை தகவல்தொடர்பு தொலைநிலை செயல்முறை அழைப்பு சிக்கன