Wednesday, January 31, 2018

1G, 2G, 3G, 4G, 5 G ... అంటే ఏమిటి?

1G, 2G, 3G, 4G, 5 G ...  అంటే ఏమిటి?



1G, 2G, 3G, 4G, 5 G ...  అంటే ఏమిటో తెలియకపోయినా 2G స్కేం  గురించి వార్తలలో విననివాడు ఉండడు. ఇదేదో సెల్ ఫోనులకి సంబంధించిన కుంభకోణం అని చాలమందికి చూచాయగా తెలుసు. కనుక ఆ కథ మనకి అనవసరం. ఇక్కడ మనకి కావల్సినవి సాంకేతికమైన సంగతులు మాత్రమే!


తేలికగా అర్థం అయేటట్లు చెప్పాలంటే G అనగా generation లేదా తరం. కనుక 1G అంటే మొదటి తరం, 5G అంటే అయిదవ తరం. మన నాగరికతని రాతి యుగం, రాగి యుగం, కంచు యుగం, ఇనప యుగం, అంటూ విభజించినట్లే చరవాణి (లేదా తీగలు లేని దూరవాణి లేదా wireless telephone) సౌకర్యాలలో వస్తూన్న మార్పులని తరాలు వారీగా విభజించి అధ్యయనం చెయ్యడం రివాజు. 

పూర్వం మన ఊరినుండి మరొక ఊరికి టెలిఫోను చెయ్యాలంటే ఇక్కడ నుండి అక్కడి వరకు తీగలు ఉండాల్సి వచ్చేది. ఇలా ప్రపంచ వ్యాప్తంగా తీగలు అమర్చడం అంటే ఎంతో శ్రమతో, ఖర్చుతో కూడుకున్న పని. ఇటీవలి కాలంలో తీగల ప్రమేయం లేకుండా వార్తలని పంపడం నేర్చుకున్నాం. ఉదాహరణకి రేడియో, టెలివిషన్ తీగలు లేకుండా పని చేస్తున్నాయి కదా. అదే ధోరణిలో తీగలు లేకుండా టెలిఫోను సౌకర్యం ఇప్పుడు ప్రపంచవ్యాప్తంగా వచ్చేసింది. ఈ మార్పు అంచెలంచెలుగా జరిగింది. ఈ అంచెలనే "తరాలు" అని తెలుగు లోనూ, generations అని ఇంగ్లీషులోను అంటారు.

మొదటి తరం (1G) నిస్తంతి చరవాణులు (wireless telephones) కేవలం మాట్లాడడానికే ఉపయోగపడేవి. చాలా మోటుగా, బరువుగా ఉండేవి. మాట బాగా వినిపించేది కాదు. మాట మధ్యలో లంకె తెగిపోయేది. వాటికి కావలసిన బేటరీలని తరచు మార్చవలసి వచ్చేది. తరువాత రెండవ తరం (2G)రావడంతో నోటితో మాట్లాడే మాటతోబాటు రాసిన రాతని (texting లేదా SMS) కూడా ప్రసారం చెయ్యడం సానుకూలపడింది. మూడవ తరంలో మాట (voice) ని, రాత (text) ని కేవలం వాయు మార్గంలో ప్రసరించే పద్ధతితో పాటు, అంతర్జాలం (Internet) ద్వారా కూడా పంపడానికి వీలయింది. అంతే కాకుండా మాట్లాడే వాళ్లు ఒక చోట స్థిరంగా ఉండనక్కరలేకుండా (అనగా, కదులుతూ, నడుస్తూ, కారులో వెళుతూ) కూడ చరవాణిని ఉపయోగించుకోవచ్చన్నమాట! కేవలం మాట, రాత తో సరిపోయిందా? కదిలే బొమ్మలు (video) కూడా పంపడానికి వీలుగా 4 వ తరం (4G) వచ్చింది. ఇక రాబోయేది 5 వ తరం (5G). ఈ కొత్త తరంలో బుద్ధ గృహాలు (smart homes), బుద్ధ నగరాలు (smart cities) లకి కావలసిన సౌకర్యాలు లభించబోతున్నాయి. (బొమ్మ చూడండి).  

Saturday, January 20, 2018

API అంటే ఏమిటి?

API అంటే ఏమిటి?

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

API అంటే ఏమిటి? సాంకేతికంగా API అంటే Applications Program Interface. తెలుగులో "అనువర్తన క్రమణికల అంతర్ముఖం."  ఇది కంప్యూటర్ రంగంలో తరచుగా తారసపడే ఒక పారిభాషిక పదజాలం. చాలా కంపెనీలు తమతమ ఖాతాదారుల కొరకు గాని, తమ స్వంత సిబ్బంది వాడుకోడానికి కాని API లని నిర్మిస్తూ ఉంటారు. టూకీగా, అందరికీ అర్థం అయేలా చెప్పడానికి రెండు ఉపమానాలు వాడతాను.

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

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

ఇప్పుడు API కి మరొక ఉదాహరణ ఇస్తాను. నేను ఒక వైద్యుడిని అనుకుందాం. నన్ను చూడడానికి వచ్చే రోగులు బయట వరండాలో పడిగాపులు పడుతూ కూర్చోనక్కర లేకుండా ఒక సదుపాయం ప్రవేశపెడదాం. అందుకుగాను నేను ఒక కంప్యూటరు మీద ఒక జాలస్థలిని నిర్మిస్తాను. ఆ జాలస్థలి లో ఒక కేలండరుని కూడా అమర్చుతాను. నన్ను చూడడానికి వచ్చేవాళ్లు నేరుగా నా క్లినిక్ కి వచ్చేయకుండా ముందు నా జాలస్థలిలో ఉన్న కేలండరుని సంప్రదిస్తారు.  ఆ కేలండరులో ఎప్పుడు ఖాళీ ఉందో చూసుకుని అక్కడ వారు వాళ్ల పేరు రాసుకునే సదుపాయం చేసేననుకుందాం.

నా వెబ్‌సైట్ లో కేలండర్ ని అమర్చడం ఎలా? "గోడ మీద కేలండరు" ఎక్కడనుండి వస్తోంది? ఎవ్వరో పంచాగకర్త తయారు చేసిన అంశాలని ముద్రణాలయం వారు అందంగా ముద్రించి ఇవ్వడం లేదూ? అలాగే "కంప్యూటరు కేలండర్లు" చెయ్యడం చేతనయిన వాళ్లు కేలండరు ప్రోగ్రాము రాసి అమ్ముతారు. వీళ్లని మూడవ పక్షం (third party) అంటారు. కేలండరు ప్రోగ్రాము రాసే ముందు వీరికి  జాలస్థలాలికి అమర్చడానికి అవసరమైన హంగులు తెలియాలి కదా. ఆ అంశాలని తెలియపరచేదే API.

మరొక ఉదాహరణ.  మా ఊళ్లో వరుణ్ అనే ఆసామీ ఉన్నాడు. అతనికి వాతావరణం గురించి అన్ని విషయాలు కూలంకషంగా తెలుసు. రేపు ఎండ కాస్తుందా, మబ్బుగా, ఉంటుందా, వర్షం పడుతుందా, అన్న ప్రశ్న ఏదైనా ఉంటే అతనిని టెలిఫోనులో పిలచి అడగొచ్చు.

మనం పిలచి అడిగినప్పుడు మన ప్రశ్న ఒక నిర్దిష్టమైన పద్ధతిలో అడగాలి.  ఉదాహరణకి: “<<రేపు/ఎల్లుండి/ఫలా రోజున>> <<వేడిగా/మబ్బుగా వర్షంగా>> ఉంటుందా? అని ఒక క్రమ పద్ధతిలో అడగాలి. అప్పుడు వరుణ్ సమాధానం చెబుతాడు. ఇదే విధంగా API ని కూడా పిలవొచ్చు.  ఇంతమంది పిలుస్తూ ఉంటే వరుణ్ తట్టుకోలేడు కదా. అందుకని మన పిలుపుని అందుకోడానికి అవతల పక్కన వరుణ్ కి బదులు ఒక పరిచారిక ఉంటుంది.  మనం వరుణ్ ని  టెలిఫోనులో పిలచినట్లు పరిచారికని పిలవలేము కదా. అందుకని మన కంప్యూటరులో ఉన్న బ్రౌజర్ తెరచి దాంట్లో మన ప్రశ్నని టైపు చేస్తాం. ఈ సందర్భంలో మన బ్రౌజర్ (Chrome, Firefox, Safari వగైరాలు) ని క్లయంట్ అంటారు.  మనం పంపించే ప్రశ్నని HTML request అంటారు.

ఇలా చెప్పుకుంటూ పోతే ఇది ఒక చేటభారతంలా తయారవుతుంది కనుక ఇక్కడ ఆపుతాను.