Сетевое приложение для стоматологической поликлиники
Разработка компьютерной сети. Спецификация и расчет себестоимости спроектированной сети. Выбор инструментальных средств для реализации разрабатываемого клиент-серверного приложения. Описание логической структуры программного продукта, основные алгоритмы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 19.03.2012 |
Размер файла | 942,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
1. ИЗУЧЕНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ
1.1 Описание поставленной задачи
1.2 Современное состояние исследуемой задачи
1.3 Обзор метод и решений подобных задач
1.4 Постановка задачи. Системные требования
2. ПРОЕКТИРОВАНИЕ СТРУКТУРЫ И АРХИТЕКТУРЫ ПРОГРАММНОГО ПРОДУКТА
2.1 Разработка компьютерной сети
2.2 Спецификация и расчет себестоимости спроектированной сети
2.3 Проектирование сети с помощью программы NetCracker
2.4 Выбор инструментальных средств для реализации разрабатываемого клиент-серверного приложения
2.5 Описание логической структуры программного продукта
3. РЕАЛИЗАЦИЯ ПРОГРАММНОГО ПРОДУКТА
3.1 Реализация программного продукта, основные алгоритмы
ЗАКЛЮЧЕНИЕ
ВВЕДЕНИЕ
В наши дни компьютерная сеть является необходимым элементом любого предприятия, любой фирмы. Почти невозможно представить себе офис, который не использует в своей работе компьютеры, будь то строительная компания или стоматологическая поликлиника. На сегодняшний день компьютерные сети должны присутствовать в каждом заведение, компании или больнице, потому что именно они относятся к одному из факторов достижения успеха в сфере бизнеса. Компьютерные сети способствуют соединению всех компьютеров, которые находятся на фирме, в единую сеть с выходом в Интернет. Интернет - это одно из основных средств размещения информации. В современном мире первоначальной задачей при организации любой компании или фирмы становится монтаж сетей. Монтаж компьютерных сетей предполагает соединение между собой нескольких компьютерных аксессуаров и стационарных персональных компьютеров в общую систему. Серверы, сканеры, принтеры, факсы и прочее подразумеваются под компьютерными аксессуарами. Благодаря передовым технологиям множество клиник, которые находятся в разных зданиях, на разных этажах или в разных точках, могут быть связаны в одну систему. Монтаж компьютерных сетей может осуществляться с помощью самого современного оборудования с использованием новых достижений и технологий. Гибкость и эффективность компьютерных сетей значительно повысилась, так как в настоящее время информацию можно передавать не только посредством проводов, но и с помощью радиоканала. При хорошем администрировании и правильном монтаже сетей можно с легкостью найти нужную информацию в любом компьютере, который соединён в сеть. Эффективность и долговечность системы будет обеспечиваться при условии вложения на начальном этапе в компьютерную сеть необходимого количества денежных средств. На содержание и эксплуатацию подобной сети понадобится немного затрат - спустя некоторое время все окупится.
1. ИЗУЧЕНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ
1.1 Описание поставленной задачи
На курсовую работу было вынесено две основные задачи: моделирование компьютерной сети и создание сетевой информационной системы «Сетевое приложение стоматологическая поликлиника ».
В первой части курсовой работы нужно смоделировать компьютерную сеть по средствам NetCracker. Заказчик предоставляет схему здания. Задача разработчика заключается в построении сети с учетом особенностей плана здания, а так же необходимо учитывать пожелания и замечания заказчика. После моделирования сети необходимо оценить производительность и устойчивость работы сети. Произвести расчет спецификации и себестоимость модели компьютерной сети.
Во второй части курсовой работы необходимо создать сетевое приложение клиент-сервер.
Серверная часть реализуется с помощью системы управления базой данных. Клиент-серверное приложение должно: удалять, добавлять данные в базу данных, а также осуществлять аутентификацию пользователей и расчет с использованием входных параметров, полученных из клиентского Windows приложения.
Клиентская часть содержит два приложения. Клиентское Windows приложение, с которым будет взаимодействовать пользователь. Клиентское приложение должно обладать интуитивно понятным интерфейсом, содержать элементы управления и подсказки пользователям. С его помощью возможно получить расчет стоимости услуг, которые предоставляет заказчик. Клиентское Windows приложение должно быть реализовано средствами Visual Studio 2005. Клиентское WEB - приложение позволяет отобразить информацию из таблицы база данных. Приложение создается для ознакомления пользователя с интересующей его информацией. WEB - приложение должно быть реализовано средствами ASP.NET.
1.2 Современное состояние исследуемой задачи
На сегодняшний день в стоматологических поликлиниках создаются локальные компьютерные сети для полной компьютеризации основных видов деятельности. С началом создания компьютерной сети в поликлинике обязательно создаётся и база данных: занесена информация о больных, врачах, стационаре.
Компьютерная сеть являет собой систему распределенной обработки информации, которая составляет как минимум из двух компьютеров, взаимодействующих между собой с помощью специальных средств связи. Или другими словами сеть являет собой совокупность соединенных друг с другом ПК и других вычислительных устройств, таких как принтеры, факсимильные аппараты и модемы. Сеть дает возможность отдельным сотрудникам организации взаимодействовать друг с другом и обращаться к совместно используемым ресурсам; позволяет им получать доступ к данным, что сохраняется на персональных компьютерах в удаленных офисах, и устанавливать связь с поставщиками.
В мире насчитывается огромное количество различных локальных сетей и для их рассмотрения и сравнения необходимо иметь систему классификации. Окончательно установившейся классификации локальных сетей пока не существует, можно выявить определенные классификационные признаки. К ним следует отнести классификацию по назначению, типам используемых ЭВМ, организации управления, организации передачи информации, по топологическим признакам, методам доступа, управлению доступом к физической передающей среде и др. По типа компьютеров, которые входят в состав компьютерной сети, различают:
- однородные компьютерные сети, которые состоят из программно общих ЭВМ;
- неоднородные, в состав которых входят программно-несовместительные компьютеры.
По назначению КС распределяются на:
- вычислительные;
- информационные;
- смешанные (информационно-вычислительные).
Особенное значение занимает классификация по территориальному признаку, то есть по величине территории, что покрывает сеть. И для этого есть весомые причины, потому что отличия технологий локальных и глобальных сетей очень значительные, невзирая на их постоянное сближение.
Классифицируя сети по территориальному признаку, различают:
- локальные (LocalAreaNetworks - LAN) сети;
- глобальные (WideAreaNetworks - WAN) сети;
- городские (MetropolitanAreaNetworks - MAN) сети.
LAN - сосредоточены на территории не больше один - два километра; построенные с использованием дорогих высококачественных линий связи, которые позволяют, применяя простые методы передачи данных, достигать высоких скоростей обмена данными порядка 100 Мбит/с, предоставленные услуги отличаются широкой разнообразностью и обычно предусматривают реализацию в режиме on-line.
WAN - совмещают компьютеры, рассредоточенные на расстоянии сотен и тысяч километров. Часто используются уже существующие не очень качественные линии связи. Больше низкие, чем в локальных сетях, скорости передачи данных (десятки Кбит/с) ограничивают набор предоставленных услуг передачей файлов, преимущественно не в оперативном, а в фоновом режиме, с использованием электронной почты. Для стойкой передачи дискретных данных применяются более сложные методы и оборудование, чем в локальных сетях.
MAN - занимают промежуточное положение между локальными и глобальными сетями. При достаточно больших расстояниях между узлами (десятки километров) они имеют качественные линии связи и высоких скоростей обмена, иногда даже больше высокими, чем в классических локальных сетях. Как и в случае локальных сетей, при построении MAN уже существующие линии связи не используются, а прокладываются заново.
Кампусные сети (Campus Area Network - CAN), которые совмещают значительно удаленные друг от друга абонентские системы или локальные сети, но еще не требуют отдаленных коммуникаций через телефонные линии и модемы.
Широкомасштабные сети (WideAreaNetwork - WAN), которые используют отдаленные мосты и маршрутизаторы с возможно невысокими скоростями передачи данных.
Отличительные признаки локальной сети:
- высокая скорость передачи, большая пропускная способность;
- низкий уровень ошибок передачи;
- эффективный, быстродействующий механизм управления обменом;
- ограничено, точно определенное число компьютеров, которые подключаются к сети.
Глобальные сети отличаются от локальных тем, которые рассчитаны на неограниченное число абонентов и используют, как правило, не слишком качественные каналы связи и сравнительно низкую скорость передачи, а механизм управления обменом, у них в принципе не может быть гарантировано скорым. В глобальных сетях намного более важное не качество связи, а сам факт ее существования. Правда, в настоящий момент уже нельзя провести четкий и однозначный предел между локальными и глобальными сетями. Большинство локальных сетей имеют выход в глобальную сеть, но характер переданной информации, принципы организации обмена, режимы доступа, к ресурсам внутри локальной сети, как правило, сильно отличаются от тех, что принято в глобальной сети. И хотя все компьютеры локальной сети в данном случае включены также и в глобальную сеть, специфику локальной сети это не отменяет.
1.3 Обзор методов решения подобных задач
В настоящее время существует множество программного обеспечения для моделирования локальных сетей. Такие как: NetWizard, NetCracker, Boson NetSim for CCNP, Packet Tracer и другие.
Программа NetCracker представляет собой CASE-средства автоматизированного проектирования, моделирования и анализа компьютерных сетей с целью минимизации затрат на разработку сетей и подготовку проектной документации. Позволяет провести эксперименты, результаты которых могут быть использованы для обоснования выбора типа сети, сред передачи, сетевых компонент оборудования и программно-математического обеспечения. Программные средства NetCracker позволяют выполнить сбор соответствующих данных о существующей сети без останова ее работы, создать проект этой сети и выполнить необходимые эксперименты для определения предельных характеристик, возможности расширения, изменения топологии и модификации сетевого оборудования с целью дальнейшего ее совершенствования и развития. С помощью NetCracker можно проектировать компьютерные сети различного масштаба и назначения: от локальных сетей, насчитывающих несколько десятков компьютеров, до межгосударственных глобальных сетей, построенных с использованием спутниковой связи. В составе программного обеспечения NetCracker имеется мощная база данных сетевых устройств ведущих производителей: рабочих станций, серверов, сред передачи, сетевых адаптеров, повторителей, мостов, коммутаторов, маршрутизаторов, используемых для различных типов сетей и сетевых технологий.
Boson Netsim являет по сути своей эмулятором сетевых устройств компании Cisco на основе Cisco IOS. Данная программа поможет получить практические знания по работе с сетевыми устройствами, начиная от обычных управляемых свичей и заканчивая роутерами седьмого поколения. В поставку включена утилита для моделирования сети. В ней можно смоделировать любой тип сети или взять готовую из примеров.
NetWizard - это мультивендорный онлайн конфигуратор, который помогает спроектировать локальные вычислительные сети и структурированные кабельные системы. На рынке системной интеграции NetWizard является уникальным. С помощью конфигуратора можно приблизительно спроектировать локальную сеть через Интернет. Оценку стоимости локальных вычислительных сетей и структурированных кабельных систем можно произвести бесплатно, а подобрать сетевое оборудование в режиме полного или студенческого доступа. Проектирование осуществляется посредством понятного пошагового диалога без специфических терминов и непонятных вопросов. По ходу диалога можно по своему усмотрению исправить какие-либо параметры, что несомненно оценят проектировщики локальных вычислительных сетей и структурированных кабельных систем со стажем. В NetWizard есть версия для подбора пассивного сетевого оборудования в пределах всего здания. Она подбирает информационные кабели, телекоммуникационные розетки, кабельные каналы, патч-панели и телекоммуникационные шкафы. NetWizard расставляет коммуникационные узлы по зданию, рассчитывает количество портов для соединения коммуникационных узлов, длину кабелей, длину и ёмкость кабельных каналов. Формирует отчёты. Прелесть подбора сетевого оборудования в NetWizard в том, что нет необходимости помнить о различных мелких деталях, которые в великом множестве требуются при построении структурированных кабельных систем. В рамках одного проекта NetWizard позволяет оценить структурированную кабельную систему либо локальную сеть в пределах одного многоэтажного здания.
10-Strike LANState - программа для администрирования и мониторинга серверов, компьютеров, и прочих сетевых устройств. Программа может быть полезна администраторам и простым пользователям сетей Microsoft Windows. С помощью LANState можно наблюдать текущее состояние сети в графическом виде, изменяющееся в реальном времени, управлять серверами и рабочими станциями, вести мониторинг удаленных устройств с помощью периодического опроса компьютеров. Механизм мониторинга с сигнализацией позволяет получать своевременные оповещения о различных событиях - неполадках сети, нехватки места на серверах, сбоях в службах и так далее. Поддерживаются Windows 95/98/ME/NT/2000/XP/2003/Vista/2008/7.
Packet Tracer 5.0. - это визуальное моделирование сетей на основе маршрутизаторов, коммутаторов, концентраторов, повторителей, беспроводных точек доступа , компьютеров, модемного Dial-up соединения, серверов (HTTP, DHCP, TFTP, DNS), эмуляция WAN, принтеров, IP-телефонов, многопользовательское облако. Конфигурирование и настройка данного оборудования через графическое отображение в окне программы. Отображение устройства визуально, как в реальности, добавление разных модулей и плат расширения, разных сетевых плат: Ethernet(10BASE-T), Fast Ethernet(100BASE-TX, 100BASE-FX), Gigabit Ethernet(1000BASE-T, 1000BASE-LX), Wireless 802.11g, последовательный порт, асинхронный/синхронный последовательный сетевой модуль (HDLC, SDLC, POS), телефонные порты RJ11. Используются механизмы визуального моделирования потоков данных, посылка ping-запросов из командной строки и в визуальном отображении для проверки качества связи между двумя устройствами, трассировка маршрута с помощью команды traceroute для проверки пути следования пакетов через всю построенную сеть. Подключение к устройствам удаленно через telnet и SSH-сеансы. Программа проста в использовании и предназначена для изучения, построения и проектирования сетей как для начинающих пользователей, приступающих к работе с сетевым оборудованием и готовившихся к сдаче экзамена CCENT, CCNA, так и для более опытных специалистов.
1.4 Постановка задачи. Системные требования
Целью курсовой работы является:
1. Проектирование компьютерной сети
Дана схема здания. Построить модель компьютерной сети средствами NetCracker. Оценить производительность сети, устойчивость работы сети. Рассчитать спецификацию и себестоимость модели компьютерной.
2. Освоение методов проектирования сетевых приложений, создание сетевой информационной системы «Сетевое приложение стоматологическая поликлиника»
Проектируемая предметная область: юридическая контора
1. Разработать клиент - серверное приложение. Серверная часть - база данных, реализованная средствами СУБД.
2. База данных должна содержать информацию об объектах и процессах предметной области.
3. Первое клиентское Windows приложение должно быть реализовано средствами Visual Studio 2005.
4. Второе клиентское приложение представляет собой WEB- приложение, обращающееся к серверному приложению по протоколу HTTP. WEB - приложение должно быть реализовано средствами ASP.NET
Функции сетевого клиент - серверного приложения:
- сохранение в файл статистики подключений клиентских приложений к серверному приложению;
- через Windows- форму осуществляется запись переданных данных в Базу данных;
- отображение данных в WEB - приложение из базы данных;
- проверка правильности ввода данных в Windows приложении;
- добавление и удаление данных из серверного приложения;
- аутентификация пользователей;
- серверное приложение осуществляет расчет с использованием входных параметров, полученных из клиентского приложения;
- организация пользовательского интерфейса.
Минимальный состав технических средств:
- Процессор не менее Pentium-2.0Hz;
- Оперативную память объемом не менее 512 Мб;
- Тип монитора: EGA и выше;
- Устройство ввода: клавиатура, мышь;
- Операционная система Windows XP, Windows 7;
- Компоненты среды Net.Framework 2.0;
- СУБД Microsoft Office Access 2003.
2. ПРОЕКТИРОВАНИЕ СТРУКТУРЫ И АРХИТЕКТУРЫ ПРОГРАММНОГО ПРОДУКТА
2.1 Разработка компьютерной сети
От заказчика был получен план здания. Здание состоит из двух этажей. На первом этаже расположены следующие помещения: кабинет рентгена, кабинеты хирурга, стоматолога, протезиста, детский стоматолог, регистратура.
На втором этаже расположены: помещение серверной, бухгалтерия, кабинет директора, отдел кадров, медпункт. План здания на рисунке 1:
Рисунок 1 - План здания
Данный план был проанализирован, было принято решение расставить компьютеры следующим образом. На первом этаже в «Рентген кабинете» один компьютер, в кабинете «Хирурга» один компьютер, в кабинете «Стоматолога» один компьютер, кабинет «Протезиста» один компьютер, в кабинете «Ортадонта» один компьютер, «Детский стоматолог» - один компьютер, «Регистратура» - один компьютер. На втором этаже шесть компьютеров: два компьютера в комнате «Директор», один компьютер в кабинете «Отделе кадров», два компьютера в отделе «Бухгалтерия», один компьютер в «Медпункте». Расположение компьютеров как на рисунок 2:
Рисунок 2 - Расположение компьютеров в здании
Цель данной работы состоит в проектировании информационных сетей для использования в организации, занимающейся предоставлением медицинских услуг. На данный момент времени проблема организации сети в таких организациях состоит в правильном подборе компьютеров, сетевого оборудования, стандарта, по которому будет осуществляться передача данных. Нецелесообразно применять волоконно-оптические провода. Поэтому выбирают стандартные четырех парные провода. Но стандартов передачи по витой паре также много. Применять стандарт 10 Base T не имеет смысла, т.к. этот стандарт устарел и не сможет обеспечить необходимое быстродействие. Поэтому нужно выбирать из стандартов со скоростью передачи 100 Мбит/с. В наше время широкое распространение получил Интернет этот факт необходимо учесть. Немаловажный аспект проектирования организаций, в выборе офисных компьютеров. Для удобства работников обычно используют офисные компьютеры. Так же немаловажно выбрать высокопроизводительный сервер для обработки данных с кассы и данных, получаемых по локальной сети.
Для данной информационной сети достаточного одного сервера, который будет сервером баз данных, файловым и Email-сервером. Для файл-сервера главным требованием является большой объём дискового пространства и высокая скорость работы жестких дисков.
Для обеспечения требуемой производительности при выборе компьютеров пользователей необходимо учитывать уровень требований современных приложений. Планируется использовать стандартную комплектацию, предлагаемую компьютерной фирмой «Тираэт».
Проектируемая сеть должна обладать тем программным обеспечением, которое позволит осуществить все поставленные задачи. Поэтому рекомендуемыми операционными системами будут Microsoft Windows Small Business Server 2003 Premium R2 и Microsoft Windows XP / Microsoft Windows 7 для компьютеров персонала.
В проектируемой сети предполагается использовать кабели UTP 5e Cat 100Base-TX (по СКС TIA/EIA-568-B), который выбран по той причине, что обладает необходимой пропускной способностью. Среда передачи данных: витая пара. Выбрана (витая пара) в связи с широким распространением и простотой обслуживания. Физическая топология сети: звезда. Данная топология имеет ряд достоинств:
- неисправность одной станции не отражается на работе всей сети;
- хорошая масштабируемость сети;
- лёгкий поиск неисправностей и обрывов в сети;
- высокая производительность, гибкие возможности администрирования.
Максимальная длина кабеля от сервера до компьютера: 50 м. Скорость передачи данных: 100 Мбит/с. Для данного задания достаточно данной скорости передачи данных, так же 100 Мбит/с достаточно для обеспечения наилучшей производительности сети, в этом случае нет необходимости в установке внешних плат для сетевого подключения, т.к. можно обойтись встроенными. Ограничение на количество подключаемых устройств: отсутствует, т.к. возможно расширение сети в рамках возможности доукомплектования сервера и установки дополнительных компьютеров.
2.2 Спецификация и расчет себестоимости спроектированной сети
После анализа прайс-листов представленных на рынке фирм по продаже сетевого оборудования была составлена следующая спецификация:
Наименование продукции |
Цена |
Количество |
Стоимость |
|
RJ-45 розетка внешняя CAT.5 1 порт NCAC-SMB1 |
27.50 |
16 |
440.00 |
|
PACH CORD UTP CAT.5E, 100MB (3.0M) (PP12-3M) |
20.90 |
18 |
376.20 |
|
Шкаф ETHERNET 19” 42U (19C-42U/600-800) |
12089.00 |
1 |
12089.00 |
|
Панель ETHERNET 19”PatchPanel UTP 24port cat.5E |
440.00 |
1 |
440.00 |
|
PATCH CORD UTP CAT.5E? 100MB (1.0M) (PP12-1M) |
8.80 |
16 |
140.80 |
|
Блок C-E3400/2*320GB/DVDRW/SVGA+LAn |
3102.00 |
16 |
49632.00 |
|
Блок XEON-5420/2048*2*500GB/2XLAN1G |
19800.00 |
1 |
19800.00 |
|
SWITCH GEMBERD NS-16p 16 PORT 10/100 |
330.00 |
1 |
330.00 |
|
Кабель ETHERNET UTP 4P CAT5E (1m) |
3.52 |
410 |
1443.20 |
|
Короб пластиковый 16*25мм |
10,45 |
170 |
1776,50 |
|
Короб пластиковый 16*40 мм |
17,60 |
10 |
17,60 |
|
Работы по монтажу КС |
6050,00 |
1 |
6050,00 |
|
Итого |
92693,70 |
Все серверное оборудование устанавливается в серверный шкаф, который удовлетворяют стандартам структурированных кабельных систем. Размер серверного шкафа 600*800 мм. Такой размер удобен для обслуживания и подключения компонентов. Все комплектующие так же удовлетворяют всем требованиям СКС и имеют стандартные размеры.
2.3 Проектирование сети с помощью программы NetCracker
Для построения сети в программе NetCracker требуется запустить программу из меню «Пуск». В браузере устройств выбираем «Bildings, campuses and LAN workgroups» из палитры в нижнем окне браузера, зажав левую клавишу мыши перетаскиваем «Bilding»(здание) на окно проекта. Окно проекта на рисунке 3:
Рисунок 3 - Браузер программы NetCracker
Стоматологическая поликлиника состоит из двух этажей, что бы сделать это в проекте необходимо по зданию кликнуть правой кнопкой мыши, из меню выбрать команду Exspand (расширить). Откроется новое окно, его название будет «Стоматологическая поликлиника». Далее в это окно из браузера устройств выбираем «Bildings, campuses and LAN workgroups» из палитры в нижнем окне браузера, зажав левую клавишу мыши перетаскиваем объект «Floor»(этаж). Данную операцию проделаем дважды, т.к. у нас в проекте два этажа. По проекту на первом этаже в «Рентген кабинете» один компьютер, в кабинете «Хирурга» один компьютер, в кабинете «Стоматолога» один компьютер, кабинет «Протезиста» один компьютер, в кабинете «Ортадонта» один компьютер, «Детский стоматолог» - один компьютер, «Регистратура» - один компьютер. Первый этаж юридической конторы на рисунке 4:
Рисунок 4 - Первый этаж стоматологической поликлиники
На втором этаже шесть компьютеров: два компьютера в комнате «Директор», один компьютер в кабинете «Отдела кадров», два компьютера в отделе «Бухгалтерия», один компьютер в «Медпункте». План этого этажа на рисунке 5:
Рисунок 5 - Второй этаж стоматологической поликлиники
Средний размер ответа сервера 2730 байт представлен на рисунке 6:
Рисунок 6 - Средний размер ответа сервера
Количество полученных сервером пакетов за время тестирования проекта составило: 3499909 пакетов, это видно из рисунка 7:
Рисунок 7 - Количество полученных сервером пакетов
Количество пакетов в секунду времени на рисунке 8:
Рисунок 8 - Количество пакетов за секунду времени
Средняя загруженность сети составляет примерно 26 Мбит/с, это можно увидеть на рисунке 9:
Рисунок 9 - Средняя загруженность сети
Реальная сеть заданной топологии была смоделирована в программном пакете NetCracker Professional. Проект был построен в соответствии с топологией сети и сетевым оборудованием. Средний размер ответа сервера составил 2730 байт; количество полученный сервером пакетов за время тестирования проекта составило 3499909 пакетов; количество пакетов в секунду времени - 507; средняя загруженность сети составила примерно 26 Мбит/с.
2.4 Выбор инструментальных средств для реализации разрабатываемого клиент - серверного приложения
Для разработки клиентского и серверного приложения использовалась интегрированная среда разработки Visual Studio 2005, язык C#.
C# - язык программирования, сочетающий объектно-ориентированные и контекстно-ориентированные концепции. Разработан в 1998--2001 годах группой инженеров под руководством Андерсa Хейлсбергa в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET. Компилятор с C# входит в стандартную установку самой .NET, поэтому программы на нём можно создавать и компилировать даже без инструментальных средств вроде Visual Studio.
C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет строгую статическую типизацию, поддерживает полиморфизм, перегрузку операторов, указатели на функции-члены классов, атрибуты, события, свойства, исключения, комментарии в формате XML. Переняв многое от своих предшественников -- языков C++, Delphi, Modula и Smalltalk -- С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем: так, C# не поддерживает множественное наследование классов (в отличие от C++) или вывода типов (в отличие от Haskell).
Для обеспечения обмена данными между серверным и клиентским приложением используются сокеты. Сокет это конечная точка сетевых коммуникаций. Каждый использующийся сокет имеет тип и ассоциированный с ним процесс. Сокеты находятся внутри коммуникационных доменов. Домены это абстракции, которые подразумевают конкретную структуру адресации и множество протоколов, которое определяет различные типы сокетов внутри домена. Примерами коммуникационных доменов могут быть: UNIX домен, Internet домен, и т.д.
Сокет - это комбинация IP адреса и номера порта, которая однозначно определяет отдельный сетевой процесс во всей глобальной сети Internet или в локальной сети. Два сокета, один для хоста-получателя, другой для хоста-отправителя, определяют соединение для протоколов, ориентированных на установление связи, таких, как TCP.
Со стороны клиентского приложения связь устанавливается с помощью стандартной функции connect, которая инициирует установление связи в клиентском приложении, используя дескриптор сокета и информацию, которая содержит адрес сервера и номер порта на который надо установить связь. Если сокет не был связан с адресом, connect автоматически вызовет системную функцию bind.
Со стороны серверного приложения процесс установления связи сложнее. Когда сервер предлагает один из своих сервисов, он связывает сокет с общеизвестным адресом, ассоциирующимся с данным сервисом, и пассивно слушает этот сокет. Для этих целей используется системный вызов listen. Когда сервер получает запрос от клиента и принимает решение об установлении связи, он создает новый сокет и связывает его с ассоциацией, эквивалентной «слушающему сокету».
Рисунок 10 - Процесс установления связи между клиентским
и серверным приложениям с использованием сокетов
Второе клиентское представляет собой WEB-приложение, обращающееся к серверному приложению по протоколу HTTP. WEB-приложение необходимо реализовать средствами ASP.NET.
ASP.NET - (сокр. от Active Server Pages / активные серверные страницы) - технология для динамического формирования HTML-страниц, предложенная в конце 1997 г. фирмой Microsoft. ASP - это не язык программирования, а технология предварительной обработки, позволяющая подключать программные модули к веб-страницам. В программах ASP , в основном, используются VBScript или JScript, хотя благодаря технологии Active Scripting возможно подключать произвольные языки сценариев. Технология ASP получила свое развитие в виде ASP.NET -- новой технологии создания веб-приложений, основанной на платформе Microsoft .NET. В ASP.NET появилось много новых функций и возможностей, но самое главное заключается в том, что в ASP.NET программный код выделен в отдельный исполняемый модуль, откомпилированный для среды .NET, а в качесте языка программирования можно использовать любой язык программирования .NET. Встроенные языки .NET: C#, J#, C++, VB.NET, языки производства третьих фирм: Delphi, Perl, FORTRAN и множество других.
Visual Studio позволяет выполнять тестирование на различных веб-серверах, включая IIS Express, службы IIS и встроенный сервер Visual Studio Development Server. Для проекта веб-сайта на основе файлов можно использовать сервер IIS Express или встроенный сервер Visual Studio Development Server.
2.5 Описание логической структуры программного продукта
В программе реализованы следующее процессы обработки информации:
- создание подключения клиентского приложения к серверному;
- передача данных между компонентами программного продукта по протоколу tcp для Windows приложениях с использованием сокетов и по протоколу http для Web приложения;
- запись статистики подключения к серверному приложению в html- файле;
- аутентификация пользователей;
- редактирование данных на серверном приложении;
- добавление в таблицах базы данных новых пользователей или новых специалистов после удачного завершения проверки входных данных;
- удаление данных из таблиц базы данных;
- вывод статистики событий на экран для просмотра;
- формирование бланков с данными о регистрации пациентов в виде html - отчетов;
- вывод данных о визите к врачу в Web приложении;
- вывод данных о специалистах клиники в Web приложении;
Основными данными в приложениях являются таблицы базы данных: «Пользователи», «Специалисты», «Визиты».
Таблица «Пользователи» предназначена для авторизации администратора в системе. Таблица содержит следующие поля: «Login» - хранит логин администратора; «Password» - хранит пароль учетной записи; «role» - хранит роль пользователя, который определяет его возможности использования приложения.
Таблица «Специалисты» хранит информацию о сотрудниках стоматологической клиники. Таблица содержит следующие поля: «ФИО_специалиста» - хранит фамилию и инициалы врача; «специальность» - хранит специализацию врача; «степень» - хранит информацию о трудовой деятельности врача, «телефон» - хранит номер телефона по которому можно связаться с врачом.
С клиентского приложения пользователь обращается к серверному приложению с SQL запросом на выборку данных для аутентификации в виде строковой переменной, которая передается с помощью потокового сокета методу находившемся на сервере приложений. Серверное приложение выполняет запрос пользователя на аутентификации, идентифицирует каждого пользователя в системе, и для каждого сеанса работы определенного пользователя создает статистику подключений, записывая в html-файле Data.html время подключения, имя пользователя и наименование действий осуществившимися пользователем.
Если пользователя нет в таблице «Пользователи», ему не предоставляется возможность перейти на главную форму клиентского приложения и произвести регистрацию пациента. При удачной аутентификации пользователь переходит на главную форму. При загрузке формы, пользовательское приложение обращается к серверному приложению с запросом на выборку данных, содержащих фамилии и инициалы врачей, заполняя этими данными коллекцию элемента управления combobox. Чтобы осуществить регистрацию пациента, пользователю необходимо заполнить поля главной формы клиентского приложения. При нажатии кнопки подтверждающую регистрацию формируется бланк регистрации в виде html - файла Check.html, который содержит фамилию и инициалы пациента, фамилия и инициалы лечащего врача, диагноз, стоимость услуги, дата и время визита к врачу. Все внесенные данные будут переданы на сервер. Серверное приложение при помощи sql-запроса вносит данные в таблицу «Визиты», которая содержит поля: «id» - хранит идентификационный номер регистрации нового пациента; «дата_визита» - хранит дату и время поступления запроса на сервер; «пациент» - хранит фамилию и инициалы пациента, обратившегося за услугами; «телефон_пациента» - хранит телефон пациента; «специалист» - содержит фамилию и инициалы лечащего врача; «визит» - тип визита: первичный или повторный; «диагноз» - хранит поставленный диагноз пациенту; «стоимость_услуг» - содержит цену оказанных услуг.
Возможность работать с таблицами «Пользователи» и «Специалисты» предоставляется только администратору. На серверном приложении администратор создает учетные записи пользователей, которые впоследствии будут переданы клиентам для работы в системе. Так же администратором выполняется добавление данных нового специалиста (врача), их редактирование и удаление из таблицы.
Клиентское Windows приложение имеет следующую структурную схему: загрузка формы для авторизации (autoriz.cs), где осуществляется авторизация пользователя. После авторизации загружается главная форма (total.cs), содержащая поля для заполнения данными о регистрации пациента и о предоставляемой ему услугой. В случае если произошла ошибка при вводе информации в какое-либо поле или необходимые поля были не заполнены, будет показано сообщение о неправильности вводимых данных и потребуется исправление данных для корректной работы программы. Все введенные данные будут передаваться серверному приложению и сохранены в таблице базы данных.
Выход из программы может происходить как после завершения всех необходимых действий, так и на этапе формирования исходных данных. При выходе из программы во время процесса внесения данных, изменения не будут сохранены.
Функциональная схема программы представлена на рисунке 11:
Рисунок 11 - Функциональная схема windows клиент-серверного приложения
Web приложение имеет следующую функциональную схему: загрузка главной страницы «О нас» (Default.aspx), где пользователю предоставляется возможность получить информацию о деятельности стоматологической клинике «Aristom Dental Care». Верхняя часть страницы содержит главное меню, предоставляющий пользователю возможность навигации по страницам «Стоматология» (Stom.aspx), «Наши специалисты» (Service.aspx), «Услуги» (Price.aspx), «Адреса» (Adres.aspx). Страница «Стоматология» содержит ознакомительную информацию о внедрение новых средств и технологий не только в области лечения, но и в области профилактики и диагностики стоматологических заболеваниях, об услугах предоставляемых пациентам. Страница «Наши специалисты» (Service.aspx) содержит информацию о специалистах клиники, об их трудовой деятельности и номера телефонов по которым можно с ними связаться. Данные о специалистах загружаются из таблицы «Специалисты» базы данных. Страница «Услуги» (Price.aspx) предоставляет пользователю возможность просмотреть список оказываемых клиникой услуг и их расценку. На этой странице имеется поле для ввода кода, полученного пациентом в клинике. Заполняя это поле и нажимая кнопку «ок», пациент получает информацию о своем визите к врачу: диагноз и сумму к оплате.
Страница «Адреса» располагает адресной информацией сети стоматологических клиник «Aristom Dental Care», почта, телефон, время работы.
С любой страницы сетевого приложения пользователь может перейти на любую другую страницу.
Структура web - приложения представлена на рисунке 12:
Размещено на http://www.allbest.ru/
Рисунок 12 - Функциональная схема web - приложения
компьютерный сеть клиент серверный
3. РЕАЛИЗАЦИЯ ПРОГРАММНОГО ПРОДУКТА
3.1 Реализация программного продукта, основные алгоритмы
Программный комплекс реализующий, информационную систему стоматологической клиники, является сетевым. Основными алгоритмами являются алгоритмы связанные с передачей данных по сети, как по локальной для windows приложения, так и по сети Интернет для web сайта.
Соединение клиентского Windows приложения с серверным приложением осуществляется при помощи потокового сокета.
Для работы работы с BinaryFormatter, Socket, NetworkStream, FileStream файлами необходимо объявить пространства имен:
using System.Net.Sockets;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO.
После компиляции обеих программ первой запускается серверное приложение, поскольку для установления соединения серверный процесс должен ожидать запроса со стороны клиентского процесса. Сервер сразу устанавливает для сокета локальную конечную точку и создает IPEndPoint, комбинируя первый IP адрес хост компьютера, полученный от метода Dns.Resolve (), и номер порта.
IPHostEntry ipHost = Dns.Resolve("localhost");
IPAddress ipAdr = ipHost.AddressList[0];
IPEndPoint ipEndPoint = new IPEndPoint(ipAdr, 139);
Экземпляром класса Socket создается потоковый сокет.
s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Следующий шаг назначение сокета с помощью метода Bind(). Когда сокет открывается конструктором, ему не назначается имя, а резервируется дескриптор.
Чтобы сокет клиента мог идентифицировать потоковый сокет Тср, серверная программа должна дать имя своему сокету.
sListener.Bind(ipEndPoint);
После создания и связывания имени, начинается, прослушивание входящих сообщений. В параметре определяется максимальное число соединений, ожидающих обработки в очереди.
sListener.Listen(10);
В состоянии прослушивания сервер готов дать согласие на соединение с клиентом, для этого используется метод Accept().
Socket handler = sListener.Accept();
Данный метод блокирует поток вызывающей программы до поступления соединения. Этот метод извлекает из очереди ожидающих запросов первый запрос и создает для его обработки новый сокет. Первоначальный сокет продолжает «слушать», и может быть использован с многопоточной обработкой для приема нескольких запросов на соединение от клиентов. Серверное приложение не должно закрывать «слушающий» сокет. «Слушающий» сокет продолжает работать наряду с сокетами, созданными методом Accept().
При запуске клиентского приложения пользователю необходимо ввести IP адрес сервера и номер порта, по которому будут передаваться данные. Когда клиент и сервер установили соединение, можно отправлять и получать сообщения, используя методы Send () и Receive().
byte[] kol = new byte[1024];
int bRec = handler.Receive(kol);
k2 = Convert.ToString(Encoding.ASCII.GetString(kol, 0, bRec));
Метод Receive() получает данные от сокета и заполняет массив байтов, переданный в качестве аргумента. Возвращаемое методом значение - фактически считанное количество байтов. Если символы конца сообщения в строке не найдены, продолжается ожидание входящих данных.
Для ответа создаем новый массив байтов, который нужно послать клиенту.
string m = Convert.ToString(ot);
byte[] msg = Encoding.ASCII.GetBytes(m);
handler.Send(msg);
При завершении обмена данными закрывается соединение методом Close(). для гарантии, что никаких не обработанных данных не осталось перед этим методом, вызывается метод Shutdown().
handler.Shutdown(SocketShutdown.Both);
handler.Close();
Для каждого экземпляра сокета, успешно выполнившего свою работу, обязательно нужно вызывать метод Close ().
Для аутентификации в клиентском приложении используются те же методы, которые были рассмотрены и для серверного приложения: определения конечной точки, создания экземпляра сокета, отправки и получения данных, закрытия сокета. Работа клиентского приложения отличатся от серверного тем, что сервер прослушивает входящие сообщения клиент при помощи метода Connect() устанавливает соединение между сокетом и удаленной точкой. Установив соединение, клиент может отправлять данные и получать ответы.
s.Connect(ipEndPoint);
Для авторизации клиента необходимо выбрать пользователя в окно авторизации программы. Процедура авторизации была упрощена в связи с тем, что нет большой необходимости в сокрытие данных: регистрировать нового пациента может как врач, так и медсестра или сам пациент.
Для работы с Access необходимо объявить пространство имен:
using System.Data.OleDb.
При подключении к базе необходимо указать строку соединения:
string InstConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @" tooth_poliklinika.mdb;" + "Jet OLEDB:Database Password=admin";
Создать объект соединения OleDbConnection. OleDbConnection представляет уникальное подключение к источнику данных.
OleDbConnection con = new OleDbConnection(InstConnectString);
При помощи метода Open() открываем соединение.
сon.Open();
После того как соединение открыто сервер готов работать с базой данных и обращаться к ней для выборки либо записи данных.
Для того чтобы удостовериться что у сервера установлено соединение с базой данных при каждом обращении к базе можно использовать конструкцию try ... catch, которое позволит отследить любое действие, которое не может быть выполнено по той или иной причине, и оно называется Exception (исключение).
Как только на сервер пришли данные для аутентификации выполняется следующий код:
try
{
OleDbCommand S_All = new OleDbCommand("Select Login, Password from Users", con);
OleDbDataReader s_re = S_All.ExecuteReader();
while (s_re.Read())
{
data_to_client_zakaz += s_re[0].ToString() + "|";
Ostatok += s_re[1].ToString() + "|";
}
data_to_client_zakaz += "#" + Ostatok;
ClientSock.Send(Encoding.UTF8.GetBytes(data_to_client_zakaz.Trim()));
}
catch (Exception)
{
Console.WriteLine("Ошибка доступа");
}
Если не удалось установить связь с базой данных, то выводится сообщение: «Ошибка доступа». Если сервер получил доступ к базе данных, то он обращается к таблице «Пользователи» и отправляет список пользователей для работы с программой. После данной процедуры можно перейти к заполнению формы.
Заполнив все необходимые поля формы «Регистрация пациента» пользователь по нажатию кнопки «Зарегистрироваться», обращается к серверу, отправляя ему данные для выполнения клиентского запроса на добавление данных в таблице «Визиты» базы данных tooth_poliklinika.mdb.
В качестве параметра конструктор класса TcpListener принимается номер порта, который впоследствии и будет прослушиваться программой. Объекты этого класса связываются с заданным портом. Однако объект класса TcpListener позволяет только прослушивать определенный порт компьютера. Любые процессы передачи данных через этот сокет осуществляются с использованием объекта TcpClient.
TcpListener clientListener = new TcpListener(port);
clientListener.Start();
Объект TcpClient возвращается методом AcceptTcpClient() класса TcpListener, что обеспечивает сам процесс прослушивания порта. После связывания программы с портом с помощью вызова метода AcceptTcpClient() можно подключиться к этому порту и начать прослушивание входящих соединений:
TcpClient client = clientListener.AcceptTcpClient();
Затем, после подключения к серверу, аналогично серверной программе, создается поток входных/выходных сообщений:
NetworkStream writerSteam = eclient.GetStream();
Для сериализауции создаем объект format типа BinaryFormatter.
BinaryFormatter format = new BinaryFormatter();
byte[] buf = new byte[1024];
Для записи данных о выполненных действиях на клиентском приложении используются метод класса File - AppendAllText() с параметрами FILE - имя html-файла Data.html, где будут записываться данные, Text_S - строка содержащая текст который необходимо записывать, Encoding.UTF8 - кодировка данных.
clientep = (IPEndPoint)ClientSock.RemoteEndPoint;
string IP = clientep.Address.ToString();
FILE = Application.StartupPath + "\\Logs\\" + Data + ".html";
string Text_S = "Время: <b>" + Time + "</b><br>IP: <b>" + IP + "</b><br>Порт: <b>" + port + "</b><br>Пациент: <b>" + arr_main[0] + "</b><br>Диагноз: <b>" + arr_main[4] + "</b><hr>";
File.AppendAllText(FILE, Text_S, Encoding.UTF8);
Когда клиент принимает ответ от сервера с помощью метода Receive(), данные записываются в массив DATA_F, данные из которго потом записываются в массив data_arr уже разделенными элементом '|' с помощью метода Split(). Затем эти данные заполняют поля элемента управления comboBox1:
//Получение с сервера преобразованных данных
Sock.Receive(data_from_serv);
DATA_F = Encoding.UTF8.GetString(data_from_serv);
String[] data_arr = DATA_F.Split('|');
//Добаволение данных в комбобокс
comboBox1.Items.Clear();
for (int i = 0; i < data_arr.Length; i++)
{
comboBox1.Items.Add(data_arr[i]);
}
Когда клиент отправляет информацию серверу, данные объеденяються в строку содержащую элемент “|” который в дальнейшем позволит серверному приложению разделить данные с помощью метода Split():
REG = fio.Text + "|" + tel.Text + "|" + comboBox1.Text + "|" + comboBox2.Text + "|" + comboBox3.Text + "|" + price.Text;
//Отправка данных серверу
Sock.Send(Encoding.UTF8.GetBytes(REG));
MessageBox.Show("Регистрация прошла успешно!");
Одновременно с отправкой данных о регистрации нового пациента формируется бланк регистрации в виде Html-файла Check.html, который содержит фамилию и инициалы пациента, фамилию и инициалы лечащего врача, диагноз, стоимость услуги, дата и время визита к врачу.
string add = "<table border=1><td><center><h2>Бланк № " + Nomer_reg.ToString() + "</h2></center><tr><td><table border=0 bordercolor = blue width=430 height=200><td><center><h2>Пациент: " + fio.Text + "</h2></center><td rowspan=4><center><img src=logo.png width=120 height=120></center><tr><td><b>Лечащий врач: " + comboBox1.Text + " " + "</b><tr><td><b>Диагноз: " + comboBox3.Text + " </b><tr><td><b>Стоимость лечения: " + price.Text + " руб. </b><tr><b><td><b>Дата и время визита: <td><b>" + Data + " в " + Time + "</b><tr><td><b>Подпись врача<td>________________________</b><tr><td><b>Подпись пациента<td>________________________</b></table></table>";
Подобные документы
Разработка системы, базирующейся на протоколе LIMone, для обмена мгновенными сообщениями и пересылки файлов в процессе деловой переписки. Реализация системы в виде клиент-серверного приложения. Расчет экономических показателей программного продукта.
дипломная работа [4,7 M], добавлен 22.08.2016Анализ технологий, применяемых для построения современных ЛВС. Моделирование функционирования локальной вычислительной сети по технологии Fast Ethernet. Разработка клиент-серверного приложения и программного обеспечения, работающего в сети APMов.
курсовая работа [2,0 M], добавлен 23.11.2011Разработка клиент-серверного приложения на основе TCP\IP соединения. Организация работы удаленного генератора псевдослучайных последовательностей. Описание основных функциональных модулей. Интерфейс пользователя, сетевое взаимодействие и алгоритм.
курсовая работа [223,6 K], добавлен 18.10.2013Особенности настройки корпоративной сети предприятия. Разработка приложения, обеспечивающего эффективную работу клиент-серверной сети железнодорожной кассы. Защита от несанкционированного доступа, специфика шифрования паролей и ряд других средств защиты.
курсовая работа [5,9 M], добавлен 30.01.2014Сетевое программное обеспечение: общее понятие, содержание, функции. Этапы развития теории компьютерных сетей. Проектирование в среде программирования Borland Builder C++ клиент серверного приложения с использованием сокетов, листинг данной программы.
курсовая работа [191,5 K], добавлен 07.01.2015Основные концепции разработки приложения в трёхуровневой архитектуре. Проектное решение, реализующее модель реляционной БД. Спецификация на разработку интерфейса. Описание выполнения транзакций прибытия и убытия судна. Инсталляционные файлы приложения.
курсовая работа [4,0 M], добавлен 26.12.2011Критерии выбора и выбор инструментальных средств разработки. Выбор технологии создания программного продукта и ее описание. Разработка приложения сетевого мониторинга, позволяющий проследить за ходом работы студентов вовремя занятий в компьютерном классе.
дипломная работа [2,2 M], добавлен 18.04.2015Создание клиент-серверного приложения "Чат" с помощью среды визуальной разработки приложений Borland C++ Builder версии 6. Описание функциональности приложения: наличие клиент-серверной архитектуры, обмен короткими сообщениями, а также передача файлов.
курсовая работа [302,0 K], добавлен 30.01.2012Разработка приложений для смартфонов на ОС Android для сети аптек "Фармация". Архитектура операционной системы Android. Архитектура и реализация приложения. Его функциональность. Описание работы мобильного приложения. Расчет затрат на создание продукта.
дипломная работа [1,6 M], добавлен 17.06.2017Классификация пользователей проекта Web-приложения "Такси "Люкс". Выбор основных методов и средств разработки. Описание дизайна сайта. Исходный код обработчиков основных событий на страницах. Расчет себестоимости разработки программного продукта.
дипломная работа [2,5 M], добавлен 26.06.2012