Кафедраның тәрбие жұмысына бағытталған мобильді қосымшаның сервері

КІРІСПЕ 6
1 КАФЕДРАНЫҢ ТӘРБИЕ ЖҰМЫСЫ ЖӘНЕ ОНЫ АВТОМАТТАНДЫРУ 8
1.1 Кафедраның тәрбие жұмысының мәні мен маңызы 8
1.2 Мобильді құрылғылар үшін push.технология ұғымының сипаттамасы 9
1.3 Google Inc. корпорациясының push.технологиясы 11
1.4 Есеп қойылымы 15
2 МОБИЛЬДІ ҚОСЫМША СЕРВЕРІН ҚҰРУ ЕСЕБІН ЗЕРТТЕУ ЖӘНЕ ЖОБАЛАУ 18
2.1 Серверге қойылатын талаптар 18
2.2 Есеп шешімін UML тілінде модельдеу 19
2.3 Сервердің мәліметтер қорын жобалау 26
3 МОБИЛЬДІ ҚОСЫМША СЕРВЕРІН ҚҰРУДЫ ЖҮЗЕГЕ АСЫРУ 31
3.1 Сервердің жұмыс істеу схемасы және жалпы архитектурасы 31
3.2 Сервердің бизнес.логикасы 36
3.3 Сервердің веб.интерфейсі 43
3.4 Сервердің мәліметтер қоры 52
3.5 Сервердің Google Cloud Messaging қызметімен және мобильді қосымшамен әрекеттесуі 55
3.6 Сервердің жұмыс істеу барысындағы қауіпсіздік негіздері 63
ҚОРЫТЫНДЫ 69
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ 70
Қосымша A 72
Қосымша B 81
Соңғы кездері бүкіләлемдік ғаламтор желісінің адам өміріндегі рөлі артып келеді. Ғаламтордың көп пайдаланылуы соңғы жылдары дамып кеткен тасымалы құрылғылар мен сымсыз желілік технологиялар есебінен болып отыр. Ғаламтор желісіне үзіліссіз қосулы болу мобильді құрылғыларды қолданушыларға өздеріне қажетті ақпараттарды тез арада алуға мүмкіндік береді. Мобильді құрылғылардың операциялық жүйелерінің деңгейі мәліметтерді алу үшін көп жағдайда телекоммуникациялық қызметтер провайдерлерінен тәуелсіз шешімдерді пайдалануға мүмкіндік береді. Осыған байланысты соңғы жылдары СМС және ММС арқылы хабарлама алмасу азайды. Тасымалы құрылғылардың энергия тұтынушылығының жоғары болуына және жұмыс істеу ұзақтығының шектеулілігіне байланысты классикалық клиент-серверлік технология көп шығынды талап етеді. Классикалық клиент-серверлік технологияда белгілі бір мәлімет алу үшін клиент серверге сұраныс жасауы керек еді.
1 Бағдарлама құрушыларға арналған ақпараттық сайт [Электрондық ресурс]. – URL:https://developer.android.com (байланысу күні: 01.01.2015)
2 БучГ., Рамбо Д., Якобсон И. Язык UML. Руководство пользователя, 2-е изд.: Пер. с англ. Мухин Н. – М.: ДМК Пресс, 2006. – 496 с.: ил.– С. 28-444.
3 Кузин А.В. Базы данных : учеб. пособие для студ. высш. учеб. заведений / А.В.Кузин, С.В.Левонисова. – 5-е изд., испр. – М.: Издательский центр «Академия», 2012. – 320 с. – С.25-27.
4Веллинг Л., Томсон Л. Разработка Web-приложении с помощью PHPи MySQL, 3-е изд.: Пер. с англ. – М.: Издательский дом «Вильямс», 2008. – 880 с.: ил. – Парал.тит.англ.– С. 27-43.
5Конверс Т., Парк Д., Морган К. PHP 5 и MySQL. Библия пользователя.: Пер с англ. – М.: Издательский дом «Вильямс», 2006. – 1216 с.: ил. – Парал.тит.англ.– С. 43-55.
6Ломов А.Ю. HTML, CSS, скрипты: практика создания сайтов. – СПб.: БХВ-Петербург, 2006. -416 с.: ил.– С. 71-72.
7Хольцшлаг М. Языки HTMLи CSS: для создания Web-сайтов : [учеб. пособие].: Пер. с англ. А.Климович. – М.: ТРИУМФ, 2007. – 304 с.: ил. – (Официальный учебный курс). – Доп. тит. л. англ. – С. 17-29.
8 Росс В. С. Создание сайтов: HTML, CSS, PHP, MySQL. Учебное пособие, ч. 1 — МГДД(Ю)Т, М.:2010 – 107 с. – С. 93-103.
9 Shafer D., Andrew R. HTML Utopia: Designing Without Tables Using CSS. Second Edition, 2006. Published by SitePoint Pty. Ltd. – P. 111-120.
10Ollson T., O’Brien P.. The Ultimate CSS Reference. FirstEdition, 2008. Published by SitePoint Pty. Ltd. – P. 1-3.
11Джамса К., Кинг К., Андерсон Э. Эффективный самоучитель по креативному Web-дизайну. HTML, XHTML, CSS, JavaScript, PHP, ASP, ActiveX. Текст, графика, звук и анимация.: Пер. с англ.– М.: ООО «ДиаСофтЮП», 2005. – 672 с. – С. 181-187.
12Suehring S. JavaScript Step by Step. Second Edition. – 2010. – P. 10-12.
13 Ташков П.А. Веб-мастеринг на 100% : HTML, CSS, JavaScript, PHP, CMS, Ajax, раскрутка. – СПб.: Питер, 2010. – 512 с.: ил. – С. 141-170.
14 Easttom C. Advanced JavaScript. 2008. Published by WordWare Publishing, Inc. – P. 91-117.
        
        ӘЛ-ФАРАБИ АТЫНДАҒЫ ҚАЗАҚ ҰЛТТЫҚ УНИВЕРСИТЕТІ
МЕХАНИКА-МАТЕМАТИКА ФАКУЛЬТЕТІ
АҚПАРАТТЫҚ ЖҮЙЕЛЕР КАФЕДРАСЫ
тақырыбына жазылған
ДИПЛОМДЫҚ ЖҰМЫС
Орындаған
____________________
(қолы)
Бекболатов Е.А.
Ғылыми жетекші,
PhD доктор
____________________
(қолы)
Кумалаков Б.А.
Норма бақылаушы
____________________
(қолы)
Кумалаков ... ... ... PhD ... ... Ж.С.
Алматы 2015
Реферат
Дипломдық жұмыс 84 беттен, 20 суреттен, 3 кестеден, 26 пайдаланылған әдебиеттер тізімінен және 2 қосымшадан тұрады.
Кілт сөздер: ... ... ... МОБИЛЬДІ ҚОСЫМША, PUSH-ТЕХНОЛОГИЯ, GOOGLE CLOUD MESSAGING, КАФЕДРАНЫҢ ТӘРБИЕ ЖҰМЫСЫ, ХАБАРЛАМА ЖІБЕРУ ЖҮЙЕСІ.
Зерттеу объектісі: ... ... ... мақсаты: Кафедраның тәрбие жұмысын жүргізу барысында студенттермен және оқытушылармен тұрақты байланысты қамтамасыз етуге бағытталған, олардың мобильді құрылғыларына хабарлама ... үшін ... ... ... серверін құру.
Жасалған жұмыстар: Соңғы жылдары push-технология және ол ... ... ... үшін ... ... ... Мобильді құрылғылар адамдар арасында көп пайдаланылатындықтан қолданушыларға қажетті ақпаратты жеткізудің ең тиімді әрі тез жолдарының бірі олардың мобильді құрылғыларына хабарлама ... ... ... Дипломдық жұмыста push-технологияны кафедраның тәрбие жұмысын жүргізу барысында студенттер мен оқытушыларға хабарламалар жіберу үшін пайдалану қарастырылды. Кафедраның тәрбие жұмысын жан-жақты ... ... мен ... ... ... ... мен оқытушылардың мобильді құрылғыларына хабарлама жіберуге мүмкіндік беретін мобильді қосымша сервері құрылды.
Жасалған жұмыс нәтижелері: ... ... ... Google Cloud ... GCM) ... ... ... істеу арқылы Android операциялық жүйесі орнатылған мобильді құрылғыдағы арнайы мобильді қосымшаға мәтіндік хабарлама жібере алады. Хабарламаны жіберу барысында ... ... ... ... ... бір мезгілде және әрбір қолданушыға жекелей хабарламалар жіберу мүмкіндіктері жүзеге асырылды.
Қолдану аясы: Дипломдық жұмыстың тақырыбына байланысты хабарламалар жіберу ... тек ... ... ... істейді. Хабарламалар жіберу жүйесінің жұмыс істеу аумағы негізінен мобильді қосымша серверінің ... ... ... және ... ... ... ... байланысты. Сонымен бірге бұл жүйені кез келген ұйымға ондағы қызметкерлерге хабарламалар жіберу үшін қолданысқа енгізуге болады.
Зерттеу объектісі бойынша ... ... ... болжам: Хабарламалар жіберу жүйесі қазір Android операциялық жүйесі орнатылған мобильді ... ... ... Бұл жүйені басқа платформаларда жұмыс істейтін мобильді құрылғылармен байланыстыру үшін кроссплатформалық әмбебап мобильді қосымша ... құру ... ... ... ... из 84 ... 20 ... 3 таблиц, 26 источников и 2 приложений.
Ключевые слова: СЕРВЕР МОБИЛЬНОГО ПРИЛОЖЕНИЯ, МОБИЛЬНОЕ ПРИЛОЖЕНИЕ, PUSH-ТЕХНОЛОГИЯ, GOOGLE CLOUD ... ... ... ... ... ... УВЕДОМЛЕНИЙ.
Объект исследования: Воспитательная работа кафедры.
Цель работы: Разработать сервер мобильного приложения, обеспечивающий постоянную связь со студентами и преподавателями, использующийся для отправки ... на их ... ... при ... воспитательной работы кафедры.
Сделанные работы: В связи с активным развитием push-технологий в последние годы и его ... в ... ... ... из эффективных и быстрых способов обеспечения пользователей необходимой информацией является ... ... на их ... ... В ... ... ... использование push-технологии для отправки уведомлений студентам и преподавателям при проведении воспитательной работы кафедры. Глубоко исследовав ... ... ... ... цели и ... был ... ... мобильного приложения, позволяющий отправлять уведомления на мобильные устройства.
Результаты: Работая совместно с сервисом Google Cloud ... (GCM), ... ... ... ... ... текстовое сообщение на специальное мобильное приложение, установленное на мобильное устройство, который работает под ... ... ... Android. При ... ... ... ... разделения получателей на группы, отправлять сообщение всем пользователям одновременно и отправлять сообщение каждому ... ... ... Согласно теме дипломной работы, система отправки уведомлений разработан для работы только в пределах кафедры. Область использования системы ... ... ... от ... базы данных сервера мобильного приложения и сохраненных в нем ... ... А ... ... внедрить эту систему в любую организацию для отправки уведомлений ... ... ... ... ... ... уведомлений в настоящее время работает с мобильными устройствами, работающими под ... ... ... Android. ... ... кроссплатформенного универсального сервера для работы с мобильными устройствами работающих на разных платформах.
Abstract
Diploma work consists of 84 pages, 20 ... 3 tables, 26 ... and 2 ... SERVER OF MOBILE ... MOBILE ... ... GOOGLE CLOUD MESSAGING, EDUCATIONAL WORK OF THE DEPARTMENT, SYSTEM OF SENDING ... object: ... work of the ... of work: To develop a mobile ... server, which will be directed at ensuring constant communication with students and ... will be used to send ... on their mobile devices during the ... work of the ... done work: ... and its use for mobile devices is actively ... in recent years. As mobile devices are widely used, one of the most ... and fastest ways to provide the users with ... ... is sending a notification on their mobile devices. The using of ... for sending ... to students and teachers during the ... work of the ... examined in this diploma work. The ... work of the ... was deeply ... goals and requirements was set and mobile application server that allows you to send notifications to mobile devices of students and teachers was ... Working in ... with the service Google Cloud ... (GCM), a mobile ... server can send a text message to a special mobile application installed on a mobile device that is running an ... system Android. The ability to divide the ... into groups, to send a message to all users at the same time and to send a message to each user ... was implemented during the sending messages.
Scope of use: According to the topic of the diploma work, the system will work only within the ... The scope of use of the ... system depends on the database of the mobile ... server and users' data stored. And you can ... this system in any organization to notify employees of the organization.
Further development of research: Notification system is ... working with mobile devices running the ... system Android. To develop ... ... server to work with mobile devices on ... ... is being planned.
Мазмұны
КІРІСПЕ 6
1 КАФЕДРАНЫҢ ТӘРБИЕ ЖҰМЫСЫ ЖӘНЕ ОНЫ АВТОМАТТАНДЫРУ 8
1.1 Кафедраның тәрбие жұмысының мәні мен маңызы 8
1.2 Мобильді ... үшін ... ... ... Google Inc. ... ... Есеп қойылымы 15
2 МОБИЛЬДІ ҚОСЫМША СЕРВЕРІН ҚҰРУ ЕСЕБІН ЗЕРТТЕУ ЖӘНЕ ЖОБАЛАУ 18
2.1 Серверге қойылатын ... Есеп ... UML ... ... ... мәліметтер қорын жобалау 26
3 МОБИЛЬДІ ҚОСЫМША СЕРВЕРІН ҚҰРУДЫ ЖҮЗЕГЕ АСЫРУ 31
3.1 Сервердің жұмыс істеу схемасы және жалпы архитектурасы 31
3.2 Сервердің бизнес-логикасы 36
3.3 Сервердің веб-интерфейсі 43
3.4 ... ... ... ... Google Cloud Messaging қызметімен және мобильді қосымшамен әрекеттесуі 55
3.6 Сервердің жұмыс істеу барысындағы қауіпсіздік негіздері 63
ҚОРЫТЫНДЫ 69
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ 70
Қосымша A 72
Қосымша B 81
КІРІСПЕ
Соңғы ... ... ... ... адам ... рөлі артып келеді. Ғаламтордың көп пайдаланылуы соңғы жылдары дамып кеткен тасымалы құрылғылар мен сымсыз ... ... ... ... отыр. Ғаламтор желісіне үзіліссіз қосулы болу мобильді құрылғыларды қолданушыларға өздеріне қажетті ... тез ... ... ... ... Мобильді құрылғылардың операциялық жүйелерінің деңгейі мәліметтерді алу үшін көп жағдайда телекоммуникациялық қызметтер провайдерлерінен тәуелсіз шешімдерді ... ... ... Осыған байланысты соңғы жылдары СМС және ММС арқылы хабарлама алмасу азайды. Тасымалы құрылғылардың энергия тұтынушылығының ... ... және ... ... ... ... ... классикалық клиент-серверлік технология көп шығынды талап етеді. Классикалық клиент-серверлік технологияда белгілі бір мәлімет алу үшін клиент ... ... ... ... еді. ... соңғы жылдары ақпараттық технологиялар әлемінде ұғымы пайда болды. ... ... ... ешқандай сұраныс жасамайды, барлық әрекеттер сервер тарапынан жүзеге асырылады. Бұл технологияны жүзеге асырудың ең кең тараған мысалы, бір ... ... ... ... мәлімет жіберу болып табылады. Push-технологияның көмегімен мобильді құрылығыларды қолданушыларға тек ... ... ғана ... ... және ... мәліметтерді де жіберуге болады.
Дипломдық жұмыс тақырыбының өзектілігі соңғы жылдары дамып келе жатқан push-технологиямен және қолданушыларға ақпарат жеткізу үшін мобильді құрылғылардың ... ... ... Қазіргі кезде мобильді құрылғыларды адамдардың көпшілігі пайдаланады. Осыған ... ... ... ... жеткізудің ең тиімді әрі тез жолдарының бірі олардың мобильді құрылғыларына ... ... ... ... ... ... ... қолданушысы келген хабарламаны оқымауы көп жағдайда мүмкін емес. Дипломдық жұмыста аталған технологияны кафедраның тәрбие жұмысын жүргізу барысында студенттер мен ... ... ... үшін ... қарастырылды. Пәндік аймақты жан-жақты зерттеу нәтижесінде мобильді ... ... ... Бұл ... ... ... оқытушылардың үстел компьютерлерінен студенттерге және басқа оқытушыларға хабарлама жіберу үшін пайдаланылады. Аталған ... ... ... ... үшін ... ... да құру ... Бірақ бұл мәселе дипломдық жұмыстың тақырыбына байланысты бұл дипломдық жұмыста ... ... ... ... - ... тәрбие жұмысы.
Дипломдық жұмыстың зерттеу пәні - кафедраның тәрбие жұмысын жүргізу барысында студенттермен және оқытушылармен ... ... ... ... - ... ... жұмысын жүргізу барысында студенттермен және оқытушылармен тұрақты байланысты қамтамасыз етуге бағытталған, олардың мобильді құрылғыларына хабарлама жіберу үшін пайдаланылатын және ... ... ... сұраныстарға жауап беретін мобильді қосымша серверін құру. Қойылған мақсатқа жету үшін мынадай есептер қойылды:
- Пәндік аймақты зерттеу.
- Push-технологияны зерттеу және оны ... ... ... ... ... ... серверін модельдеу.
- Мобильді қосымша серверін құруды жүзеге асыру.
Дипломдық жұмыс тақырыбының жаңашылдығы - ... ... және ... ... жіберу үшін мобильді құрылғылар мен push-технология бұрын соңды пайдаланылмады. Дипломдық жұмыстың тәжірибелік маңыздылығы - кафедраның тәрбие ... ... ... үшін ақпараттық технологиялардың мүмкіндіктерін пайдалану.
Дипломдық жұмыс кіріспеден, үш ... және ... ... дипломдық жұмыс тақырыбының өзектілігі, зерттеу объектісі, зерттеу ... ... ... жету үшін ... ... ... ... және тәжірибелік маңыздылығы сипатталды.
Бірінші бөлімде кафедраның тәрбие ... мәні мен ... ... ... үшін ... ұғымы қарастырылды және дипломдық жұмыс мақсатына жету үшін есеп ... ... ... ... ... қосымша серверіне қойылатын талаптар анықталды, UML тілінде оның моделі жасалды және мәліметтер қорын жобалау қарастырылды. Үшінші бөлімде дипломдық жұмыстың тәжірибелік ... ... ... ... ... жұмыс істеу ерекшеліктері, оның мобильді құрылғылармен әрекеттесу негіздері қарастырылды.
Қорытындыда ... ... ... ... ... тәрбие жұмысында хабарламалар жіберу жүйесін әрі қарай дамытуға ұсыныстар жасалды.
1 КАФЕДРАНЫҢ ТӘРБИЕ ЖҰМЫСЫ ЖӘНЕ ОНЫ АВТОМАТТАНДЫРУ
1.1 Кафедраның тәрбие жұмысының мәні мен ... ... ... ... ... ... және ... қойған жоспарларына сәйкес жүргізіліп отырады. Тәрбие жұмыстарының жоспары алдын ала бекітіледі. Кафедраның ... ... және ... тыс ... ... мамандар даярлау үрдісінің ажырамас бөлігі болып табылады. Кафедраның тәрбие жұмысының ... ... ... ... бар, ... ... ... ие, қоғамдық жұмыстарға белсене қатысатын, оқу үлгерімі жақсы және жан-жақты дамыған болашақ мамандарды даярлау және студенттердің жеке тұлғалық ... ... ... табылады. Кафедраның тәрбие жұмысына қойылатын тапсырма осы аталған мақсаттарға жету үшін жағдайлар жасауға бағытталады.
Кафедраның тәрбие жұмысының негізгілері:
- Студенттердің жеке ... және ... ... ... ... орта қалыптастыру.
- Оқудан тыс уақытта студенттердің ғылыми зерттеу жұмыстарымен айналысуына жағдай жасау.
- Студенттердің оқудан тыс жұмыстармен айналысуына бағытталған студенттік ... ... ... ... жұмыс жасау.
- Студенттердің кәсіби білімдерін арттыру және оларды ынталандыруға бағытталған түрлі сайыстар, олимпиадалар ұйымдастыру.
- ... ... ... ... ... үшін ... ... ұйымдастыру.
- Студенттердің мұражай, театр сияқты әр түрлі мәдениет ошақтарына баруын ұйымдастыру.
- Студенттерді қоғамдық ... ... үшін ... деңгейдегі сенбіліктерге қатыстыру.
- Университет, факультет немесе кафедра ... ... ... ... ... да ... ... қатысуын ұйымдастыру.
- Топтардың эдвайзерлерінің түрлі тақырыптарға байланысты кураторлық сағаттар өткізулерін қадағалау.
- Студенттердің студенттік емханадан толық медициналық тексерістен өтуін қадағалау.
- Студенттердің ... өмір ... ... ... ... ... ашық ... іс-шаралар ұйымдастыру.
- Студенттердің оқу үлгерімін бақылау.
- Кафедра немесе ... ... ... істейтін үйірмелерге студенттердің тіркелуіне және белсенді түрде қатысуына ... ... ... ... және ... да ... жұмысын жүргізу үшін студенттермен және оқытушылармен үнемі байланыста болып отыру маңызды болып ... Бұл ... ... ақпараттық технологияларды пайдалана отырып жүзеге асыруға болады. Дипломдық жұмыста осы мәселені шешудің бір жолы ретінде студенттермен және оқытушылармен мобильді құрылғы ... ... ... жүйесі қарастырылды. Мысалы, қандай да бір іс-шараның өтетітіндігі туралы студенттерге хабарлау керек болсын. Бұл жағдайда кафедра әрбір ... ... ... ... ... тез ... ... арқылы немесе жиналыстар ұйымдастыру арқылы хабарлауы керек. Осы әрекеттерді заманауи ақпараттық технологиялар көмегімен тек бір ғана батырманы басу ... ... ... ... кафедрада студенттердің кәсіби білімдерін арттыру үшін, әр түрлі ... ... үшін және т.б. ... ... ... ... ... жасайды. Бұл үйірмелерге жетекшілік ететін оқытушылардың бастауымен студенттер ғылыми зерттеулер жүргізуге, сынақтардан ... ... ... және ... ... ... жасауға дағдыланады. Студенттердің осы үйірмелерге тіркелуін жүзеге ... үшін де ... ... пайдалануға болады. Студенттер мобильді құрылғы көмегімен кафедрада жұмыс істеп тұрған кез келген үйірме туралы ақпарат алып, қажет ... онда ... ... үдерісінде студенттердің медициналық тексерістен өту мәселесі үнемі ұзаққа созылатын және өзекті мәселелердің бірі болып табылады. Себебі емтихан ... ... бір ... ... ... ... ... тексерістен өтіп бітуі міндетті. Осы туралы студенттерге және олардың эдвайзерлеріне хабарлама жіберу және ... ... ... ... ... мәліметтерді тіркеп отыру керек. Бұл мақсаттарға жету үшін де заманауи ақпараттық технологияларды қолдануға болады. Студенттер өздерінің медициналық ... ... рет ... ... ... ... ... құрылғысы арқылы біле алатындай жүйелерді құруға болады.
Сонымен бірге ... мен ... ... ... кез ... ... төңірегінде хабарлама алмасуға мүмкіндік беретін жүйе құруға болады. Дипломдық жұмыста осы ... ... шешу үшін ... ... ... ... Мобильді құрылғылар үшін push-технология ұғымының сипаттамасы
Push-технология - клиент-сервер архитектурасы бойынша жұмыс істейтін интернетке ... ... Бұл ... ... ... жұмыс істейді. Pull-технологияда клиент серверге қандай да бір ... үшін ... ... да, ... ... бір ... ... Pull-технологияны жүзеге асыру қиын емес. Ал push-технологияда клиент тарапынан ... ... ... ... ... сервердің бастауымен жүзеге асырылады. Сәйкесінше бұл технологияны жүзеге асырудың өз қиындықтары бар. Ол үшін белгілі бір клиентке ... ... ... ... бар сервер қажет.
Көптеген мобильді құрылғыларда пайдаланылып жүрген қас қағым сәттегі хабарламалар жүйесі - ... бір ... ... ... бұл ... ... ... жеткізудің кең тараған нұсқаларының бірі болып отыр. Технологияны іс жүзінде пайдалану үшін қолданушының мобильді құрылғысы және онда ... ... бір ... ... ... ... Мысал ретінде интернеттегі жиі өзгеріп отыратын ауа-райы болжамы, жаңалықтар ... ... ... ... ... ... ... болады. Онда мобильді қосымша тарапынан ешқандай сұраныс жасалмайды.
1 суретке сәйкес мобильді құрылғылар үшін push-технологияны жүзеге асыру үшін 3 негізгі компонент ... ... ... мобильді қосымша сервері
- хабарламаларды мобильді қосымша серверінен қабылдап, белгілі бір мобильді құрылғыға жеткізетін қызмет көрсетуші сервер (push-server)
- хабарламаларды ... ... ... бір ... ... ... мобильді құрылғы
Сурет 1 - Push-технология
Push-хабарламалар ұғымы алғаш рет Google компаниясы 2008 жылы Cloud to Device Messaging (C2DM) ... ... іске ... кейін белгілі бола бастады. Одан кейін барлық белгілі мобильді платформалардың өз қызметтері іске қосылды. 2009 жылы Apple ... iOS 3.0 ... ... ... Apple Push Notification Service (APNS) қызметін іске қосты. Кейіннен Microsoft компаниясы да Windows Phone 7 ... ... ... ... Push ... Service (MPNS) және BlackBerry компаниясы өз қызметтерін іске қосты.
Push-технология және push-хабарлама ұғымдарының айырмашылықтары бар. Push-технология - ... ... ... жеткізудің барлық сатыларын қамтитын технология. Ал push-хабарлама - мобильді қосымшаға push-технологияның көмегімен жеткізілетін ... Оны әрі ... ... ... құрылғы операциялық жүйесінің ішінде жүргізіледі. Сонымен бірге әр операциялық жүйенің push-хабарламаны өңдеуде өз ерекшеліктері бар.
iOS ... ... ... ... ... ... push-хабарламалардың 3 түрі бар:
1) Audio - қолданушыға push-хабарламаның келгені дыбыстық белгілер ... ... Badges - ... ... белгішесінің үстінде пайда болатын кішкентай цифр түріндегі хабарламалар.
3) Custom text alerts - қалқымалы ... ... ... Phone 8 операциялық жүйесінде жұмыс істейтін мобильді құрылғыларда да push-хабарламалардың 3 нұсқасы бар:
1) Tile - ... ... ... ... ... кішкентай цифр түрінде пайда болады.
2) Raw - хабарлама ... ... ... ... Toast - ... экранның жоғарғы жағында 10 секунд бойы көрсетіліп тұрады.
Ал Android ... ... ... құрушыға еркіндік берілген, яғни келіп түскен push-хабарламаны бағдарлама ... өз ... ... мәтін түрінде немесе дыбыстық хабарлама түрінде шығатындай етіп өңдей алады.
Мобильді құрылғыларға push-технологияны пайдаланудың бірнеше ... ... ... ... ... ... ... жасауының қажеті жоқ. Барлық хабарламалар тек сервердің ... ... ... ... құрылғының энергия тұтынуын үнемдеуге көмектеседі. Себебі мобильді құрылғының серверге сұраныс жасап, одан жауап алуы үшін белгілі бір ... ... ... ... ... интернет-трафигін үнемдеуге көмектеседі. Құрылғыда интернеттің қосулы болуы жеткілікті.
- Мобильді ... ... ... ашық ... және ... ол қосымшамен әрекеттесіп отыруы міндетті емес. Мобильді қосымша фондық режимде де хабарламаларды қабылдай алады.Ол мүмкіндікті операциялық ... ... ... ... Мобильді құрылғының жедел жадысын дұрыс әрі үнемді пайдалануға ... ... ... бірнеше қосымшамен бір уақытта жұмыс істейтін болса, ол мобильді құрылғының жұмыс істеу жылдамдығына кері әсер етеді.
- ... ... ... ... бір ... ... мүмкіндігінің болуы. Ол үшін қызмет көрсетуші серверден басқа мобильді қосымша серверін құру керек.
1.3 Google Inc. ... ... Cloud ... (GCM) - бағдарлама құрушыларға өз серверлерінен Android операциялық жүйесінде жұмыс істейтін мобильді ... және бір ... ... ... мәлімет жіберуге мүмкіндік беретін Google Inc. корпорациясының тегін қызмет түрі. [1]
Google Inc. корпорациясы ... 2008 жылы Android 2.2 ... ... ... ... Cloud to Device ... (C2DM) ... ұсынды. Кейіннен 2012 жылы аздаған өзгерістер енгізіп,оны Google Cloud ... (GCM) ... ... қызметінің C2DM қызметінен мынадай айырмашылықтары бар:
- GCM қызметін пайдалану үшін Google APIs ... API кілт алу ... GCM үшін Sender ID алу ... Ол C2DM ... ... ... сияқты қызмет атқарады.
- GCM хабарламалары жай мәтін түрінде немесе JSON форматында бола алады.
- GCM қызметі бірден бірнеше құрылғыларға ... ... ... Бір ... ... ... келген хабарламаларды қабылдай алады.
- Хабарламалар GCM серверлерінде 4 аптаға дейін сақталады.
- Хабарламалар көлемі 4 Кб-қа дейін болатын мәліметті ... ... Егер ... ... ... ... ... GCM ол туралы мобильді қосымшаның серверіне хабарлай алады.
GCM қызметі хабарламаларды ... ... және ... бір ... ... бір ... ... басқарады. Хабарламалар серверде жаңа мәлімет пайда болғаны туралы хабарлайтын ... ... ... ... ... ... болатын пайдалы мәліметі бар (сурет, дыбыстық файлдар, т.б.) ... ... ... ... қызметімен байланысты басты ұғымдар мен терминдер: [1]
1) Компоненттер. 2 суретке сәйкес GCM қызметінде басты рөлдерді атқаратын объектілер:
- GCM ... ... - ... ... ... мен ... қосымшаның арасында хабарлама жіберуге қатысатын Google ұсынған серверлер.
- Қолданушы қосымшасы - мобильді ... ... ... GCM қызметі қосылған мобильді қосымша.
- Мобильді қосымшаның сервері - GCM қызметін жүзеге асыру ... ... ... ... ... ... GCM қызметі арқылы қолданушы қосымшасына мәлімет жібереді.
2) Кілттер. Қолданушының мобильді ... мен ... ... ... және ... хабарламалардың мобильді қосымшаға дұрыс жетуі үшін GCM қызметінде қолданылатын идентификаторлар және токендер:
- Sender ID - Google ... ... ... ... жоба номері. Бұл идентификатор мобильді қосымшаның GCM ... ... ... ... ... ... хабарламалардың қандай серверден келетіндігін анықтау үшін қажет.
- Sender Auth Token - мобильді қосымшаның сервері Google қызметтерін пайдалана алу үшін ... ... API ... Ол да Google ... ... API кілт мобильді қосымша серверінің деректер қорында сақталуы керек. API кілт мобильді қосымша сервері Google қызметіне HTTP сұраныс жасаған кезде ... header ... ... ... ... ID - ... қабылдап алушы мобильді қосымшаның идентификаторы. Ол қосымшаны құру барысындағы бума ... ... ... ... ... және ол мобильді қосымшаның AndroidManifest.xml файлынан алынады. Бұл идентификатор мобильді құрылғыда үнемі жұмыс істеп тұратын Push ... Service ... ... ... ... қай ... жіберу керектігін анықтау үшін қажет.
- Registration ID - мобильді қосымшаның ... ... алуы үшін GCM ... ... ... Бұл ... құпия сақталуы керек. Ол мобильді қосымша серверінің деректер қорында сақталады.
Сурет 2 - GCM ... ... ... асыру үшін төменде көрсетілген әрекеттер орындалуы керек: [1]
1) Google API жобасын құру.
Браузерде ... ... ... Google Developers Console деп аталатын сайтқа кіру ... ... ... кейін басты бетте Create Project батырмасын басу керек. 3 суретке сәйкес ... ... ... Create ... басу керек. Жоба құрылғаннан кейін 4 суретке сәйкес Project Number ... жаңа бет ... ... Number кейіннен Sender ID идентификаторы ретінде қолданылатын болады. Сондықтан оны ... қою ... GCM ... іске ... жақтағы тізімнен APIs & auth пунктін таңдап, көрсетілген API-лер ішінен Google Cloud Messaging for Android API іске қосатын ... ... ... ... ... серверінде қолдануға қажет API кілт алу.
Сол жақтағы тізімнен APIs & auth > Credentials пунктін таңдап, Public API access ... Create new Key ... ... Server key ... ... ... ... терезеде мобильді қосымша серверінің IP-адресін жазу керек. Бұдан кейін бағдарлама құрушыға API кілт беріледі.
4) Мобильді қосымшаның ... ... Android ... ... жұмыс істейтін мобильді қосымшаны жазу.
Сурет 3 - Google API ... ... 4 - Project ... ... сәйкес GCM қызметіне тіркелу реті және хабарлама жіберу үдерісінің сатылары төменде көрсетілген:
1) Мобильді қосымша құрылғыға орнатылғаннан кейін GCM қызметіне Sender ID және ... ID ... ... Sender ID ... ... ... келетіндігін анықтау үшін қажет. Ал Application ID хабарламаны қандай қосымшаға бағыттау керек екендігін анықтауға қажет болады.
2) Егер ... ... GCM ... ... ... GCM ... тек сол қосымшаға арналған Registration ID идентификаторын береді.
3) ... ... GCM ... ... ... ID ... мобильді қосымша серверіне жібереді. Жіберу үдерісі HTTP хаттамасы негізіндегі сұраныс арқылы іске ... ... ... ... өз ... ... сақтап қояды.
4) Хабарлама жіберу үшін мобильді қосымшаның сервері мәліметтер қорында сақтаулы тұрған белгілі бір мобильді қосымшаның ... ... оған ... және API кілт ... GCM ... жібереді.
5) GCM қызметі алынған сұранысты өңдеп, алдымен API кілтті тексереді. Тексеру сәтті аяқталса, GCM ... ... ... ... бойынша оның интернетке қосылған немесе қосылмағандығын тексереді. Егер қабылдаушы қосымша хабарламаны ... ... ... GCM ... ... ... ... жібереді. Егер қолданушы интернетке қосылмаған болса, GCM қызметі хабарламаны өзіне ... ... ... ... ... ... ... тұрады. Мобильді қосымшадағы Push Notification Service қызметі push-хабарламаны қабылдап, мобильді қосымшаның атауы бойынша оны қажетті қосымшаға өңдеуге береді.
Сурет 5 - GCM ... ... ... Есеп ... ... негізгі мақсатына сәйкес кафедраның тәрбие жұмысына бағытталған мобильді қосымшаның серверін құру керек. ... ... және ... ... ... алу ... болуы керек. Егер студент флюорографиядан өткен болса, сол туралы ақпаратты сақтап қою мүмкіндігінің болуы керек.
Кафедра ... ... ... ... ... істейтін үйірмелер туралы барлық мағлұматты көре алу мүмкіндігінің болуы керек.
- Барлық топтар ... көре алу және ... ... ашу ... ... ... Әрбір топқа белгілі бір семестр, пән, оқытушы, кредит саны бойынша оқытылуы тиіс ... ... ... болуы керек.
- Белгілі бір оқу жылының қорытындысы ... ... ... өте алмайтын студенттер тізімін көре алу, оларға жалпылай және жекелей хабарлама жібере алу ... ... ... ... бір ... қорытындысы бойынша 50 балдан төмен пәндері бар студенттер туралы барлық мағлұматты көре алу, оларға жалпылай және жекелей хабарлама жібере алу ... ... ... ... ... тіркелген студенттер тізімін көре алу, оларға жалпылай және жекелей хабарлама жібере алу мүмкіндігінің болуы ... ... ... ... ... ... көре алу және ... пәндер қосу мүмкіндігінің болуы керек.
Оқытушылар үшін:
- Тобы және ондағы студенттер жайлы барлық мағлұматты көре алу ... ... ... Топ ... ... және ... хабарламалар жібере алу мүмкіндігінің болуы керек.
- Тобындағы флюорографиядан өтпеген студенттер туралы барлық ... көре алу ... ... ... ... және ... ... жібере алу мүмкіндігінің болуы керек.
- Тобына өтілетін пәндерінің тізімін көре алу ... ... ... Семестр соңында әрбір пән бойынша студенттердің қорытынды бағаларын енгізу мүмкіндігінің болуы керек.
- Өзі жетекшілік ететін үйірмелер туралы барлық мағлұматты көре алу және ... ... ашу ... ... ... ... ... студенттер тізімін көре алу, оларға жекелей және жалпылай хабарлама ... алу ... ... керек.
Admin үшін:
- Студенттер туралы барлық мағлұматты көре алу және ... ... алу ... болуы керек.
- Оқытушылар туралы барлық мағлұматты көре алу және мәліметтерді өзгерте алу мүмкіндігінің болуы керек.
- ... ... ... ... мағлұматтарды көре алу мүмкіндігінің болуы керек.
Оқытушылар сервермен веб-интерфейс арқылы да, мобильді қосымша арқылы да әрекеттесе алады. Ал ... тек ... ... ... ғана ... ... ... сервер сыртқы бағдарламаларға өз ресурстарын пайдалануға рұқсат беру үшін ашық API ұсына алуы керек.
Жоғарыда көрсетілген мақсатқа жету үшін ... ... ... ... қосымшаның серверіне қойылатын талаптарды анықтау.
- Серверді құру үшін пәндік аймақты зерттеу және жобалау.
- Сервердің мәліметтер қорын жобалау.
- Қойылған талаптар және ... ... ... ... ... ... ... схемасы және жалпы архитектурасын көрсету.
- Сервердің Google Cloud Messaging қызметімен және ... ... ... ерекшеліктерін көрсету.
- Сервердің веб-интерфейсінің ерекшеліктерін көрсету.
- Сервердің мәліметтер қорының ерекшеліктерін көрсету.
- Серверде қарастырылған қауіпсіздік негіздерін көрсету.
2 МОБИЛЬДІ ҚОСЫМША ... ҚҰРУ ... ... ЖӘНЕ ... ... ... талаптар
Мобильді қосымша серверін құруды жүзеге асырмас бұрын мынадай талаптар анықталды:
1) Сервер GCM қызметімен ... ... ... алуы ... Ол үшін ... қосымша сервері GCM серверіне HTTP хаттамасы арқылы дұрыс форматтағы POST-сұраныстар ... алуы ... GCM ... ... ... жіберуге рұқсат беру үшін POST-сұраныстың тақырыбына Sender ID ... ... ... ... Жүйеге қажетті барлық мәліметтерді сақтау үшін сервердің мәліметтер қоры болуы тиіс.
3) Мобильді қосымша сервері қолданушылар үшін үнемі қолжетімді, яғни 24 ... бойы ... 7 ... ... ... ... керек. Қолданушылар, яғни кафедра немесе оқытушылар жүйеге кіріп, кез ... ... ... ... оқытушыларға хабарлама жібере алуы керек. Жүйенің үнемі қолжетімділігін қамтамасыз ету үшін ток ... ... ... және ... шығу ... бар ... яғни сервер қажет. Сонымен бірге ғаламторда кейбір хостинг-провайдерлер өз серверлеріндегі дисктерден тегін кеңістік ұсынады. Олар сервердің үзіліссіз ... ... ... ... Жазылған бағдарламалық кодтарды сондай тегін серверлерге орналастырып, шағын баптаулар жасау арқылы мобильді қосымша ... ... ... ... ... болады.
4) Серверді қолданушылар үшін аутентификация және авторизация ... ... ... ... Мәліметтердің тұтастығы мен қауіпсіздігі үшін оларды жүзеге асыру міндетті болып табылады. Себебі серверде оқытушылар, студенттер туралы және т.б. ... ... ... Ол мәліметтердің қандай да бір өзгерістерге ұшырауы ... ... ... ... ... ... ... Кез келген қолданушының жүйеге кіре бермеуін ұйымдастыру қажет, тек қана арнайы логин және ... ... ... бар ... ғана жүйеге кіруге құқылы болуы керек.
5) Сервердің веб-интерфейсі қолданушыға түсінікті әрі ыңғайлы ... ... ... бір ... алу үшін ... ... қадамдар саны барынша аз болғаны жөн.
6) Серверден мобильді құрылғыларға ... ... ... ... қабылдаушыларды топтарға бөлу мүмкіндігінің болуы керек. Мысалы, хабарламаны тек студенттер қабылдау керек, 1 курс ... ғана ... ... т.б. Бұл ... ... ету үшін ... ... әрі ыңғайлы басқару элементтері орналастырылуы тиіс.
7) Серверде сақталған мәліметтерді пайдалана алу үшін және ... бір ... ... ... ... үшін ... қосымшаларға сервер тарапынан API, яғни қолданбалы бағдарлама интерфейсін пайдалану мүмкіндігі қарастырылу керек. ... ... ... ... ... ... ... қолданушы туралы ақпарат алу үшін, т.б. әрекеттерді ... ... ... ... ... HTTP хаттамасы арқылы жүретін осы сұраныстарды өңдеу үшін серверде арнайы скрипттер орналастырылуы керек.
2.2 Есеп шешімін UML тілінде модельдеу
Унификацияланған модельдеу тілі (Unified Modeling Language - UML) - бұл ... ... ... ... стандартты құрал. UML тілі бағдарламалық жүйенің элементтерін көрсетуге, құрастыруға, спецификациялауға және құжаттандыруға арналған графикалық тіл. [2] Бұл ... әр ... ... ... үшін пайдаланады.
Модель дегеніміз - жүйені жақсырақ түсіну үшін құрылатын ... ... ... ... Жүйе дегеніміз - қандай да бір мақсатқа жету үшін ұйымдасқан элементтер жиыны. Жүйе ... ішкі ... ... ... Жүйе оны мүмкіндігінше әр түрлі жағынан қарастыратын модельдердің көмегімен сипатталады. Модельдің құрастырушы бөліктері болып кластар, интерфейстер, компоненттер және түйіндер сияқты ... ... UML ... ... ... ... абстрактілі түрде сипаттауға қолданылады. Модельдер бізге құрылатын ... ... анық ... жүйенің қалай жұмыс істейтінін жақсы түсінуге және оны UML тіліндегі диаграммалар көмегімен көрсетуге көмектеседі.
UML тілінде модель әр ... ... ... құрылады. Диаграмма - бұл бір-бірімен байланысқан төбелер (болмыстар) және қабырғалар (байланыстар) жиынтығынан тұратын граф түріндегі ... ... ... ... ... әр түрлі диаграммалар сызылады. Әрбір жеке алынған диаграмма ... ... бір ... ғана ... ... ... табылады.
Жақсы құрастырылған модельдер жүйені өзара байланысқан әр түрлі жақтардан көрсетуге, құрастыруға, спецификациялауға және құжаттандыруға көмектеседі. ... ... ... ... ... және ... жағынан тығыз байланысқан, бірақ сонымен бірге бір-біріне қатты тәуелді емес ішкі модельдерден тұрады.
Дипломдық ... ... ... ... ... үшін IBM компаниясының Rational Rose Enterprise CASE-құралы ... ... ... жүйенің моделі 3 түрлі жағынан қарастырылды: [2]
1) Жүйенің мінез-құлқын модельдеу. Мұнда жүйенің моделі пайдалану нұсқаларының диаграммасы (Use Case Diagram) және ... ... ... Diagram) ... көрсетілді.
2) Жүйенің құрылымын модельдеу. Мұнда жүйенің моделі кластар диаграммасының (Class Diagram) көмегімен көрсетілді.
3) Жүйенің ... ... ... ... ... компоненттер диаграммасы (Component Diagram) және орналастыру диаграммасы (Deployment Diagram) арқылы ... ... ... ... бұл түрі ... ... аспектілерін сипаттау үшін көбінесе пайдалану нұсқаларының диаграммасы көмегімен көрсетіледі. Ол диаграмма бағдарламалық жүйе жалпы ... ... ... ... береді. [2] Пайдалану нұсқаларының диаграммасы - жүйенің динамикалық аспектілерін ... ... UML ... диаграммалардың бір түрі және жүйенің мінез-құлқын модельдеудегі диаграммалардың негізгі түрі. Диаграммада актерлер және пайдалану ... ... ... ... - ... ... ... сыртқы объектілер. Актер адам немесе сыртқы бағдарлама, яғни жүйеге әсер ете алатын кез ... ... бола ... Ал ... ... ... - ... жүйемен қарым-қатынасқа түсу барысында істейтін әрекеттері. Ол әрекеттерді орындау барысында ... да бір ... ... керек немесе жүйеде қандай да бір өзгеріс пайда болуы ... ... ... ... ... ... ... қарым-қатынасқа түсетін актерлер:
- Кафедрадағы қолданушылар.
- Студенттер.
- Оқытушылар.
- Админ.
- GCM байланыс серверлері.
Төмендегі 6 ... ... ... ... диаграммасында актері және оның пайдалану нұсқалары көрсетілген. Диаграммада пайдалану нұсқалары ... ... ... актерлер адам бейнесі түрінде көрсетілген. Тұтас сызықтар арқылы актердің негізгі пайдалану нұсқалары, ал үзік сызық арқылы ... ... ... ... ... ... актері және оның пайдалану нұсқалары көрсетілген. Диаграммада және актерлері үшін актері жалпылау ретінде ... ... ... де ... ... ... 8 суретке сәйкес және актерлері және олардың пайдалану нұсқалары көрсетілген. Студент мобильді қосымша серверімен тек мобильді ... ... ғана ... ... ... ... өз ресурстарын пайдалану үшін API ұсынады. Студенттің сервермен жасайтын операцияларын сипаттау дипломдық жұмыстың аясына кірмейді. Сол себепті актері үшін деп ... ... ... ... ... ... ... нұсқаларының диаграммасында пайдалану нұсқасы барлық актерлер үшін ортақ ... ... 6 - ... және оның ... нұсқалары
Сурет 7 - актері және оның пайдалану нұсқалары
Сурет 8 - және ... және ... ... ... ... ... модельдеуге пайдаланылатын тағы бір диаграмма түрі - қызмет диаграммасы. Негізінде қызмет диаграммасы басқару ағынының бір қызмет түрінен екіншісіне ... ... ... блок-схема болып табылады.
Қарапайым блок-схемадан айырмашылығы, қызмет диаграммасында басқару ағынының параллельдігін және тармақталуын ... ... ... ... ... дегеніміз - бұл қазіргі сәтте қалып-күй машинасының (автоматтың) ішінде орындалып жатқан іс-әрекеттер жиынтығы. Қызметті орындау ... ... ... ... ... ... немесе жүйеге қандай да бір өзгеріс еніп, оның күйі өзгереді.
Қызмет диаграммасын кез келген модельденіп отырған элементтің ... ... ... пайдалануға болады. Қызмет диаграммасы көбінесе орындалатын іс-әрекеттердің сценарийін модельдеу үшін ... ... және ... ... динамикалық аспектілерін модельдеу үшін операцияларға қолданылады. [2] Қызмет диаграммасын пайдалану нұсқаларына қолданған ... ... ... ішіндегі жұмыстар ағынының орындалу ретіне мән беріледі. 9 және 10 суреттерге сәйкес ... ... ... ашып ... үшін ... ... диаграммасы көрсетілген. Диаграммада операциясын орындауға қатысатын объектілер жолақтар ретінде бөлініп көрсетілген. Қызмет диаграммасының басты мағынасы - ... ... ... ... ... ... Диаграммада сопақ фигуралар арқылы қызметтер, ал төртбұрыштар ... ... ... ... ... ... жұмыстар қалың көлденең және тік сызықтар арқылы көрсетілген. Тармақталу белгілері ромб түрінде көрсетілген. Сонымен бірге осы операцияның бастапқы және ... ... ... ... көрсетілген. Осы операцияның орындалуы нәтижесінде жүйеде болатын өзгерістер:
- Қабылдаушылар хабарлама алады.
- Жіберілген хабарлама туралы мәлімет сервердің мәліметтер қорына сақталады.
Сурет 9 - ... ... ... ... ... 10 - пайдалану нұсқасының қызмет диаграммасы 2
Жүйенің құрылымын модельдеу. Модельдеудің бұл түрін ... үшін ... ... ... [2] ... ... үшін ... аймақтың болмыстарын анықтау керек. Кластар құрылатын жүйедегі негізгі ұғымдар болып табылады және жүйенің ... ... ... - ... ... ... байланыстары бар және мағыналары бірдей объектілердің жиынтығы. Кластың атрибут және операция деген қасиеттері ... ... - ... ... ... белгілерін көрсететін қасиеті. Операция - класстың объектілерінің орындай алатын іс-әрекеттері.
Кластар диаграммасы - объектіге бағытталған жүйелерді модельдеу ... жиі ... ... ... ... ... және кооперацияларды және олардың арасындағы байланыстарды көрсетеді. ... ... ... ... көрінісін модельдеу үшін қолданылады. Яғни, жүйенің сөздігін көрсетуге арналған.
11 суретке сәйкес пәндік аймақтың негізгі ұғымдары көрсетілген кластар диаграммасы бейнеленген.
Сурет 11 - ... ... , , , ... үшін ... ... ... ... Себебі бұл кластардың кейбір атрибуттары ұқсас. Диаграммада үзік сызықтар тәуелділікті білдіреді. Себебі ... ... ... ... атрибуттарын пайдаланады.
Жүйенің архитектурасын модельдеу. Модельдеудің бұл түрі жүйенің ... ... ... үшін ... [2] ... ... ретінде жүйенің артефактілерін айтады. Артефактілер болып түйінде орналаса алатын, ... ... ... ... кесте, файл және құжат сияқты физикалық болмыстар саналады. Артефактілер кластар, интерфейстер, кооперациялар сияқты логикалық элементтердің физикалық жиынтығы ... ... ... ... ... деп те атайды.
Компоненттердің өзара байланыстарын көрсету үшін компоненттер диаграммасы қолданылады. Компоненттер диаграммасы ... ... ... ... статикалық көрінісін көрсетуге ыңғайлы. Қазіргі кездегі объектіге бағытталған бағдарламалау ... ... ... ... мәтіндерін файлда сақтау мүмкіндігі бар. Компоненттер диаграммасын осы файлдардың бір-бірімен байланысын көрсету үшін қолдануға болады. Файлдардың кеңейтілімдері әр түрлі болып ... ... олар .exe, .xml, .html, .java, .cpp, т.б. ... ... ... ... кітапхана ретінде басқа файлдарда пайдаланылады. Диаграммада ол байланыс тәуелділікті көрсететін үзік сызық түрінде көрсетіледі.
12 суретке сәйкес ... ... ... файлдардың байланысы көрсетілген компоненттер диаграммасы бейнеленген.
Сурет 12 - ... ... .php ... ... ... түрінде көрсетілген. Мәліметтер қоры цилиндр түрінде көрсетілген. Хабарламаны жіберу операциясының орындалу реті және бағдарлама кодтары ... ... ... ... ... A]
- ... алдымен index.php бетінде логин және құпиясөзді енгізеді, яғни аутентификация ... ... ... ... ... ... ... Ол үшін functions.php файлы мәліметтер қорына қосылып, енгізілген мәліметтерді кестеден тексереді.
- Енгізілген ... ... ... ... ... бетіне жіберіледі. Бұл файлда қолданушының логині және құпиясөзі ... ... ... қайтадан тексеріледі, яғни авторизация жүреді.
- Хабарлама мәтіні енгізіліп, ... ... ... ... ... ... ... Бұл файлда functions.php файлы арқылы хабарлама мәліметтер ... ... және GCM.php ... ... GCM ... жіберіледі.
Объектіге бағытталған жүйенің физикалық аспектілерін модельдеуде қолданылатын тағы бір ... түрі - ... ... ... диаграммасы жүйенің компоненттерін нақты түйіндерде орналастыру кезіндегі статикалық көрінісін көрсетуде қолданылады. Push-технологияны жүзеге асыру тек бір компьютерде орындалмайды. Сондықтан оның ... ... ... ...
13 ... сәйкес бағдарламалық жүйе түйіндерінің орналасуы және өзара байланысы көрсетілген орналастыру диаграммасы бейнеленген.
Сурет 13 - ... ... ... куб ... ... ... Түйіндер деп компьютерлерді, серверлерді, телефон аппараттарын, модемдерді, мобильді құрылғыларды, т.б. айтуға болады. Боялған куб ретінде қандай да бір ... ... ... ... ... ... ... осындай фигурамен белгіленген. Сонымен бірге диаграммада түйіндерге қатысты қосымша ақпараттар көрсетілген. Мысалы, операциялық жүйеге қойылатын талаптар, ... ... ... т.б. ... ... ... ... арасындағы байланыстар бағытталмаған сызықтар түрінде көрсетілген. Сызықтарға қосымша ақпарат ретінде екі түйін арасындағы пайдаланылатын байланыс түрі немесе ... түрі ... ... ... ... ... қоры - ... схемасына сәйкес сақталатын мәліметтер жиынтығы. Мәліметтер қорында сервердің ... ... ... ... ... қоры ... бір жерде немесе жеке серверде тұруы мүмкін.
Кез келген жүйенің мәліметтер қорын тұрғызбас бұрын оны жобалау ... ... ... ... - ... қорының схемасын құру және оның бүтіндігінің қажетті шектеулерін анықтау ... ... ... ... ... тапсырмалары:
- Мәліметтер қорында барлық қажетті ақпаратты сақтауды қамтамасыз ету.
- Барлық қажетті сұраныстар ... ... алу ... ... ... Мәліметтердің шамадан тыс көп болуын және қайталануын азайту.
- Мәліметтер қорының ... ... ... ... бүтіндігі дегеніміз (database integrity) - мәліметтер қорындағы ақпараттың оның ішкі логикасына, құрылымына және барлық анық көрсетілген ... ... ... ... мүмкін күйіне қандай да бір шектеу қоятын әрбір ереже бүтіндік шектеуі (integrity constraint) деп аталады. Ережелер мысалдары: салмақтың мәні оң сан ... ... ... ... ... саны 25-тен асуы керек, т.б.
Мәліметтер қорын жобалау 3 сатыдан тұрады: [3]
1) Концептуалды (инфологиялық) жобалау.
2) Логикалық (даталогикалық) жобалау.
3) Физикалық жобалау.
Концептуалды (инфологиялық) ... - ... ... ... ... яғни абстракцияның жоғары деңгейдегі ақпараттық моделін тұрғызу. Мұндай модель қандай да бір мәліметтер қорын басқару жүйесіне ... және ... ... ... ... Мәліметтер қорының концептуалды моделіне мыналар кіреді:
- Пәндік аймақтың ақпараттық объектілері мен ұғымдары және ... ... ... ... ... ... яғни ... мәндеріне қойылатын талаптар.
Мәліметтер қорының концептуалды моделінің нақты түрі және мазмұнын көрсету үшін әдетте ER-диаграмма сияқты графикалық нотациялар пайдаланылады.
Болмыс-байланыс ... ... model) - ... ... ... ... ең жиі қолданылатын модель. Артықшылықтары:
- Түсінуге ыңғайлы.
- Объектілер және атрибуттар саны көп мәліметтер қорын жобалауға мүмкіндік береді.
- Көптеген ... ... ... ... ... ... ... мысалы, ERWin, BPWin, т.б.
ER-модельдердің негізгі элементтері:
- Объектілер (болмыстар).
- Объектілердің атрибуттары.
- Объектілер арасындағы байланыстар.
Болмыс дегеніміз - ... ... ... бар ... Олардың арасындағы байланыстар түрлері: 1:1 (бірдің бірге қатынасы), 1:N (бірдің көпке қатынасы), N:M ... ... ... ... ... ... қорын жобалау барысында ER-диаграмма негізінде мәліметтер қорының концептуалды моделі тұрғызылды. Диаграммада пәндік аймақтың объектілері төртбұрыш түрінде, объектілер арасындағы ... ромб ... ... ... ... фигура түрінде бейнеленген. Байланыс түрлері 1:N (бірдің көпке қатынасы) болып келеді. Мәліметтер қоры реляциялық ... ... ... ... ... ... модельде N:M қатынасы (көптің көпке қатынасы) болмауы керек.
Логикалық (даталогикалық) жобалау - ... ... ... ... ... моделі, мысалы, мәліметтердің реляциялық моделі негізінде құру. Мәліметтердің реляциялық моделі үшін ... ... - ... ... ... ... онда ... кілт көрсетіледі және қатынастардың сыртқы кілт арқылы байланысы көрсетіледі. Логикалық жобалау ... ... ... моделі есепке алынады, бірақ нақты мәліметтер қорын басқару жүйесінің ерекшеліктері есепке ... ... ... ... ... ... барысында мәліметтердің реляциялық моделіне арналған логикалық модель тұрғызылды. Онда реляциялық модельдегі мәліметтер қорының ... ... ... кілттері және кестелер арасындағы байланыстар көрсетілген.
Физикалық жобалау - ... МҚБЖ ... ... қорының схемасын құру. Нақты МҚБЖ мәліметтер қорының ... ... ... ... ... ... мүмкін.
Мәліметтер қорын жобалау барысында MySQL МҚБЖ арналған мәліметтер ... ... ... ... ... B]
Сурет 14 - Мәліметтер қорының концептуалды моделі
Сурет 15 - Мәліметтер қорының логикалық моделі
3 МОБИЛЬДІ ҚОСЫМША ... ... ... ... ... жұмыс істеу схемасы және жалпы архитектурасы
Мобильді қосымша серверінің жұмыс істеу принципі үш деңгейлі, клиент-серверлік архитектураға ... 16 ... ... үш ... архитектура дегеніміз - үш негізгі компоненті: клиент, ... ... ... ... ... ... істейтін) және мәліметтер қорының сервері (қосымшалар серверімен бірге жұмыс істейтін) бар бағдарламалық кешеннің архитектуралық моделі. Үш деңгейлі архитектураның әр компоненті ... бір ... ... ... 16 - Үш деңгейлі архитектурасы
Клиент (клиент қабаты) - бұл ... ... ... ... ... ... ... Бұл деңгей мәліметтер қорымен ешқандай тікелей байланыста болмауы ... және ... ... бизнес-логика қамтылмауы тиіс. Бұл деңгейге әдетте қарапайым ғана бизнес-логика: авторизация интерфейсі, шифрлеу алгоритмдері, енгізілген мәліметтердің дұрыстығын және форматқа сәйкестігін ... ... ... қарапайым операциялар (сұрыптау, топтастыру, мәнді есептеу) шығарылады. Клиент ретінде қолданушының үстел компьютерін айтуға болады. Бұл деңгейдің ... ... ... мен жүйе ... мәлімет алмасу үрдісінің барынша тез әрі тиімді болуын қамтамасыз ету ... ... ... ... ... ... ... қамтамасыз ете алады:
- Мәліметтерді алу және өңдеу.
- Қолданушыға мәліметтерді көрсету.
- ... ... ... ... Енгізілген мәліметтерді сақтау.
- Қолданушыға пайда болған қателер туралы ақпаратты көрсету.
Клиенттік деңгейде жұмыс істейтін бағдарлама көбінесе веб-браузер болып табылады. Браузердің ... ... - ... серверіне сұраныс жасау. Мобильді қосымша серверінің клиенттік бөлігінде кез келген браузер түрін пайдалануға болады. Клиенттік ... ... ... ... ... ... ... HTML, CSS, JavaScript тілдері пайдаланылды.
Қосымшалар сервері (application server) - бұл қосымшаларды құруға мүмкіндік ... ... ... ... ... ... ... орындалуын қамтамасыз ететін бағдарламалық платформа (фреймворк). Қосымшалар сервері бағдарлама құрушыға сол платформада анықталған API (қолданбалы бағдарламалау интерфейсі) арқылы ... ... ... беретін компонеттер жиынтығы ретінде әрекет етеді.
Веб-қосымшалар үшін бұл компонеттер әдетте веб-сервер орнатылған машинада жұмыс ... ... ... ... - ... ... ... қамтамасыз ету. Бірақ заманауи қосымшалар серверлері тек веб-беттерді генерациялап қана қоймай, кластеризация, тоқтамаушылық, жүктеуді ... ... ... орындауға бағытталған. Қосымшалар серверлерінің мұндай мүмкіндіктері бағдарлама құрушыларға тек бизнес-логикаға ғана мән ... ... бұл ... ... ... ... ... Бұл жағдайда қосымшалар сервері қосымшаларды орындау үшін ... ... ... ... ... ... әрі бір жағынан мәліметтер қорымен жасалатын байланыстарды, екінші жағынан веб-клиентпен жасалатын байланыстарды басқарады.
Қосымшалар серверлерінің ... ... және ... бүтіндігі. Бизнес-логиканы бөлек серверге немесе серверлер тобына бөлу арқылы барлық қолданушылар үшін қосымшаларды еш қиындықсыз жаңартуға және жақсартуға болады. ... ескі ... ... ... ... немесе өзгертуі мүмкін деген қауіп төнбейді.
- Орталықтандырылған баптау және басқару. Мәліметтер қорының серверін өзгерту немесе жүйелік баптаулар сияқты әрекеттер бір ... ... ... ... жеткізушілер қосымшалар серверін орталық нүкте ретінде пайдаланып мәліметтерді және қосымшалардың бөлшектерін басқара ... ... ... ... ... ... қолданушыдан жасыра отырып аутентификация жасауға мүмкіндік береді.
Қосымшалар серверлерінің мысалдары:
- Java EE жағдайында ... ... ... Java EE концепциясын жүзеге асыратын және өзінде Java EE қосымшаларды орындауға мүмкіндік беретін бағдарламалар кешенін айтуға болады. Қосымшалар серверлерінің ... RedHat JBoss ... Server, Apple ... IBM ... Sun GlassFish және т.б. бағдарламалық өнімдер кіреді.
Үш деңгейлі клиент-серверлік архитектурада қосымшалар сервері (байланыстырушы деңгей) ... ... ... онда ... ... ... ... Бұл компонентті жүзеге асыруды ортадағы байланыстарушы бағдарлама атқарады. Байланыстырушы бағдарлама ретінде веб-сервер жұмыс ... ... - ... ... ... ... HTML-бетпен бірге сурет, файл, медиа-файлдар және басқа да мәліметтерді жауап ... ... ... Әдетте клиенттер болып веб-браузерлер саналады. Веб-сервер ретінде әрі бағдарламалық қамсыздандыруды, әрі сол бағдарлама орындалатын компьютерді айтады. ... ... ... деп ... бағдарлама айтылады. Веб-сервер клиенттің сұраныстарын қабылдап, оны әрі қарай орындау үшін қосымшалар серверіне береді. Қосымшалар сервері алынған ... ... ... бір ... ... Ол операциялар мәліметтер қорына жасалатын сұраныс немесе қандай да бір ... ... ... ... ... ... ... кейін сәйкесінше арнайы форматтағы құжатты генерациялап, оны веб-серверге қайтарады. Құжаттың форматы HTML-құжат, XML-құжат, қарапайым ... т.б. ... ... ... ... ... ... алынған құжатты клиентке, яғни веб-браузерге жауап ретінде қайтарады. Веб-серверлер әдетте сервер деп аталатын жеке машинаға орнатылып, ондағы 80-портты ... Яғни сол ... 80-ші ... ... ... мәліметтерді веб-сервер қабылдайды.
Веб-серверлер ретінде Microsoft компаниясының Internet Information Server (IIS), Apache ... ... және Google ... ... Google Web Server, Java ... жазылған Rootage, т.б. веб-серверлерді айтуға болады.
Қазіргі кезде ең көп таралған және нарықтың көпшілік бөлігін алып тұрған веб-сервер Apache Software ... ... Apache ... ... ... Apache веб-сервері тегін таратылған әрі кроссплатформалық, яғни кез келген ... ... ... істей беретін веб-сервер болып табылады. Бұл бағдарламалық қамсыздандыру Novell NetWare, Linux, BSD, Microsoft Windows, Mac OS, BeOS, ... ... ... жұмыс істейді және UNIX-типті операциялық жүйелерде жиі қолданылады.
Apache веб-серверінің негізгі артықшылықтары оның сенімділігі және баптаудың жеңілдігі болып саналады. Ол ... ... ... ... ... үшін МҚБЖ пайдалануға, қателер туралы хабарламаларды өзгертуге, т.б. мүмкіндіктер береді. Apache ... ... C ... ... Apache HTTP Server ... ... Әр түрлі функциялар атқаратын 500-ден астам модульдер бар. Олардың біраз бөлігі Apache Software Foundation тобымен, ал ... ... ... ... құрастырушылар көмегімен жасалған.
Apache веб-серверіне әр түрлі бағдарламалау тілдерін қолдауға мүмкіндік беретін көптеген модульдер бар:
- ASP ... PHP ... Ruby ... Python (mod python, mod wsgi).
- Tcl ... Perl (mod perl).
Сонымен бірге Apache Lua, C, Java, C++ және т.б. көптеген бағдарламалау тілдерінде бағдарламаларды орындауға мүмкіндік беретін CGI және FastCGI ... ... ... ... ... қосылатын болса, ол әрі веб-сервер, әрі қосымшалар сервері ретінде де жұмыс істейтін болады. Дипломдық жұмыста мобильді ... ... ... PHP тілінде жазылды және веб-сервер ретінде Apache 2.2 пайдаланылды. Сондықтан Apache+PHP жұбын ... ... ... ... ... ... бар.
Веб-серверлер орнатылған компьютерлердің операциялық жүйелерінің мысалдары: Microsoft компаниясының Windows 2000, Windows NT, Windows Server 2003, UNIX-типті Solaris, AIX, HP-UX, Linux ... ... Apple ... Mac OS X ... ... ... ... (мәліметтер қабаты) мәліметтердің сақталуын қамтамасыз етеді. Мәліметтер қорының сервері үш ... ... ... жеке ... шығарылады және мәліметтер қорын басқару жүйелері (МҚБЖ) арқылы жүзеге асырылады. ... ... ... қосылу тек қосымшалар сервері деңгейінен ғана мүмкін болады. Мәліметтер қорының сервері мәліметтер қорына қызмет ету және оны ... ... және ... ... мен ... ... береді. Сонымен бірге клиенттің ақпарат алуы үшін енгізу-шығару операцияларын қамтамасыз етеді. Клиент-сервер архитектурасы бойынша мәліметтер қоры қуатты жеке серверде орналасуы ... ... SQL ... Query Language - ... сұраныстар тілі) тілін пайдаланады. SQL тілінің қызметі:
- ... ... және ... ... Мәліметтерді өңдеудің негізгі операцияларын (мәліметтерді кестеге енгізу, өзгерту, таңдау, жою) орындау.
- Қарапайым және күрделі сұраныстар жасау.
SQL тілінің басты ерекшелігі оның ... ... ... ... ... алу керектігін сипаттайтын сұраныстар құра алу мүмкіндігінің болуында, ал бұл тапсырманы орындау ... ... өзі ... ... процедуралар және триггерлерді қолдайтын кеңейтілген нұсқалары бар. Процедура дегеніміз - SQL ... ... ... қорының серверінде сақталатын алдын ала компиляцияланған SQL тіліндегі сөйлемдер. Клиент ол процедураны Execute командасының көмегімен орындайды. Осылайша желі арқылы тек екі сөз ғана ... Бұл ... ... ала ... ... ... оған ... кетірмейді. Процедуралар ретінде әдетте көп орындалатын сұраныстар пайдаланылады. Триггерлер де процедуралар сияқты, олар мәліметтер ... ... ... ... ... ... істейді. Триггер мәліметтер қорында Insert, Update, Delete командалары орындалған кезде ... ... SQL ... бір ... ... сөйлемлерін орындайды.
Мәліметтер қоры серверлерінің мысалдары: Oracle Server (Oracle корпорациясы), Sql Base Server, IBM DB2, Sql Server ... ... ... ... MySQL, т.б. ... қоры ... операциялық жүйелері OS/2, MSDOS, Unix, Xenix, Dec, т.б. болуы мүмкін. ... үш ... ... архитектурада мәліметтерді енгізу-шығарудың барлық функциялары клиенттік машинада орындалады. Мәліметтерді ... ... ... өңдеу, форматтау сияқты жұмыстарды қолданушы клиенттік бағдарлама арқылы жасайды. Қолданушы интерфейсінің функциялары дербес компьютердегі веб-браузер арқылы жұмыс істейтіндіктен, мәліметтердің ... ... ... ... үшін және ... енгізу-шығаруды басқару элементтерін беру үшін HTML, CSS (Стильдердің каскадты кестелері) сияқты технологиялар керек. Қазір клиент-серверлік архитектураның клиент жағында қолданылатын ең ... ... тілі ... ... ... өңдеудің негізгі жұмыстары қосымшалар серверінде орындалады. Мұнда бағдарлама бизнес-логикасының арифметикалық және ... ... ... ... ... ... - клиенттен және мәліметтер қорынан келген мәліметтерді өңдеп, жүйенің басты функцияларын орындау. Архитектураның ... ... ... ... ... асыру үшін күрделі бағдарламалау тілдері қолданылады. Сервер жағында жиі ... ... ... Java, C#, Python, т.б. ... ... ... бірге PHP серверлік тілі де көп қолданылады. Бұл тіл Apache веб-серверіне модуль ретінде қосылады немесе жеке өзі CGI (Common Gateway ... ... ... ... ... сервері жүйенің бизнес-логикасымен тығыз байланыста жұмыс істеп, оған ... ... ... ... ... барлық қажетті мәліметтері осында сақталады. Мәліметтер қоры серверінде негізгі тіл ретінде ... SQL тілі ... ... ... ... МҚБЖ мәліметтермен жұмыс істеуге арналған бағдарламалау тілдері бар. Оған PL/SQL тілін жатқызуға болады. Ол көбінесе жиі орындалатын SQL командалары үшін ... мен ... ... қолданылады.
Үш деңгейлі клиент-серверлік архитектураны қолданудың артықшылықтары:
1) Серверге түсетін жүктеуді азайтады. Егер жүйенің негізгі бизнес-логикасы да, мәліметтер қоры да бір ... ... ... ... операциялардың саны артады. Нәтижесінде машинаның жұмыс істеу жылдамдығы азайып, кейде тоқтап қалуы мүмкін. ... ... жеке ... орналастыру арқылы серверлерге түсетін жүктеуді азайтуға болады. Ал қосымшалар сервері мен мәліметтер қоры сервері тез ... ... үшін екі ... ... ... желі ... ... Әдетте ол серверлер бір-біріне жақын орналасады.
2) Клиенттік ... ... ... ... көп ... ... ... қалады да, клиенттік қосымшаларға артық код жазудың қажеттілігі тумайды. Сәйкесінше клиенттік қосымшалардың салмағы да ... ... ... бірдей әрекет етеді.
4) Клиенттерді баптау жеңілдейді. Қосымшалар серверіндегі ... ... ... ... ... ... ... өзгертуге болады.
5) Платформаға тәуелсіздік. Веб-бағдарламалау тұрғысынан қарағанда әдетте архитектураның клиенттік жағында серверден қажетті мәліметті алу үшін кез келген операциялық ... ... ... ... ... ... артады. Мысалы, клиент мәліметтер қорымен тікелей байланыса ... Ол тек ... ... ... ... ғана жүзеге асады. Ал қолданушылар үшін авторизация және ... ... ... осы ... ... ... Мәліметтер қорына тікелей байланыс орнатуды тек жүйелік администраторлар ғана жасай ... ... ... ... ... ... ... ақпаратты емес, тек кейбіреулерін ғана ұсынуға болады.
7) Кеңейту мүмкіндігі. Жүйенің мәліметтер қорына мәлімет ... ... ... ... да ... бойынша мәліметтер қорын үлкейту керек болса, мәліметтер қорының серверіне қосымша мәліметтер қорын қосуға болады. Бұл әрекет бизнес-логикаға да, қолданушы ... де ... кері ... ... ... ... Бұл бір деңгейді басқаларына тиіспей өзгерту мүмкіндігінің болуы. Мысалы, веб-дизайнер тек қолданушы интерфейсін ... бұл ... ол ... да, ... ... да ... Деңгейлерді бір-біріне тәуелсіз түрде жаңарту мүмкіндігінің болуы. Мысалы, жүйенің мәліметтер қорын үлкейту үшін тағы да бірнеше мәліметтер қоры серверлерін ... ... ... МҚБЖ бір ... ... істеп отырып екінші түріне оңай өтуге болады. Егер жүйенің бизнес-логикасына өзгерту енгізу немесе жаңарту керек болса, қолданушы интерфейсіне және ... ... ... кері әсер ... кез ... операцияны орындауға болады. Дәл солай қолданушы интерфейсін де бизнес-логикаға және мәліметтер қорына кері әсер етпей ... ... ... ... ... ... ... планшет немесе мобильді құрылғы арқылы кіруі мүмкін. Бұл жағдайда ... ... ... 3 түрі ... да, ... мен ... қоры ... қала береді.
3.2 Сервердің бизнес-логикасы
Дипломдық жұмыста мобильді қосымша серверінің бизнес-логикасын жүзеге асыру үшін PHP серверлік бағдарламалау тілі ... ... ... - ... ... жаппай қолданылып жүрген жалпы мақсаттағы скриптілік бағдарламалау тілі. [4] ... ... бұл ... ... ... ... қолдайды және бұл тіл динамикалық веб-сайттар құруға пайдаланылатын бағдарламалау тілдерінің көшбасшыларының бірі болып табылады.
PHP бағдарламалау тілі ... ... ... ... жақта кеңінен қолданылады. Бұл тіл өзінің қарапайымдылығы, операцияларды орындау жылдамдығына, бай функционалдылығына, кроссплатформалық қасиетіне байланысты ASP.NET технологиясында ... ... JSP, Perl ... атақты сценарийлік бағдарламалау тілдеріне ұқсас тілдердің бірі. Веб-сайттар құру облысында көп қолданылатын себебі, бұл тілде веб-қосымшалар ... ... ... ... құралдардың болуы. PHP тілінің негізгі артықшылықтары: [4]
- Жоғары өнімділік.
- Көптеген әр түрлі мәліметтер қорын басқару ... ... (SQLite, ... SQL Server, ... MySQL, Oracle (OCI8), ODBC, Sybase, IBM DB2, mSQL, Cloudscape және Apache Derby, ... ... ... ... көптеген кірістірілген кітапханалардың болуы.
- Бағасының төмендігі.
- Оқып-үйренудің және пайдаланудың қарапайымдылығы.
- HTTP-авторизациямен ... ... ... және ... ... істеу.
- Жергілікті және алыстағы файлдармен жұмыс істеу.
Қазіргі кезде PHP ... ... мың ... ... ... TIOBE корпорациясының іздеу жүйелерінің мәліметтеріне сүйене отырып жасаған рейтингісі бойынша 2013 жылдың маусым айында PHP қолданылуы бойынша ... ... ... 5 ... ... PHP ... тілінде жазылған ірі сайттарға Facebook, Wikipedia және т.б. жатады.
PHP тілінің тарихы 1994 ... ... ... жылы дат ... ... ... кірген қолданушыларды тіркеу үшін Perl бағдарламалау тілінде HTML-құжаттарды өңдейтін CGI скрипттер жиынтығын жазып шықты. Расмус Лердорф ол ... ... Personal Home Page ... Үй Парағы) деп атады. Кейіннен Perl тілінің ... және ... ... бола ... ... Лердорф C тілінде жаңа PHP/FI (Personal Home Page/Forms Interpreter - ) үлгілер интерпретаторын жазып шықты. ... жылы ... ... ... кейін C тілінде жазылған интерпретатордың екінші нұсқасы PHP/FI 2.0 шықты. Ол ... ... ... ... ... 1%-ы ... 50 мың) ... 3.0 нұсқасы айтарлықтай өзгеріске ұшырады. 1997 жылы екі израильдік бағдарламалаушылар Энди Гутманс және Зеев Сураски интерпретордың кодын толығымен ... ... ... PHP 3.0 ресми түрде 1998 жылдың маусым айында жарияланды. PHP 3.0 нұсқасының артықшылығы ядроға қосымша модульдер қосу мүмкіндігінің ... еді. ... бұл ... ... бағдарламалаушыларды қызықтырып, өзіне тартты. Осы нұсқадан бастап PHP ... ... ... болып өзгертілді.
1998 жылдың қысында Энди Гутманс пен Зеев Сураски PHP ядросын қайтадан өңдей бастады. Ондағы мақсат ... ... ... ... Zend Engine деп ... қозғалтқыш қойылған тапсырмаларды сәтті орындап, 1999 жылы ресми түрде ... ... Осы ... негізделген және қосымша функциялар жиынтығы енгізілген PHP 4.0 нұсқасы 2000 жылдың мамыр айында шықты. ... ... ... PHP 4.0 ... ... ... ... мәліметтерді өңдеу қауіпсіздігі және басқа да қосымша тілдік құрылымдар сияқты бірнеше жаңа мүмкіндіктерге ие болды.
PHP тілінің бесінші нұсқасы 2004 ... 13 ... ... Zend ... ... ... ол Zend Engine 2 деп ... Жаңа нұсқада интерпретатордың тиімділігі арта түсті. XML белгілеу тілін қолдау мүмкіндігі болды. Бұл нұсқа объектіге бағытталған бағдарламалауға жақын келді. Деструктор, ... ... және ... ... ... мен әдістері, интерфейстер енгізілді.
PHP тілінің алтыншы нұсқасы 2006 жылдың қазан айынан бастап жасалды. Кейбір ... ... ... php.ini конфигурациялық файлындағы safe_mode, magic_quotes_gpc және register_globals сияқты кейбір директивалар алынып тасталды. Жаңа мүмкіндіктердің бірі Юникодты ... еді. ... оны ... ... ... ... алтыншы нұсқаны жасау тоқтатылды. Ал негізгі нұсқа ретінде 5.4 қалды.
PHP тілінің синтаксисі С тіліне ұқсайды. ... ... foreach ... ... ... ... Perl тілінен алынған. Бағдарлама жұмыс істеу үшін ешқандай айнымалыларды сипаттау немесе пайдаланылатын модульдерді ... ... жоқ. Кез ... ... PHP операторынан бастала береді. PHP тіліндегі қарапайым бағдарлама мынадай түрде ... . ... ... ... ... ... нұсқасы да бар: .
PHP интерпретаторы шектеушілерінің ішінде орналасқан кодты ғана орындайды. Олардың сыртында орналасқан кез келген мәтін өзгеріссіз ... ... бұл әдіс ... ... ... ... үшін ... бағдарламалау тілі






Листинг 1 - PHP-кодты HTML-құжаттың ішіне ... ... ... ... және ... қосымша нұсқаларды пайдалану мүмкіндігі бар. Алтыншы нұсқаға дейін ASP технологиясындағы ... ... ... ... $ ... ... және ... типін жариялаудың қажеті жоқ. Айнымалы атаулары және тұрақтылар регистрге сезімтал. Ал класс атаулары, класс әдістері және ... ... ... сезімтал емес. Қос тырнақшаға алынған және c(); // Объектінің c() әдісін шақыру
$obj->$b; // ... a ... ... себебі $b = 'a'
$obj->$c(); // Объектінің any_function() әдісін шақыру, ... $c = ... 2 - PHP ... динамикалық айнымалылар мен функциялар құру
PHP тілінде echo және print ... ... олар ... ... болып табылады. Олар қандай да бір мәліметті шығару үшін пайдаланылады.
PHP ... ... ... ... [5] Суперауқымды жиымдар дегеніміз - ауқымды ... ... бар, global ... ... алдын ала анықталған жиымдар. Бұл жиымдардың көпшілік бөлігінде қолданушының кіріс мәліметтері сақталып ... ... ... POST ... бойынша жіберілген форма өрістері, cookies және т.б.). Бұл ұғым PHP тіліне 4.0.1 нұсқадан бастап енгізілді. Одан ... ... ... ... Бұл ... ... туралы мәліметтер, скрипттің орындалу ортасы, пайдаланылған бағдарламалар, т.б. мәліметтердің барлығы сақталады. Жиымдарды кез ... ... ... қосымша жариялаусыз пайдалана беруге болады, яғни global сөзін жазудың қажеті жоқ. Суперауқымды жиымдардың 9 түрі бар:
1) $_SERVER. Жиымда скрипттің орындалу ... ... және ... ... ... ... сақталады. Бұл жиым серверде анықталады. Сондықтан оның ішінде кейбір элементтер болмауы мүмкін. Жиымды пайдалану үшін PHP коды ... кез ... ... ... ... ... жеткілікті. Мысалы скриптті орындап жатқан сервердің атауын алу үшін $_SERVER["SERVER_NAME"] тіркесін қолдану керек.
2) $_POST. Жиымда қолданушының серверге POST әдісі арқылы ... ... ... сақталады.
3) $_GET. Жиымда қолданушының серверге GET әдісі арқылы жіберген барлық айнымалылары сақталады.
4) ... Бұл ... ... ... ... ... ... айнымалыларға сілтемелер сақталады. Жиым айнымалылардың атаулары кілт болып келетін ассоциативті жиым ретінде пайдаланылады.
5) $_COOKIE. Жиымда ... ... ... ... барлық cookies сақталады.
6) $_ENV. Сервердегі барлық скрипттер үшін орнатылған қамту айнымалылары сақталады.
7) $_FILES. Жиымда қолданушы жағынан серверге форма арқылы жүктелген ... ... ... ... сақталады.
8) $_SESSION. Жиымда ағымдағы қолданушы сессиясының барлық айнымалылары сақталады.
9) $_REQUEST. Бұл жиым $_GET, $_POST және ... ... ... ... ... екі ... болады: интерпретацияланатын және трансляцияланатын. Бір бағдарламалау тілінде жазылған кодты екінші тілге аударатын бағдарламалар транслятор деп аталады. Компилятор да транслятордың бір ... ... ... ... ... ... ... кодты машиналық кодқа аударады. Нәтижесінде екілік кодтағы орындалатын файл құрылады. Ол ... ... ... бір немесе бірнеше рет орындауға жіберуге болады. Ал интерпретатор басқаша ... ... Ол ... ... тілге аудармайды. Интерпретатор кодты талдаудан өткізіп, оның әрбір жолын жеке орындап отырады. Осындай кодты әрбір жолы ... ... ... ... ... ... Екеуінің өздеріне тиесілі артықшылықтары да, кемшіліктері де бар. Екілік код тезірек орындалатындықтан жылдамдығы жағынан ... ... ... ... бағдарламалар платформаға тәуелсіз жұмыс істей береді, тек сәйкес интерпретатордың болуы жеткілікті.
Ал PHP тілі интерпретатор да, ... да ... Онда ... де ... кездеседі. PHP бір-біріне тәуелсіз екі блоктан, яғни транслятор мен интерпретатордан тұрады. Мұндай қажеттілік кодты орындауды жылдамдату үшін ... 17 ... ... PHP ... ... істеу принципі:
1) Қолданушы веб-браузердің мекенжай жолағына қажетті веб-ресурстың URL-адресін (Uniform Resource Locator) енгізіп, оны серверге жібереді.
2) Сервер ... ... деп ... ... ... ... ... оны өңдеп, сұралып отырған файлды тауып, PHP интерпретаторды шақырады.
3) PHP интерпретатор веб-серверден алынған скриптті талдап, өңдейді. Алдымен ... ... ... ... ... оны ... ... айналдырады. Бұдан кейін интерпретатор байт-кодты орындайды. Нәтижесінде HTML немесе басқа да құжат жасалып, веб-серверге қайтарылады.
4) Веб-сервер құрылған ... ... ... ... ... ... қабылдап, сәйкес форматта қолданушыға көрсетеді.
Сурет 17 - PHP интерпретатордың жұмысы
PHP интерпретатордың жұмыс ... ... ... ешқандай орындалатын файл құрылмайды. Байт-код бағдарламаның қарапайым кодына ... ... ... ... ... оны интерпретациялау да тезірек жүзеге асады. Синтаксистік талдау трансляция сатысында ғана бір рет жасалады, ал келесі ... ... ... ... ол ... өте ... ... PHP тілі компилятордан қарағанда, интерпретаторға жақынырақ келеді. Оны алдымен трансляциялау кодтың орындалу жылдамдығын арттырады. Мысалы, мынадай циклді қарастырайық: for($i = 0; $i < 100; $i++) { ... ... ... ... }. Бұл цикл 100 рет ... ... Осы ... ... айналымында 10 оператор орындалуы керек. Интерпретатор барлығы 1000 ... ... оны ... шығуы керек. Ал егер бір циклді бір байт-кодқа айналдырса, 100 ғана оператор ... ... ... ... өңдеу жылдамдығы 10 есеге артады. Яғни PHP бағдарламалау тілін трансляциялаушы интерпретатор деуге негіз бар.
PHP интерпретаторды веб-сервердің модулі ретінде (мысалы, Apache ... үшін mod_php) ... ... Бұл ... PHP ... ... процесі ретінде жұмыс істейді. Веб-сервер PHP процестерінің санын басқарады және оларға қандай скрипттерді ... ... ... ... Ол үшін Apache ... конфигурациялық файлына бірнеше өзгертулер енгізу керек.
Алдымен компьютерге Apache веб-сервері орнатылады (мысалы, Apache 2.2.X нұсқасы). Бұдан кейін мұрағат түріндегі (.zip ... PHP ... ... PHP ... ... орналастыру керек (мысалы, PHP 5.3.5 нұсқасы). Apache ... ... ... деп ... ... өзгерту арқылы жүзеге асырылады. Ол файл дисктегі Apache веб-сервері орнатылған жердегі Apache/conf бумасында сақталады (әдетте C:/Program ... ... ... ... ... онда мынадай бірнеше түсіндірмелер жазылады:
LoadModule php5_module c:/php-5.3.5/php5apache2_2.dll
AddType ... phtml php ... ... ... ... ... ... жүзеге асырылған PHP модулі жүктеледі. Екінші жолда PHP модулі арқылы өңделетін .php кеңейтіліміндегі файлдар мен application/x-httpd-php ... ... ... ... Үшінші жолда PHP тілінің конфигурациялық файлы php.ini орналасқан орны көрсетіледі. Бұл түсіндірмелер httpd.conf файлының ортасына жазылуы керек.
Дисктегі PHP ... ... ... файл ... php.ini деп ... ... (әдетте C:/php бумасында орналасады). Ол үшін PHP орналасқан бумадағы php.ini-development, php.ini-recommended, php.ini-production файлдарының бірінің атауы php.ini болып өзгертілуі керек.
Apache веб-сервері мен PHP ... ... ... тексеру үшін кез келген php-файл құрып, оның ішіне мына кодты жазып, веб-сервер арқылы веб-браузерде ашып тексеру жеткілікті: . Нәтижесінде веб-браузерде PHP ... ... және т.б. ... көрсетілуі тиіс.
Дипломдық жұмыста PHP интерпретаторы Apache веб-серверіне модуль ретінде қосылып, үш деңгейлі клиент-серверлік архитектураның ортаңғы деңгейі, яғни ... ... ... ... ... ... жұмыста мобильді қосымша серверінің веб-интерфейсін жасау үшін HTML белгілеу тілі, CSS стильдердің каскадты кестелері, JavaScript бағдарламалау тілі, JavaScript тілінің jQuery ... және Ajax ... ... ... Markup Language -- ) - ... құжаттарды белгілеудің стандартты тілі. Ғаламтордағы веб-парақтардың көпшілігі осы HTML белгілеу тілі ... ... HTML тілі ... ... интерпретацияланады және адамның түсінуіне ыңғайлы құжат түрінде бейнеленеді. Ғаламторда HTML-беттер серверлерден браузерлерге HTTP және HTTPS хаттамалары арқылы қарапайым ... ... ... ... көмегімен беріледі.
HTML тілін шамамен 1986-1991 жылдары британдық ғалым Тим Бернерс-Ли ... ... ... ... ... бойынша еуропалық ұйымда құрастырған. HTML тілі ғылыми және техникалық құжаттармен алмасу үшін пайдаланылатын тіл ретінде жасалған. HTML ... ... ... ... дескрипторлар немесе тегтер деп аталады. HTML тілінің көмегімен салыстырмалы түрде қарапайым, бірақ жақсы әрленген құжат жасауға болады. Құрылымының қарапайымдылығымен ... ... ... ... ... Ал ... ... кейіннен қосылған.
HTML бағдарламалау тілі емес, онда ешқандай логикалық немесе математикалық операциялар жүргізу мүмкін емес. Ол тек құжатты ... ... ... ... ... ... ... Қазіргі кезде сайт жасауда HTML тілі негізгі элементтердің бірі болып ... Оның ... тек ... ... ғана ... ... Ол скрипттермен, суреттермен, бейне және дыбыстық файлдармен және т.б. ... ... ... ... береді. Құрылғанынан бері көп уақыт өткеніне қарамастан HTML тілі әлі де үлкен сұранысқа ие. Себебі ол түсінуге және ... ... оның ... ... ... оңай ... ... және әр түрлі стильдерді пайдаланып құжатты әсемдеуге ... ... ... ... ... тег деп аталады. [6] HTML тіліндегі кез келген құжат элементтер жиынтығынан тұрады. Әрбір элементтің басы және соңы тегтердің ... ... ... бұрыштық жақшаға () алынып жазылады. Мысалы, құжаттың Мәтін ... ... ... ... ... ... кейбір элементтері ешқандай мәліметті немесе мәтінді қамтымауы мүмкін. Мысалы,
тегі ешқандай мәліметсіз жазылады және ол жаңа ... ... ... Кейбір тегтердің атрибут деп аталатын ішкі элементтері болады. Мысалы, құжаттың Google сайтына өту элементі ... ... оның href деп ... атрибуты бар және ол басқа бетке сілтеме болып табылады.
Тегтердің көпшілігі ашылатын және жабылатын екі бөліктен тұрады. ... ... ... үшін ... ... ... қажеті жоқ. Мысалы, құжаттың Мәтін элементі мәтінді жаңа жолдан бастап жазуды білдіреді.
HTML-құжаттың браузерде дұрыс ... үшін оның ... ... сай ... керек.Қандай да бір нұсқадағы HTML спецификациясына жауап беретін әрбір HTML-құжат түріндегі оның ... ... ... ... ... ... ... бұл тіркес болмаса құжат дұрыс өңделмеуі мүмкін. Әрі қарай құжаттың басы және соңы тегі арқылы белгіленеді. Оның ... ... ... ... және ... денесін көрсететін тегтері жазылу керек. HTML тілінде тегтердің атауларын жазғанда латын әріптерінің регистріне мән ... ... ... ... үшін HTML-құжаттардың нұсқасы ретінде HTML 4.01 пайдаланылды. Құжатты сәндеуге ыңғайлы болу үшін тегі пайдаланылды. ... ... ... ... табылады, яғни тегінің ішіне жазылған кез келген мәлімет жаңа ... ... ... әрі ... ... ... де жаңа ... басталады. Бұл элемент көбінесе құжаттың қандай да бір бөлігін ... ... оның ... ... ... ... пайдаланылады. Тегтің ішіндегі мәліметтердің сыртқы көрінісі әдетте CSS көмегімен басқарылады. Стильді пайдалу үшін ... ... id ... class ... жазады.
Веб-парақтарды тегінің көмегімен жасау блоктық беттеу деп аталады. Ал веб-парақтың қаңқасын тегінің көмегімен жасау кестелік беттеу деп ... 18 ... ... ... ... ... ... серверінің веб-интерфейсін жасау үшін блоктық беттеу пайдаланылды.
Сурет 18 - Мобильді қосымша сервері ... ... ... ... ... ... көмегімен құрылған элементтер қабат деп аталады. Қабаттарды бірінің ішіне бірін пиксельдік дәлдікке дейін орналастыруға болады. [8] Блоктық ... ... ... ... ... ... мен әрлеуді бір-бірінен бөлек жасау, тегін көп пайдалану, кестелерді тек ... ... ... ... ... ғана пайдалану керек. Қабаттардың орналасуы браузер терезесінің, сыртқы элементтің немесе құжаттың кез ... ... ... ... ... беріледі. Скрипттердің көмегімен қабаттардың параметрлерін динамикалық түрде ... ... ... веб-парақта қалқымалы терезелер, анимациялар жасауға болады. Қабаттардың қасиеттерін стильдер көмегімен басқару ыңғайлы ... ... CSS ... ... оңай ... шағын әрі тиімді код жазуға болады.
Блоктық беттеудің артықшылықтары:
- Веб-парақты қайта жүктемей-ақ қабаттардың ... ... ... және ... ... ... жолдан ғана тұратын кодтың көмегімен қалқымалы мәзірлер, қозғалмалы ... т.б. ... ... ... ... сыртқы көрінісі жақсарады.
- Қабаттарды бірінің ішіне бірін орналастыру мүмкіндігі бар.
- Блоктық беттеуде ... ... ... ... тезірек жүктеледі.
- Стильдерді жеке файлда сақтап, бірнеше веб-параққа бір стильді пайдалануға болады. Сонымен бірге қандай да бір ... ... ... т.б. ... өзгерту үшін стильді өзгерту жеткілікті.
- Экран өлшемі әр түрлі болып келетін мониторларда бірдей болып ... ... ... ... ... ... ... қарағанда кодтың көлемі азырақ болады. Нәтижесінде оны оқу да ... ... ... ... әрлеу үшін әдетте CSS қолданылады. CSS (Cascading Style Sheets - стильдердің каскадты кестелері) - ... ... ... ... ... ... ... көрінісін сипаттауға арналған формальді тіл. [9] Әсіресе HTML және XHTML ... ... ... ... ... ... ... әрлеу құралы ретінде пайдаланылады. CSS пайдаланудың негізгі мақсаты - веб-парақтың логикалық құрылымының ... оның ... ... ... ... Веб-парақтың логикалық құрылымының сипаттамасы белгілеу тілдерін қолдану арқылы жасалады. Нәтижесінде кодты ... ... ... ... Жеке файлда сақталған қандай да бір стильді HTML-құжаттағы бір ... ... ... ... ... ... ... формальді CSS тілінде жазылады және стильдер кестесінде орналасады. Стильдер кестесін веб-құжаттың ішінде немесе .css кеңейтіліміндегі жеке файлда ... ... Ол файл ... ... файл болып табылады және онда CSS ережелері мен оларға түсініктемелер ғана сақталады. Стильдер кестесін веб-құжатқа 4 ... ... ... ... [21]
1) Егер стильдер кестесі жеке файлда орналасса, ол веб-құжатқа және тегтерінің арасында орналасатын тегінің көмегімен қосылады.
2) Егер ... ... жеке ... ... оның ... веб-құжаттағы және тегтерінің арасында орналасатын және тегтерінің ішіндегі import директивасының url сөзінен кейінгі ... ... ... Егер ... ... ... ішінде сипатталса, олар және тегтерінің арасында орналасатын және ... ... ... Егер ... кестеcі веб-құжаттың ішінде сипатталса, олар қандай да бір тегтің style атрибутының ішіне жазылады.
19 суретке ... ... ... ... ... ... қойылған талаптарға сай жасалды. Стильдер кестесі жеке css бумасындағы style.css файлында сақталып, стильдерді пайдаланған барлық веб-парақтарға тегін қолдану ... ... ... ... ... үшін ... мәзірі көлденең етіп жасалды. Кейбір мәзірлердің ішкі элементтері бар. Мәзірдің үстіне тышқанды апарғанда қалқымалы элементтердің ... ... CSS ... ... ... операцияларының санына және ерекшеліктеріне байланысты веб-интерфейсті қолданушылар 3 топқа бөлінді:
- Кафедра қолданушылары.
- Оқытушылар.
- ... 19 - ... ... ... веб-интерфейсі
Қолданушылардың әрқайсысы үшін жеке бумалар жасалды. Олардың веб-интерфейстеріне бірдей стиль пайдаланылды. Бірақ бір-бірінен мәзірлер саны ... қол ... ... ... және т.б. ... ... Мысалы, Админ қолданушысында хабарлама жіберу функциясы жоқ немесе Кафедра қолданушысында ... ... ... жоқ. Ал ... да, ... қолданушыларында да хабарлама жіберу мүмкіндігі бар. Қолданушы интерфейспен әрекеттесу үшін , , , , , , , т.б. HTML ... ... ... ... ... ... үшін тегі пайдаланылды. Мұндағы action атрибуты орындалатын скрипттің мекен-жайын, ал method ... ... ... ... ... ... Әдіс ретінде POST немесе GET әдістерінің бірі пайдаланылды. Мәліметтерді GET әдісі бойынша жіберу ... ... ... ... ... ... ... жіберіледі. Ал POST әдісі бойынша жібергенде қолданушыға ешқандай мәлімет ... 19 ... ... ... ... үшін қолданушы форма элементтеріне қажетті мәліметтерді енгізіп, батырманы басады. Егер форма дұрыс толтырылмаса немесе кейбір элементтер таңдалмаса, формаға енгізілген ... ... ... ... ... ... жүзеге асыру үшін JavaScript бағдарламалау тілінің jQuery кітапханасы пайдаланылды.
JavaScript - HTML-парақтардың құрамында қолданушымен әрекеттесудің функционалдылықтары мен ... ... үшін ... бағдарламалау тілі. Бұл тілді Java тілінің негізінде Netscape фирмасы Sun ... ... ... ... ... JavaScript көмегімен веб-парақта HTML стандартты тегтерінің көмегімен жасалмайтын ... ... ... ... ... тілінде жазылған скрипттер қолданушы қандай да бір әрекеттерді орындаған ... ... ... - ... ... парақтарды құруға арналған тіл: оның көмегімен HTML-құжаттардың ішіндегі мәліметтерді өзгертуге , ешқандай қосымша құралдарсыз анимация жасауға, ... ... ... ... ... ... ... күрделі математикалық есептеулер жүргізуге, интернеттен ақпарат іздеуге болады. JavaScript тілінде жазылған бағдарламалар клиенттік ... ... ... бұл тіл статикалық парақтарды интерактивті етуге мүмкіндік беретін ыңғайлы құрал. [24]
JavaScript тілінде жазылған бағдарламаларды орындау үшін интерпретатор ... ... ... ... ... ... ... Интерпретатор JavaScript тіліндегі бағдарламаны алдымен машиналық тілге жақын кодқа аударып алады. Егер қажетті интерпретатор орнатылған болса, JavaScript тіліндегі бағдарламаны ... де ... ... ... Бірақ JavaScript тілі клиент-серверлік архитектураның клиент жағында көбірек пайдаланылады. Java-апплеттермен салыстырғанда JavaScript тілінде ... ... ... ... ... болады. [13] Ол үшін бағдарламаны арнайы тегінің ішіне орналастырады: ...JavaScript тіліндегі бағдарлама.... Мұндағы language атрибуты скрипттің қай тілде жазылғандығын ... ... ... ... ... бағдарламаны оқымай кетуі үшін бағдарлама коды ... ... ... ... ... ... Жаңа ... жасау, кейбір тегтерді жою, элементтердің стильдерін өзгерту, ... ... ... ... Қолданушының, тышқанның, пернетақтаның әрекеттеріне, курсордың орын ауыстыруларына жауап қайтару.
- Парақты қайта жүктеусіз серверге ... ... және алу. Бұл ... Ajax деп ... ... ... ... терезесін шығару, т.б.
JavaScript тілінің артықшылықтары:
- HTML, CSS тілдерімен бірге пайдалануға ... ... ... ... ... орнатылған. [14]
Қарапайым JavaScript тілінің көмегімен кейбір тапсырмаларды орындау үшін ұзақ код жазу ... Осы ... ... jQuery деп ... JavaScript кітапханасы құрастырылды. [21] Мысалы, тақ және жұп жолдарының түстері әр түрлі болатын кесте құру үшін дизайнерге JavaScript тілінде ондаған ... ... код жазу ... Ал jQuery кітапханасының көмегімен бұл тапсырманы былай орындауға болады: $("table tr:nth-child(even)").addClass("stripped"). Бұл жерде алдымен құжаттағы кестелердің жұп жолдары ... ... stripped ... ...
CSS ... ... ... құрылымы мен дизайнын бөліп алғандай, jQuery арқылы HTML-құжаттың логикалық құрылымын оның элементтерімен жасалатын функциялардан бөлек қарастыруға ... ... ... да бір ... ... ... басқан кезде емес, jQuery-ге басқаруға беру арқылы жүзеге асыруға болады. jQuery кітапханасы көптеген тапсырмаларды орындауға мүмкіндік береді. jQuery басты мақсаты - ... ... ... ... ... қандай да бір операциялар жасау. Веб-технологияда CSS пайда болған кезде негізгі мәліметті стильден бөліп алу, стильдер кестесінен HTML-құжаттың ... ... ... ... ... Нәтижесінде селекторларға негізделген әдіс жасалды. [24] Мысалы, p a селекторы ... ... ... ... ... ... ... табылады. jQuery кітапханасы да CSS сияқты осы селекторларды пайдаланады. Сонымен бірге қарапайым селекторлардан басқа да селекторлар пайдаланылады. Оған ... ... ... ... жатқызуға болады. Бірақ мұндай селекторлар кейбір браузерлерде ... ... jQuery ... ... ... ... бөліп алуға болады: $(selector) немесе jQuery(selector). Мысалы, any_class CSS класын пайдаланатын тегінің ішінде орналасқан ... ... ... jQuery ... ... ... ... асыруға болады.
jQuery кітапханасының мүмкіндіктері JavaScript тілінің мүмкіндіктерімен бірдей. Бірақ оның көмегімен жылдам әрі қысқа кодтар жазуға болады. Сонымен бірге jQuery CSS ... ... ... ... Оның мүмкіндіктерін іс жүзінде пайдалану үшін HTML-құжаттың ішінде .js кеңейтіліміндегі jQuery кітапханасына сілтеме беру керек. ... ... jQuery ... Ajax ... ... және форманы серверге жіберуден бұрын тексеру кезінде пайдаланылады. [25]
Ajax (Asynchronous Javascript and XML -- ) - ... ... ... сервермен мәлімет алмасуы үшін және интерактивті веб-қосымшалардың қолданушы интерфейстерін құру үшін жасалған технология. Нәтижесінде веб-парақтағы мәліметтерді жаңарту барысында веб-парақтың ... ... ... және осылайша веб-қосымша жылдамырақ әрі ыңғайлырақ болады. [26]
Әдетте веб-қосымша былай жұмыс істейді:
- Қолданушы ... ... оның ... да бір ... үстіне басады.
- Браузер серверге сұраныс жасайды.
- Жауап ретінде сервер мүлде жаңа веб-парақты генерациялап, оны браузерге ... ... ... жауабын қабылдап, веб-парақты толығымен жаңартады.
Ajax технологиясын пайдалану былай жүзеге асады:
- Қолданушы веб-парақты көріп, оны қандай да бір ... ... ... ... ... ... парақты жаңарту үшін қандай ақпарат керек екендігін анықтайды.
- Браузер сәйкес сұранысты серверге жібереді.
- Сервер тек құжаттың сұралған ... ғана ... ... алынған ақпарат бойынша құжатқа өзгертулер енгізеді. Веб-парақ толығымен жаңартылмайды, тек керек бөлігі ғана жаңартылады.
Ajax негізінен жеке технология ... Ол ... ... біріктіру нәтижесінде жасалған. Ajax екі басты принципке негізделген:
- Серверге парақты толығымен жаңартусыз динамикалық сұраныс жасау технологиясын пайдалану. Мысалы, XMLHttpRequest технологиясын ... ... ... ... ... өзгерту үшін DHTML пайдалану.
XMLHttpRequest (қысқаша XHR) объектісі браузерге парақты ... ... ... ... ... ... ... [19] Объект атауындағы XML сөзіне қарамастан, XMLHttpRequest кез келген мәтіндік форматтағы мәліметтермен, тіпті бинарлы мәліметтермен жұмыс істей ... ... ... ... екі түрі бар: ... және ... синхронды сұраныс жасау мына түрде жүзеге асады:
var xml = ... ... ... == 200) ... 3 - ... ... ... жасау
Мұнда алдымен XMLHttpRequest объектісі алынады. Open функциясы ... ... ... ... байланыс ашылады және send(null) функциясы арқылы ешқандай мәліметсіз сұраныс жіберіледі. Синхронды сұраныс жасағанда 3 жолдағы код өңделгеннен кейін ... ... ... ... . ... жауап келгенде 4 жолдағы кодта жауап коды 200 ... ... ... ... ... ... alert ... арқылы сервер жауабының мәтіні көрсетіледі.
Серверге асинхронды сұраныс ... мына ... ... ... xml = getXmlHttp()
xml.open('GET', '/xhr/test.html', true);
xml.onreadystatechange = function() {
if (xml.readyState == 4) ... == 200) ... 4 - ... ... ... ... алдыңғы мысалдағыдай сұраныс жасалады. Сұраныс асинхронды болу үшін open функциясының үшінші параметріне true мәні беріледі. Send функциясы скрипттің ... ... ол тек ... ... ... Xmlhttp объектісі өзінің күйі туралы xml.onreadystatechange функциясын ... ... ... отырады. 4 нөмірлі күй сұраныстың аяқталғандығын білдіреді. Серверден келген жауап сәтті қабылданса alert фунциясы арқылы сервер жауабының мәтіні көрсетіледі.
Интерфейспен ... ... DOM ... Object Model) ... ... ... ... Олардың көмегімен қолданушыға көрінетін мәліметтер өңделеді, нәтижесінде мәліметтердің сыртқы көрінісі өзгереді. CSS мәліметтердің сыртқы көрінісін өзгертуге көмектеседі және DOM ... ... ... Осы төрт ... ... - DOM, CSS және ... DHTML (Dynamic HTML) ұғымын сипаттайды. [20]
Ajax технологиясы осы XMLHttpRequest технологиясына ... Оның ... ... әріп ... ... ... ... білдіреді. Мәліметтерді жіберу және қабылдау форматтары ретінде қарапайым мәтін, HTML-код, JSON немесе XML ... ... ... jQuery ... ... ... үшін jQuery.ajax() әдісі қолданылады. jQuery.ajax() функциясы асинхронды HTTP-сұраныс жасайды. Бұл әмбебап әдіс ... ... ... ... береді. Функцияның қайтаратын мәні: XHR (XMLHttpRequest) объектісінің экземпляры. [21]
Дипломдық жұмыста мобильді ... ... ... жіберу кезінде jQuery кітапханасының ajax() функциясы пайдаланылды:
$.ajax({
url: "../push/send_message.php",
type: 'POST',
data: data,
success: function() {
$('.message').val("");
$('.course option:selected').each(function() {
this.selected = false;
});
$('.student').attr('checked', ... ... ... ... жіберілмеді. Қайтадан жіберіп көріңіз.");
}
});
Листинг 5 - ajax() функциясының қолданылуы
Мұндағы, url - сұраныс жасалатын файлдың ... type - ... ... ... data - жіберілетін мәліметтер, success - сұраныс жасау сәтті аяқталған ... ... ... error - ... ... барысында қателіктер пайда болған кезде орындалатын оқиға. Сұраныс push бумасында орналасқан send_message.php файлына жасалады. Сұраныс сәтті жасалса, форма элементтері бастапқы ... ... Егер ... ... alert ... ... ... шығарылады.
3.4 Сервердің мәліметтер қоры
Мобильді қосымша серверінің мәліметтер қорын басқару жүйесі ... MySQL ... ... ... ... ... ... жұмыс істеуіне қажетті барлық ақпарат сақталады. Онда барлық студенттер, оқытушылар, ... ... оқу ... ... ... ... ... идентификаторлары, т.б. мәліметтер сақталған.
MySQL - PHP тілімен ... жиі ... ... ... басқару жүйесі (МҚБЖ). МҚБЖ дегеніміз - қолданушыларға мәліметтер қорын анықтауға, құруға, қолдауға әрі олармен қарым-қатынас жасауға ... ... ... ... Мобильді қосымша сервері үшін реляциялық мәліметтер қорының түрі пайдаланылды. Реляциялық мәліметтер қорындағы мәліметтер кестелерде сақталады. Әдетте МҚБЖ үш деңгейлі клиент-серверлік ... ... қоры ... ... ... ... - реляциялық мәліметтер қорын басқаратын жүйе. Мәліметтердің кестеге сақталуы нәтижесінде оларды өңдеу жылдамдығы артады. Кестелер бір-бірімен қатынастар арқылы ... ... ... ... ... ... ... кестелерде сақталатын мәліметтерді біріктіру мүмкіндігі бар. MySQL жүйесінің бір бөлігі және мәліметтер қорымен әрекеттесу үшін пайдаланылатын кеңінен таралған стандартты тіл ... SQL ... ... ... сипаттауға болады. [23]
MySQL - ашық кодты бағдарламалық қамсыздандыру. Оны кез келген ... ... және ... ... Бұл ... ... ... тегін табуға болады. Сонымен бірге әрбір қолданушы бағдарлама кодын көріп, оны өз мақсаттарына сай өзгерте алады.
Веб-бағдарламалауда MySQL МҚБЖ көп ... ... ол өте ... жұмыс істейді, сенімді әрі пайдалануға жеңіл болып келеді. MySQL серверін TcX компаниясы сол кездегі аналогтарымен салыстырғанда үлкен мәліметтер ... тез ... ... үшін құрастырған. Компанияның айтуынша олар MySQL серверін 1996 жылдан бастап қолданып ... ... ... ... ... ... 10000 ... кестелердің 500-ден астамында 7 миллионнан артық жол бар. ... бері бұл ... ... ... ... қажет ететін салаларда сәтті қолданылып келеді. MySQL үнемі жақсартылып отырады. Соған қарамастан бүгіннің өзінде бұл сервер көптеген мүмкіндіктер ұсына ... ... қол ... қауіпсіздігіне және жылдамдығына байланысты MySQL интернет арқылы мәліметтер қорына қарым-қатынас жасауға ыңғайлы құрал болып табылады. MySQL ... және ... ... ... өте ... ... көптеген платформаларда компиляцияланады. Әсіресе, Unix-серверлерде MySQL мүмкіндіктері толығымен пайдаланылады. [24]
MySQL екі бөліктен ... ... және ... сервері үнемі компьютерде жұмыс істеп тұрады. Клиенттік ... ... ... MySQL ... ... ... ... құралдар) арқылы SQL-сұраныстар жібереді. MySQL сервер оларды өңдеп, нәтижесін сақтап қалады. Клиенттік бағдарлама ... қоры ... ... ақпарат алу керектігін көрсетеді. Сұраныс нәтижесін MySQL сервер қайтадан клиенттік бағдарламаға жібереді.
MySQL серверінің құрылымы үш деңгейлі: мәліметтер қоры - ... - ... ... қоры мен ... ... түрі .frm, .MYD, .MYI кеңейтіліміндегі файлдар болып табылады. Логикалық түрде кестелер бірнеше жолдар жиынтығынан тұрады. Ал жолдар әр ... ... ... ... ... MySQL мәліметтер қорының атауы жүйе аумағында қайталанбауы керек, кесте ... ... қоры ... ... ... ал бір кестеде бірдей өріс атауларының болмауы тиіс. Бір MySQL серверінде бірнеше мәліметтер қоры бола ... ... ... ... ... ... үшін әр мәліметтер қорының логині мен құпиясөзі болу керек. Логин және құпиясөзді білу арқылы нақты мәліметтер қорымен жұмыс істеуге ... ... онда ... құру ... жою, ... мәлімет енгізу, өзгерту, жолдарды өшіру сияқты операциялар орындалады. Әдетте логин мен құпиясөзді қызмет ұсынушы хостинг-провайдерлер береді.
Ақпаратты сақтау үшін мәліметтер ... ... ... ақпаратты файлға сақтауға құрылған қосымшамен салыстырғанда жылдамырақ жұмыс істейді. Себебі мәліметтер қорының серверлері ... ... ... ... ... жазылады. MySQL сервері C++ тілінде жазылған. Қатқыл дискпен тікелей жұмыс істейтін, бірақ ... ... ... ... ... жазу ... емес. Себебі PHP тілі интерпретацияланатын, ал C++ компиляцияланатын тіл ... ... ... мәліметтер қорын пайдаланудың артықшылығы - мәліметтер қоры қатқыл дискпен жасалатын негізгі жұмыстарды өте ... әрі ... ... ... ... ... ... Бірнеше ағымдармен жұмыс істейді.
- C, C++, Java, Perl, PHP, Python ... үшін ... ... Әр ... ... платформаларда жұмыс істейді.
- Бағандардың бірнеше типтері бар: 1, 2, 3, 4 және 8 ... ... ... ... ... FLOAT, CHAR, DOUBLE, TEXT, VARCHAR, DATE, BLOB, TIME, TIMESTAMP, DATETIME, YEAR, ENUM және SET.
- Бірнеше кестелерді біріктірудің ... ... SELECT және WHERE ... ... мен функцияларды толығымен қолдайды.
- GROUP BY және ORDER BY SQL-сөйлемдерін, COUNT(), COUNT(DISTINCT ...), AVG(), STD(), SUM(), MAX() және MIN() ... ... ... LEFT OUTER JOIN және RIGHT OUTER JOIN ... қолдайды.
- Бір сұраныста әр түрлі мәліметтер қорларында орналасқан ... ... ... ... болып саналатын логин және құпиясөз сұрау қарастырылған.
- ODBC (Open-DataBase-Connectivity) интерфейсі арқылы мәліметтер қорына қосылу мүмкіндігі бар (Win32 ... ODBC 2.5 ... ... ... ... ... Мысалы, MySQL серверге қосылу үшін MS Access бағдарламасын пайдалануға болады.
- Әр кестеге 32-ге ... ... ... ... Әр ... 1-ден 16-ға ... бағандардан тұруы мүмкін.
- Алдын ала белгіленген немесе ... ... ... ... болады.
- Уақытша кестелер ретінде жұмыс істейтін жадыдағы кестелер бар.
- Үлкен көлемдегі мәліметтермен жұмыс істеу мүмкіндігі бар. MySQL ... 60000 ... мен ... жол үшін ... ... белгілі.
- Барлық бағандардың үнсіздік бойынша мәндері бар. Мысалы, INSERT ... ... ... ... жазу ... бағанның мәні берілмесе, оның орнына үнсіздік бойынша мәні қойылады.
- Сервер C және C++ тілдерінде жазылып, олардың барлық белгілі компиляторларында ... DELETE, UPDATE, REPLACE және INSERT ... ... ... ... ... жолдар саны қайтарылады.
- Қателер туралы ақпаратты әр түрлі тілдерде шығара алады.
- Қолданушылар MySQL серверіне TCP/IP ... ... Unix ... ... ... ... ... артықшылықтары: [4]
- Жылдам жұмыс істейді.
- Көбінесе тегін таратылады.
- Пайдаланудың қарапайымдылығы.
MySQL серверіне PHP-қосымшадан ... ... үшін PHP ... ... өзгертулер енгізу керек. Ол файлға extension=php_mysql.dll және extension_dir ="c:/php-5.0/ext" тіркестерін ... ... ... ... ... ... қорымен жұмыс істеу үшін MySQL драйвері керек. Драйвер .dll кеңейтіліміндегі файл ... ... ... PHP ... ... ... ... MySQL драйвері болады. Себебі MySQL сервері PHP-қосымшалар үшін негізгі мәліметтер қорын басқару жүйесі болып табылады.
PHP-қосымшадан MySQL серверіне қосылу үшін mysql_connect() ... ... resource ... ([ string $server = ... host") [, string $u_name = ... [, string $pass = ... [, bool ... = false [, int $client_flags = 0 ]]]]] ). [26] Мұндағы, resourse - ... мән ... яғни ... қайтарылады, server - мәліметтер қоры серверінің мекен-жайы, u_name - қолданушы логині, pass - ... ... new_link - тағы да бір ... ... болады, client_flags - MYSQL_CLIENT_SSL, MYSQL_CLIENT_IGNORE_SPACE, MYSQL_CLIENT_COMPRESS ... ... ... бірі ... Егер мәліметтер қорымен байланыс сәтті орнатылса, функция мәліметтер қорына байланыс сілтемесін қайтарады. Кері жағдайда FALSE мәнін қайтарады. PHP-қосымшадан MySQL ... ... ... ... 6 - MySQL серверімен байланыс орнату
3.5 Сервердің Google Cloud Messaging қызметімен және ... ... ... ... пайдалану үшін мобильді қосымша сервері мынадай талаптарды қанағаттандыру керек: [1]
- ... ... ... ... керек.
- GCM серверлеріне дұрыс форматтағы сұраныстар жасай алуы керек.
- Сұраныстарды өңдеп, ... ... ... ... ... алуы ... API ... және клиенттің Registration ID идентификаторларын өзінде сақтай алуы керек.
- HTTP серверлерді пайдалану үшін API кілт хабарлама ... POST ... ... жазылады.
- Жіберілген әр хабарлама бірегей болу үшін идентификатор ... ... болу ... GCM ... байланыс серверлерінің екі түрін ұсынады: HTTP және XMPP (Extensible Messaging and Presence Protocol немесе CCS). ... ... ... ... ... ... XMPP (CCS) арқылы хабарлама жіберудің HTTP хаттамасына негізделген хабарлама жіберуден айырмашылықтары: ... ... ... яғни ... ... ... және ... серверге жіберу:
- HTTP: хабарламаларды тек серверден клиентке ғана жіберуге болады. Мәліметтер ... ... ... XMPP (CCS): ... ... ... ... серверге жіберуге болады. Мәліметтер көлемі 4Kb-тан аспайды.
2) Хабарламалар жіберу (синхронды және асинхронды):
- HTTP: Синхронды. Мобильді қосымша сервері хабарламаларды HTTP ... ... ... ... ... және GCM серверлерінен жауап күтеді. Бұл әдіс синхронды болып табылады және жауап келмейінші хабарлама жіберуші басқа ... ... ... XMPP: ... Мобильді қосымша сервері хабарламаларды құрылғыларға жіберу үшін немесе олардан қабылдау үшін желінің толық жылдамдығын пайдаланатын тұрақты ... ... ... JSON ... HTTP: JSON ... ... HTTP ... арқылы POST-сұраныс түрінде жіберіледі.
- XMPP (CCS): JSON форматындағы хабарламалар XMPP хабарламаларына инкапсуляцияланады.
4) Қарапайым мәтін:
- Қарапайым мәтін түріндегі хабарламалар HTTP ... ... ... түрінде жіберіледі.
- XMPP (CCS): пайдаланылмайды.
5) Бірнеше Registration ID идентификаторларға, яғни мобильді ... ... ... ... хабарлама жіберу.
- HTTP: JSON форматындағы хабарламаларда қолданылады.
- XMPP (CCS): пайдаланылмайды.
Дипломдық жұмыста мобильді қосымша серверін жүзеге асыру үшін HTTP хаттамасы бойынша ... ... GCM ... ... ... яғни ... тек ... қосымша серверінен құрылғыларға ғана жіберу мүмкіндігі бар.
Идентификация. GCM HTTP байланыс серверіне хабарлама жіберу үшін мобильді ... ... оған ... ... ... ... мекен-жайына жіберілуі керек.
Хабарлама сұранысы 2 бөліктен тұрады: HTTP-тақырыптар және HTTP-сұраныстың денесі. HTTP-тақырыптарда мына мәліметтер қамтылуы тиіс:
- Authorization: key=API ... ... ... - мәліметтерді JSON форматында жіберу үшін немесе application/x-www-form-urlencoded;charset=UTF-8 - ... ... ... ... ... ... Егер ... тақырыбы жазылмаса, ол қарапайым мәтін ретінде қабылданады.
Хабарлама жіберудің мысалы:
Content-Type:application/json
Authorization:key=AIzaSyB-1uEai2WiUapxCs2Q0GZYzPu7Udno5aA
{
"registration_ids" : ["APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx..."],
"data" : {
...
},
}
Егер сұраныс жіберу кезінде қателік шықса, API кілттің ... ... ... Егер GCM ... ... 401 ... HTTP-жауап келсе, ол API кілттің жарамсыздығын білдіреді. Кері жағдайда мынадай жауап келуі тиіс:
{"multicast_id":6782339717028231855,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}
Сұраныс ... ... ... жоқ және тек бір ғана ... ... ... болатын ең қысқа сұраныс мынадай болады:
{ "registration_ids": [ "42" ] } - JSON форматында, ... - ... ... ... ... бар және ... мәлімет қосылған сұраныс мына түрде болады:
{ "data": {
"score": "5x1",
"time": "15:10"
},
"registration_ids": ["4", "8", "15", "16", "23", ... - JSON ... ... - ... ... түрінде, бірақ бұл жағдайда бір ғана қабылдаушыны көрсетуге болады.
Жауап форматы. Хабарлама ... ... ... ... екі ... ... ... Хабарлама сәтті өңделеді. HTTP-жауап коды 200 болады және жауаптың ... ... ... ... ... ... ... GCM сервер сұранысты өңдеуден бас тартады. HTTP-жауап коды 200-ден басқа (мысалы, 400, 401 ... ... ... сұранысты дұрыс өңдесе, жауабы мынадай түрде болуы мүмкін:
{ "multicast_id": 108,
"success": 1,
"failure": ... ... [
{ ... "1:08" ... - JSON ... - қарапайым мәтін түрінде.
Егер 6 қабылдаушыға хабарлама жіберу сұранысы жасалып, оның 3-еуі сәтті өңделіп, 3-еуі сәтсіз өңделсе және 1 ... яғни ... ... ID ... ... жауабы мынадай түрде болады:
{ "multicast_id": 216,
"success": 3,
"failure": 3,
"canonical_ids": 1,
"results": [
{ "message_id": "1:0408" },
{ "error": ... },
{ "error": ... },
{ ... "1:1516" },
{ ... ... "registration_id": "32" },
{ "error": "NotRegistered"}
]
} - JSON форматында.
Мобильді қосымша серверінен құрылғыларға жіберілетін хабарлама мынадай компоненттерден тұрады:
- ... ... ... ... ... ... сипаттайды.
- Мәліметтер: хабарламамен бірге жіберілетін қосымша мәліметтер. Міндетті емес.
Әр компоненттің ... 1 ... ... ... ... ... ... серверінің сұранысын қабылдап, оны өңдегеннен кейін серверге жауап қайтарады. Мобильді қосымша сервері GCM серверінен келген жауапты өңдеу үшін оның ... және ... ... ... керек. 2 кестеде мүмкін болатын жауаптар көрсетілген. [1]
3 кестеде GCM ... ... ... ... ... ... [1]
Кесте 1 - HTTP серверлер арқылы жіберілетін JSON форматындағы хабарламалардың нысаналары, параметрлері және ... ... ... ... ... ... жиым ... болады.
Бұл параметр хабарламаны қабылдаушы құрылғылар тізімін (registration IDs) анықтайды. Мұнда кем дегенде 1 және 1000-нан аспайтын идентификаторлар ... ... 1-ден көп ... бірден хабарлама жіберу JSON форматын пайдалану арқылы ғана мүмкін болады.
notification_key
registration_ids көрсетілмесе, пайдалану міндетті. ... ... ... бір ... ... ... байланысты болса пайдаланылады.
Параметрлер
collapse_key
Пайдалану міндетті емес. Тіркес түрінде болады.
Бұл параметр бірнеше хабарламаларды біріктіру үшін пайдаланылады. Егер қолданушының ... ... ... ... өшіп ... ... GCM ... хабарламаны өзіне сақтап қояды.Құрылғы интернетке қосылған кезде GCM сервер бірдей collapse key параметрлері көрсетілген хабарламаларды ... ... ... бір хабарлама етіп жібереді. Бұл параметр қолданушының бір уақытта бірнеше бірдей хабарлама алуын ... үшін ... GCM ... ... ... JSON форматындағы хабарламаларда қолданылады және boolean типінде болады.
Бұл параметрдің мәні true болса, құрылғы белсенді болғанша хабарлама ... ... ... ... мәні ... 1жалғасы
time_to_live
Пайдалану міндетті емес. JSON форматындағы хабарламаларда қолданылады және number типінде болады.
Бұл параметр егер ... ... ... ... ... өшіп тұрса GCM серверінде қанша уақытқа дейін сақталып тұру керектігін ... GCM ... ... 4 ... ұзаққа сақтамайды. Үнсіз келісім бойынша мәні 4 аптаға тең.
restricted_package_
name
Пайдалану міндетті емес. Типі тіркес болады.
Бұл параметр хабарламаны қабылдаушылардың registration_ids сәйкес ... ... ... ... ... анықтайды.
dry_run
Пайдалану міндетті емес. JSON форматындағы хабарламаларда қолданылады және boolean типінде болады.
Бұл параметрдің мәні true болса, ... ... ... ... ... ... ... болады. Үнсіз келісім бойынша мәні false.
Мәліметтер
Data
Пайдалану міндетті емес. JSON форматындағы хабарламаларда қолданылады және object типінде болады.
Бұл параметр хабарламалар ішіндегі кілт-мән ... ... ... ... шектеу қойылмайды. Бірақ хабарламаның жалпы көлемі 4kB аспауы керек. Мысалы, data: {"message":"hello"}. Кілт атауы кейбір пайдалануға тиым салынған сөз ... ... ... from ... google ... ... кез ... сөз). Мәндерді тіркес типінде берген жөн.
Кесте 2 - Мобильді қосымша серверінен құрылғыларға хабарлама жіберу барысында GCM серверінен келетін HTTP-жауаптың тақырыптары
Жауап
Сипаттамасы
200
Хабарлама ... ... ... ... ... ... ... толық мәлімет көрсетіледі.
Кесте 2 жалғасы
400
Тек JSON форматындағы сұраныстарда қолданылады. Сұраныстың JSON форматында өңделе алмайтындығын немесе онда қате өрістердің болуын білдіреді ... ... ... ... ... сан ... ... т.с.с.). Сәтсіздіктің нақты себептері жауаптың негізгі бөлігінде сипатталады және ол мәселе хабарламаны қайтадан жібермес бұрын шешілуі ... ... қате ... ... ... ... сұранысты өңдеу барысында GCM серверінде ішкі қателіктер туындағандығын немесе сервердің уақытша жұмыс істемейтіндігін білдіреді.
Кесте 3 - ... ... ... ... ... жіберу барысында GCM серверінен келетін HTTP-жауаптың негізгі бөлігі
Параметр
Пайдалану қажеттілігі
Сипаттамасы
multicast_id
Міндетті, типі number
Хабарламаның бірегей идентификаторы (UniqueID).
success
Міндетті, типі number
Сәтті ... ... ... типі ... ... ... хабарламалар саны.
canonical_ids
Міндетті, типі number
Ескірген идентификаторлар (registration_ids) саны
results
Міндетті емес, типі array object
Өңделген хабарламалар туралы ақпарат ... ... ... ... реті сұраныстағы идентификатолардың ретіне сәйкес келеді.
message_id: сәтті өңделген әрбір хабарлама үшін бірегей ID ... ... егер ... ... мобильді қосымшаның идентификаторы өзгертілген болса, осы кілттің мәні болатын тіркес. Мобильді қосымша серверінің мәліметтер ... ескі ... ... ... ... хабарламаны өңдеу барысында пайда болған қатені сипаттайтын тіркес.
Мобильді қосымша серверінен GCM ... HTTP ... ... ... ... үшін cURL (Client URLs) ... ... PHP тілінде Daniel Stenberg жазған әр түрлі көптеген хаттамалар арқылы әр түрлі көптеген серверлермен қарым-қатынас жасауға ... ... libcurl ... ... ... бар. ... кезде libcurl кітапханасы http, https, ftp, gopher, telnet, dict, file және ldap хаттамаларымен жұмыс істеуге мүмкіндік береді. ... ... libcurl HTTPS ... ... ... ... POST және PUT әдістерінің көмегімен HTTP серверлерге сұраныстар жібере алады, HTTP және FTP хаттамалары арқылы файлдар ... ... ... cookies және ... ... пайдалана алады. Бұл функциялар PHP 4.0.2 нұсқасынан ... ... ... PHP ... ... үшін libcurl кітапханасын орнату керек. libcurl кітапханасының 7.10.5 нұсқасын немесе одан жаңаларын пайдалану керек. Мобильді қосымша серверінен GCM ... ... ... ... ... асады:

Листинг 7 - GCM серверіне сұраныс жасау
Мұнда GCM ... ... ... ... оның ... ... анықталған. Бұл файлды кез келген скрипттен шақырып, GCM класының экземплярын алып, оның ... ... ... ... ... хабарлама жіберуге болады. Әдістің параметрлері:
- registration_ids - хабарламаны қабылдаушылардың ... message - ... ... ... ... ... және ... $url - сұраныс жасалатын сервердің мекен-жайы.
- $fields - POST-сұраныстың ... ... ... жұбы ... жазылатын жиым. Мұнда хабарламаны қабылдаушылар идентификаторлары және хабарлама мәтіні жазылады.
- $headers - ... ... ... API кілт және ... форматы жазылады.
- $ch - cURL сеансына сілтеме.
- curl_init() - жаңа cURL ... ... ... сол ... ... ... ... curl_setopt() - cURL сеансына параметрлер орнататын функция.
- curl_setopt($ch, CURLOPT_URL, $url) - $url айнымалысында көрсетілген мекен-жаймен ... ... ... ... true) - сұраныстың POST әдісі арқылы ... ... ... ... ... - ... ... ретінде $headers жиымының мәндерін орнатады.
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) - ... ... ... жауапты шығару керектігін анықтайды.
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false) - желі ... ... ... ... жоқ ... ... ... CURLOPT_POSTFIELDS, json_encode($fields)) - POST-сұраныстың негізгі мәліметтері ретінде $fields жиымының мәндерін орнатады.
- $result = curl_exec($ch) - сеансты ... ... ... - ... жабатын функция.
Хабарламаларды әрі қарай мобильді қосымшаға жіберумен GCM сервер айналысады. ... ... ... ID мобильді қосымша серверінің мәліметтер қорына сақтау үшін HTTP хаттамасы арқылы POST әдісімен сұраныс жасайды. Егер ... ... ... ... қосымша идентификаторы мәліметтер қорына сақталса, сервер оған сәйкес хабарлама жібереді. Бұл операцияларды жүзеге асыруды registration.php скрипті орындайды. Мобильді қосымшаны ... үшін ... ... және ... ... ... сұраныс жасауы керек. Осы операцияны орындауды login.php скрипті атқарады. Мобильді қосымша басқа да қажетті ... алу үшін ... ... ... ... ... істеу барысындағы қауіпсіздік негіздері
Мобильді қосымша серверін құру барысында сервердің веб-интерфейсін қолданушылар үшін аутентификация және ... ... ... ... асырылды. Аутентификация - қолданушы мәліметтерінің дұрыстығын тексеру процедурасы. Тексеруден өту үшін ... ... ... және ... жұбын көрсетуі қажет.Ал авторизация дегеніміз - белгілі бір субъектіге белгілі бір ... ... ... ... ... ... осы ... орындауға тырысу барысындағы рұқсатты тексеру процесі. Қазіргі кезде веб-қосымшалар құруда аутентификацияны жүзеге асырудың бірнеше жолдары бар. ... ... ... ... HTTPS ... ... cookies, OpenID бойынша және көп факторлы аутентификация.
Базалық аутентификацияны пайдалану барысында қолданушыдан логин және құпиясөз ... ... ... ... ... ... жіберуі керек. Мәліметтер HTTP хаттамасы бойынша жүретін POST және GET-сұраныстардың құрамында ашық ... ... ... ... ... ... ... арқылы жүзеге асыруға болады (мысалы, Apache веб-серверінде .htaccess ... ... ... бұл ... ... ... ... жеңілдігі болып табылады.
Дайджест-аутентификацияны пайдалану барысында қолданушының құпиясөзі ашық түрде емес, ... ... ... Құпиясөзді хештеу үшін оған қосымша тіркес қосылып, MD5 хештеу функциясы пайдаланылады. Ол тіркес әрбір сұраныс сайын ... ... ... HTTP ... ... жүзеге асады. Дайджест-аутентификацияны қазіргі кездегі көптеген серверлер мен браузерлер қолдайды.
HTTPS хаттамасы сервер мен ... ... ... тек ... мен ... ғана емес, барлық мәліметті шифрлеуге мүмкіндік береді. HTTPS хаттамасын егер қолданушы ... ... ... ... ... ғана ... ... Мысалы, мекен-жай, кредиттік карта нөмірі, т.б. енгізу кезінде қауіпсіздікті күшейтуге мүмкіндік береді. Бірақ бұл ... ... ... ... байланыс жылдамдығын төмендетеді.
Хабарлама алмасу, пікір алмасу, ойындар ұсынатын ... ... ... ... ретінде cookies пайдаланады. Егер cookies ұрланған болса, сол сайттарға ... ... ... ... Қауіпсіздікті күшейту үшін IP-адрес бойынша аутентификация жүргізу пайдаланылады. ... cookies ... ... ... рет ... ... ... қауіпсіздік айтарлықтай күшейеді. Бірақ IP-адресті де өзгерту мүмкіндіктері бар. Сондықтан аутентификацияның бұл түрін пайдалану қауіпті. Қазір көптеген браузерлер кейбір ... cookies ... ... ... ... ... үшін ... идентификациялық провайдерде тіркелу керек. Аутентификацияның бұл түрі үшін ... ... ... жоқ. Сайтқа кіруді провайдер ұйымдастыратын болады. Осылайша бірнеше сайтқа кіру үшін бір ғана ... ... ... ... - ... сайт үшін бір ғана логин және құпиясөзді пайдалану және қауіпсіздік. Кемшіліктері - ... ... және ... ... арқылы бірнеше сайтқа кіру мүмкіндігі жоғалады.
Дипломдық жұмыста мобильді қосымша ... үшін ... ... асырудың мақсаттары:
- Қауіпсіздікті арттыру. Серверді сыртқы қолданушылардың пайдалануын болдырмау.
- Аутентификация барысында қолданушыларды бөліп алуға ... ... ... ... ... ... жүзеге асыру үшін оның базалық түрі пайдаланылды. Сонымен бірге қауіпсіздікті арттыру үшін сервердің мәліметтер қорында қолданушылардың құпиясөздерін ашық ... ... ... ... бір ... бойынша хештелген түрде сақтау қарастырылды. Сервер мен клиент мәлімет алмасу барысында әрбір сұраныс жаңа сұраныс ретінде, яғни алдыңғысына мүлдем ... ... ... мен ... ... ... орнатпайды. Сол үшін сервердің белгілі бір уақытқа дейін қолданушыны есте сақтап қалуы үшін сессия пайдаланылды.
Қолданушылар туралы ... ... ... ... ... кестелерінде сақтаулы тұрады. Қолданушы веб-интерфейсті пайдалануды бастаған кезде одан логин және құпиясөзді енгізуді сұрайтын ... ... ... қажетті мәліметтерді енгізіп, серверге HTTP хаттамасы бойынша POST-сұраныс жібереді. Серверде мәліметтерді өңдеуші скрипт орналасқан:

Листинг 8 - Қолданушы аутентификациясын ... ... ... - ... үшін жаңа сессия бастайтын функция. Жаңа сессия орнатылған кезде серверде сол ... үшін файл ... ... ... ... жазылып отырады. Қолданушы туралы мәліметтерді $_SESSION ауқымды жиымы арқылы басқаруға болады. Егер $_POST ... login ... password ... жоқ ... ... сәйкес хабарлама көрсетіледі. Кері жағдайда енгізілген мәліметтер мәліметтер қорындағы логин және құпиясөзбен салыстырылады. Егер мәліметтер оқытушылар кестесінен табылса, қолданушы сәйкес ... ... ... егер ... туралы ақпарат сақталған кестеден табылса, кафедра қолданушыларының басты бетіне жіберіледі. Қолданушы енгізген мәліметтер ... ... ... ... ... оның логині және қосымша мәліметтері жазылады. Олар кейіннен авторизация жүргізу үшін қажет болады. Қолданушылардың құпиясөздерін хештеу үшін PHP тілінің crypt() ... ... ... ... етіп ... үшін ... бірге salt деп аталатын тіркес қолданылады. Тіркестің ұзындығына және бастапқы символдарына қарай crypt() функциясы ... әр ... ... ... ... ... ... хештеу үшін blowfish функциясы пайдаланылды. Оның артықшылығы - ... бұзу ... ... Crypt() ... ... оны пайдалану арқылы хештелген құпиясөзді кері хештеу мүмкін емес. Қолданушы енгізген мәліметтердің дұрыстығын тексеру үшін ... дәл сол ... ... ... ... мәліметтер қорындағы хештеліп қойған құпиясөзбен салыстырылады. Егер екеуі ... ... ... ... ... өтуге рұқсат етіледі. Хештеуші функция:
$blowfish_start = '$2a$15$';
$blowfish_end = ... = ... = ... = ... = ... = 0; $j < ... $j++) ... .= $available_chars[mt_rand(0, $chars_length)];
}
$blowfish_salt = $blowfish_start . $salt . $blowfish_end;
$hashed_password = crypt($password, $blowfish_salt);
Листинг 9 - ... ... ... ... - salt ... бастапқы символдары, $blowfish_end - соңғы символ. Құпиясөз blowfish фунциясы арқылы хештелу үшін salt ... осы ... ... керек. Тіркестің жалпы ұзындығы 29 символ болуы тиіс. Тіркестің ортаңғы ... ... ... ... ... ... crypt() функциясының кіріс параметрлері ретінде құпиясөз бен salt тіркесі беріледі. Нәтижесінде хештелген ... ... ... ... ... жиымын тексеру арқылы жүзеге асырылды:

Листинг 10 - ... ... ... ... ... ... жиымындағы login айнымалысының бар-жоғы тексеріледі. Егер айнымалы бар болса, оның мәні кестедегі мәліметтермен салыстырылады. Логин қандай да бір ... ... ... ... әрі ... ... береді. Кері жағдайда қолданушы басты бетке жіберіледі. Бұл жерде қолданушы логин және ... ... ... ... Бұл скрипт әрбір параққа сілтеме арқылы қосылды: .
Серверде орналасқан скрипттерді мекен-жай жолағы арқылы ... ... ... ... үшін ... ... мен ... арасында API кілт пайдалану қарастырылды. API кілт ұзындығы 40 символдық латын әріптері мен цифрлардан тұратын тіркес болып табылады (мысалы, API_key = ... 20 ... ... ... ... серверге әрбір сұраныс сайын басқа да параметрлермен бірге API кілтті бірге қосып жібереді. Егер API кілт ... ... ... қосымшаға сервермен әрі қарай қарым-қатынас жасауға мүмкіндік беріледі. Егер дұрыс болмаса ешқандай ... ... . API кілт ... де, ... ... да ... API кілт пайдалану сервердің қауіпсіздігін арттырады.
Сурет 20 - ... ... мен ... API кілт арқылы мәлімет алмасуы
ҚОРЫТЫНДЫ
Дипломдық жұмыста кафедраның тәрбие жұмысын жүргізу барысында ... және ... ... ... орнатуға бағытталған және олардың мобильді құрылғыларына хабарлама жіберуге мүмкіндік беретін мобильді қосымша сервері құрылды. Сервер push-технология бойынша жұмыс істейді, яғни ... ... мен ... ... ... ... тарапынан push-хабарламалар жіберу арқылы жүзеге асырылды. Дипломдық жұмыста push-технологияны жүзеге асыру үшін Google Inc. компаниясының Google Cloud ... (GCM) ... ... пайдаланылды. Бұл қызмет арқылы Android операциялық жүйесінде жұмыс істейтін мобильді құрылығыларға хабарлама жіберуге болады.
Сервердің жұмыс істеу ... ... үшін ... ... ... UML ... жүйе ... жалпы моделі құрылды және сервердің мәліметтер қоры жобаланды.
Серверге қойылған талаптарға сәйкес қолданушыларға түсінікті әрі ыңғайлы веб-интерфейс ... ... ... ету үшін қолданушыларға аутентификация және авторизация жүргізу жүзеге асырылды. Сонымен бірге кейбір қажетті мәліметтерді алу үшін API ... ... ... ... сұраныс жасау мәселелері де жүзеге асырылды.
Сервер арқылы мобильді құрылғыларды қолданушылар арасында, яғни оқытушы мен оның тобындағы студенттер арасында хабарламалар ... ... ... ... ... ... жүргізу барысында студенттер мен оқытушыларға хабарлама жіберу ... ... ... ... орнатуға жеңілдіктер береді. Осы жүйені толығымен жүзеге асырып, қолданысқа енгізу үшін iOS, Windows Phone сияқты көп ... ... ... істейтін мобильді қосымшалар жазып, кроссплатформалық, яғни кез келген платформадағы мобильді құрылғыларға ... ... ... ... ... құруға болады.
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ
1 Бағдарлама құрушыларға арналған ақпараттық сайт ... ... - ... ... ... ... Буч Г., ... Д., Якобсон И. Язык UML. Руководство пользователя, 2-е изд.: Пер. с ... ... Н. - М.: ДМК ... 2006. - 496 с.: ил. - С. ... ... А.В. Базы ... : учеб. пособие для студ. высш. учеб. заведений / А.В.Кузин, С.В.Левонисова. - 5-е изд., испр. - М.: ... ... , 2012. - 320 с. - С. ... ... Л., ... Л. ... ... с помощью PHP и MySQL, 3-е изд.: Пер. с ... - М.: ... дом , 2008. - 880 с.: ил. - ... - С. 27-43.
5 Конверс Т., Парк Д., Морган К. PHP 5 и MySQL. Библия пользователя.: Пер с ... - М.: ... дом , 2006. - 1216 с.: ил. - ... - С. 43-55.
6 Ломов А.Ю. HTML, CSS, скрипты: практика создания сайтов. - СПб.: БХВ-Петербург, 2006. -416 с.: ил. - С. ... ... М. ... HTML и CSS: для ... Web-сайтов : [учеб. пособие].: Пер. с англ. А.Климович. - М.: ТРИУМФ, 2007. - 304 с.: ил. - ... ... ... - Доп. тит. л. ... - С. ... Росс В. С. ... ... HTML, CSS, PHP, MySQL. Учебное пособие, ч. 1 -- ... М.:2010 - 107 с. - С. ... Shafer D., Andrew R. HTML Utopia: ... Without Tables Using CSS. Second Edition, 2006. ... by ... Pty. Ltd. - P. 111-120.
10 Ollson T., O'Brien P.. The Ultimate CSS ... First Edition, 2008. ... by ... Pty. Ltd. - P. ... Джамса К., Кинг К., Андерсон Э. Эффективный самоучитель по креативному Web-дизайну. HTML, XHTML, CSS, JavaScript, PHP, ASP, ActiveX. Текст, графика, звук и ... Пер. с ... - М.: ООО , 2005. - 672 с. - С. ... Suehring S. ... Step by Step. Second Edition. - 2010. - P. ... ... П.А. Веб-мастеринг на 100% : HTML, CSS, JavaScript, PHP, CMS, Ajax, ... - СПб.: ... 2010. - 512 с.: ил. - С. ... Easttom C. Advanced JavaScript. 2008. Published by WordWare Publishing, Inc. - P. ... Бибо Б., Кац И. jQuery. ... ... по ... JavaScript. - Пер.сангл. - СПб.: Символ-Плюс, 2009. - 384 с., ил. - С. ... ... Н.А. jQuery. ... ... ... на ... - М.: ООО , 2010. - 272 с.: ил. - С. ... Swedberg K, Chaffer J. jQuery 1.4 ... Guide. A ... ... of the popular JavaScript library. First published: 2010. Published by Packt Publishing Ltd. - P. ... Crane D., ... E. with James D. Ajax in Action. Manning ... Co, 2010. - P. ... Heilman C. Beginning JavaScript with DOM Scripting and Ajax. 2006. Published by Springer-Verlag New York, Inc. - P. ... Schmitt C. Adapting to Web ... CSS and Ajax for Big Sites. 2008. ... by New Riders. - P. 91-110.
21 Каслдайн Э., Шарки К. Изучаем jQuery. 2-е изд. - СПб.: ... 2012. - 400 с.: ил. - С. ... Nixon R. Learning PHP, MySQL & ... with jQuery, CSS & HTML5. 2015. ... by O'Relly Media, Inc. - P. 165-206.
23 Прохоренок Н.А. HTML, ... PHP и MySQL. ... ... Web-мастера. - 3-е изд., перераб. и доп. - СПб.: БХВ-Петербург, 2010. -912 с. - С. ... ... В. MySQL 5.0. ... ... Питер. Санкт-Петербург. - 2010. - С. 9-10.
25 Кузнецов М.В. MySQL 5. - СПб. : ... - 2010. - 1024 с. : ... ... Р. ... ... ... с помощью PHP, MySQL и JavaScript. - СПб.: Питер, 2011. -496 с. - С. 244-245.
Қосымша A
Хабарлама ... ... ... ... ... ... жетілдіру













Логин және құпиясөзді енгізіңіз



















login.php

session.php

sending_message.php





Хат жіберу





$(document).ready(function() {
$('button.ok, .alert_box').click(function() {
$('.alert_box').fadeOut("slow");
return false;
});
$(window).resize(function() {
if (!$('.alert_box').is(':hidden')) show_alert();
});
$('form').submit(function() {
var message = ... course = ... student = ... teacher = ... error = 0;
if(message.val() == '') {
message.addClass('error');
error = 1;
}
if(course.val() == ... ... = ... == false) && (teacher.is(':checked') == false)) {
$("div#checkboxes").addClass('error');
error = 1;
}
if(error == 0) ... data = ... ... ... data,
success: function() {
$('.message').val("");
$('.course option:selected').each(function() {
this.selected = false;
});
$('.student').attr('checked', false);
$('.teacher').attr('checked', false);
show_alert();
},
error: function() {
alert("Хабарлама жіберілмеді. Қайтадан жіберіп көріңіз.");
}
});
}
return false;
}); ... ... ... ... = ... ... = $(window).width();
var margin_top = (document_height/3) - ($('.alert_box').height());
var margin_left = (window_width/2) - ($('.alert_box').width()/2);
$('.alert_box').css({top: margin_top, left: margin_left}).fadeIn("slow");
}























Хат ... ... ... (CTRL ... ... ... бірнеше курсты бірден таңдай аласыз)



1 курс
2 курс
3 курс
4 курс






Хат қабылдаушыларды таңдаңыз (тек біреуін немесе ... ... ... ... - ... ... ... қорының физикалық моделі
CREATE TABLE `academic_years` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`from_semester` int(11) NOT ... int(11) NOT ... KEY ... `academic_years_fk1` (`from_semester`),
KEY `academic_years_fk2` (`to_semester`)
)
CREATE TABLE `admin` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`login` ... COLLATE ... NOT ... ... COLLATE ... NOT ... KEY ...
CREATE TABLE `department` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`login` varchar(255) COLLATE latin1_general_ci NOT NULL,
`password` varchar(255) COLLATE latin1_general_ci NOT ... ... COLLATE ... NOT ... KEY ... TABLE ... (
`id` int(11) NOT NULL AUTO_INCREMENT,
`student_id` int(11) NOT NULL,
`subject_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `extra_semester_fk1` (`student_id`),
KEY `extra_semester_fk2` (`subject_id`)
)
CREATE TABLE `fluorography` ... int(11) NOT NULL ... int(11) DEFAULT ... date DEFAULT ... KEY ... ... (`student_id`)
)
CREATE TABLE `groups` (
`id` int(11) NOT NULL ... text ... SET utf8 COLLATE ... int(11) DEFAULT ... int(11) DEFAULT ... KEY (`id`),
KEY `groups_fk1` (`adviser_id`)
)
CREATE TABLE `messages` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`message` text CHARACTER SET utf8 COLLATE ... ... NOT NULL DEFAULT ... ... ... SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`message_to` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY ... ... TABLE ... ... int(11) NOT NULL ... text CHARACTER SET utf8 COLLATE utf8_unicode_ci,
`description` text ... SET utf8 COLLATE ... date NOT NULL DEFAULT ... int(11) DEFAULT ... KEY ... `sections_fk1` (`teacher_id`)
)
CREATE TABLE `section_registration` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`section_id` int(11) NOT NULL,
`student_id` int(11) NOT NULL,
`registered_at` date DEFAULT '2015-02-25',
PRIMARY KEY ... ... ... `section_registration_fk2` (`student_id`)
)
CREATE TABLE `semesters` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 COLLATE ... DEFAULT ... date NOT NULL DEFAULT ... KEY ...
CREATE TABLE `students` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`reg_id` text COLLATE latin1_general_ci,
`login` varchar(255) COLLATE ... NOT ... ... COLLATE ... NOT ... ... COLLATE ... NOT NULL,
`first_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`last_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT ... int(11) DEFAULT ... ... COLLATE ... DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `login` (`login`),
KEY `students_fk1` (`group_id`)
)
CREATE TABLE `students_subjects` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`student_id` int(11) NOT ... int(11) NOT ... int(1) DEFAULT ... int(11) DEFAULT ... float DEFAULT ... varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
`semester` int(11) NOT NULL,
`teacher_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `students_subjects_fk2` (`subject_id`),
KEY `students_subjects_fk3` (`semester`),
KEY `students_subjects_fk4` ... ... ...
CREATE TABLE `subjects` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY ... ... TABLE ... (
`id` int(11) NOT NULL AUTO_INCREMENT,
`reg_id` text COLLATE latin1_general_ci,
`login` varchar(255) COLLATE latin1_general_ci NOT ... ... COLLATE ... NOT ... ... COLLATE ... NOT NULL,
`first_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`last_name` varchar(255) CHARACTER SET utf8 COLLATE ... DEFAULT ... KEY ... KEY `login` ...

Пән: Автоматтандыру, Техника
Жұмыс түрі: Дипломдық жұмыс
Көлемі: 77 бет
Бұл жұмыстың бағасы: 1 300 теңге









Ұқсас жұмыстар
Тақырыб Бет саны
Delphi және мәліметтер қоры сервері31 бет
Delphi және мәліметтер қоры сервері. мәліметтерге ado арқылы қатынау26 бет
Delphi ортасында кітапхана жұмысына МБ құру20 бет
Delphi7 объектілі бағытталған программалау ортасы34 бет
Delphi7 обьектілі бағытталған бағдарламалау ортасы17 бет
Java және Android бағдарламасында мобильді құрылғы құру30 бет
SQL серверін қолданып қосымшалар жүйесін жетілдіру80 бет
Windows NT ОЖ клиент-серверлі құрылымы. Жады серверлері және торап сервері оқып үйрену17 бет
«Биология. Адам және оның денсаулығы» (8-сынып) пәнін оқытуда жеке тұлғаға бағытталған технологияны пайдалану39 бет
«Испания журналистикасы» атты ғылыми-зерттеу жұмысына тезис11 бет


Исходниктер
Пәндер
Көмек / Помощь
Арайлым
Біз міндетті түрде жауап береміз!
Мы обязательно ответим!
Жіберу / Отправить


Зарабатывайте вместе с нами

Рахмет!
Хабарлама жіберілді. / Сообщение отправлено.

Сіз үшін аптасына 5 күн жұмыс істейміз.
Жұмыс уақыты 09:00 - 18:00

Мы работаем для Вас 5 дней в неделю.
Время работы 09:00 - 18:00

Email: info@stud.kz

Phone: 777 614 50 20
Жабу / Закрыть

Көмек / Помощь