త్రీ-టైర్ ఆర్కిటెక్చర్ పరిచయం
త్రీ-టైర్ ఆర్కిటెక్చర్ అనేది ఇంటర్నెట్లో అత్యంత సాధారణ ఇంటరాక్షన్ ఆర్కిటెక్చర్. రెండు-స్థాయి సర్వర్ భాగాన్ని రెండు భాగాలుగా విభజించినప్పుడు ఇది కనిపించింది: లాజిక్ లేయర్ మరియు డేటా లేయర్ .
ఇది ఇలా కనిపించింది:
క్లయింట్ లేయర్ అనేది వినియోగదారు పరస్పర చర్యకు బాధ్యత వహించే "పంపిణీ చేయబడిన అప్లికేషన్"లో భాగం. ఈ లేయర్ వ్యాపార తర్కాన్ని కలిగి ఉండకూడదు మరియు క్లిష్టమైన డేటాను నిల్వ చేయకూడదు. అలాగే, ఇది నేరుగా డేటాబేస్ లేయర్తో ఇంటరాక్ట్ అవ్వకూడదు, కానీ బిజినెస్ లాజిక్ లేయర్ ద్వారా మాత్రమే.
అయితే, ఇక్కడ ఇంకా కొంత లాజిక్ ఉంది. మొదట, ఇది ఇంటర్ఫేస్ ద్వారా వినియోగదారుతో పరస్పర చర్య, అతను నమోదు చేసిన డేటా యొక్క ధృవీకరణ, స్థానిక ఫైల్లతో పని చేయడం. ఇది సర్వర్తో పని చేస్తున్నప్పుడు వినియోగదారు అధికారీకరణ మరియు డేటా ఎన్క్రిప్షన్కు సంబంధించిన ప్రతిదీ కూడా కలిగి ఉంటుంది.
రెండవది, ఇది ఒక సాధారణ వ్యాపార తర్కం. ఉదాహరణకు, ఆన్లైన్ స్టోర్ ఉత్పత్తుల జాబితాను పంపినట్లయితే, మేము వాటిని క్లయింట్ వైపున క్రమబద్ధీకరించవచ్చు మరియు ఫిల్టర్ చేయవచ్చు. మరియు ఆదిమ డేటా నిల్వ కూడా ఇక్కడ ఉంది: కాషింగ్, లాగిన్ అయిన వినియోగదారు కుక్కీలు మరియు ఇలాంటివి.
వ్యాపార లాజిక్ లేయర్ రెండవ స్థాయిలో ఉంది, చాలా వ్యాపార తర్కం దానిపై కేంద్రీకృతమై ఉంది. దాని వెలుపల, క్లయింట్కు ఎగుమతి చేయబడిన శకలాలు, అలాగే డేటాబేస్లో మునిగిపోయిన లాజిక్ అంశాలు (నిల్వ చేసిన విధానాలు మరియు ట్రిగ్గర్లు) మాత్రమే మిగిలి ఉన్నాయి.
వ్యాపార లాజిక్ సర్వర్లో చాలా భాగం ఇదే లాజిక్ను కలిగి ఉంటుంది, కానీ స్కేలింగ్ సమస్యలను కూడా పరిష్కరిస్తుంది: కోడ్ భాగాలుగా విభజించబడింది మరియు వివిధ సర్వర్లకు పంపిణీ చేయబడుతుంది. కొన్ని అధిక డిమాండ్ సేవలు డజన్ల కొద్దీ సర్వర్లలో అమలు చేయగలవు. వాటి మధ్య లోడ్ లోడ్ బ్యాలెన్సర్ ద్వారా నిర్వహించబడుతుంది.
సర్వర్ అప్లికేషన్లు సాధారణంగా సర్వర్ యొక్క మరొక కాపీని సులభంగా ప్రారంభించగలిగే విధంగా రూపొందించబడతాయి మరియు దాని యొక్క ఇతర కాపీల సహకారంతో పని చేయడం ప్రారంభించవచ్చు. అంటే, సర్వర్ కోడ్ను వ్రాసే ప్రక్రియలో కూడా, మీ స్టాటిక్ క్లాస్ ఒకే సందర్భంలో ప్రారంభించబడిందని మీకు ఎప్పటికీ హామీ ఉండదు.
డేటా లేయర్ డేటా నిల్వను అందిస్తుంది మరియు ప్రత్యేక స్థాయిలో ఉంచబడుతుంది, నియమం ప్రకారం, డేటాబేస్ మేనేజ్మెంట్ సిస్టమ్స్ (DBMS) ద్వారా అమలు చేయబడుతుంది, ఈ భాగానికి కనెక్షన్ అప్లికేషన్ సర్వర్ స్థాయి నుండి మాత్రమే అందించబడుతుంది.
డేటా లేయర్ను వేరు చేయడానికి కారణాలు
డేటా లేయర్ను పూర్తి స్థాయి మూడవ పొరగా విభజించడం అనేక కారణాల వల్ల సంభవించింది, అయితే ప్రధానమైనది సర్వర్పై పెరిగిన లోడ్.
మొదట, డేటాబేస్లకు డేటా ప్రాసెసింగ్ కోసం చాలా మెమరీ మరియు ప్రాసెసర్ సమయం అవసరం. అందువల్ల, వాటిని ప్రతిచోటా ప్రత్యేక సర్వర్లలో ఉంచడం ప్రారంభించారు.
పెరిగిన లోడ్తో, బ్యాకెండ్ సులభంగా నకిలీ చేయబడుతుంది మరియు ఒక సర్వర్ యొక్క పది కాపీలను పెంచవచ్చు, కానీ డేటాబేస్ను నకిలీ చేయడం అసాధ్యం - డేటాబేస్ ఇప్పటికీ సిస్టమ్లో ఒకే మరియు అవిభాజ్య అంశంగా మిగిలిపోయింది.
రెండవది, డేటాబేస్లు స్మార్ట్గా మారాయి - వాటికి వారి స్వంత వ్యాపార తర్కం ఉంది. వారు నిల్వ చేసిన విధానాలు, ట్రిగ్గర్లు, PLSQL వంటి వారి స్వంత భాషలకు మద్దతు ఇవ్వడం ప్రారంభించారు. మరియు DBMS లోపల పనిచేసే కోడ్ రాయడం ప్రారంభించిన ప్రోగ్రామర్లు కూడా కనిపించారు.
డేటాతో ముడిపడి ఉండని అన్ని లాజిక్లు బ్యాకెండ్కు తీసుకెళ్లబడ్డాయి మరియు డజన్ల కొద్దీ సర్వర్లలో సమాంతరంగా ప్రారంభించబడ్డాయి. డేటాతో విమర్శనాత్మకంగా ముడిపడి ఉన్న ప్రతిదీ DBMS లోపల ఉంది మరియు ఇప్పటికే పెరిగిన లోడ్ యొక్క సమస్యలను మా స్వంత పద్ధతులను ఉపయోగించి పరిష్కరించాల్సి ఉంది:
- డేటాబేస్ క్లస్టర్ అనేది డేటాబేస్ సర్వర్ల సమూహం, ఇది అదే డేటాను నిల్వ చేస్తుంది మరియు నిర్దిష్ట ప్రోటోకాల్ని ఉపయోగించి సమకాలీకరించబడుతుంది.
- షార్డింగ్ - డేటా లాజికల్ బ్లాక్లుగా విభజించబడింది మరియు వివిధ డేటాబేస్ సర్వర్లలో పంపిణీ చేయబడుతుంది. ఈ విధానంతో డేటాబేస్ మార్పులను నిర్వహించడం చాలా కష్టం.
- NoSQL విధానం భారీ మొత్తంలో డేటాను నిల్వ చేయడానికి నిర్మించబడిన డేటాబేస్లలో డేటాను నిల్వ చేయడం. ఇవి తరచుగా డేటాబేస్లు కావు, నిర్దిష్ట ఫైల్ నిల్వలు. రిలేషనల్ డేటాబేస్లతో పోలిస్తే చాలా పేలవమైన కార్యాచరణ.
- డేటా కాషింగ్. డేటాబేస్ స్థాయిలో సాధారణ కాష్కు బదులుగా, మొత్తం కాషింగ్ DBMS కనిపించింది, ఇది ఫలితాన్ని మెమరీలో మాత్రమే నిల్వ చేస్తుంది.
ఈ సర్వర్ టెక్నాలజీల జూని నిర్వహించడానికి ప్రత్యేక వ్యక్తులు మరియు / లేదా మొత్తం బృందాలు అవసరమని స్పష్టంగా ఉంది, ఇది డేటా లేయర్ను ప్రత్యేక లేయర్గా తీసివేయడానికి దారితీసింది.
ముఖ్యమైనది! పాత విధానాలు ఇకపై కొత్త సవాళ్లను ఎదుర్కోనప్పుడు, అన్ని అధునాతన సాంకేతికతలు పెద్ద IT కార్పొరేషన్ల లోతుల్లో పుడతాయి. డేటాబేస్లను ప్రత్యేక లేయర్గా చేయడం ఏ ప్రోగ్రామర్చే కనుగొనబడలేదు, కానీ ఒరాకిల్ లేదా IBM యొక్క లోతుల్లో ఎక్కడో ఉన్న ఇంజనీర్ల సమూహం ద్వారా కనుగొనబడింది.
ఆసక్తికరమైన! జుకర్బర్గ్ ఫేస్బుక్ రాయడం ప్రారంభించినప్పుడు, అతను కేవలం PHP + MySQLలో పనిచేశాడు. మిలియన్ల మంది వినియోగదారులు ఉన్నప్పుడు, వారు అన్ని PHP కోడ్లను C ++లోకి అనువదించి, స్థానిక మెషీన్ కోడ్లోకి సంకలనం చేసే ప్రత్యేక అనువాదకుడిని వ్రాసారు.
అలాగే, MySQL బిలియన్ల కొద్దీ వినియోగదారుల డేటాను నిల్వ చేయగలదు, కాబట్టి Facebook NoSQL డేటాబేస్ల భావనను అభివృద్ధి చేసింది మరియు శక్తివంతమైన సర్వర్-సైడ్ NoSQL DBMS - కాసాండ్రాను రాసింది. మార్గం ద్వారా, ఇది పూర్తిగా జావాలో వ్రాయబడింది.
అప్లికేషన్ లాజిక్ లొకేషన్ అస్పష్టత
మరియు త్రీ-టైర్ ఆర్కిటెక్చర్ దాదాపుగా నిస్సందేహంగా దాని భాగాల మధ్య పాత్రలను పంపిణీ చేసినప్పటికీ, సిస్టమ్లో వ్యాపార తర్కం యొక్క కొత్త భాగాన్ని (కొత్త కోడ్) ఎక్కడ జోడించాలో సరిగ్గా నిర్ణయించడం ఎల్లప్పుడూ సాధ్యం కాదు.
అటువంటి అస్పష్టతకు ఉదాహరణ క్రింది చిత్రంలో చూపబడింది:
సర్వర్ భాగం బూడిదరంగు నేపథ్యంతో నిండి ఉంటుంది, క్లయింట్ భాగం తెలుపుతో నిండి ఉంటుంది. తరువాతి విధానానికి (కుడివైపు) మంచి ఉదాహరణ ఆధునిక మొబైల్ యాప్లు. క్లయింట్ వైపు (ఫోన్లో) వీక్షణ (ప్రదర్శన), లాజిక్ మరియు డేటాను కలిగి ఉంటుంది. మరియు కొన్నిసార్లు మాత్రమే ఈ డేటా సర్వర్తో సమకాలీకరించబడుతుంది.
ఎడమవైపు ఎంపికకు ఉదాహరణ సాధారణ PHP సర్వర్, ఇది సర్వర్లోని అన్ని లాజిక్లను కలిగి ఉంటుంది మరియు ఇది క్లయింట్కు ఇప్పటికే స్టాటిక్ HTMLని ఇస్తుంది. ఈ రెండు విపరీతాల మధ్య ఎక్కడో మీ ప్రాజెక్ట్ ఉంటుంది.
పని ప్రారంభంలో, మీరు ప్రాజెక్ట్తో పరిచయం పొందిన తర్వాత, మీరు తదుపరి పని యొక్క తర్కాన్ని అమలు చేయడానికి మీకు మంచి స్థలాల గురించి, దానిపై పనిచేస్తున్న ప్రోగ్రామర్లతో సంప్రదించాలి.
అలా చేయడానికి సంకోచించకండి. మొదట, వారు తమ చార్టర్తో వేరొకరి మఠంలోకి ఎక్కరు. రెండవది, ప్రతి ఒక్కరికీ (మరియు మీరు కూడా) మీకు అవసరమైన కోడ్ను మీరు కనుగొనాలని ఆశించే ప్రదేశంలో కనుగొనడం సులభం అవుతుంది.
GO TO FULL VERSION