JavaRush /Java блогы /Random-KK /2-бөлім. Бағдарламалық жасақтаманың архитектурасы туралы ...

2-бөлім. Бағдарламалық жасақтаманың архитектурасы туралы аздап сөйлесейік

Топта жарияланған
Бұл материал « Кәсіпорынның дамуына кіріспе » сериясының бөлігі болып табылады . Желі туралы бірінші бөлім осында . 2-бөлім. Бағдарламалық жасақтаманың архитектурасы туралы аздап сөйлесейік - 1Бағдарламалық жасақтаманың архитектурасы – бұл оның негізінде қосымша құрылатын және бүкіл бағдарламаның модульдері мен компоненттері өзара әрекеттесетін құрылым. Бағдарламашылар өте ұзақ уақыт бойы жақсы архитектураны жасауға тырысты, сондықтан біз қазір көптеген архитектуралық үлгілерді білуіміз таңқаларлық емес. Сіз оларды түсінуіңіз керек: веб-қосымшаны жазған кезде архитектура мәселесі өткір болады, өйткені онда қарапайым қосымшаға қарағанда компоненттер мен модульдер көп. Архитектуралық үлгі - бұл бағдарламалық жасақтаманы жобалау мәселесін шешудің бұрыннан ойластырылған тәсілі. Сіз зауыттық әдіс, абстрактілі зауыт, құрылысшы, прототип, синглтон және басқалары сияқты дизайн үлгілерін кездестірген шығарсыз. Олар жай ғана code жазу, сыныптарды құру және олардың өзара әрекеттесуін жоспарлау үшін қолданылады. Архитектуралық үлгілер абстракцияның жоғары деңгейінде – қолданбалы пайдаланушының serverмен, деректермен және жобаның басқа компоненттерімен әрекеттесуін жоспарлау кезінде қолданылады. Кейбір үлгілерді және оларды қалай пайдалану керектігін жылдам қарастырайық.

Клиент-server архитектурасы

Атауынан адам осы тақырыпта бәрі қарапайым және түсінікті сияқты әсер қалдырады. Шартты Көктемді зерттеуді бастағанда, сіз не туралы айтып жатқанымызды түсінуіңіз үшін кейбір тармақтарды нақтылайық. Сіз чат жаздыңыз делік, сіз және сіздің досыңыз оны пайдалана бастады. Мұнда қарапайым нұсқа болуы мүмкін - сіз білетін IP мекенжайлары арқылы бір-біріңізге тікелей хабарлама жібересіз: 2-бөлім. Бағдарламалық жасақтаманың архитектурасы туралы аздап сөйлесейік - 2Бастапқыда бәрі жақсы жұмыс істеп тұрған сияқты көрінуі мүмкін, сіздің басқа досыңыз келесі сұрақпен пайда болғанша: «Неге? Сіз мені чатыңызға қоспайсыз ба? Ал чатқа ортақ дос қосуды шешкенде, сіз архитектуралық мәселеге тап боласыз: әрбір чат пайдаланушысы пайдаланушылар саны туралы ақпаратты жаңартуы, жаңа пайдаланушының IP мекенжайын қосуы керек. Ал хабарлама жіберу кезінде ол барлық қатысушыларға жеткізілуі керек. Бұл туындайтын ең айқын мәселелер. Кодтың өзінде көптеген мәселелер жасырылады. Оларды болдырмау үшін пайдаланушылар туралы барлық ақпаратты сақтайтын және олардың мекенжайларын білетін serverді пайдалану керек . Хабарды тек serverге жіберу керек болады. Және ол өз кезегінде хабарламаны барлық алушыларға жібереді. Сөйлесуіңізге server жағын қосуды шешкен кезде сіз клиент-server архитектурасын құра бастайсыз.

Клиент-server архитектурасының құрамдас бөліктері

Оның кім екенін анықтайық. Клиент-server архитектурасы – дизайн үлгісі, веб-қосымшаларды құрудың негізі. Бұл архитектура үш компоненттен тұрады: 2-бөлім. Бағдарламалық жасақтаманың архитектурасы туралы аздап сөйлесейік - 3
  1. Клиент - атауынан белгілі бір ақпарат алу үшін serverге хабарласатын қызметтің (веб қолданбасының) пайдаланушысы екені белгілі болады.

  2. Сервер – бұл сіздің веб-қосымшаңыз немесе оның server бөлігі орналасқан орын. Ол пайдаланушылар туралы қажетті ақпаратты иеленеді немесе оны сұрай алады. Сондай-ақ, клиент байланысқан кезде server оған сұралған ақпаратты қайтарады.

  3. Желі қарапайым: ол клиент пен server арасында ақпарат алмасуды қамтамасыз етеді.

Сервер әртүрлі пайдаланушылардың көптеген сұраныстарын өңдей алады. Яғни, көптеген клиенттер болуы мүмкін және олар бір-бірімен ақпарат алмасу қажет болса, бұл server арқылы жасалуы керек. Осылайша, server тағы бір қосымша функцияны алады - трафикті басқару. Егер біз жасаған көп пайдаланушылық чат туралы айтатын болсақ, бүкіл бағдарлама codeы екі модульден тұрады:
  • клиент – авторизациялау, хабарламаларды жіберу/қабылдау үшін графикалық интерфейсті қамтиды;

  • server жағы - serverде орналастырылған және пайдаланушылардан хабарламаларды қабылдайтын, оларды өңдейтін, содан кейін оларды алушыларға жіберетін веб-бағдарлама.

2-бөлім. Бағдарламалық жасақтаманың архитектурасы туралы аздап сөйлесейік - 4Интернетте пайдалы (немесе онша пайдалы емес) ақпаратты көргіміз келгенде, біз браузерді ашамыз, іздеу жолағына сұраныс енгіземіз және жауап ретінде іздеу жүйесінен ақпарат аламыз. Бұл тізбекте браузер біздің клиентіміз болып табылады. Ол serverге іздегеніміз туралы ақпаратпен сұрау жібереді. Сервер сұрауды өңдейді, ең сәйкес нәтижелерді табады, оларды браузерге (клиентке) түсінікті пішімге буып, кері жібереді. Іздеу жүйелері сияқты күрделі қызметтерде көптеген serverлер болуы мүмкін. Мысалы, авторизация serverі, ақпаратты іздеу serverі, жауапты генерациялау serverі. Бірақ клиент бұл туралы ештеңе білмейді: ол үшін server біртұтас нәрсе. Клиент тек кіру нүктесін, яғни сұрауды жіберу қажет serverдің мекенжайын біледі. Алдыңғы бөлімде қарастырған қолданбаны еске түсірейік - нақты уақытта барлық елдердегі орташа ауа температурасын бақылауға арналған. Оның архитектурасы келесідей болады: 2-бөлім. Бағдарламалық жасақтаманың архитектурасы туралы аздап сөйлесейік - 5Біздің қолданба serverде орналасқан. Айталық, әрбір бес секунд сайын жергілікті гидрометеорологиялық орталықтардың serverлеріне сұраныс жіберіп, олардан белгілі бір елдегі температура туралы ақпарат алып, осы ақпаратты сақтайды. Клиент бізге «әлемдегі ағымдағы ауа температурасын көру» сұрауымен хабарласқанда, біз ел бойынша сұрыпталған соңғы сақталған ақпаратты қайтарамыз. Осылайша, біздің қосымшамыз әрі server (ол пайдаланушы сұрауларын өңдеген кезде) және клиент (басқа serverлерден ақпаратты алған кезде) болып табылады.
Маңызды: server ұғымы белгілі бір компьютер туралы емес, желі абоненттері арасындағы қарым-қатынас туралы .
Қарапайым клиент-server архитектурасы өте сирек және өте қарапайым қолданбалар үшін ғана қолданылады. Шынында да үлкен және күрделі жобалар үшін әр түрлі архитектура түрлері пайдаланылады, олармен болашақта көбірек таныс боласыз. Әзірге клиент-server моделіне өте ұқсас модельді қарастырайық.

Үш деңгейлі архитектура

Бұл үшінші ойыншыны енгізетін архитектуралық үлгі: деректер қоймасы . Бұл үлгіні пайдаланған кезде үш деңгей әдетте қабаттар деп аталады: 2-бөлім. Бағдарламалық жасақтаманың архитектурасы туралы аздап сөйлесейік - 6
  1. Клиенттік деңгей – пайдаланушы интерфейсі. Бұл HTML беттері жіберілетін веб-шолғыш немесе JavaFX көмегімен жазылған GUI қолданбасы болуы мүмкін. Ең бастысы, оның көмегімен пайдаланушы serverге сұраныс жіберіп, оның жауаптарын өңдей алады.

  2. Логикалық деңгей - бұл сұраулар/жауаптар өңделетін server. Оны көбінесе serverлік деңгей деп те атайды. Барлық логикалық операциялар да осында орын алады: математикалық есептеулер, деректер операциялары, басқа қызметтерге шақырулар немесе деректерді сақтау.

  3. Деректер деңгейі дерекқор serverі болып табылады: біздің server оған қол жеткізеді. Бұл қабат қолданба жұмыс кезінде пайдаланатын барлық қажетті ақпаратты сақтайды.

Осылайша, біздің server пайдаланушыға тікелей қол жеткізуге мүмкіндік бермей, деректерге қол жеткізу бойынша барлық міндеттемелерді өз мойнына алады.

Үш деңгейлі архитектураның артықшылықтары

Осындай архитектураны қолдану арқылы біз көптеген артықшылықтарға ие боламыз, соның ішінде:
  1. SQL инъекцияларынан қорғауды құру мүмкіндігі SQL codeы жіберілетін serverге шабуыл болып табылады және бұл code орындалған кезде шабуылдаушы біздің дерекқорымызға әсер етуі мүмкін.

  2. Біз пайдаланушының қол жеткізуін реттегіміз келетін деректерді шектеу.

  3. Деректерді клиентке жібермес бұрын өзгерту мүмкіндігі.

  4. Масштабтау мүмкіндігі – бір дерекқорды пайдаланатын бірнеше serverлерге қолданбамызды кеңейту мүмкіндігі.

  5. Пайдаланушы қосылымының сапасына азырақ талаптар. Серверде жауапты генерациялау кезінде біз көбінесе мәліметтер базасынан көптеген әртүрлі ақпаратты аламыз, оны пішімдейміз, тек пайдаланушыға қажет нәрсені қалдырамыз. Осылайша біз клиентке жауап ретінде жіберетін ақпарат көлемін азайтамыз.

Архитектуралық үлгілерді қаншалықты жиі қолдану керек?

Егер сіз, айталық, «Зауыттық әдіс» дизайн үлгісімен таныс болсаңыз , оны қашан пайдалану керектігін ойлаған боларсыз. Кейде не істеу керектігін шешу қиынға соғады: жаңа операторды пайдаланып немесе зауыттық әдісті пайдаланып нысан жасаңыз. Бірақ уақыт өте келе түсіну пайда болады. Архитектуралық үлгілермен заттар сәл басқаша. Кәсіпорын шеңберлері бағдарламашыға жалпы қабылданған үлгі негізінде жоба жасау үшін оларды пайдалану үшін жасалған. Сондықтан, Spring Framework-ті үйренбес бұрын, клиент-server архитектурасы, үш деңгейлі архитектура және MVC архитектурасы дегенді түсінуіңіз керек. Уайымдамаңыз: MVC архитектурасы туралы кейінірек сөйлесеміз. 1-бөлім. Spring және JavaEE бағдарламаларын үйрену алдында не білу керек 3-бөлім. HTTP/HTTPS протоколдары 4-бөлім. Maven негіздері 5-бөлім. Сервлеттер. Қарапайым веб-қосымшаны жазу 6-бөлім. Сервлет контейнерлері 7-бөлім. MVC (Model-View-Controller) үлгісін енгізу 8-бөлім. Шағын серіппелі жүктеу қосымшасын жазу
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION