Информационная система для мобильных устройств
Компьютерные сети и протоколы передачи данных. Устройства, взаимодействующие с компьютерными сетями при помощи протоколов передачи данных. Мобильные вычислительные устройства и операционные системы. Клиент-серверное приложение для управления расписанием.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 11.12.2015 |
Размер файла | 1,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
(ФГБОУ ВПО «КУБГУ»)
Кафедра информационных технологий
ДОПУСТИТЬ К ЗАЩИТЕ В ГАК
Заведующий кафедрой
кандидат физико-математических наук, доцент
_____________ Ю. В. Кольцов
___________________ 2015г.
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
БАКАЛАВРА
информационная система для мобильных устройств
Работу выполнил Е. Е. Бутусов
Факультет компьютерных технологий и прикладной математики курс 4
Специальность «Прикладная математика и информатика»
Научный руководитель,доц., канд. физ.-мат. наук. _____В. В. Подколзин
Нормоконтроллер, ст. преп. А.В. Харченко
Краснодар 2015
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
1. Технологии, необходимые для реализации программной системы для мобильных устройств
1.1 Компьютерные сети и протоколы передачи данных
1.1.1 Компьютерные сети
1.1.2 Протоколы передачи данных
1.1.3 Мобильная связь
1.2 Устройства, взаимодействующие с компьютерными сетями при помощи протоколов передачи данных
1.2.1 Мобильные вычислительные устройства
1.3 Программное обеспечение, взаимодействующее с компьютерными сетями
1.3.1 Операционная система
1.3.2 Мобильные операционные системы
1.4 Технологии доступа
1.5 Языки разработки клиент-серверных приложений
1.6 Программные решения доступа к данным
2. Клиент-серверное приложение для управления расписанием
2.1 Постановка задачи
2.2 Модель данных
2.3 Основные бизнес-процессы приложения
2.4 Серверная часть системы
2.4 Веб-клиент
2.5 Мобильный клиент для операционной системы iOS
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ А
ВВЕДЕНИЕ
Расписание занятий в университете является удобным средством отражения графика занятий, а также позволяет информировать студентов и преподавателей о коррективах в этом графике. В настоящее время в большинстве университетов используется расписание, заполняемое вручную. Такой подход не является самым экономичным, поскольку использует человеческий труд вместо машинного, стоящий намного дороже. К тому же, данный вид расписания создается в единственном экземпляре и является стационарным - человеку необходимо либо время от времени подходить к стенду с расписанием, либо переписывать его (что не избавляет от необходимости посещения стенда с расписанием, поскольку нужно быть в курсе изменений в расписании).
В первой части данной работы рассматриваются технологии, языки и прочие средства, которые были использованы при решении задачи построения системы для мобильных устройств.
Вторая часть работы состоит из четырех подчастей: описание модели данных системы, описание бизнес-логики системы, описание серверной части (непосредственно сервера и веб-клиента) и описание мобильного клиента.
1. Технологии, необходимые для реализации программной системы для мобильных устройств
1.1 Компьютерные сети и протоколы передачи данных
1.1.1 Компьютерные сети
Компьютерная сеть (вычислительная сеть, сеть передачи данных) -- система связи компьютеров или вычислительного оборудования (серверы, маршрутизаторы и другое оборудование). Для передачи данных могут быть использованы различные физические явления, как правило -- различные виды электрических сигналов, световых сигналов или электромагнитного излучения[1].
Существует несколько классификаций компьютерных сетей:
1) По территориальной распространенности: PAN (Personal Area Network) -- персональная сеть, предназначенная для взаимодействия различных устройств, принадлежащих одному владельцу; ЛВС (LAN, Local Area Network) -- локальные сети, имеющие замкнутую инфраструктуру до выхода на поставщиков услуг. Термин «LAN» может описывать и маленькую офисную сеть, и сеть уровня большого завода, занимающего несколько сотен гектаров. Зарубежные источники дают даже близкую оценку -- около шести миль (10 км) в радиусе. Локальные сети являются сетями закрытого типа, доступ к ним разрешён только ограниченному кругу пользователей, для которых работа в такой сети непосредственно связана с их профессиональной деятельностью; CAN (Campus Area Network -- кампусная сеть) -- объединяет локальные сети близко расположенных зданий; MAN (Metropolitan Area Network) -- городские сети между учреждениями в пределах одного или нескольких городов, связывающие много локальных вычислительных сетей; WAN (Wide Area Network) -- глобальная сеть, покрывающая большие географические регионы, включающие в себя как локальные сети, так и прочие телекоммуникационные сети и устройства. Пример WAN -- сети с коммутацией пакетов (Frame relay), через которую могут «разговаривать» между собой различные компьютерные сети. Глобальные сети являются открытыми и ориентированы на обслуживание любых пользователей; Термин «корпоративная сеть» также используется в литературе для обозначения объединения нескольких сетей, каждая из которых может быть построена на различных технических, программных и информационных принципах.
2) По типу функционального взаимодействия: клиент-сервер; смешанная сеть.
3) По типу сетевой топологии: Шина; Кольцо; Двойное кольцо; Звезда; Ячеистая; Решётка; Дерево; Fat Tree (топология компьютерной сети, изобретенная Charles E. Leiserson из MIT, является дешевой и эффективной для суперкомпьютеров. В отличие от классической топологии дерево, в которой все связи между узлами одинаковы, связи в утолщенном дереве становятся более широкими (толстыми, производительными по пропускной способности) с каждым уровнем по мере приближения к корню дерева. Часто используют удвоение пропускной способности на каждом уровне).
4) По типу среды передачи: проводные (телефонный провод, коаксиальный кабель, витая пара, волоконно-оптический кабель); беспроводные (передачей информации по радиоволнам в определенном частотном диапазоне).
5) По функциональному назначению: сети хранения данных; серверные фермы; сети управления процессом; сети SOHO; домовые сети.
6) По скорости передач: низкоскоростные (до 10 Мбит/с); среднескоростные (до 100 Мбит/с); высокоскоростные (свыше 100 Мбит/с).
7) По сетевым операционным системам: на основе Windows; на основе UNIX; на основе NetWare; на основе Cisco.
8) По необходимости поддержания постоянного соединения: пакетная сеть (Фидонет, UUCP); Онлайновая сеть (Интернет, GSM)[1].
При реализации компьютерной сети могут использоваться различные наборы протоколов, некоторые из них: AppleTalk; ARCNET; ATM; DECnet; Ethernet; HIPPI; IEEE-488; IP; IPX; Myrinet; TCP; Token Ring; UDPSPX; FDDI; QsNet; USB; IEEE 1394 (Firewire, iLink); X.25; Frame relay; Bluetooth; IEEE 802.11; Systems Network Architecture; RapidIO[1].
Интернет (англ. Internet) -- всемирная система объединённых компьютерных сетей для хранения и передачи информации. Часто упоминается как Всемирная сеть и Глобальная сеть, а также просто Сеть. Построена на базе стека протоколов TCP/IP. На основе Интернета работает Всемирная паутина (World Wide Web, WWW) и множество других систем передачи данных[2].
Интернет состоит из многих тысяч корпоративных, научных, правительственных и домашних компьютерных сетей. Объединение сетей разной архитектуры и топологии стало возможно благодаря протоколу IP (англ. Internet Protocol) и принципу маршрутизации пакетов данных[2].
Протокол IP был специально создан агностическим в отношении физических каналов связи. То есть любая система (сеть) передачи цифровых данных, проводная или беспроводная, для которой существует стандарт инкапсуляции в неё IP-пакетов, может передавать и трафик Интернета. Агностицизм протокола IP, в частности, означает, что компьютер или маршрутизатор должен знать тип сетей, к которым он непосредственно присоединён, и уметь работать с этими сетями; но не обязан (и в большинстве случаев не может) знать, какие сети находятся за маршрутизаторами[2].
На стыках сетей специальные маршрутизаторы (программные или аппаратные) занимаются автоматической сортировкой и перенаправлением пакетов данных, исходя из IP-адресов получателей этих пакетов. Протокол IP образует единое адресное пространство в масштабах всего мира, но в каждой отдельной сети может существовать и собственное адресное подпространство, которое выбирается исходя из класса сети. Такая организация IP-адресов позволяет маршрутизаторам однозначно определять дальнейшее направление для каждого пакета данных. В результате между отдельными сетями Интернета не возникает конфликтов, и данные беспрепятственно и точно передаются из сети в сеть по всей планете и ближнему космосу.
Сам протокол IP был разработан в организации IETF (англ. Internet Engineering Task Force; Task force -- группа специалистов для решения конкретной задачи), чьё название можно вольно перевести как «Группа по решению задач проектирования Интернета». IETF и её рабочие группы по сей день занимаются развитием протоколов Всемирной сети. IETF открыта для публичного участия и обсуждения. Комитеты организации публикуют так называемые документы RFC. В этих документах даются технические спецификации и точные объяснения по многим вопросам. Некоторые документы RFC возводятся организацией IAB (англ. Internet Architecture Board -- Совет по архитектуре Интернета) в статус стандартов Интернета (англ. Internet Standard). С 1992 года IETF, IAB и ряд других интернет-организаций входят в Общество Интернета (англ. Internet Society, ISOC). Общество Интернета предоставляет организационную основу для разных исследовательских и консультативных групп, занимающихся развитием Интернета[2].
1.1.2 Протоколы передачи данных
Стек протоколов TCP/IP -- набор сетевых протоколов передачи данных, используемых в сетях, включая сеть Интернет. Название TCP/IP происходит из двух наиболее важных протоколов семейства -- Transmission Control Protocol (TCP) и Internet Protocol (IP), которые были разработаны и описаны первыми в данном стандарте. Также изредка упоминается как модель DOD в связи с историческим происхождением от сети ARPANET из 1970 годов (под управлением DARPA, Министерства обороны США). Протоколы работают друг с другом в стеке (англ. stack, стопка) -- это означает, что протокол, располагающийся на уровне выше, работает «поверх» нижнего, используя механизмы инкапсуляции. Например, протокол TCP работает поверх протокола IP.
Стек протоколов TCP/IP включает в себя четыре уровня: прикладной уровень (application layer), транспортный уровень (transport layer), сетевой уровень (internet layer), канальный уровень (link layer).
Протоколы этих уровней полностью реализуют функциональные возможности модели OSI. На стеке протоколов TCP/IP построено всё взаимодействие пользователей в IP-сетях. Стек является независимым от физической среды передачи данных[3].
1.1.3 Мобильная связь
Мобильная радиосвязь -- радиосвязь между абонентами, местоположение которых может меняться[4].
Также, существует синонимичный термин «подвижная связь», широко использовавшийся в XX веке и продолжающий применяться, в частности, в законодательстве Российской Федерации.
Внедрение стандартов мобильной связи осуществляется при поддержке ассоциации DMR[4].
На данный момент существует две классификации систем мобильной радиосвязи(СМРС):
1) Наземные: системы персонального радиовызова (СПРВ); сотовые СМРС (предоставляют доступ к территориальному ресурсу); системы с радиальной архитектурой (станции абонентов и центральная станция -- коммутатор и комплект приемопередатчиков с круговой диаграммой направленности); системы с радиально-зоновой архитектурой, транкинговая система мобильной радиосвязи (используют ретрансляторы, система автоматически выбирает лучший); зоновые СМРС (фиксированный канал через ретранслятор).
2) Спутниковые: геостационарные (спутник находится на геостационарной орбите, высота около 36 тыс. км); среднеорбитальные; низкоорбитальные; высокоэллиптические (работа спутника осуществляется при его нахождении в апогее).
Сотовая связь, сеть подвижной связи -- один из видов мобильной радиосвязи, в основе которого лежит сотовая сеть. Ключевая особенность заключается в том, что общая зона покрытия делится на ячейки (соты), определяющиеся зонами покрытия отдельных базовых станций (БС). Соты частично перекрываются и вместе образуют сеть. На идеальной (ровной и без застройки) поверхности зона покрытия одной БС представляет собой круг, поэтому составленная из них сеть имеет вид шестиугольных ячеек (сот)[4].
Сеть составляют разнесённые в пространстве приёмопередатчики, работающие в одном и том же частотном диапазоне, и коммутирующее оборудование, позволяющее определять текущее местоположение подвижных абонентов и обеспечивать непрерывность связи при перемещении абонента из зоны действия одного приёмопередатчика в зону действия другого.
Основные составляющие сотовой сети -- это сотовые телефоны и базовые станции, которые обычно располагают на крышах зданий и вышках. Будучи включённым, сотовый телефон прослушивает эфир, находя сигнал базовой станции. После этого телефон посылает станции свой уникальный идентификационный код. Телефон и станция поддерживают постоянный радиоконтакт, периодически обмениваясь пакетами. Связь телефона со станцией может идти по аналоговому протоколу (AMPS, NAMPS, NMT-450) или по цифровому (DAMPS, CDMA, GSM, UMTS). Если телефон выходит из поля действия базовой станции (или качество радиосигнала сервисной соты ухудшается), он налаживает связь с другой (англ. handover)[5].
Сотовые сети могут состоять из базовых станций разного стандарта, что позволяет оптимизировать работу сети и улучшить её покрытие[5].
Сотовые сети разных операторов соединены друг с другом, а также со стационарной телефонной сетью. Это позволяет абонентам одного оператора делать звонки абонентам другого оператора, с мобильных телефонов на стационарные и со стационарных на мобильные.
Операторы могут заключать между собой договоры роуминга. Благодаря таким договорам абонент, находясь вне зоны покрытия своей сети, может совершать и принимать звонки через сеть другого оператора. Как правило, это осуществляется по повышенным тарифам. Возможность роуминга появилась лишь в стандартах 2G и является одним из главных отличий от сетей 1G. Операторы могут совместно использовать инфраструктуру сети, сокращая затраты на развертывание сети и текущие издержки[5].
1.2 Устройства, взаимодействующие с компьютерными сетями при помощи протоколов передачи данных
1.2.1 Мобильные вычислительные устройства
Мобильный телефон -- переносное средство связи, предназначенное преимущественно для голосового общения. В настоящее время сотовая связь -- самая распространенная из всех видов мобильной радиосвязи, поэтому чаще всего мобильным телефоном называют сотовый телефон. В то же время, наряду с сотовыми телефонами, мобильными являются также спутниковые телефоны, радиотелефоны и аппараты магистральной связи[6].
На данный момент существует три вида мобильных телефонов: сотовый телефон, спутниковый телефон, радиотелефон[6].
Также принято классифицировать мобильные телефоны по функциональности:
1) Стандартный мобильный телефон использует операционную систему изготовителя, которая закрыта и не расширяема (кроме моделей Sony Ericsson и Siemens, ОС которых можно расширить патчами). Имеет процессор, оперативную память для работы ОС и постоянную память для хранения телефонной книги, ОС и её данных. Большинство моделей имеют более низкую цену, чем смартфоны и обеспечивают меньше функций.
2) Смартфон оснащается достаточно развитой операционной системой (Android, iOS, Windows Phone и др.), открытой для разработки программного обеспечения сторонними разработчиками. Установка дополнительных приложений позволяет значительно расширить функциональность смартфонов.
3) Коммуникатор -- карманный персональный компьютер, дополненный функциональностью мобильного телефона[6].
Карманный персональный компьютер (КПК, англ. Personal Digital Assistant, PDA, а также Handheld Computer) -- портативное вычислительное устройство, обладающее широкими функциональными возможностями. Изначально КПК предназначались для использования в качестве электронных органайзеров. С «классического» КПК невозможно совершать звонки, и КПК не является мобильным телефоном, поэтому к настоящему времени классические КПК практически полностью вытеснены коммуникаторами -- КПК с модулем сотовой связи и смартфонами[7].
В английском языке словосочетание «карманный ПК» (Pocket PC) является торговой маркой фирмы Microsoft, то есть относится лишь к одной из разновидностей КПК, а не обозначает весь класс устройств. Словосочетание Palm PC («наладонный компьютер») также является конкретной торговой маркой. Для обозначения всего класса устройств в английском языке используется аббревиатура PDA[7].
Смартфон (англ. smartphone -- умный телефон) -- мобильный телефон, дополненный функциональностью карманного персонального компьютера[7].
В мобильных телефонах практически всегда были дополнительные функции (калькулятор, календарь), однако со временем стали выпускаться все более и более интеллектуальные модели, и для подчеркивания возросшего функционала и вычислительной мощности таких моделей ввели термин «смартфон». В эру роста популярности КПК стали выпускаться КПК с функциями мобильного телефона, такие устройства были названы коммуникаторами. В настоящее время разделение на смартфоны и коммуникаторы не актуально - оба термина обозначают одно и то же.
Смартфоны отличаются от обычных мобильных телефонов наличием достаточно развитой операционной системы, открытой для разработки программного обеспечения сторонними разработчиками (операционная система обычных мобильных телефонов закрыта для сторонних разработчиков). Установка дополнительных приложений позволяет значительно улучшить функциональность смартфонов по сравнению с обычными мобильными телефонами[7].
1.3 Программное обеспечение, взаимодействующее с компьютерными сетями
1.3.1 Операционная система
Операционная система, сокр. ОС (англ. operating system, OS) -- комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами, а с другой стороны -- предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений. Это определение применимо к большинству современных операционных систем общего назначения[8].
В логической структуре типичной вычислительной системы операционная система занимает положение между устройствами с их микроархитектурой, машинным языком и, возможно, собственными (встроенными) микропрограммами -- с одной стороны -- и прикладными программами с другой.
Разработчикам программного обеспечения операционная система позволяет абстрагироваться от деталей реализации и функционирования устройств, предоставляя минимально необходимый набор функций.
В большинстве вычислительных систем операционная система является основной, наиболее важной (а иногда и единственной) частью системного программного обеспечения. С 1990-х годов наиболее распространёнными операционными системами являются системы семейства Windows и системы класса UNIX (особенно Linux и Mac OS)[8].
1.3.2 Мобильные операционные системы
iOS (до 24 июня 2010 года -- iPhone OS) -- мобильная операционная система, разрабатываемая и выпускаемая американской компанией Apple. Была выпущена в 2007 году; первоначально -- для iPhone и iPod touch, позже -- для таких устройств, как iPad и Apple TV. В отличие от Windows Phone и Google Android, выпускается только для устройств, производимых фирмой Apple[5].
Пользовательский интерфейс iOS основан на концепции прямого манипулирования с использованием жестов multitouch. Элементы управления интерфейсом состоят из ползунков, переключателей и кнопок.
iOS разработана на основе OS X и использует тот же набор основных компонентов Darwin, совместимый со стандартом POSIX.
В iOS есть четыре слоя абстрагирования: слой Core OS, слой Core Services, слой Media Layer и слой Cocoa Touch.
Для версии операционной системы iOS 7.0.4 выделяется 1,4--2 Гб флеш-памяти устройства для системного раздела и примерно 800 Мб свободного места (варьируется в зависимости от модели).
По состоянию на 19 мая 2013 года магазин приложений App Store содержит более 900 тыс. приложений для iOS, которые все вместе были загружены более 50 миллиардов раз[5].
1.4 Технологии доступа
Серверное программное обеспечение (сервер, англ. server от to serve -- служить) -- в информационных технологиях -- программный компонент вычислительной системы, выполняющий сервисные (обслуживающие) функции по запросу клиента, предоставляя ему доступ к определённым ресурсам или услугам[5].
Понятия сервер и клиент и закреплённые за ними роли образуют программную концепцию «клиент-сервер»[5].
Для взаимодействия с клиентом (или клиентами, если поддерживается одновременная работа с несколькими клиентами) сервер выделяет необходимые ресурсы межпроцессного взаимодействия (разделяемая память, пайп, сокет и т. п.) и ожидает запросы на открытие соединения (или, собственно, запросы на предоставляемый сервис). В зависимости от типа такого ресурса, сервер может обслуживать процессы в пределах одной компьютерной системы или процессы на других машинах через каналы передачи данных (например, COM-порт) или сетевые соединения[5].
Формат запросов клиента и ответов сервера определяется протоколом. Спецификации открытых протоколов описываются открытыми стандартами, например протоколы Интернета определяются в документах RFC.
В зависимости от выполняемых задач одни сервера, при отсутствии запросов на обслуживание, могут простаивать в ожидании. Другие могут выполнять какую-то работу (например, работу по сбору информации), у таких серверов работа с клиентами может быть второстепенной задачей[5].
Клиент -- это аппаратный или программный компонент вычислительной системы, посылающий запросы серверу[5].
Программа, являющаяся клиентом, взаимодействует с сервером, используя определённый протокол. Она может запрашивать с сервера какие-либо данные, манипулировать данными непосредственно на сервере, запускать на сервере новые процессы и т. п. Полученные от сервера данные клиентская программа может предоставлять пользователю или использовать как-либо иначе, в зависимости от назначения программы. Программа-клиент и программа-сервер могут работать как на одном и том же компьютере, так и на разных. Во втором случае для обмена информацией между ними используется сетевое соединение[5].
Разновидностью клиентов являются терминалы -- рабочие места на многопользовательских ЭВМ, оснащённые монитором с клавиатурой, и не способные работать без сервера. В 1990-е годы появились сетевые компьютеры -- нечто среднее между терминалом и персональным компьютером. Сетевые компьютеры имеют упрощённую структуру и во многом зависят от сервера. Иногда под терминалом понимают любой клиент, или только тонкий клиент.
Тем не менее, не всегда под клиентом подразумевается компьютер со слабыми вычислительными ресурсами. Чаще всего понятия «клиент» и «сервер» описывают распределение ролей при выполнении конкретной задачи, а не вычислительные мощности. На одном и том же компьютере могут одновременно работать программы, выполняющие как клиентские, так и серверные функции. Например, веб-сервер может в качестве клиента получать данные для формирования страниц от SQL-сервера[5].
Тонкий клиент (англ. thin client) в компьютерных технологиях -- компьютер или программа-клиент в сетях с клиент-серверной или терминальной архитектурой, который переносит все или большую часть задач по обработке информации на сервер. Примером тонкого клиента может служить компьютер с браузером, использующийся для работы с веб-приложениями[5].
Под термином «тонкий клиент» подразумевается достаточно широкий с точки зрения системной архитектуры ряд устройств и программ, которые объединяются общим свойством: возможность работы в терминальном режиме. Таким образом, для работы тонкого клиента необходим терминальный сервер. Этим тонкий клиент отличается от толстого клиента, который, напротив, производит обработку информации независимо от сервера, используя последний в основном лишь для хранения данных.
Кроме общего случая, следует выделить аппаратный тонкий клиент (например, Windows- и Linux-терминалы) -- специализированное устройство, принципиально отличное от ПК. Аппаратный тонкий клиент не имеет жёсткого диска, использует специализированную локальную ОС (одна из задач которой организовать сессию с терминальным сервером для работы пользователя), не имеет в своём составе подвижных деталей, выполняется в специализированных корпусах с полностью пассивным охлаждением[5].
Для расширения функциональности тонкого клиента прибегают к его «утолщению», например, добавляют возможности автономной работы, сохраняя главное отличие -- работу в сессии с терминальным сервером. Когда в клиенте появляются подвижные детали (жёсткие диски), появляются возможности автономной работы, он перестаёт быть тонким клиентом в чистом виде, а становится универсальным клиентом[5].
Тонкий клиент в большинстве случаев обладает минимальной аппаратной конфигурацией, вместо жёсткого диска для загрузки локальной специализированной ОС используется DOM (DiskOnModule). В некоторых конфигурациях системы тонкий клиент загружает операционную систему по сети с сервера, используя протоколы PXE, BOOTP, DHCP, TFTP и Remote Installation Services (RIS).
В России основными производителями тонких клиентов являются DEPO, OPTION, TOHK, AK Systems и Norma TS[5].
База данных -- представленная в объективной форме совокупность самостоятельных материалов (статей, расчётов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины (ЭВМ)[9].
Система управления базами данных (СУБД) -- совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных[9].
1.5 Языки разработки клиент-серверных приложений
HTML (от англ. HyperText Markup Language -- «язык гипертекстовой разметки») -- стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц содержат описание разметки на языке HTML (или XHTML). Язык HTML интерпретируется браузерами и отображается в виде документа в удобной для человека форме[10].
Язык HTML является приложением («частным случаем») SGML (стандартного обобщённого языка разметки) и соответствует международному стандарту ISO 8879[10].
Язык XHTML является более строгим вариантом HTML, он следует всем ограничениям XML и, фактически, XHTML можно воспринимать как приложение языка XML к области разметки гипертекста[10].
Во всемирной паутине HTML-страницы, как правило, передаются браузерам от сервера по протоколам HTTP или HTTPS, в виде простого текста или с использованием сжатия[10].
CSS (англ. Cascading Style Sheets -- каскадные таблицы стилей) -- формальный язык описания внешнего вида документа, написанного с использованием языка разметки[5].
Преимущественно используется как средство описания, оформления внешнего вида веб-страниц, написанных с помощью языков разметки HTML и XHTML, но может также применяться к любым XML-документам, например, к SVG или XUL[5].
CSS используется создателями веб-страниц для задания цветов, шрифтов, расположения отдельных блоков и других аспектов представления внешнего вида этих веб-страниц. Основной целью разработки CSS являлось разделение описания логической структуры веб-страницы (которое производится с помощью HTML или других языков разметки) от описания внешнего вида этой веб-страницы (которое теперь производится с помощью формального языка CSS). Такое разделение может увеличить доступность документа, предоставить большую гибкость и возможность управления его представлением, а также уменьшить сложность и повторяемость в структурном содержимом. Кроме того, CSS позволяет представлять один и тот же документ в различных стилях или методах вывода, таких как экранное представление, печатное представление, чтение голосом (специальным голосовым браузером или программой чтения с экрана), или при выводе устройствами, использующими шрифт Брайля[5].
Правила CSS пишутся на формальном языке CSS и располагаются в таблицах стилей, то есть таблицы стилей содержат в себе правила CSS. Эти таблицы стилей могут располагаться как в самом веб-документе, внешний вид которого они описывают, так и в отдельных файлах, имеющих формат CSS[5].
JavaScript -- прототипно-ориентированный сценарный язык программирования. Является диалектом языка ECMAScript.
JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.
Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса[5].
На JavaScript оказали влияние многие языки, при разработке была цель сделать язык похожим на Java, но при этом лёгким для использования непрограммистами. Языком JavaScript не владеет какая-либо компания или организация, что отличает его от ряда языков программирования, используемых в веб-разработке[11].
Название «JavaScript» является зарегистрированным товарным знаком компании Oracle Corporation[5].
В 1992 году компания Nombas (впоследствии приобретённая Openwave) начала разработку встраиваемого скриптового языка Cmm (Си-минус-минус), который, по замыслу разработчиков, должен был стать достаточно мощным, чтобы заменить макросы, сохраняя при этом схожесть с Си, чтобы разработчикам не составляло труда изучить его. Главным отличием от Си была работа с памятью. В новом языке всё управление памятью осуществлялось автоматически: не было необходимости создавать буферы, объявлять переменные, осуществлять преобразование типов. В остальном языки сильно походили друг на друга: в частности, Cmm поддерживал стандартные функции и операторы Си. Cmm был переименован в ScriptEase, поскольку исходное название звучало слишком негативно, а упоминание в нём Си «отпугивало» людей. На основе этого языка был создан проприетарный продукт CEnvi. В конце ноября 1995 года Nombas разработала версию CEnvi, внедряемую в веб-страницы. Страницы, которые можно было изменять с помощью скриптового языка, получили название Espresso Pages -- они демонстрировали использование скриптового языка для создания игры, проверки пользовательского ввода в формы и создания анимации. Espresso Pages позиционировались как демоверсия, призванная помочь представить, что случится, если в браузер будет внедрён язык Cmm. Работали они только в 16-битовом Netscape Navigator под управлением Windows.
Перед Бренданом Эйхом, нанятым в компанию Netscape 4 апреля 1995 года, была поставлена задача внедрить язык программирования Scheme или что-то похожее в браузер Netscape. Поскольку требования были размыты, Эйха перевели в группу, ответственную за серверные продукты, где он проработал месяц, занимаясь улучшением протокола HTTP. В мае разработчик был переброшен обратно, в команду, занимающуюся клиентской частью (браузером), где он немедленно начал разрабатывать концепцию нового языка программирования. Менеджмент разработки браузера, включая Тома Пакина, Михаэля Тоя, Рика Шелла, был убеждён, что Netscape должен поддерживать язык программирования, встраиваемый в HTML-код страницы.
Помимо Брендана Эйха в разработке участвовали сооснователь Netscape Communications Марк Андрессен и сооснователь Sun Microsystems Билл Джой: чтобы успеть закончить работы над языком к релизу браузера, компании заключили соглашение о сотрудничестве в разработке. Они ставили перед собой цель обеспечить «язык для склеивания» составляющих частей веб-ресурса: изображений, плагинов, Java-апплетов, который был бы удобен для веб-дизайнеров и программистов, не обладающих высокой квалификацией.
Первоначально язык назывался Mocha, затем он был переименован в LiveScript и предназначался как для программирования на стороне клиента, так и для программирования на стороне сервера (там он должен был называться LiveWire). На синтаксис оказали влияние языки Си и Java, и, поскольку Java в то время было модным словом, 4 декабря 1995 года LiveScript переименовали в JavaScript, получив соответствующую лицензию у Sun. Анонс JavaScript со стороны представителей Netscape и Sun состоялся накануне выпуска второй бета-версии Netscape Navigator. В нём декларируется, что 28 лидирующих ИТ-компаний выразили намерение использовать в своих будущих продуктах JavaScript как объектный скриптовый язык с открытым стандартом[11].
В 1996 году компания Microsoft выпустила аналог языка JavaScript, названный JScript. Анонсирован этот язык был 18 июля 1996 года. Первым браузером, поддерживающим эту реализацию, был Internet Explorer 3.0.
По инициативе компании Netscape была проведена стандартизация языка ассоциацией ECMA. Стандартизированная версия имеет название ECMAScript, описывается стандартом ECMA-262. Первой версии спецификации соответствовал JavaScript версии 1.1, а также языки JScript и ScriptEasy.
В статье «The World's Most Misunderstood Programming Language Has Become the World's Most Popular Programming Language» («Самый неправильно понятый язык программирования в мире стал самым популярным в мире языком программирования») Дуглас Крокфорд утверждает, что лидирующую позицию JavaScript занял в связи с развитием AJAX, поскольку браузер стал превалирующей системой доставки приложений. Он также констатирует растущую популярность JavaScript, то, что этот язык встраивается в приложения, отмечает значимость языка.
Согласно TIOBE Index, базирующемуся на данных поисковых систем Google, MSN, Yahoo!, Википедия и YouTube, в апреле 2015 года JavaScript находился на 6 месте (год назад на 9)[5].
По данным Black Duck Software в разработке открытого программного обеспечения доля использования JavaScript росла. 36 % проектов, релизы которых состоялись с августа 2008 по август 2009 гг., включают JavaScript, наиболее часто используемый язык программирования с быстрорастущей популярностью. 80 % открытого программного обеспечения использует Си, C++, Java, Shell и JavaScript. При этом JavaScript -- единственный из этих языков, чья доля использования увеличилась (более чем на 2 процента, если считать в строках кода)[11].
JavaScript является самым популярным языком программирования, используемым для разработки веб-приложений на стороне клиента, а также используется в качестве скриптового языка для настольных и серверных приложений[5].
Objective-C -- компилируемый объектно-ориентированный язык программирования, используемый корпорацией Apple, построенный на основе языка Си и парадигм Smalltalk. В частности, объектная модель построена в стиле Smalltalk -- объектам посылаются сообщения[12].
Язык Objective-C является надмножеством языка Си, поэтому Си-код полностью понятен компилятору Objective-C[12].
Компилятор Objective-C входит в GCC и доступен на большинстве основных платформ. Язык используется в первую очередь для Mac OS X (Cocoa) и GNUstep -- реализаций объектно-ориентированного интерфейса OpenStep. Также язык используется для iOS (Cocoa Touch).
ObjC был создан Брэдом Коксом в начале 1980-х в его компании Stepstone. Он пытался решить проблему повторного использования кода.
Целью Кокса было создание языка, поддерживающего концепцию software IC. Под этой концепцией понимается возможность собирать программы из готовых компонентов (объектов), подобно тому как сложные электронные устройства могут быть легко собраны из набора готовых интегральных микросхем.
Одной из целей было также создание модели, в которой сами классы также являются полноценными объектами, поддерживалась бы интроспекция и динамическая обработка сообщений.
Одной из отличительных черт Objective-C является его динамичность -- целый ряд решений, обычно принимаемых на этапе компиляции, здесь откладывается непосредственно до этапа выполнения.
Ещё одной из особенностей языка является то, что он message-oriented, в то время как C++ -- function-oriented. Это значит, что в нём вызовы метода интерпретируются не как вызов функции (но к этому обычно все сводится), а именно как посылка сообщения (с именем и аргументами) объекту, подобно тому, как это происходит в Smalltalk-е[12].
Такой подход имеет определенные преимущества -- так, любому объекту можно послать любое сообщение. Объект может вместо обработки сообщения просто переслать его другому объекту для обработки (так называемое делегирование), в частности именно так можно легко реализовать распределенные объекты (то есть объекты, находящиеся в различных адресных пространствах и даже на разных компьютерах)[12].
Привязка сообщения к соответствующей функции происходит непосредственно на этапе выполнения[12].
Язык Objective-C поддерживает работу с метаинформацией -- так, у объекта непосредственно на этапе выполнения можно, используя специальные сообщения, узнать его класс, список методов (с типами передаваемых аргументов) и instance-переменных, проверить, является ли класс потомком заданного и поддерживает ли он заданный протокол и т. п.
В языке есть поддержка протоколов (понятие интерфейса объекта и протокола четко разделены). Для объектов поддерживается наследование (не множественное), для протоколов поддерживается множественное наследование. Объект может быть унаследован от другого объекта и сразу нескольких[12].
На данный момент язык Objective-C поддерживается компиляторами Clang и GCC (под управлением Windows используется в составе MinGW или cygwin). Подавляющая часть встроенных функций перенесено на runtime-библиотеку. Вместе с компилятором gcc поставляется минимальный вариант такой библиотеки[12].
1.6 Программные решения доступа к данным
мобильный операционный передача данные
MongoDB (от англ. humongous -- огромный) -- документо-ориентированная система управления базами данных (СУБД) с открытым исходным кодом, не требующая описания схемы таблиц. Написана на языке C++.
Основные возможности: документо-ориентированное хранение (JSON-подобная схема данных), достаточно гибкий язык для формирования запросов, динамические запросы, поддержка индексов, профилирование запросов, быстрые обновления «на месте», эффективное хранение двоичных данных больших объёмов, например, фото и видео, журналирование операций, модифицирующих данные в базе данных, поддержка отказоустойчивости и масштабируемости: асинхронная репликация, набор реплик и распределения базы данных на узлы, может работать в соответствии с парадигмой MapReduce, полнотекстовый поиск, в том числе на русском языке, с поддержкой морфологии[5].
СУБД управляет наборами JSON-подобных документов, хранимых в двоичном виде в формате BSON. Хранение и поиск файлов в MongoDB происходит благодаря вызовам протокола GridFS. Подобно другим документо-ориентированным СУБД (CouchDB и др.), MongoDB не является реляционной СУБД. В СУБД нет такого понятия, как «транзакция». Атомарность гарантируется только на уровне целого документа, то есть частичного обновления документа произойти не может. Также отсутствует понятие «изоляции». Любые данные, которые считываются одним клиентом, могут параллельно изменяться другим клиентом.
В MongoDB реализована асинхронная репликация в конфигурации «ведущий -- ведомый» (англ. master -- slave), основанная на передаче журнала изменений с ведущего узла на ведомые. Поддерживается автоматическое восстановление в случае выхода из строя ведущего узла. Серверы с запущенным процессом mongod должны образовать кворум, чтобы произошло автоматическое определение нового ведущего узла. Таким образом, если не используется специальный процесс-арбитр (процесс mongod, только участвующий в установке кворума, но не хранящий никаких данных), количество запущенных реплик должно быть нечётным[13].
6 июня 2012 года компания-разработчик MongoDB 10gen начала длительное сотрудничество с корпорацией Microsoft, предоставив MongoDB её облаку Microsoft Azure. В результате этого партнёрства разработчики получили простой установщик для запуска MongoDB на виртуальных машинах Microsoft Azure. В дополнение к расширению опций облака и хостинга, доступных разработчикам MongoDB, этот шаг объединяет возможности ведущей базы данных NoSQL с технологиями Microsoft, включая Microsoft Azure, .NET и другие технологии с открытым исходным кодом, которые поддерживает Microsoft[5].
JSON (англ. JavaScript Object Notation) -- текстовый формат обмена данными, основанный на JavaScript и обычно используемый именно с этим языком. Как и многие другие текстовые форматы, JSON легко читается людьми[5].
Несмотря на происхождение от JavaScript (точнее, от подмножества языка стандарта ECMA-262 1999 года), формат считается языконезависимым и может использоваться практически с любым языком программирования. Для многих языков существует готовый код для создания и обработки данных в формате JSON.
За счёт своей лаконичности по сравнению с XML, формат JSON может быть более подходящим для сериализации сложных структур. Если говорить о веб-приложениях, в таком ключе он уместен в задачах обмена данными как между браузером и сервером (AJAX), так и между самими серверами (программные HTTP-интерфейсы).
Поскольку формат JSON является подмножеством синтаксиса языка JavaScript, то он может быть быстро десериализован встроенной функцией eval(). Кроме того, возможна вставка вполне работоспособных JavaScript-функций. В языке PHP, начиная с версии 5.2.0, поддержка JSON включена в ядро в виде функций json_decode() и json_encode(), которые сами преобразуют типы данных JSON в соответствующие типы PHP и наоборот[5].
Twig -- компилирующий обработчик шаблонов с открытым исходным кодом, написанный на языке программирования PHP. Armin Ronacher написал Twig в 2008 году для платформы блогов Chyrp. Но больше не возвращался к разработке и больше занимался разработкой на Python. Синтаксис языка шаблонов Twig берёт начало от движков шаблонов Jinja и Django, также созданных им. Идею данного шаблонизатора развивает и поддерживает Fabien Potencier, ведущий разработчик и идеолог фреймворка Symfony, в котором Twig используется по умолчанию[5].
Node или Node.js -- программная платформа, основанная на движке V8 (транслирующем JavaScript в машинный код), превращающая JavaScript из узкоспециализированного языка в язык общего назначения. Node.js добавляет возможность JavaScript взаимодействовать с устройствами ввода-вывода через свой API (написанный на C++), подключать другие внешние библиотеки, написанные на разных языках, обеспечивая вызовы к ним из JavaScript-кода. Node.js применяется преимущественно на сервере, выполняя роль веб-сервера, но есть возможность разрабатывать на Node.js и десктопные оконные приложения (при помощи node-webkit и AppJS для Linux, Windows и Mac OS) и даже программировать микроконтроллеры (например, tessel и espruino). В основе Node.js лежит событийно-ориентированное и асинхронное (или реактивное) программирование с неблокирующим вводом/выводом[5].
Node разработал Райан Дал (англ. Ryan Dahl) в 2009 году после двух лет экспериментирования над созданием серверных веб-компонентов. В ходе своих исследований он пришёл к выводу, что вместо традиционной модели параллелизма на основе потоков следует обратиться к событийно-ориентированным системам. Эта модель была выбрана из-за простоты, низких накладных расходов (по сравнению с идеологией «один поток на каждое соединение») и быстродействия. Целью Node является предложить «простой способ построения масштабируемых сетевых серверов»[5].
Разработка Node.js спонсируется компанией Joyent. В декабре 2014 года был создан форк io.js[5].
REST (сокр. от англ. Representational State Transfer -- «передача репрезентативного состояния») -- метод взаимодействия компонентов распределённого приложения в сети Интернет, при котором вызов удаленной процедуры представляет собой обычный HTTP-запрос (обычно GET или POST; такой запрос называют REST-запрос), а необходимые данные передаются в качестве параметров запроса. Этот способ является альтернативой более сложным методам, таким как SOAP, CORBA и RPC[14].
В широком смысле REST означает концепцию построения распределённого приложения, при которой компоненты взаимодействуют наподобие взаимодействия клиентов и серверов во Всемирной паутине[14].
Хотя данная концепция лежит в самой основе Всемирной паутины, термин REST был введён Роем Филдингом (англ. Roy Fielding), одним из создателей протокола HTTP, лишь в 2000 году. В своей диссертации в Калифорнийском университете в Ирвайне он подвёл теоретическую основу под метод взаимодействия клиентов и серверов во Всемирной паутине, абстрагировав его и назвав «передачей репрезентативного состояния». Филдинг описал концепцию построения распределённого приложения, при которой каждый запрос (REST-запрос) клиента к серверу содержит в себе исчерпывающую информацию о желаемом ответе сервера (желаемом репрезентативном состоянии), и сервер не обязан сохранять информацию о состоянии клиента («клиентской сессии»)[14].
Технология Push (англ. push, дословно -- «проталкивание») -- один из способов распространения информации (контента) в Интернете, когда данные поступают от сервера к клиенту на основе ряда параметров, установленных клиентом, где запрос на передачу информации происходит по инициативе центрального сервера[5].
Обычный пользователь может подписаться на различные темы, информацию от поставщика информационных услуг, и каждый раз, когда новое обновление формируется на сервере, это обновление доставляется на компьютер пользователя. Противоположностью Push-технологии является технология Pull, где запрос инициирует клиентское программное обеспечение[5].
Push-технологии приобрели известность благодаря продукту PointCast, популярному в 90-е годы. Сеть PointCast занималась доставкой новостей и данных фондового рынка, содержала агрегатор с собственным форматом, отдалённо напоминавшим телевидение, с текстом и рисунками, вместо видео. Влияние СМИ было значительным, так что Netscape и Microsoft в разгар браузерной войны решили включить эту технологию в свое браузеры Netscape Navigator и Internet Explorer соответственно. Однако в большинстве случаев пользователи имели низкую скорость подключения, поэтому популярность сервиса была низкой, а позже сошла на нет, вытесненная pull-технологией RSS в начале 2000-х[5].
AngularJS -- JavaScript-фреймворк с открытым исходным кодом. Предназначен для разработки одностраничных приложений. Его цель -- расширение браузерных приложений на основе MVC шаблона, а также упрощение тестирования и разработки[5].
Фреймворк работает с HTML, содержащим дополнительные пользовательские атрибуты, которые описываются директивами, и связывает ввод или вывод области страницы с моделью, представляющей собой обычные переменные JavaScript. Значения этих переменных задаются вручную или извлекаются из статических или динамических JSON-данных[5].
AngularJS был первоначально разработан в 2009 году Мишко Хевери и Адамом Абронсом как программное обеспечение позади сервиса хранения JSON-данных, измеряющихся мегабайтами, для облегчения разработки приложений организациями. Сервис располагался на домене «GetAngular.com» и имел нескольких зарегистрированных пользователей, прежде чем они решили отказаться от идеи бизнеса и выпустить Angular как библиотеку с открытым исходным кодом[5].
Абронс покинул проект, но Хевери, работающий в Google, продолжает развивать и поддерживать библиотеку с другими сотрудниками Google Игорем Минаром и Войта Джином[5].
AngularJS спроектирован с убеждением, что декларативное программирование лучше всего подходит для построения пользовательских интерфейсов и описания программных компонентов, в то время как императивное программирование отлично подходит для описания бизнес-логики. Фреймворк адаптирует и расширяет традиционный HTML, чтобы обеспечить двустороннюю привязку данных для динамического контента, что позволяет автоматически синхронизировать модель и представление. В результате AngularJS уменьшает роль DOM-манипуляций и улучшает тестируемость[5].
MEAN.js - это полноценный стек технологий для создания одностраничных веб-приложений. Аббревиатура расшифровывается как MongoDB (NoSQL-СУБД) + Express.js (веб-фреймворк на JavaScript) + Angular.js (фреймворк для создания front-end части) + Node.js (платформа для запуска серверного кода на JavaScript).
2. Клиент-серверное приложение для управления расписанием
2.1 Постановка задачи
В рамках этой задачи разработано веб-приложение, позволяющее управлять расписанием университета (создавать занятия в соответствии с графиком работы университета, создавать единовременные занятия/замены занятий), и дающее пользователям возможности личного кабинета для получения информации об изменениях в расписании, а также просмотра расписания по заданным параметрам, используя в качестве инструмента веб-сервис или приложение iOS.
2.2 Модель данных
Модель данных серверной части представлена на рисунке 1:
Рисунок 1 - модель данных серверной части
Для хранения информации предметной области в приложении используется СУБД MongoDB. В качестве каркаса для серверного кода используется фреймворк Express.JS.
В таблице 1 приведено описание каждой сущности модели данных:
Таблица 1 - описание сущностей серверной модели данных
Сущность |
Назначение |
|
App Configuration |
Конфигурация системы. Основное назначение на данном этапе развития системы - настройка периодов расписания (сколько дней длится период, какие дни являются выходными и с какой даты ведется отсчет) |
|
User |
Пользователь системы. Может быть как студентом, так и преподавателем. Также может получать разные привилегии - читатель, редактор, администратор |
|
Lesson |
Определяет номер занятия по порядку и временные рамки занятия |
|
LessonType |
Определяет тип занятия: лекция, практическое занятие и т. д. |
|
Playground |
Площадка для проведения занятия: аудитория, стадион и т. п. |
|
Subject |
Предмет, преподаваемый в расписании |
|
Union |
Объединение пользователей, может быть как группой, так и кафедрой, курсом или всем университетом |
|
Replacement |
Подобные документы
Устройство персонального компьютера. Устройства ввода графических данных и вывода данных. Устройства хранения данных. Устройства обмена данными. Цели создания сетей. Многомашинные вычислительные комплексы и компьютерные сети.
дипломная работа [1,2 M], добавлен 18.06.2007Среды передачи данных, топологии локальных сетей. Сравнение средств разработки Microsoft, выбор системы управления базами данных. Описание серверной и клиентской части приложения. Внедрение системы оперативного документооборота на данное предприятие.
дипломная работа [3,5 M], добавлен 12.01.2012Понятие, особенности и уровни промышленных сетей. Сравнение протоколов передачи данных HART, Industrial Ethernet, Foundation Filedbus, CAN, Modbus, их достоинства и недостатки. Физический и канальный уровни сети Profibus. Распределение функций управления.
презентация [812,9 K], добавлен 29.11.2013Классификация компьютерных сетей. Назначение компьютерной сети. Основные виды вычислительных сетей. Локальная и глобальная вычислительные сети. Способы построения сетей. Одноранговые сети. Проводные и беспроводные каналы. Протоколы передачи данных.
курсовая работа [36,0 K], добавлен 18.10.2008Особенности организации передачи данных в компьютерной сети. Эталонная модель взаимодействия открытых систем. Методы передачи данных на нижнем уровне, доступа к передающей среде. Анализ протоколов передачи данных нижнего уровня на примере стека TCP/IP.
курсовая работа [1,0 M], добавлен 07.08.2011Анализ топологии сети физического уровня. Проблемы физической передачи данных по линиям связи. Сравнительная характеристика топологии сети. Устройства передачи данных. Концепция топологии сети в виде звезды. Рекомендации по решению проблем топологии сети.
курсовая работа [224,7 K], добавлен 15.12.2010Модели и протоколы передачи данных. Эталонная модель OSI. Стандартизация в области телекоммуникаций. Стеки протоколов и стандартизация локальных сетей. Понятие открытой системы. Internet и стек протоколов TCP/IP. Взаимодействие открытых систем.
дипломная работа [98,9 K], добавлен 23.06.2012Активные и пассивные устройства физического уровня. Основные схемы взаимодействия устройств. Архитектура физического уровня. Базовая эталонная модель взаимодействия открытых систем. Параметры сред передачи данных. Характеристики сетевых концентраторов.
курсовая работа [525,8 K], добавлен 02.02.2014Системы сбора и передачи информации. Обоснование выбора кода, способа передачи и синхронизации. Выбор длины посылки, формата кодового перехода. Расчет помехоустойчивости и времени запаздывания. Разработка структурной схемы передающего устройства.
курсовая работа [412,8 K], добавлен 24.06.2013Обзор стандарта IEEE 802.15.4. Упрощенная модель OSI. Беспроводные сенсорные сети. Взаимодействие сетевых протоколов. Серверное приложение, отправка теста, получение результатов, клиентское приложение. MAC слой, механизм адресации, точки доступа.
курсовая работа [334,6 K], добавлен 31.05.2016