ఈ మెటీరియల్ "ఇంట్రడక్షన్ టు ఎంటర్ప్రైజ్ డెవలప్మెంట్" సిరీస్లో భాగం . నెట్వర్కింగ్ గురించి మొదటి భాగం
ఇక్కడ ఉంది .
సాఫ్ట్వేర్ ఆర్కిటెక్చర్ అనేది ఒక అప్లికేషన్లో సృష్టించబడిన నిర్మాణాన్ని సూచిస్తుంది, అనగా మొత్తం ప్రోగ్రామ్ యొక్క మాడ్యూల్స్ మరియు భాగాలు మరియు అవి ఎలా పరస్పర చర్య చేస్తాయి. ప్రోగ్రామర్లు చాలా కాలం నుండి మంచి ఆర్కిటెక్చర్లపై పని చేస్తున్నారు, కాబట్టి మనం చాలా నిర్మాణ నమూనాల గురించి విన్నా ఆశ్చర్యం లేదు. మీరు వాటిని అర్థం చేసుకోవాలి: వెబ్ అప్లికేషన్ను వ్రాస్తున్నప్పుడు, ఒక మంచి ఆర్కిటెక్చర్తో ముందుకు రావడం చాలా కీలకం, ఎందుకంటే వెబ్ అప్లికేషన్ సాధారణ అప్లికేషన్ కంటే ఎక్కువ భాగాలు మరియు మాడ్యూల్లను కలిగి ఉంటుంది. ఒక
నిర్మాణ నమూనాకొన్ని సాఫ్ట్వేర్ డిజైన్ సమస్యను పరిష్కరించడానికి ఒక తెలివైన మార్గం. మీరు బహుశా ఫ్యాక్టరీ పద్ధతి, అబ్స్ట్రాక్ట్ ఫ్యాక్టరీ, బిల్డర్, ప్రోటోటైప్, సింగిల్టన్ మరియు బహుశా ఇతర డిజైన్ నమూనాలను చూడవచ్చు. మేము కోడ్ను వ్రాసేటప్పుడు, తరగతులను సృష్టించేటప్పుడు మరియు తరగతులు ఎలా పరస్పరం వ్యవహరించాలో ప్లాన్ చేస్తున్నప్పుడు వాటిని ఉపయోగిస్తాము. సర్వర్లు, డేటా మరియు ఇతర భాగాలతో వినియోగదారు పరస్పర చర్యను ప్లాన్ చేసేటప్పుడు నిర్మాణ నమూనాలు అధిక స్థాయి సంగ్రహణలో ఉపయోగించబడతాయి. కొన్ని నమూనాలను మరియు వాటిని ఎలా ఉపయోగించాలో శీఘ్రంగా పరిశీలిద్దాం.
క్లయింట్-సర్వర్ ఆర్కిటెక్చర్
పేరు ఈ నమూనా గురించి ప్రతిదీ సరళంగా మరియు స్పష్టంగా ఉందనే అభిప్రాయాన్ని సృష్టిస్తుంది. కానీ కొన్ని అంశాలను స్పష్టం చేద్దాం, తద్వారా మీరు స్ప్రింగ్ను అధ్యయనం చేయడం ప్రారంభించినప్పుడు మనం ఏమి మాట్లాడుతున్నామో మీకు అర్థం అవుతుంది. మీరు చాట్ యాప్ని వ్రాశారని అనుకుందాం మరియు మీరు మరియు ఒక స్నేహితుడు దానిని ఉపయోగించడం ప్రారంభించండి. మీరు చాలా సులభమైన విధానాన్ని అవలంబించవచ్చు, తెలిసిన IP చిరునామాలను ఉపయోగించి నేరుగా ఇంటర్నెట్ ద్వారా ఒకరికొకరు సందేశాలను పంపుకోవచ్చు:
మొదట, మీ స్నేహితుల్లో మరొకరు చాట్లో చేరమని అడిగే వరకు ప్రతిదీ సరిగ్గానే పని చేస్తుంది. కాబట్టి మీరు మీ పరస్పర స్నేహితుడిని చాట్కి జోడించాలని నిర్ణయించుకున్నప్పుడు, మీరు నిర్మాణ సమస్యను ఎదుర్కొంటారు: ప్రతి చాట్ పాల్గొనేవారికి, మీరు వినియోగదారుల సంఖ్య మరియు కొత్త వినియోగదారుల IP చిరునామా గురించి ప్రస్తుత సమాచారాన్ని అందించాలి. మరియు సందేశం పంపబడినప్పుడు, అది పాల్గొనే వారందరికీ డెలివరీ చేయబడాలి. ఇవి ఉత్పన్నమయ్యే అత్యంత స్పష్టమైన సమస్యలు. కోడ్లోనే మరో సమూహ సమస్యలు దాగి ఉంటాయి.
వాటిని నివారించడానికి, మీరు సర్వర్ని ఉపయోగించాలి
, ఇది వారి చిరునామాలతో సహా వినియోగదారుల గురించిన మొత్తం సమాచారాన్ని నిల్వ చేస్తుంది. సందేశాలను సర్వర్కు మాత్రమే పంపాలి. ఇది ప్రతి గ్రహీతలకు సందేశాలను పంపుతుంది. మీరు మీ చాట్ యాప్కి సర్వర్ భాగాన్ని జోడించాలని నిర్ణయించుకున్నప్పుడు, మీరు క్లయింట్-సర్వర్ ఆర్కిటెక్చర్ను రూపొందించడం ప్రారంభిస్తారు.
క్లయింట్-సర్వర్ ఆర్కిటెక్చర్ యొక్క భాగాలు
అది ఏంటో చూద్దాం. క్లయింట్
-సర్వర్ ఆర్కిటెక్చర్ అనేది వెబ్ అప్లికేషన్లను రూపొందించడానికి ఉపయోగించే డిజైన్ నమూనా. ఈ ఆర్కిటెక్చర్ మూడు భాగాలను కలిగి ఉంటుంది:
-
క్లయింట్ - దాని పేరు నుండి, ఈ భాగం కొంత సమాచారాన్ని (వెబ్ అప్లికేషన్) ఉపయోగిస్తుందని, కొంత సమాచారాన్ని అభ్యర్థించడానికి సర్వర్ను సంప్రదిస్తున్నట్లు మేము చెప్పగలం.
-
సర్వర్ - ఇక్కడే మీ వెబ్ అప్లికేషన్ లేదా దాని సర్వర్ భాగం ఉంది. ఇది అవసరమైన వినియోగదారు సమాచారాన్ని నిల్వ చేస్తుంది లేదా దానిని అభ్యర్థించవచ్చు. అదనంగా, క్లయింట్ అభ్యర్థనను పంపినప్పుడు, అభ్యర్థించిన సమాచారాన్ని తిరిగి ఇచ్చే సర్వర్.
-
నెట్వర్క్ - ఈ భాగం చాలా సులభం. ఇది క్లయింట్ మరియు సర్వర్ మధ్య సమాచార మార్పిడిని సులభతరం చేస్తుంది.
సర్వర్ వివిధ వినియోగదారుల నుండి భారీ సంఖ్యలో అభ్యర్థనలను నిర్వహించగలదు. దీని అర్థం చాలా మంది క్లయింట్లు ఉండవచ్చు. వారు తమలో తాము సమాచారాన్ని మార్పిడి చేసుకోవాలంటే, ఇది సర్వర్ ద్వారా జరగాలి. అందువలన, సర్వర్ మరొక ఫంక్షన్ ఉంది: ట్రాఫిక్ నియంత్రణ. మా బహుళ-వినియోగదారు చాట్ ప్రోగ్రామ్కు సంబంధించి, మొత్తం అప్లికేషన్లో రెండు మాడ్యూల్లు ఉంటాయి:
-
క్లయింట్ మాడ్యూల్ - సైన్ ఇన్ చేయడానికి మరియు సందేశాలను పంపడానికి/స్వీకరించడానికి గ్రాఫికల్ ఇంటర్ఫేస్ను కలిగి ఉంటుంది
-
సర్వర్ మాడ్యూల్ — సర్వర్లో హోస్ట్ చేయబడిన మరియు వినియోగదారుల నుండి సందేశాలను స్వీకరించే వెబ్ అప్లికేషన్, వాటిని ప్రాసెస్ చేస్తుంది మరియు వాటిని గ్రహీతలకు పంపుతుంది
మేము ఇంటర్నెట్లో ఉపయోగకరమైన (లేదా చాలా ఉపయోగకరంగా లేని) సమాచారాన్ని చూడాలనుకున్నప్పుడు, మేము బ్రౌజర్ను తెరిచి, శోధన పట్టీలో ప్రశ్నను నమోదు చేస్తాము మరియు ప్రతిస్పందనగా శోధన ఇంజిన్ నుండి సమాచారాన్ని పొందుతాము. ఈ గొలుసులో, బ్రౌజర్ క్లయింట్. ఇది మనం వెతుకుతున్న దాని గురించి సమాచారంతో కూడిన అభ్యర్థనను సర్వర్కు పంపుతుంది. సర్వర్ అభ్యర్థనను ప్రాసెస్ చేస్తుంది, అత్యంత సంబంధిత ఫలితాలను కనుగొంటుంది, బ్రౌజర్ (క్లయింట్) అర్థం చేసుకోగలిగే ఫార్మాట్లో వాటిని ప్యాకేజీ చేస్తుంది మరియు వాటిని తిరిగి పంపుతుంది. శోధన ఇంజిన్ల వంటి సంక్లిష్ట సేవలు చాలా సర్వర్లను కలిగి ఉంటాయి. ఉదాహరణకు, ఒక అధికార సర్వర్, సమాచారాన్ని కనుగొనే సర్వర్, ప్రతిస్పందనను రూపొందించే సర్వర్ మొదలైనవి. అయితే క్లయింట్కు వీటిలో దేని గురించి తెలియదు మరియు పట్టించుకోదు: క్లయింట్ కోసం, సర్వర్ ఏకీకృత సంస్థ. క్లయింట్కు ఎంట్రీ పాయింట్ గురించి మాత్రమే తెలుసు, అంటే, అభ్యర్థనలు పంపవలసిన సర్వర్ చిరునామా. మేము పరిశీలించిన అప్లికేషన్ను గుర్తుకు తెచ్చుకోండి
ఈ సిరీస్ యొక్క మునుపటి భాగం . ఇది నిజ సమయంలో అన్ని దేశాలలో సగటు గాలి ఉష్ణోగ్రతను పర్యవేక్షించడం కోసం. దీని ఆర్కిటెక్చర్ ఇలా కనిపిస్తుంది:
మా అప్లికేషన్ సర్వర్లో ఉంది. ప్రతి ఐదు సెకన్లకు అది స్థానిక వాతావరణ కేంద్రాల ద్వారా నిర్వహించబడే సర్వర్లకు అభ్యర్థనలను పంపుతుంది, సర్వర్ల నుండి నిర్దిష్ట దేశానికి సంబంధించిన ఉష్ణోగ్రత సమాచారాన్ని అందుకుంటుంది మరియు ఈ సమాచారాన్ని నిల్వ చేస్తుంది. క్లయింట్ మమ్మల్ని "ప్రపంచంలోని ప్రస్తుత గాలి ఉష్ణోగ్రతను వీక్షించమని" అడిగినప్పుడు, మేము దేశం వారీగా క్రమబద్ధీకరించబడిన అత్యంత ఇటీవల నిల్వ చేసిన సమాచారాన్ని తిరిగి అందిస్తాము. అందువల్ల, మా అప్లికేషన్ సర్వర్ (ఇది వినియోగదారు అభ్యర్థనలను ప్రాసెస్ చేసినప్పుడు) మరియు క్లయింట్ (ఇతర సర్వర్ల నుండి సమాచారాన్ని స్వీకరించినప్పుడు) రెండింటిలా పనిచేస్తుంది.
ఇక్కడ ఒక ముఖ్యమైన విషయం ఉంది: సర్వర్ యొక్క భావన నిర్దిష్ట కంప్యూటర్ గురించి కాదు, కానీ నెట్వర్క్ ఎంటిటీల మధ్య సంబంధం గురించి . |
సాధారణ క్లయింట్-సర్వర్ ఆర్కిటెక్చర్ చాలా అరుదుగా ఉపయోగించబడుతుంది మరియు చాలా సులభమైన అప్లికేషన్ల కోసం మాత్రమే. నిజంగా పెద్ద మరియు సంక్లిష్టమైన ప్రాజెక్ట్ల కోసం, మేము విభిన్న నిర్మాణాలను ఉపయోగిస్తాము, వీటిని మీరు భవిష్యత్తులో కలుసుకుంటారు. ఇప్పుడు క్లయింట్-సర్వర్ ఆర్కిటెక్చర్కు సమానమైన మోడల్ను చూద్దాం.
త్రీ-టైర్ ఆర్కిటెక్చర్
ఇది
మూడవ మాడ్యూల్ను పరిచయం చేసే నిర్మాణ నమూనా - డేటా నిల్వ . ఈ నమూనాలో, మూడు స్థాయిలను సాధారణంగా పొరలు లేదా శ్రేణులు అంటారు:
-
క్లయింట్ లేయర్ అనేది వినియోగదారు ఇంటర్ఫేస్, దీనిని ప్రెజెంటేషన్ టైర్ అని కూడా పిలుస్తారు. ఇది HTML పేజీలను స్వీకరించే వెబ్ బ్రౌజర్ కావచ్చు లేదా JavaFX ఉపయోగించి వ్రాసిన గ్రాఫికల్ వినియోగదారు ఇంటర్ఫేస్ కావచ్చు. ప్రధాన విషయం ఏమిటంటే, ఈ పొర వినియోగదారుని సర్వర్కు అభ్యర్థనలను పంపడానికి మరియు దాని ప్రతిస్పందనలను ప్రాసెస్ చేయడానికి అనుమతిస్తుంది.
-
లాజిక్ లేయర్ అనేది అభ్యర్థనలు/ప్రతిస్పందనలను ప్రాసెస్ చేసే సర్వర్. తరచుగా దీనిని సర్వర్ లేయర్ అని కూడా పిలుస్తారు. ఇక్కడే అన్ని తార్కిక కార్యకలాపాలు జరుగుతాయి: గణిత గణనలు, డేటా కార్యకలాపాలు, ఇతర సేవలకు కాల్లు లేదా డేటా నిల్వలు మొదలైనవి.
-
డేటా లేయర్ అనేది డేటాబేస్ సర్వర్: మా సర్వర్ దానితో పరస్పర చర్య చేస్తుంది. ఈ లేయర్ అప్లికేషన్ ఆపరేట్ చేయడానికి అవసరమైన మొత్తం సమాచారాన్ని నిల్వ చేస్తుంది.
అందువల్ల, మా సర్వర్ డేటాను యాక్సెస్ చేయడానికి అన్ని బాధ్యతలను తీసుకుంటుంది మరియు వినియోగదారుని నేరుగా యాక్సెస్ చేయడానికి అనుమతించదు.
త్రీ-టైర్ ఆర్కిటెక్చర్ యొక్క ప్రయోజనాలు
ఇలాంటి ఆర్కిటెక్చర్ మనకు అనేక ప్రయోజనాలను అందిస్తుంది, వాటితో సహా:
-
SQL ఇంజెక్షన్కు వ్యతిరేకంగా రక్షించే సామర్థ్యం (ఇది సర్వర్పై దాడి; ఇది SQL కోడ్ను పంపడం, అమలు చేసినప్పుడు, దాడి చేసే వ్యక్తి మా డేటాబేస్ను ప్రభావితం చేయడానికి అనుమతిస్తుంది).
-
మేము వినియోగదారు యాక్సెస్ని నియంత్రించాలనుకుంటున్న డేటాను వేరు చేయడం.
-
క్లయింట్కు డేటాను పంపే ముందు దానిని సవరించగల సామర్థ్యం.
-
స్కేలబిలిటీ (ఒకే డేటాబేస్ని ఉపయోగించే బహుళ సర్వర్లకు మా అప్లికేషన్ను విస్తరించే సామర్థ్యం.
-
వినియోగదారు కనెక్షన్ల నాణ్యతపై తక్కువ కఠినమైన అవసరాలు. సర్వర్లో ప్రతిస్పందనను రూపొందించేటప్పుడు, మేము తరచుగా డేటాబేస్ నుండి చాలా విభిన్న సమాచారాన్ని పొందుతాము మరియు దానిని ఫార్మాట్ చేస్తాము, వినియోగదారుకు అవసరమైన వాటిని మాత్రమే వదిలివేస్తాము. ఇలా చేయడం వల్ల క్లయింట్కి మన ప్రతిస్పందనగా మనం పంపే సమాచారం మొత్తం తగ్గుతుంది.
నిర్మాణ నమూనాలను ఎంత తరచుగా ఉపయోగించాలి?
ఫ్యాక్టరీ పద్ధతి డిజైన్ నమూనా గురించి మీకు తెలిసి ఉంటే , దాన్ని ఎప్పుడు ఉపయోగించాలో మీరు బహుశా ఆలోచిస్తూ ఉండవచ్చు. కొన్నిసార్లు ఏమి చేయాలో నిర్ణయించడం కష్టం: కొత్త ఆపరేటర్ని ఉపయోగించి లేదా ఫ్యాక్టరీ పద్ధతిని ఉపయోగించి వస్తువును సృష్టించండి. కానీ కాలక్రమేణా, అవగాహన వస్తుంది. నిర్మాణ నమూనాల విషయానికి వస్తే విషయాలు కొద్దిగా భిన్నంగా ఉంటాయి. ఎంటర్ప్రైజ్ ఫ్రేమ్వర్క్లు సాధారణంగా ఆమోదించబడిన కొన్ని నమూనా ఆధారంగా ఒక ప్రాజెక్ట్ను రూపొందించడానికి ప్రోగ్రామర్ను అనుమతించేలా రూపొందించబడ్డాయి. దీని ప్రకారం, స్ప్రింగ్ ఫ్రేమ్వర్క్ నేర్చుకునే ముందు, మీరు ఖచ్చితంగా క్లయింట్-సర్వర్ ఆర్కిటెక్చర్, త్రీ-టైర్ ఆర్కిటెక్చర్ మరియు MVC ఆర్కిటెక్చర్లను అర్థం చేసుకోవాలి. చింతించకండి: మేము ఇంకా MVC ఆర్కిటెక్చర్ గురించి మాట్లాడుతాము.
పార్ట్ 3. HTTP/HTTPS పార్ట్ 4. మావెన్ యొక్క ప్రాథమిక అంశాలు పార్ట్ 5. సర్వ్లెట్స్ మరియు జావా సర్వ్లెట్ API. సాధారణ వెబ్ అప్లికేషన్ను వ్రాయడం పార్ట్ 6. సర్వ్లెట్ కంటైనర్లు పార్ట్ 7. MVC (మోడల్-వ్యూ-కంట్రోలర్) నమూనాను పరిచయం చేస్తోంది