JavaRush /Java Blog /Random-TL /Mga server. Programang pang-edukasyon para sa mga dummies...

Mga server. Programang pang-edukasyon para sa mga dummies

Nai-publish sa grupo
Sa ibaba ay nagbibigay kami ng inangkop na pagsasalin ng artikulong The non-techie's guide to servers ni Kannan Chandrasegaran, isang developer mula sa Panopto. Pakitandaan na ang artikulo ay inilaan para sa mga nagsisimula na hindi gaanong pamilyar sa konsepto ng server side ng application at mga server. Mga server.  Programang pang-edukasyon para sa mga dummies - 1

Mula sa buhay opisina

Mahirap maging "non-techie" sa isang IT company, maniwala ka sa akin! Mga marketer, sales manager, accountant - hindi mahalaga - paminsan-minsan ay nakakaharap nila ang kanilang mga kasamahan sa teknikal na kaalaman. Maaaring sila ay mga programmer o mga tagapangasiwa ng system.... Sa alinmang paraan, pakiramdam ng mga "non-techies" ay naputol ang isang mahalagang bahagi ng kanilang utak. O nakarating sila sa isang hindi kilalang planeta na may matalinong buhay na hindi humanoid. O kaya…
Mga server.  Programang pang-edukasyon para sa mga dummies - 2
Minsan, siyempre, lahat ay nagtatapos nang maayos. Halimbawa, naglalakad sa corridor ang isang front-end na babae. Walang nagbabadya ng problema: siya ay patungo sa kaliwa, ikaw ay patungo sa kanan, at sa lalong madaling panahon... Hindi, sa pagkakataong ito ay hindi ito nangyari. Nakaupo ka na sa mesa kasama niya, at sinusubukang pagtagumpayan ang mahirap na katahimikan, itatanong mo: "At... ano ba talaga ang ginagawa mo?" Nagsisimula siyang magsabi ng isang bagay, ngunit hindi mo kaagad naiintindihan kung ano ang kanyang pinag-uusapan. Ang mga salita ay tila pamilyar: user interface, mga application, at - oo, ang Facebook ay isang website. Oo, may mga butones, mga menu... Nalaman mo kahit papaano ang mga sali-salimuot ng kanyang trabaho, tumango sa kanyang paalam at ang iyong mga landas ay naghihiwalay sa mga pasilyo ng isang malaking opisina.
Mga server.  Programang pang-edukasyon para sa mga dummies - 3
Ngunit sa lalong madaling panahon hindi ka magiging masuwerte: makakatagpo ka ng isang engineer ng server. O isang back-end na developer. Hindi alam kung anong uri ng gubat ang makikita mo ngayon, ikaw ay walang muwang na nagtatanong ng parehong tanong at... tumanggap ng abracadabra bilang tugon. Marami kang maririnig na salitang banyaga, at tumatakbo sa iyong isipan: “Magalang bang magtanong kung ano ang API?”, “Gumagamit kami ng “database” sa lahat ng oras, hindi ba?”, “Sino ang impiyerno itong si Jason?” (JSON)??”. Sinusubukan ng iyong kaibigang engineer na sabihin sa iyo ang tungkol sa mga server, ngunit hindi niya naiintindihan kung gaano kahirap para sa iyo na maunawaan ang kanyang pananalita na puno ng mga propesyonal na termino. Marahil ay narinig mo na ang salitang "server" noon, ngunit ginagamit ito sa napakaraming iba't ibang konteksto na mahirap maunawaan ang kahulugan nito. Well, subukan nating maunawaan ang terminong ito.

Pababa sa butas ng kuneho

Kapag ang isang ordinaryong tao (iyon ay, hindi isang programmer o administrator) ay gumagamit ng isang application, ang nakikita lang niya ay ang interface, isang larawan na tumutugon sa ilang halata (madalas) na mga aksyon. Sa katunayan, ang karaniwang naiintindihan ng mga user sa pamamagitan ng "application" ay ang front-end nito, iyon ay, ang front part, ang wrapper kung saan sila nakikipag-ugnayan. Ngunit napakakaunting alam ng mga user tungkol sa kung ano ang nasa loob, iyon ay, tungkol sa kung ano ang nagpapagana sa application. Sabihin nating padalhan mo ako ng mensahe, halimbawa, sa pamamagitan ng Whatsapp o Viber. Mukhang may darating na mensahe mula sa iyong smartphone papunta sa akin. Tingnan natin ang prosesong ito. Sabihin nating padadalhan mo ako ng mensahe kapag naka-off ang aking telepono, at pagkatapos ay i-off mo mismo ang iyong smartphone. At kaya, binuksan ko ang aking telepono, at natatanggap pa rin ang iyong mensahe, kahit na ang aming mga telepono ay hindi gumana nang sabay. Parang may kulang sa atin! Ito ang "isang bagay" na napalampas namin—ang back-end o server.
Mga server.  Programang pang-edukasyon para sa mga dummies - 4
Kapag pinag-uusapan ng mga programmer ang tungkol sa front-end at back-end, karaniwan nilang ibig sabihin ay ang paghihiwalay ng bahagi ng user ng application mula sa logic ng programa. Kaya, ang front-end ay ang interface na bahagi ng application, at ang back-end ay ang bahagi ng server nito.

Mga server

Sa esensya, ang server ay isang computing machine, isang computer na nakakonekta sa Internet at patuloy na naka-on.
Ang dalawang pangunahing gawain ng server ay ang pag-iimbak ng data at komunikasyon.
Mga server.  Programang pang-edukasyon para sa mga dummies - 5
Nagpapadala ka ng mensahe sa pamamagitan ng Whatsapp o Viber, ang application sa iyong smartphone ay nagpapadala ng mensahe sa server kung saan ito nakaimbak. Kapag ang Viber na naka-install sa aking smartphone ay kumokonekta sa server, ipinapadala nito sa akin ang lahat ng mga nakaimbak na mensahe.
Ang server ay ang "base station" kung saan tumatakbo ang application
Kapag ang isang application ay nangangailangan ng anumang impormasyon, ito ay nakikipag-ugnayan sa server. Kapag ang isang application ay kailangang makipag-ugnayan sa isa pang user ng application, ito ay ang server na nagpapahintulot sa kanila na makipag-usap. Ang mga terminong server, back-end, at API ay kadalasang ginagamit nang palitan.

Storage o data storage system

Ang pangunahing gawain ng server ay ang pag-iimbak ng data. Kabilang dito ang mga file : mga larawan, video at dokumento. Iniimbak ng server ang mga ito sa isang structured na paraan na katulad ng mga folder sa iyong computer, upang ma-access ang mga ito ng mga application. Ang impormasyon ay nakaimbak din sa server . Ang lahat ng mga application ay naglalaman ng impormasyon na mahalaga sa kanilang operasyon.
Mga server.  Programang pang-edukasyon para sa mga dummies - 6
Maaari mong ipakita ang impormasyong ito bilang isang set ng mga talahanayan. Halimbawa, ang isang application ay kailangang mag-imbak ng impormasyon tungkol sa isang user at ang kanilang password upang maganap ang pagpapatunay. Ang iyong application ay maaaring maging gabay sa restaurant, kung saan ang server ay mag-iimbak ng impormasyon tungkol sa bawat restaurant. Bilang karagdagan sa impormasyon mismo, ang server ay nagtatala din ng mga relasyon sa pagitan ng data. Halimbawa, gusto ng isang user ang isang restaurant sa isang application sa isang smartphone, at naaalala ng server ang koneksyong ito sa pagitan ng restaurant at ng user.
Mga server.  Programang pang-edukasyon para sa mga dummies - 7
Nagbibigay-daan ito sa iyo na sagutin ang maraming tanong. Halimbawa:
  • Ilang user ang nagustuhan ang restaurant na ito?
  • Anong mga restaurant ang gusto ng user na ito?
  • Anong mga lutuin ang nakakaakit sa maraming user nang sabay-sabay?
Ang impormasyon at mga relasyon sa pagitan ng data ay naka-imbak sa isang database (DB). Mayroong maraming mga uri ng mga database, ngunit lahat sila ay:
  • maaaring mag-imbak ng impormasyon
  • maaaring mag-imbak ng mga ugnayan sa pagitan ng data
  • maaaring makatanggap ng mga kahilingan para sa impormasyon at tumugon sa mga ito bilang isang data o isang set ng data, depende sa kahilingan.
Mayroong maraming mga uri ng mga database, bawat isa ay may sariling mga pakinabang at disadvantages. Kung nakakarinig ka ng mga termino tulad ng SQL, MySQL, MongoDB, CouchDB, Redis, alam mong pinag-uusapan natin ang tungkol sa mga database.

Pakikipag-ugnayan

Ang pangunahing gawain ng server ay pakikipag-ugnayan sa application at iba pang mga server.
Mga server.  Programang pang-edukasyon para sa mga dummies - 8
Maraming mga gawain sa application ang nangangailangan ng pakikipag-ugnayan sa server. Halimbawa, kung may hinahanap ang isang user, ipapadala ang query sa paghahanap sa server at mula doon ang resulta. Kung ang isang user ay nagpapadala ng mensahe sa isa pang user, ito ay unang dumating sa server. At pagkatapos ay mula doon ipinadala ito sa application ng isa pang user, kadalasan sa anyo ng isang ipinadalang abiso. Ang mga interface na ibinibigay ng isang server upang ang mga application ay maaaring makipag-ugnayan dito ay karaniwang tinatawag na mga API . Well, ang ilang mga function ng interface ay maaaring iugnay sa mga endpoint , halimbawa, sa paghahanap o awtorisasyon sa site. Para sa mga hindi pa nakakaalam, ang pakikipag-ugnayang ito ay maaaring mukhang kakaiba. Ang dalawang pinakakaraniwang interoperability na format ay JSON at XML.
Mga server.  Programang pang-edukasyon para sa mga dummies - 9
XML sa kaliwa, JSON sa kanan Sa unang tingin, ang mga format ay mukhang mahirap basahin. Mahalagang maunawaan na ang isang server ay isang computer lamang, tulad ng iyong laptop o smartphone. Ang app sa iyong telepono ay tumatanggap ng input ng user sa pamamagitan ng boses, text, voice recognition, o pagpindot sa screen. Pinoproseso ng application ang impormasyong ito at pagkatapos ay nagbibigay ng sagot sa anyo ng isang imahe sa screen. Ang isang smartphone ay isang computer na nakikipag-ugnayan sa isang tao, kaya ang input at output ay ibinibigay sa isang form na maginhawa para sa isang tao. Ang server ay isang computer na nakikipag-ugnayan lamang sa ibang mga computer. Nakikita ng isang tao ang impormasyon salamat sa mga bagay tulad ng: laki ng font, kulay ng teksto at pag-format. Ngunit wala itong ibig sabihin sa computer.
Ang pakikipag-ugnayan sa pagitan ng mga server ay nangyayari sa mga format na madaling i-parse at maunawaan para sa iba pang mga computer.

Application ng server

Kung gusto mong gumawa ng app na tatakbo sa iyong telepono, kakailanganin mo rin ng app na tatakbo sa server. Ang mga server-side na application ay nilikha gamit ang server-side programming language at frameworks, popular na mga opsyon ang Java , Ruby on Rails , Node.js , PHP , ASP.NET .
Mga server.  Programang pang-edukasyon para sa mga dummies - 10
Maaari mong sabihin na ang API ay ang "pinto" ng iyong server at alam ng application na kumatok sa kanila. Iniimbak ng database ang lahat ng iyong impormasyon. At ang server application ay ang "utak" na nag-uugnay sa lahat nang magkasama. Ito ay tumatanggap at tumutugon sa mga kahilingang ipinadala dito sa pamamagitan ng API, nagdaragdag at kumukuha ng impormasyon mula sa database, at gumagawa ng mga desisyon. Halimbawa, kapag ang isang user application ay nagsumite ng impormasyon sa pag-login, ang kahilingan ay dumarating sa pamamagitan ng API, ang tamang impormasyon sa pag-login ay naka-imbak sa database. Ang gawain ng application ng server ay ihambing ang mga ito at tumugon nang naaayon sa application gamit ang API.

Hardware

Mga server.  Programang pang-edukasyon para sa mga dummies - 11
Kapag narinig mo ang salitang "server," malamang na maiisip mo ang larawang ito: mga cabinet na may mga kumikislap na ilaw sa isang saradong silid. Malamang, para makumpleto ang larawan, ang kulang na lang ay si Tom Cruise, na bababa sa kisame at magnanakaw ng kung anu-ano. Maraming malalaking kumpanya ang nagmamay-ari ng kanilang sariling mga server at buong data center (mga malalaking silid na may mga kumikislap na cabinet). Ang Facebook at Google ay may daan-daang mga server sa buong mundo. Kapag nagpatakbo ka ng malaking serbisyo sa milyun-milyong user, ang pagpapatakbo ng sarili mong mga server ay maaaring maging mas mura at makapagbigay ng mas mahusay na pagganap. Sa halip na panatilihin ang kanilang sariling mga server, maraming mga developer ang gumagamit ng mga serbisyo sa cloud. Ang mga serbisyo tulad ng Amazon Web Services, Azure at Digital Ocean ay nag-aalok ng kakayahang gumamit ng "mga virtual server". Ang mga serbisyong ito ay nagmamay-ari at nagpapanatili ng hardware, at naglo-load lang ang developer ng isang server application dito. Ang ilang mga service provider ay nagbibigay ng backend bilang isang serbisyo, na nagbibigay-daan sa iyong magkaroon ng isang simpleng backend nang hindi na kailangang sumulat ng backend na application sa iyong sarili.

Kailangan ba ng lahat ng application ng backend?

Karamihan sa mga app na pamilyar sa iyo ay malamang na mayroong bahagi ng backend. Siyempre, makakahanap ka ng mga program na walang bahagi ng server. Halimbawa, ilang productivity app. Isang madaling paraan upang malaman kung ang isang application ay may back-end na ganito ang hitsura:
Kung lilipat ka sa Flight mode, gagana pa rin ba ang app?
Kung ang sagot ay "hindi," nangangahulugan ito na ang application ay tiyak na may isang backend server.
Mga server.  Programang pang-edukasyon para sa mga dummies - 12
Umaasa ako na mayroon ka na ngayong pang-unawa sa kung ano ang back-end ng isang application. Baka sa susunod na makilala mo ang iyong mga kapwa programmer, hindi mo lang mauunawaan kung ano ang kanilang pinag-uusapan, ngunit magagamit mo rin ang ilang mapahamak na "Jason" sa iyong pag-uusap.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION