మెసేజ్ క్యూ (సందేశాల వరుస క్రమం)

వికీపీడియా నుండి
ఇక్కడికి గెంతు: మార్గసూచీ, వెతుకు

కంప్యూటర్ విజ్ఞానంలో, మెసేజ్ క్యూలు (సందేశాల వరుస క్రమాలు) మరియు మెయిల్‌బాక్సులు అనేవి సాఫ్ట్‌వేర్ ఇంజినీరింగ్ భాగాలు‌. వీటిని ఇంటర్‌ప్రాసెస్ కమ్యూనికేషన్ లేదా ఒకే ప్రక్రియలోని ఇంటర్-థ్రెడ్ కమ్యూనికేషన్‌కు ఉపయోగిస్తారు. సమాచారాన్ని పంపడం లేదా నియంత్రించడానికి సంబంధించిన మెసేజింగ్ (సందేశాన్ని పంపడం మరియు ప్రాసెస్ చేయడం) కోసం అవి వరుసను ఉపయోగిస్తాయి. సమూహ సమాచార వ్యవస్థలు కూడా ఇదే విధమైన ప్రయోజకత్వాన్ని అందిస్తాయి.

పర్యావలోకనం[మార్చు]

మెసేజ్ క్యూలు ఒక అసమకాలిక కమ్యూనికేషన్స్ ప్రొటొకాల్‌ను అందిస్తాయి. అంటే సందేశాన్ని పంపేవారు మరియు స్వీకర్తలు అదే సమయంలో మెసేజ్ క్యూతో సంబంధం కలిగి ఉండాల్సిన అవసరముండదు. వరుసలో అమర్చబడిన సందేశాలను గ్రహీత తిరిగి పొందేంత వరకు అవి భద్రపరచబడుతాయి.

ఒకే సందేశంగా బదిలీ చేసే విధంగా అత్యధిక మెసేజ్ క్యూలు డాటా పరిమాణం పరంగా పరిమితులు ఏర్పరుచుకుంటాయి. అలాంటి పరిమితులు లేని వాటిని మెయిల్‌బాక్సులుగా పిలుస్తారు.

మెసేజ్ క్యూల యొక్క అనేక ఆచరణలు అంతర్గతంగా అంటే ఒక ఆపరేటింగ్ సిస్టమ్ లేదా ఒక అప్లికేషన్ పరిధిలో పనిచేస్తాయి. అలాంటి క్యూలు సదరు సిస్టమ్ యొక్క పనుల కోసం ఉద్దేశించినవి.[1] [2]

ఇతర ఆచరణలు విభిన్న కంప్యూటర్ సిస్టమ్‌ల మధ్య సందేశాల బదిలీని అనుమతిస్తాయి. అలాగే సంభవనీయంగా బహుళ అప్లికేషన్లు మరియు బహుళ ఆపరేటింగ్ సిస్టమ్‌లను అనుసంధానం చేస్తాయి.[3] ఈ మెసేజ్ క్యూయింగ్ సిస్టమ్‌ (సందేశాలను ఒక వరుస క్రమంలో ఏర్పరిచే వ్యవస్థ)లు సాధారణంగా సిస్టమ్ వైఫల్యం చెందినప్పుడు, సందేశాలు "నష్ట"పోకుండా చేయడానికి విస్తరించిన లఘిమ ప్రయోజకత్వాన్ని అందిస్తాయి. ఈ రకమైన మెసేజ్ క్యూయింగ్ సాఫ్ట్‌వేర్ (దీనినే మెసేజ్ ఓరియంటెడ్ మిడిల్‌వేర్ అని కూడా అంటారు) యొక్క వాణిజ్యపరమైన ఆచరణల ఉదాహరణలుగా IBMకి చెందిన వెబ్‌స్పియర్ MQ (గతంలో MQ సిరీస్) మరియు Oracle అడ్వాన్స్డ్ క్యూయింగ్ (AQ)లను చెప్పుకోవచ్చు. అదే విధంగా Java మెసేజ్ సర్వీస్‌ అని పిలిచే Java ప్రమాణం కూడా ఉంది. దీనికి సంబంధించి, ఇది యాజమాన్య మరియు స్వేచ్ఛా సాఫ్ట్‌వేర్ రెండింటికి సంబంధించిన అసంఖ్యాక ఆచరణలను కలిగి ఉంటుంది.

మెసేజింగ్ మిడిల్‌వేర్ సిస్టమ్స్‌‌కు సంబంధించి, అసంఖ్యాక ఓపెన్ సోర్స్ ప్రత్యామ్నాయాలు ఉన్నాయి. వాటిలో JBoss మెసేజింగ్, JORAM, Apache యాక్టివ్MQ, సన్ ఓపెన్ మెసేజ్ క్యూ, Apache Qpid[4] మరియు HTTPSQS[5] ఉన్నాయి.

ఓపెన్ సోర్స్ సిస్టమ్స్‌కు అదనంగా, హార్డ్‌వేర్ ఆధారిత మెసేజింగ్ మిడిల్‌వేర్ అనేది సిలికాన్ లేదా సిలికాన్/సాఫ్ట్‌వేర్ డాటాపాత్‌ల ద్వారా క్యూయింగ్‌ను అందిస్తున్న సోలేస్ సిస్టమ్స్, సోనోయా మరియు టెర్వెలా వంటి వ్యాపార సంస్థల్లో ఎక్కువగా ఉపయోగించుకోబడుతోంది.

VxWorks మరియు QNX ఆపరేటింగ్ సిస్టమ్స్ వంటి అత్యధిక RTOSలు మెసేజ్ క్యూయింగ్‌ను ఒక ప్రాథమిక IPC లేదా ఇంటర్-థ్రెడ్ కమ్యూనికేషన్ యంత్రాంగంగా ప్రోత్సహిస్తున్నాయి. సందేశాన్ని పంపడం మరియు CPU మధ్య ఫలిత బిగువైన సమాకలనం వాస్తవిక ప్రయోజనాలకు సంబంధించిన RTOSల వినియోగానికి ప్రధాన కారణంగా చెప్పబడుతుంది. మెసేజ్-క్యూ మూలాన్ని ఇంటర్-థ్రెడ్ కమ్యూనికేషన్‌గా ప్రేరేపించే వాణిజ్యపరమైన RTOSలకు ప్రాథమిక ఉదాహరణలుగా VRTX మరియు pSOS+లను చెప్పవచ్చు. ఇవి రెండూ ప్రారంభ 1980లకు చెందినవి.

వాడకం[మార్చు]

సాధారణ మెసేజ్-క్యూయింగ్ ఆచరణలో, ఒక సిస్టమ్ అడ్మినిస్ట్రేటర్ ఉపయోగించడానికి సిద్ధంగా ఉన్న మెసేజ్-క్యూయింగ్ సాఫ్ట్‌వేర్‌ (ఒక క్యూ మేనేజర్) యొక్క ఇన్‌స్టాలేషన్ మరియు కాన్ఫిగరేషన్ చేయడం మరియు ఒక పేరున్న మెసేజ్ క్యూను నిర్వచిస్తాడు.

తర్వాత ఒక అప్లికేషన్ సాఫ్ట్‌వేర్ దినచర్యను నమోదు చేస్తుంది. అది వరుసలో అమర్చిన సందేశాలను అనుసరిస్తుంది.

రెండోది మరియు తదనంతర అప్లికేషన్లు (ప్రయోజనాలు) వరుస (క్యూ)కు అనుసంధానం చేయబడటం మరియు దానిపైకి సందేశాన్ని బదిలీ చేస్తాయి.

క్యూ-మేనేజర్ సాఫ్ట్‌వేర్ ఒక రిసీవింగ్ అప్లికేషన్ సంధానమయ్యేంత వరకు సందేశాలను భద్రపరుస్తుంది. తర్వాత నమోదైన సాఫ్ట్‌వేర్ దినచర్యకు కబురు పెడుతుంది. తర్వాత రిసీవింగ్ అప్లికేషన్ సందేశాన్ని ఒక కచ్చితమైన క్రమంలో అమర్చుతుంది.

సందేశాన్ని పంపడం (మెసేజ్ పాసింగ్) యొక్క కచ్చితమైన అర్థానికి సంబంధించి, తరచూ అసంఖ్యాక ప్రత్యామ్నాయాలు ఉన్నాయి. వాటిలో

  • మన్నిక (ఉదాహరణ - క్రమంలో అమర్చబడిన సమాచారం మెమరీలో భద్రపరచబడటం లేదా లేకపోతే , లేదా అది తప్పక నష్టపోకుండా ఉండాలంటే, అది డిస్క్‌లో భద్రపరచబడాలి లేదా ఇప్పటికీ అత్యంత విలువైనదైతే, దానిని అత్యంత విశ్వసనీయంగా ఒక DBMSకు అప్పగించాలి)
  • భద్రతా విధానాలు - ఈ సందేశాలకు ఏయే అప్లికేషన్లు తప్పక ప్రవేశాన్ని కలిగి ఉండాలి?
  • మెసేజ్ పర్జింగ్ విధానాలు - వరుసలు లేదా సందేశాలు TTL (టైమ్ టు లివ్)ను కలిగి ఉండొచ్చు.
  • కొన్ని సిస్టమ్‌లు క్రోడీకరించిన సమాచారాన్ని సమర్థించవచ్చు. అందువల్ల ఒక సబ్‌స్క్రైబర్ కొన్ని ముందుగా వివరించిన ప్రయోజన ప్రమాణాలతో సరిపోలే సందేశాలను చూడవచ్చు.
  • డెలివరీ విధానాలు - సందేశం కనీసం ఒక్కసారైనా విడుదల చేయబడిందా లేదా ఒక్కసారి కంటే ఎక్కువగా డెలివరీ చేయబడిందా అన్న విషయానికి మనం హామీ ఇవ్వాలా?
  • రూటింగ్ విధానాలు - అనేక క్యూ సర్వర్లు ఉన్న ఒక సిస్టమ్‌లో, ఏ సర్వర్ సందేశం లేదా వరుస యొక్క సందేశాలను తీసుకుంటుంది?
  • బ్యాచింగ్ విధానాలు- సందేశాలు త్వరితగతిన తప్పక విడుదల చేయాలా? లేదా సిస్టమ్ కొద్దిసేపు వేచి చూసి, తర్వాత ఒక్కసారిగా సందేశాలను విడుదల చేయాలా?
  • ఒక సందేశం "వరుసక్రమం"లో అమరిందని ఎప్పుడు గుర్తించాలి? దానికి ఎప్పుడు ఒక వరుస ఉంటుంది? లేదా అది ఎప్పుడు కనీసం ఒక్క రిమోట్ క్యూకు నివేదించబడాలి? లేదా అన్ని క్యూలకు?
  • కొందరు లేదా అందరు సబ్‌స్క్రైబర్లు సందేశాన్ని అందుకున్నట్లు ఒక పబ్లిషర్ తెలుసుకోవాల్సి రావొచ్చు.

లావాదేవీకి సంబంధించిన అర్థాలు, సిస్టమ్ విశ్వసనీయత మరియు సిస్టమ్ సమర్థతలపై ఈ పరిగణనలు చెప్పుకోదగ్గ ప్రభావాలను చూపగలవు.

ఏకకాలిక vs. అసమకాలిక[మార్చు]

ఉపయోగంలోని అనేక బాగా తెలిసిన కమ్యూనికేషన్ల ప్రొటొకాల్‌లు ఏకకాలంలో జరుగుతాయి. HTTP ప్రొటొకాల్ – ఇది వరల్డ్ వైడ్ వెబ్ మరియు వెబ్ సర్వీసులలో ఉపయోగించబడుతుంది – ఇది ఒక యూజర్ వెబ్ పేజికి విజ్ఞప్తిని పంపడం మరియు సమాధానం కోసం వేచి ఉండటానికి సంబంధించి, ఇది ఒక స్పష్టమైన ఉదాహరణను అందిస్తుంది.

అయితే ఏకకాలిక ప్రవర్తనలో ఉండే దృష్టాంతాలు కచ్చితమైనవి కావు. ఉదాహరణకు, AJAX (అసమకాలిక Javascript మరియు XML) వెబ్‌ పేజి యొక్క కొంత భాగాన్ని మరింత సుసంగత సమాచారంతో అభివృద్ధి చేయడానికి అసమకాలికంగా టెక్స్ట్ లేదా XML సందేశాలను పంపడానికి ఉపయోగించబడుతుంది. ఈ విధానాన్ని Google దాని Google Suggestకు ఉపయోగించుకుంటుంది. ఇదొక శోధన విశిష్టాంశం. ఇది యూజర్ పాక్షికంగా టైపు చేసిన సందేహాల (ప్రశ్నలు)ను Google సర్వర్‌కు పంపుతుంది. అలాగే సాధ్యపర సంపూర్ణ సందేహాలకు సంబంధించిన జాబితాను తిరిగి అందిస్తుంది. ఆ సమయంలో యూజర్ టైపింగ్ ప్రక్రియలో ఉండొచ్చు. యూజర్ టైపు చేయడం ద్వారా ఈ జాబితా అసమకాలికంగా అప్‌డేట్ చేయబడుతుంది.

ఈవెంట్ నోటిఫికేషన్ సిస్టమ్‌లు మరియు పబ్లిష్/సబ్‌స్క్రైబ్ సిస్టమ్‌ల్లో ఇతర అసమకాలిక ఉదాహరణలు ఉంటాయి.

  • ఏదైనా ఒక సంఘటన సంభవించినప్పుడు, ఒక అప్లికేషన్ మరో దానిని గుర్తించాల్సి రావొచ్చు. అయితే ప్రతిస్పందన కోసం వేచి ఉండాల్సిన అవసరముండదు.
  • పబ్లిష్/సబ్‌స్క్రైబ్ సిస్టమ్‌లలో ఒక అప్లికేషన్ ఎంతమంది క్లయింట్లయినా చదవడానికి వీలుగా సమాచారాన్ని "ముద్రిస్తుంది".

పై రెండు ఉదాహరణల రెండింటిలోనూ సమాచారాన్ని పంపే వ్యక్తి వేచి ఉండాలనే భావనను ఉదాహరణకు, ఎవరైనా ఒక గ్రహీత నష్టపోయినప్పుడు తెలుపదు.

అప్లికేషన్లు ప్రత్యేకంగా ఏకకాలిక లేదా అసమకాలికంగా ఉండాల్సిన పనిలేదు. సంకర్షణాత్మక ప్రయోజనం ఒక విజ్ఞప్తి యొక్క కచ్చితమైన భాగాలకు వెంటనే స్పందించాల్సిన పనిలేదు (అంటే విక్రయాల విజ్ఞప్తి అంగీకరించబడిందని ఒక వినియోగదారుడికి తెలపడం మరియు పట్టిక రూపకల్పన హామీని కొనసాగించడం వంటివి), అయితే ఇతర భాగాలు (బిల్లింగ్ యొక్క గణనను పూర్తి చేయడం, సమాచారాన్ని కేంద్రీయ గణన వ్యవస్థకు నివేదించడం మరియు ఇతర సేవల యొక్క అన్ని విభాగాలను పిలవడం వంటివి) కొంత సేపటి తర్వాత వరుస క్రమంలో ఏర్పడుతాయి.

ఇలాంటి అన్ని పరిస్థితుల్లో, మెసేజ్-క్యూయింగ్ (లేదా ప్రత్యామ్నాయంగా, ఒక బ్రాడ్‌కాస్ట్ మెసేజింగ్ సిస్టమ్)ను నిర్వహించే ఒక ఉప వ్యవస్థను కలిగి ఉండటం వ్యవస్థ యొక్క మొత్తం పనితీరును మెరుగుపరిచే విధంగా దోహదపడుతుంది.

వీటిని కూడా చూడండి.[మార్చు]

  • అడ్వాన్స్డ్ మెసేజ్ క్యూయింగ్ ప్రొటొకాల్
  • అమెజాన్ సింపుల్ క్యూ సర్వీస్
  • IBM వెబ్‌స్పియర్ మెసేజ్ బ్రోకర్
  • IBM వెబ్‌స్పియర్ MQ
  • Java మెసేజ్ సర్వీస్
  • మెసేజ్-ఓరియంటెడ్ మిడిల్‌వేర్, (కేటగిరీ)
  • Microsoft మెసేజ్ క్యూయింగ్
  • Microsoft అజూర్ సర్వీసెస్ ప్లాట్‌ఫారం, ప్రత్యేకించి, అజూర్ స్టోరేజి క్యూలు మరియు AppFabric సర్వీస్ బస్
  • జీరోMQ

సూచనలు[మార్చు]

  1. Win32 సిస్టమ్ మెసేజ్ క్యూలు "About Messages and Message Queues". Windows User Interface. Microsoft Developer Network. Retrieved April 21, 2010. 
  2. Linux మరియు POSIX మెసేజ్ క్యూలు linux.die.netలో పొందుపరిచిన ఓవర్‌వ్యూ ఆఫ్ POSIX మెసేజ్ క్యూస్
  3. ఉదాహరణకు, MSMQ ప్రాడక్ట్. "Message Queuing (MSMQ)". Network Communication. Microsoft Developer Network. Retrieved May 9, 2009. 
  4. Apache Qpid ప్రాజెక్ట్, ఒక AMQP ఆచరణ.
  5. HTTPSQS, ఎన్ మెసేజ్ క్యూ బేస్డ్ ఆన్ HTTP GET/POST ప్రొటొకాల్.

బాహ్య లింకులు[మార్చు]

మూస:IPC