ડોમેન નામ પ્રણાલી

ડોમેન નેમ સિસ્ટમ કે DNS કમ્પ્યૂટર્સ કે તેને લગતી સેવાઓ અથવા ઈન્ટરનેટ અથવા ખાનગી નેટવર્ક સાથે જોડાયેલ કોઈપણ સ્રોતો માટે અધિક્રમિક વિતરિત નામકરણ સિસ્ટમ છે. તે તેની સાથે સકળાયેલ સહભાગી કંપનીઓના નામની મોટા અક્ષર વાંચી શકે તેવા  જાણકારી રાખે છે. તેનું મુખ્ય કાર્ય તેનામાં સમાયેલ ડોમેન નામ ને તેના આંકડાકીય IP એડ્રેસમાં અનુવાદ કરવાનું છે જેનો ઉપયોગ આખી દુનિયામાં ઈન્ટરનેટ પર વેબસાઈટ, FTP સાઈટ કે બીજી અન્ય સેવાઓ સહેલાઈથી મેળવવા થાય છે. 

ડોમેન નામ પ્રણાલી સમજવા માટે આપણે ટેલીફોન ડિરેક્ટરીનું ઉદાહરણ લઇ શકીએ. ટેલીફોન ડિરેક્ટરીમાં  વ્યક્તિ કે કંપનીના નામની સામે તેમના ટેલીફોન ક્રમાંક લખ્યા હોય છે. જેની મદદથી આપણે જોઈતા વ્યક્તિ કે કંપનીના ટેલીફોન ક્રમાંક સહેલાઇથી શોધી શકીએ છીએ. તેવી જ રીતે DNS માં ઈન્ટરનેટ સાથે જોડાયેલ વેબસાઈટ કે અન્ય સેવાઓના નામ ની સામે તેમનો IP એડ્રેસ લખેલો હોય છે. (આ ડેટાબેઝ જે તે કંપનીના અધિકૃત સંચાલકો અદ્યતન રાખે છે) દા.ત. કોઈ એક ઈન્ટરનેટ નો વપરાશકર્તા જયારે તેના વેબ-બ્રાઉસરમાં કોઈ વેબ સાઈટનું અર્થપૂર્ણ નામ (URL) લખે છે ત્યારે તેને અનુવાદ કરવાની જવાબદારી તેના કોમ્પુટરમાં રહેલા DNS એડ્રેસની હોય છે. આ અનુવાદ કરવાની માંગણી જે તે DNS સર્વર પાસે જાય છે અને આ સર્વર પોતાના ડેટાબેઝમાંથી તેનો જવાબ આપે છે જે, તે વેબસાઈટ નો આંકડાકીય IP એડ્રેસ હોય છે જેનાથી આ વેબસાઈટ વપરાશકર્તાના બ્રાઉસરમાં ખુલે છે. આ ક્રિયા મિલી સેકંડમાં થતી હોય છે. ઘણીવાર ધીમા સર્વર કે ધીમી ઈન્ટરનેટની ઝડપથી તેના કાર્યમાં વહેલું મોડું થવાની શક્યતા છે.

દરેક ડોમેન માટે દરેક ડોમિન નામ માટે એક IP એડ્રેસ નક્કી કરવાની જવાબદારી જે તે ડોમેનના સત્તાવાર સર્વરને DNSએ સોપેલી હોય છે. સત્તાવાર નામ સર્વરો તેમના ચોક્કસ ડોમેન માટે જવાબદાર હોઈ સોંપાયેલ છે, અને છેવટે તેમના પેટા ડોમેન્સ માટે અન્ય સત્તાવાર નામ સર્વરો સોંપી શકો છો. આ પદ્ધતિ દ્વારા DNS વિતરણ અને ક્ષતિ સહનશીલ બની છે જેનાથી આ પ્રણાલીને કેન્દ્રસ્થ રજીસ્ટર કરવાની જરૂર રહી નથી અને તે જુદા જુદા સ્થળ થી અપડેટ થઇ શકે છે. વધુમાં, આ પ્રણાલીમાં રહેલા ડોમેનના રેકોર્ડો માં સુધારો વધારો કરવા જે તે ડોમેનના રજીસ્ટાર થકી ડોમેનના માલિક(છેવટના વપરાશકર્તા)ને સહુલીયત મળી રહેવાથી પોતાના ડોમેનના નામની જાળવણી કરવા એક તંદુરસ્ત હરીફાઈ રહેલી હોય છે જે પૂરી પ્રણાલીમાં ક્ષતિનું પ્રમાણ ઘટાડે છે. ડોમેન એક રજીસ્ટાર થી બીજા રજીસ્ટાર પર ગમે ત્યારે ખસેડી શકાય છે. (અપવાદ : તાજેતર કે સમય-સીમા સમાપ્ત થયા હોય તેવા).

આ ડોમેન નામ સિસ્ટમ પણ આ ડેટાબેઝ સેવાની તકનિકી કાર્યક્ષમતા સ્પષ્ટ કરે છે. તે ઈન્ટરનેટ પ્રોટોકોલ સ્યુટ ના ભાગ તરીકે DNS પ્રોટોકોલ, DNS માં વપરાયેલ માહિતી માળખાં અને માહિતી સંચાર વિનિમય એક વિગતવાર સ્પષ્ટીકરણ, વ્યાખ્યાયિત કરે છે.

ઇન્ટરનેટ બે મુખ્ય નેમસ્પેસેસ ની જાળવણી કરે છે, ડોમેન નામ વંશવેલો RFC 1034, Domain Names - Concepts and Facilities, P. Mockapetris, The Internet Society (November 1987)  અને ઈન્ટરનેટ પ્રોટોકોલ (IP) RFC 781, Internet Protocol - DARPA Internet Program Protocol Specification, Information Sciences Institute, J. Postel (Ed.), The Internet Society (September 1981) એડ્રેસ છે. આ ડોમેન નામ સિસ્ટમ ડોમેઈન નામ વંશવેલો જાળવે છે અને તેને અને સરનામા જગ્યાઓ વચ્ચે અનુવાદ સેવાઓ પૂરી પાડે છે. ઈન્ટરનેટ નામ સર્વરો અને કોમ્યુનિકેશન પ્રોટોકોલને ડોમેઇન નેમ સિસ્ટમ અમલમાં છે. RFC 1035, Domain Names - Implementation and Specification, P. Mockapetris, The Internet Society (November 1987) એક DNS નામ સર્વર જેમ કે સરનામું (A અથવા AAAA) રેકોર્ડ્સ, નામ સર્વર (NS) રેકોર્ડ, અને મેઈલ પરિવાહક તરીકે ડોમેન નામ માટે DNS રેકોર્ડ્સ સંગ્રહ કરે છે કે જે સર્વર, છે (MX) રેકોર્ડ્સ (DNS રેકોર્ડ પ્રકારની યાદી પણ જુઓ) ; એક DNS નામ સર્વર તેના ડેટાબેઝને સામે પ્રશ્નો જવાબો સાથે પ્રતિક્રિયા આપે છે.

 ઈતિહાસ 
ARPANET યુગથી હોસ્ટને સાદું, યાદ રહે તેવા નામ સાથે હોસ્ટના આંકડાકીય એડ્રેસને જોડવું એ વ્યવહારમાં છે. જયારે DNS શોધાયું ન હતું, ઈ.સ. ૧૯૮૨ માં નેટવર્કમાં જોડાયેલો દરેક હોસ્ટ સુધારેલ HOSTS.TXT ફાઈલ SRI(હાલ SRI ઇન્ટરનેશનલ) ના કોમ્પુટરથી મેળવતો હતો. RFC 3467, Role of the Domain Name System (DNS), J.C. Klensin, J. Klensin (February 2003) આ HOSTS.TXT ફાઈલમાં હોસ્ટ નામોને તેના આંકડાકીય એડ્રેસો જોડે સંકળેલા રેકોર્ડો રહેતા. આજે પણ આ HOSTS.TXT ફાઈલ મોટેભાગની આધુનિક કોમ્પુટર ઓપેરેટીંગ સીસ્ટમમાં જોવા મળે છે જેમાં સામાન્ય રીતે “localhost” નામને IP એડ્રેસ ૧૨૭.૦.૦.૧ સાથે સાંકળેલુ હોય છે. ઘણી ઓપરેટીંગ સીસ્ટમ નામ ઠરાવ માટે વપરાશકર્તા(એડમીન)ને નામ ઠરાવ પદ્ધતિઓ માટે પસંદગી પ્રાથમિકતાઓ રૂપરેખાંકિત કરવા માટે છૂટ આપે છે.

નેટવર્કની ઝડપી વૃદ્ધિને લીધે હાથ ઘડતર કરનારા કેન્દ્રસ્થ HOSTS.TXT ફાઈલનો ઉકેલ બિનવ્યવહારુ બન્યો હતો; તેમાં આપોઆપ જરૂરી માહિતી વધુ સક્ષમ રીતે અપડેટ બને અને તેને કેન્દ્રસ્થ બનાવી સરળતાથી ઉપયોગમાં લાવવાની તાકીદે જરૂર પડી. 

Jon Postel ની અરજી પર, Paul Mockapetrisએ ૧૯૮૩માં ડોમેઇન નેમ સિસ્ટમ શોધ કરી અને તેનું પ્રથમ અમલીકરણ લખ્યું. આ મૂળ વિશિષ્ટતાઓ RFC 1034 દ્વારા નવેમ્બર 1987 માં બરતરફ કરવામાં આવી હતી. જે RFC 882 અને RFC 883 માં ઈન્ટરનેટ એન્જિનિયરિંગ ટાસ્ક ફોર્સ દ્વારા પ્રકાશિત કરવામાં આવી હતી  અને RFC 1035 છે.  ટિપ્પણીઓ માટે કેટલીક વધારાની વિનંતી અગત્યના DNS પ્રોટોકોલ માટે વિવિધ એક્સ્ટેન્શન્સ દરખાસ્ત કરી.

ઈ.સ. ૧૯૮૪માં Berkeleyના ચાર વિદ્યાર્થીઓ – ડગ્લાસ ટેરી, માર્ક પેઈન્ટર, ડેવિડ રીગલ અને Songnian Zhonએ યુનિક્સમાં નામ સર્વરનું અમલીકરણ કરતું પ્રોગ્રમિંગ કર્યું. જે Berkeley Internet Name Doamin(BIND) Server તરીકે ઓળખાયું. Douglas Brian Terry, Mark Painter, David W. Riggle and Songnian Zhou, The Berkeley Internet Name Domain Server, Proceedings USENIX Summer Conference, Salt Lake City, Utah, June 1984, pages 23–31. ઈ.સ. ૧૯૮૫માં DECના કેવિન ડુનલપે નોંધપાત્ર રીતે DNS અમલીકરણને ફરીથી લખી. ત્યાર પછી BINDની જાળવણી Mike Karels, Phil Almquist અને Paul Vixieએ કરી. ઈ.સ. ૧૯૯૦ની શરૂવાતમાં BIND ને Windows NT પર મુકવામાં આવ્યું હતું. 

BIND વ્યાપક રીતે ફેલાયેલું હતું, મુખ્યત્વે યુનિક્સ સીસ્ટમો પર, અને તેનું DNS સોફ્ટવેરનો ઉપયોગ ઈન્ટરનેટ પર થયો.  

 માળખું  
 ડોમેન નામ અવકાશ 

ડોમેન નામ અવકાશ એક ડોમેન નામના વૃક્ષને સમાવે છે. વૃક્ષની દરેક નોડ કે ડાળી શૂન્ય કે તેથી વધુ રેકોર્ડ ધરાવે છે, જે ડોમેન નામ જોડે સંકળાયેલી માહિતી ધરાવે છે. આ વૃક્ષ તેના મૂળ ઝોન (Root Zone) થી શરૂવાત કરીને ઉપ-ઝોનમાં વિભાજીત થયેલો હોય શકે છે. એક DNS ઝોન પોતાનામાં એક કે એકથી વધુ ડોમેનો, ઉપ-ડોમેનો સમાયેલ હોય શકે છે. આ માળખું DNS ઝોનના પ્રબંધક DNSના ઉપયોગ પ્રમાણે ડીઝાઇન કરે છે.

કોઇપણ ઝોન પરની વહીવટી જવાબદારી વધારાના ઝોન બનાવીને વિભાજિત કરી શકાય છે. બીજું નામ સર્વર અને વહીવટી એન્ટિટી માટે, સામાન્ય રીતે પેટા ડોમેન્સ રૂપમાં, જૂના જગ્યા એક ભાગ માટે સત્તા દ્વારા અધિકૃત કરવામાં આવે છે.

 ડોમેન નામ સિન્ટેક્સ 

ડોમેન નામકરણના નિયમોનું વિગતવાર વર્ણન RFC 1035, RFC 1123, RFC 2181 માં જોઈ શકાય છે. ડોમેનનું નામ એકથી વધુ ભાગોમાં વહેચાયેલું હોય છે, દરેક ભાગ લેબલ તરીકે ઓળખાય છે, તે પરંપરાગત શ્રેણીબદ્ધ છે અને ડોટ્સ વડે સીમાંકિત કરેલ હોય છે જેમકે,  example.com 

છેક જમણી બાજુનું લેબલ ટોપ-લેવલ ડોમિન તરીકે ઓળખાય છે. દા.ત.  www.example.com  માં com એ ટોપ-લેવલનું ડોમેન છે. 
જમણી બાજુથી ડાબી તરફ આવતા ડોમેનનો વધે છે. ડાબી તરફનું દરેક લેબલ એક પેટાવિભાગ કે પેટા-ડોમેન દર્શાવે છે. આ પેટા-ડોમેન તેની જમણી બાજુના ડોમેનનો પેટા-ડોમેન છે. દા.ત. લેબલ example એ ડોમેન com નું પેટા-ડોમેન છે. www એ  example.com નું પેટા-ડોમેન છે. આ માળખાને ૧૨૭ સ્તર સુધી પેટા-વિભાગોમાં વહેચી શકાય છે.
દરેક સ્તર ૬૩ અક્ષરો સમાવી શકે છે. શાબ્દિક રજૂઆતમાં ડોમેનનું પુરેપુરૂ નામ ૨૫૩ અક્ષરોથી વધવંા જોઈએ નહિ.  DNS આંતરિક બાઈનરી રજૂઆત માં મહત્તમ લંબાઈ સ્ટોરેજ 255 octets જરૂરી છે.  
તકનીકી રીતે DNS કોઈપણ અક્ષરને સારી પેઠે ઓક્ટેટ માં સમાવી શકે છે. જોકે, ડોમેન એ DNS રુટ ઝોનમાં નામો, અને મોટા ભાગના અન્ય પેટા ડોમેન્સ ની મંજૂરી સૂત્ર, એક પ્રિફર્ડ બંધારણમાં અને અક્ષર સમૂહ ઉપયોગ કરે છે. ASCII અક્ષર સમૂહ ઉપગણ લેબલને સ્વીકૃત અક્ષરો છે, જેમાં a થી z, A થી Z અક્ષરો તેમજ ૦ થી 9 અંકો અને હાયફન (-) નો સમાવેશ કરેલો છે. આ નિયમ LDH નિયમથી જાણીતો છે. LDH (Letter, Digits, Hyphen). ડોમેન નામોને  કેસ સ્વતંત્ર (Case-Independent) અર્થઘટન કરવામાં આવે છે.   Network Working Group of the IETF,   January 2006,   RFC 4343: Domain Name System (DNS) Case Insensitivity Clarification   લેબલ ના નામની શરૂઆત કે અંત હાયફન (Hyphen)થી કરી શકાય નહિ. RFC 3696, Application Techniques for Checking and Transformation of Names, J.C. Klensin, J. Klensin આ ઉપરાંત વધારાના નિયમ એ છે કે, ઉચ્ચ-સ્તરીય ડોમેન નામોમાં બધા અક્ષરો આકડા હોય શકે નહિ. RFC 3696, Application Techniques for Checking and Transformation of Names, J.C. Klensin, J. Klensin
જે ડોમેન નામ હોસ્ટ પણ છે તેની સાથે એક IP એડ્રેસ સંકળાયેલો હોવો જોઈએ. દા.ત. ડોમેન નામ  www.example.com  અને  example.com  બંને હોસ્ટ નામ છે જયરે ડોમેન com નથી.

 આંતરરાષ્ટ્રીય ડોમેન નામો 
DNS મર્યાદિત ASCII અક્ષરોને પરવાનગી આપતું હોવાથી ઘણી ભાષાઓના મૂળભૂત અક્ષરો કે સ્ક્રીપ્ટની રજૂઆતને અટકાવે છે.આને શક્ય બનાવવા માટે, ICANN જેના દ્વારા જેમ કે માન્ય DNS અક્ષર માં વેબ બ્રાઉઝર્સ, નકશો યુનિકોડ શબ્દમાળાઓ તરીકે વપરાશકર્તા કાર્યક્રમો, Punycodeની મદદથી સુયોજિત કરે છે, સિસ્ટમ કાર્યક્રમો માં Internationalizing ડોમેન નામો (IDNA)ને મંજૂરી આપી હતી. 2009 માં આઇસીએએનએન આંતરરાષ્ટ્રીયકરણ ડોમેન નામ કંટ્રી કોડ ટોપ લેવલ ડોમેન ના સ્થાપન મંજૂરી આપી હતી. વધુમાં, હાલનું ટોચ સ્તર ડોમેન નામો (TLD) ઓ ઘણા registries જો IDNA પદ્ધતિ અપનાવી છે.

 નામ સર્વર 
આ ડોમેન નામ પ્રણાલી એ ક્લાયન્ટ સર્વર મોડલ વાપરે છે કે જે વિતરિત ડેટાબેઝ સિસ્ટમ દ્વારા ચલાવવામાં આવે છે. આ ડેટાબેઝના નોડ નામ સર્વરો છે. દરેક ડોમેન અને તેની નીચે રહેલા પેટા ડોમેનને (જો હોય તો) તેની માહિતી પ્રકાશિત કરવા માટે ઓછામાં ઓછું એક સત્તાવાર DNS સર્વર હોય છે. રૂટ ડોમેન સર્વર ટોચના સ્તરોને સેવા આપે છે. 

 અધિકૃત નામ સર્વર 
અધિકૃત નામ સર્વર એક એવું નામ સર્વર છે કે, જે મૂળ સ્ત્રોત દ્વારા જવાબો આપવા રૂપરેખાંકિત (Configure) કરેલું હોય છે. ઉદાહરણ તરીકે, ડોમેન એડમીન કે ડાયનેમિક DNSની રીતો દ્વારા જુદા જુદા સર્વરને પૂછાતા સામાન્ય DNS પ્રશ્નોના જવાબોમાં એકરૂપતા ન હોયતો અધિકૃત સર્વરના જવાબને માન્યતા અપાય છે. 
અધિકૃત સર્વરના બે પ્રકાર છે : સ્વામી/મુખ્ય (Master) અને સેવક (Slave). મુખ્ય સર્વરમાં દરેક ઝોનના મૂળ રેકોર્ડની કોપી હોય છે. જયારે સેવક સર્વર DNS પ્રોટોકોલની આપોઆપ અપડેટ થતી રચનાની મદદથી તેના મુખ્ય સર્વરમાંથી દરેક ઝોનના મૂળ રેકોર્ડની એક નકલ તેનામાં કોપી કરતુ હોય છે.

દરેક DNS ઝોન માટે અધિકૃત નામ સર્વરો સમૂહ સોંપાયેલ હોય છે. આ સમૂહ સરનામાં વિશેનો એક NS રેકોર્ડ પિતૃ ઝોન અને સર્વરો પોતાના(સ્વ સંદર્ભ તરીકે) માં સ્ટોર હોવા જ જોઈએ.
ડોમેન નામો એક ડોમેન નામ રજિસ્ટ્રાર સાથે રજીસ્ટર કરી રહ્યા હોય, ત્યારે ટોચ સ્તર ડોમેન નું ડોમેઈન રજિસ્ટ્રી તેમના સ્થાપન પ્રાથમિક નામ સર્વર ની સોંપણી અને ઓછામાં ઓછા એક દ્વિતીય નામ સર્વર માટે જરૂરી છે. બહુવિધ નામ સર્વરોની જરૂરિયાત એક નામ સર્વર સુલભ નહિં બને તો પણ ડોમેન હજુ પણ કાર્યરત બનાવવા માટે ધ્યેય રાખે છે.    પ્રાથમિક નામ સર્વર ની હોદ્દો માત્ર ડોમેઈન નામ રજિસ્ટ્રાર આપવામાં અગ્રતા દ્વારા નક્કી થાય છે. આ હેતુ માટે, સામાન્ય રીતે માત્ર નામ સર્વર ની સંપૂર્ણપણે ગુણવત્તાવાળું ડોમેઈન નામ, જરૂરી છે સર્વરો રજીસ્ટર ડોમેન માં સમાયેલ છે, જ્યાં સુધી કે જે કિસ્સામાં અનુરૂપ IP સરનામું તેમજ જરૂરી છે.

દ્વિતીય નામ સર્વરો સ્લેવ સર્વરો તરીકે અમલ કરી શકે છે, જ્યારે પ્રાથમિક નામ સર્વરો, ઘણી વખત માસ્ટર નામ સર્વરો છે.

એક સત્તાવાર સર્વર, ચોક્કસ જવાબો પૂરા પાડતા તેની સ્થિતિ સૂચવે છે અધિકૃત માનવામાં, સોફ્ટવેર ફ્લેગ (એ પ્રોટોકોલ માળખું બીટ) સુયોજિત કરીને, તેના પ્રતિભાવ (AA) બીટ આપે છે જેને  સત્તાવાર જવાબ (Authoritative Answer) કહેવાય છે. 

 સંચાલન 
 સરનામું ઠરાવ તંત્ર (Address Resolution Mechanism) 

યોગ્ય રીતે ક્રમમાં પુનરાવર્તન કરવા માટે પ્રથમ DNS સર્વરને અન્ય DNS સર્વરોની વિશે કેટલીક મદદરૂપ સંપર્ક માહિતીની જરૂર પડે છે. આ માહિતી જે તે DNS સર્વરને તમાં રહેલા રૂટ હિન્ટસ તરફથી મળે છે. આ રૂટ હિન્ટસ જે તે ઓપેરેટીંગ પ્રણાલી ઈન્ટરનેટ પરથી સર્વરમાં અપડેટ કરે છે. જે મોટે ભાગે ફાઈલ સ્વરૂપમાં હોય છે. (જેને બદલી શકાય છે પણ તે હિતાવહ નથી.) આ રૂટ હિન્ટસ એ એવા રેકોર્ડોની યાદી છે જેમાં અન્ય અધિકૃત DNS સર્વરોને શોધવા માટેના પ્રારંભિક મૂળ સ્ત્રોત સર્વરોના એડ્રેસ હોય છે. જેને મૂળ સર્વરો (રૂટ સર્વર) કહેવાય છે. આ રૂટ સર્વરો ડોમેન રૂટ માટે અધિકૃત હોય છે અને DNS ડોમેન નામસ્થળ(NameSpace) ના વૃક્ષના ટોચના સર્વરો ગણાય છે. 

રુટ સર્વરો શોધવા માટે રુટ સંકેતો વાપરીને, એક DNS સર્વર પુનરાવર્તનના ઉપયોગ પૂર્ણ કરવા માટે સક્ષમ છે. સિદ્ધાંત, આ પ્રક્રિયા નામસ્થળ વૃક્ષ કોઈપણ સ્તરે ઉપયોગમાં અન્ય કોઈપણ DNS ડોમેન નામ માટે અધિકૃત છે કે સર્વરો સ્થિત કરવા માટે કોઈપણ DNS સર્વર સક્રિય કરે છે.

દા.ત. બાજુ ની આકૃતિમાં એક વર્કસ્ટેશન પોતાના DNS સર્વરની મદદથી કોઈ વેબસાઈટનું IP એડ્રેસ કેવી રીતે મેળવે છે તે સમજીએ:
 DNS યાચક (અહી વર્કસ્ટેશન) example.com માટે જે-તે DNS સર્વરને અરજી કરે છે.
આ અરજીને DNS સર્વર તેની પાસે રહેલા રૂટ હિન્ટસ લીસ્ટના કોઈ એક સર્વરને મોકલે છે. 
આ રૂટ(સ્ત્રોત) સર્વર .COM નામ સર્વરનું એડ્રેસ યાચક DNS સર્વરને પાછુ મોકલે છે. 
યાચક DNS સર્વર પોતાની અરજી .COM સર્વરને મોકલે છે અને 
.COM સર્વર તેના જવાબમાં EXAMPLE.COM ના નામ સર્વરનું એડ્રેસ આપે છે. 
યાચક DNS સર્વર Example.com ના નામ સર્વરને મોકલે છે  
અને તેની પાસે Example.com નું એડ્રેસ લઇ 
જે તે યાચક વર્કસ્ટેશનને આપે છે.

 સંદર્ભો 

શ્રેણી:કમ્પ્યુટર વિજ્ઞાન