Клиент-сервер моделі - Client–server model - Wikipedia

Арқылы сервермен байланысатын клиенттердің компьютерлік желілік диаграммасы ғаламтор

Клиент-сервер моделі Бұл үлестірілген өтініш деп аталатын ресурстарды немесе қызметтерді жеткізушілер арасындағы міндеттерді немесе жүктемелерді бөлетін құрылым серверлер, және қызмет сұраушылар, шақырылды клиенттер.[1] Көбінесе клиенттер мен серверлер а арқылы байланысады компьютерлік желі бөлек жабдықта, бірақ клиент те, сервер де бір жүйеде орналасуы мүмкін. Сервер хост ресурстарды клиенттермен бөлісетін бір немесе бірнеше серверлік бағдарламаларды іске қосады. Клиент өзінің кез-келген ресурстарымен бөліспейді, бірақ ол серверден мазмұн немесе қызмет сұрайды. Сондықтан клиенттер кіріс сұрауларын күтетін серверлермен байланыс сеанстарын бастайды. Клиент-сервер моделін қолданатын компьютерлік қосымшалардың мысалдары электрондық пошта, желілік басып шығару және Дүниежүзілік өрмек.

Клиенттің және сервердің рөлі

The клиент-сервер сипаттамасы қосымшадағы ынтымақтастық бағдарламаларының байланысын сипаттайды. Сервер компоненті осындай қызметтерге сұраныстарды бастайтын бір немесе бірнеше клиенттерге функция немесе қызмет ұсынады, серверлер олар ұсынатын қызметтер бойынша жіктеледі. Мысалы, а веб-сервер қызмет етеді веб-беттер және а файлдық сервер қызмет етеді компьютерлік файлдар. A ортақ ресурс бастап серверлік компьютердің кез-келген бағдарламалық жасақтамасы және электрондық компоненттері болуы мүмкін бағдарламалар және деректер дейін процессорлар және сақтау құрылғылары. Сервердің ресурстарымен бөлісу а қызмет.

Компьютер клиент пе, сервер ме, екеуі де қызмет функцияларын қажет ететін қосымшаның сипатымен анықталады. Мысалы, бір компьютер веб-серверлерді және файлдық серверлердің бағдарламалық жасақтамаларын әр түрлі сұраныстар жасайтын клиенттерге әр түрлі мәліметтермен қамтамасыз ету үшін бір уақытта басқара алады. Сондай-ақ, клиенттің бағдарламалық жасақтамасы бір компьютерде серверлік бағдарламалық жасақтамамен байланыса алады.[2] Деректерді синхрондау сияқты серверлер арасындағы байланыс кейде аталады сервераралық немесе серверден серверге байланыс.

Клиенттік және серверлік байланыс

Жалпы, қызмет - бұл абстракция компьютерлік ресурстардың және клиенттің болуы міндетті емес қатысты сұранысты орындау және жауап беру кезінде сервер қалай жұмыс істейтіндігімен. Клиент тек белгілі қолданбалы протоколға негізделген жауапты түсінуі керек, яғни сұралған қызмет үшін мәліметтердің мазмұны мен форматталуы.

Клиенттер мен серверлер хабарламаны a сұрау - жауап хабар алмасу үлгісі. Клиент сұраныс жібереді, ал сервер жауап қайтарады. Бұл хабарламалар алмасу мысалы процесаралық байланыс. Байланыс жасау үшін компьютерлерде ортақ тіл болуы керек және олар клиент те, сервер де не күтетінін білетіндей ережелерді сақтауы керек. Қарым-қатынас тілі мен ережелері а байланыс хаттамасы. Барлық клиент-сервер хаттамалары қолдану қабаты. Қолдану деңгейінің хаттамасы диалогтың негізгі заңдылықтарын анықтайды. Деректермен алмасуды одан әрі ресімдеу үшін сервер an қолданбалы бағдарламалау интерфейсі (API).[3] API - бұл абстракция қабаты қызметке қол жеткізу үшін. Қарым-қатынасты белгілі бір шектеумен шектеу арқылы мазмұн форматы, бұл жеңілдетеді талдау. Қатынастарды абстракциялау арқылы платформалар арасындағы мәліметтер алмасуды жеңілдетеді.[4]

Сервер қысқа уақыт ішінде көптеген түрлі клиенттерден сұраныстар ала алады. Компьютер шектеулі санын ғана орындай алады тапсырмалар кез-келген сәтте және а-ға сүйенеді жоспарлау оларды орналастыру үшін клиенттерден келіп түсетін сұраныстарға басымдық беру жүйесі. Қиянаттың алдын-алу және оны барынша арттыру қол жетімділік, серверлік бағдарламалық жасақтама клиенттерге қол жетімділікті шектеуі мүмкін. Қызмет шабуылдарынан бас тарту сервердің сұраныстарды шамадан тыс жүктеу арқылы оны өңдеу бойынша міндеттемелерін пайдалануға арналған.Шифрлау клиент пен сервер арасында құпия ақпарат алмасу үшін қолданылуы керек.

Мысал

Қашан банк клиенттің қол жетімділігі Интернет-банкинг қызметтері веб-шолғыш (клиент), клиент банктің веб-серверіне сұрау салуды бастайды. Тапсырыс беруші кіру тіркелгі деректерін а дерекқор, ал веб-сервер мәліметтер базасының сервері клиент ретінде. Ан бағдарлама сервері қайтарылған деректерді банктік мәліметтерді қолдану арқылы түсіндіреді іскерлік логика және қамтамасыз етеді шығу веб-серверге. Соңында, веб-сервер нәтижені көрсету үшін клиенттің веб-шолушысына қайтарады.

Клиент-сервер хабарламаларымен алмасудың осы кезектілігінің әр сатысында компьютер сұранысты өңдейді және деректерді қайтарады. Бұл сұранысқа жауап беру үлгісі. Барлық сұраныстар орындалған кезде, реттілік аяқталады және веб-шолғыш деректерді тұтынушыға ұсынады.

Бұл мысал а дизайн үлгісі клиент-сервер моделіне қолданылады: алаңдаушылықты бөлу.

Ерте тарих

Клиент-сервер архитектурасының алғашқы формасы болып табылады жұмысқа қашықтықтан кіру, кем дегенде танысу OS / 360 (1964 ж. жарияланды), мұнда а жұмыс, және жауап нәтиже болды.

1960-70 жылдардағы клиент-сервер моделін құру кезінде, компьютерлік ғалымдар ғимарат ARPANET (кезінде Стэнфорд ғылыми-зерттеу институты ) терминдерді қолданды сервер-хост (немесе қызмет ететін хост) және пайдаланушы-хост (немесе хост-хост), және олар алғашқы құжаттарда пайда болады RFC 5[5] және RFC 4.[6] Бұл қолдану жалғасын тапты Xerox PARC 1970 жылдардың ортасында.

Зерттеушілер осы терминдерді қолданған бір контекст а компьютерлік желіні бағдарламалау Decode-Encode Language (DEL) деп аталатын тіл.[5] Бұл тілдің мақсаты бір компьютерден (қолданушы-хост) командаларды қабылдау болды, олар желі туралы пакеттердегі командаларды кодтаған кезде қолданушыға күй туралы есептер қайтарады. DEL-қабілеті бар тағы бір компьютер - сервер-хост пакеттерді қабылдады, декодтады және форматталған деректерді пайдаланушы-хостқа қайтарды. Қолданушы-хосттағы DEL бағдарламасы пайдаланушыға ұсыну үшін нәтижелерді алды. Бұл клиент-сервер транзакциясы. DEL-ті дамыту 1969 жылы басталған болатын, бұл жылы Америка Құрама Штаттарының қорғаныс министрлігі ARPANET құрылды (алдыңғы ғаламтор ).

Клиент-хост және сервер-хост

Клиент-хост және сервер-хост қарағанда жіңішке әр түрлі мағыналарға ие клиент және сервер. Хост - бұл желіге қосылған кез келген компьютер. Бұл сөздер сервер және клиент не компьютерге, не компьютерлік бағдарламаға сілтеме жасай алады, сервер-хост және пайдаланушы-хост әрқашан компьютерлерге жүгініңіз. Хост - бұл жан-жақты, көпфункционалды компьютер; клиенттер және серверлер бұл тек хостта жұмыс жасайтын бағдарламалар. Клиент-сервер моделінде сервер көбінесе қызмет көрсету міндетіне арналады.

Сөздің ерте қолданылуы клиент 1978 жылы Xerox PARC компьютерлік ғалымдары Ховард Стергис, Джеймс Митчелл және Джей Израилдің «Деректерді таратылған файлдық жүйеден функциялардан бөлу» бөлімінде кездеседі. Авторлар оқырмандарға арналған терминді мұқият анықтап, оны қолданушы мен қолданушының желілік түйінін (клиент) ажырату үшін қолданатынын түсіндіреді.[7] (1992 жылға қарай сөз сервер жалпы тілге енген.)[8][9]

Орталықтандырылған есептеу

Клиент-сервер моделі клиент-хосттан гөрі көп сервер-хосттың ресурстарына ие болу керектігін талап етпейді. Керісінше, бұл кез-келген жалпы мақсаттағы компьютерге басқа хосттардың ортақ ресурстарын пайдалану арқылы өз мүмкіндіктерін кеңейтуге мүмкіндік береді. Орталықтандырылған есептеу, дегенмен, көптеген компьютерлерге ресурстардың үлкен көлемін бөледі. Клиент-хосттардан орталық компьютерлерге есептеу қаншалықты жүктелетін болса, клиент-хосттар соғұрлым қарапайым бола алады.[10] Ол есептеу және сақтау үшін желілік ресурстарға (серверлер мен инфрақұрылымға) көп тәуелді. A дискісіз түйін тіпті оны жүктейді операциялық жүйе желіден және а компьютерлік терминал мүлдем амалдық жүйесі жоқ; бұл тек серверге енгізу / шығару интерфейсі. Керісінше, а семіз клиент, мысалы Дербес компьютер, көптеген ресурстарға ие және маңызды функциялар үшін серверге сенбейді.

Қалай микрокомпьютерлер 1980-ші жылдардан бастап 1990-шы жылдардың аяғына дейін бағаның төмендеуі және қуатының жоғарылауы, көптеген ұйымдар есептеуді орталықтандырылған серверлерден ауыстырды, мысалы. мейнфреймдер және шағын компьютерлер, семіз клиенттерге.[11] Бұл компьютерлік ресурстарға қатысты үлкенірек, дараланған, бірақ күрделі үстемдікке қол жеткізді ақпараттық технологияларды басқару.[10][12][13] 2000 жылдардың ішінде веб-қосымшалар қарсыласқа жетілген қолданбалы бағдарламалық жасақтама нақты үшін әзірленген микроархитектура. Бұл жетілу, қол жетімді жаппай сақтау, және пайда болуы қызметке бағытталған сәулет факторларының бірі болды бұлтты есептеу 2010 жылдардың тенденциясы.[14]

Тең-теңімен архитектурамен салыстыру

Клиент-сервер моделінен басқа, таратылған есептеу қосымшалар көбінесе пиринг жүйесі (P2P) қолданбалы архитектура.

Клиент-сервер моделінде сервер көбінесе көптеген клиенттерге қызмет ететін орталықтандырылған жүйе ретінде жұмыс істеуге арналған. Сервердің есептеу қуаты, жады және сақтау талаптары күтілетін жұмыс жүктемесіне сәйкес масштабталуы керек. Жүктемені теңестіру және құлату жүйелер көбінесе серверді бір физикалық машинадан тыс масштабтау үшін қолданылады.[15][16]

Ішінде пиринг жүйесі желі, екі немесе одан да көп компьютерлер (құрдастар) өз ресурстарын біріктіріп, а орталықтандырылмаған жүйе. Құрдастар теңдестірілген немесе эквипотентті түйіндер иерархиялық емес желіде. Клиент-сервердегі немесе клиенттегі клиенттерден айырмашылығы клиент - кезек – клиент желі, құрдастар бір-бірімен тікелей байланысады.[дәйексөз қажет ] Peer-to-peer желісінде алгоритм Тең-теңімен байланыс хаттамасындағы қалдықтар жүктеме, тіпті қарапайым ресурстарға ие құрдастар жүктемені бөлуге көмектесе алады.[дәйексөз қажет ] Егер түйін қол жетімсіз болса, оның ортақ ресурстары басқа құрдастар ұсынған кезде қол жетімді болып қалады. Ең дұрысы, құрдастың қол жеткізуі қажет емес жоғары қол жетімділік өйткені басқа, артық құрдастар кез-келген ресурстың орнын толтырады тоқтап қалу; құрдастарының қол жетімділігі мен жүк көтергіштігі өзгерген сайын, хаттама сұраулардың бағытын өзгертеді.

Клиент-сервер де қожайын-құл тең дәрежеде таратылған жүйелердің кіші санаттары ретінде қарастырылады.[17]

Сондай-ақ қараңыз

Ескертулер

  1. ^ «Таратылған қолданбалы архитектура» (PDF). Sun Microsystem. Архивтелген түпнұсқа (PDF) 2011 жылғы 6 сәуірде. Алынған 2009-06-16.
  2. ^ The X терезе жүйесі бір мысалы.
  3. ^ Бенаталлах, Б .; Касати, Ф .; Тумани, Ф. (2004). «Веб-сервис арқылы сөйлесуді модельдеу: электрондық бизнесті автоматтандырудың негізі». IEEE Internet Computing. 8: 46–54. дои:10.1109 / MIC.2004.1260703.
  4. ^ Дустдар, С .; Шрейнер, В. (2005). «Веб-қызметтер құрамы туралы сауалнама» (PDF). Халықаралық веб-тор және журнал қызметтері журналы. 1: 1. CiteSeerX  10.1.1.139.4827. дои:10.1504 / IJWGS.2005.007545.
  5. ^ а б Рулифсон, Джефф (Маусым 1969). DEL. IETF. дои:10.17487 / RFC0005. RFC 5. Алынған 30 қараша 2013.
  6. ^ Шапиро, Элмер Б. (наурыз 1969). Желілік кесте. IETF. дои:10.17487 / RFC0004. RFC 4. Алынған 30 қараша 2013.
  7. ^ Sturgis, Howard E .; Митчелл, Джеймс Джордж; Израиль, Джей Э. (1978). «Таратылған файлдық жүйеде функцияны деректерді бөлу». Xerox PARC. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  8. ^ Харпер, Дуглас. «сервер». Онлайн этимология сөздігі. Алынған 30 қараша 2013.
  9. ^ «Таратылған файлдық жүйеде функциядан деректерді бөлу». GetInfo. Германияның Ұлттық ғылым және технологиялар кітапханасы. Архивтелген түпнұсқа 2 желтоқсан 2013 ж. Алынған 29 қараша 2013.
  10. ^ а б Них, Джейсон; Янг, С.Джэ; Новик, Наоми (2000). «Жұқа клиенттік есептеу архитектураларын салыстыру». Academic Commons. дои:10.7916 / D8Z329VF. Алынған 28 қараша 2018.
  11. ^ d'Amore, M. J .; Оберст, Дж. (1983). «Микрокомпьютерлер және негізгі компьютерлер». 11 жылдық ACM SIGUCCS конференциясының материалдары Пайдаланушы қызметтері - SIGUCCS '83. б. 7. дои:10.1145/800041.801417. ISBN  978-0897911160.
  12. ^ Толия, Нирай; Андерсен, Дэвид Дж.; Satyanarayanan, M. (наурыз 2006). «Жіңішке клиенттерге арналған интерактивті тәжірибе мөлшерін анықтау» (PDF). Компьютер. IEEE Computer Society. 39 (3): 46–52. дои:10.1109 / mc.2006.101.
  13. ^ Отей, Майкл (22 наурыз 2011). «Бұлт шынымен магистральды есептеу техникасының оралуы ма?». SQL Server Pro. Penton Media. Архивтелген түпнұсқа 3 желтоқсан 2013 ж. Алынған 1 желтоқсан 2013.
  14. ^ Баррос, А.П .; Дюма, М. (2006). «Веб-қызмет экожүйелерінің өркендеуі». IT Professional. 8 (5): 31. дои:10.1109 / MITP.2006.123.
  15. ^ Карделлини, V .; Коладжанни, М .; Ю, П.С. (1999). «Веб-серверлік жүйелердегі жүктеменің динамикалық теңгерімі». IEEE Internet Computing. Электрлік және электронды инженерлер институты (IEEE). 3 (3): 28–39. дои:10.1109/4236.769420. ISSN  1089-7801.
  16. ^ «Жүк теңгерімі дегеніміз не? Жүк теңгерімдері қалай жұмыс істейді». NGINX. 2014 жылғы 1 маусым. Алынған 21 қаңтар, 2020.
  17. ^ Варма, Васудева (2009). «1: бағдарламалық жасақтама архитектурасы». Бағдарламалық жасақтаманың архитектурасы: жағдайға негізделген тәсіл. Дели: Pearson Education Үндістан. б. 29. ISBN  9788131707494. Алынған 2017-07-04. Деңгейге таратылған жүйелер [...] Бұл жалпы стиль, оның танымал стильдері клиент-сервер және мастер-құл стильдері болып табылады.