Программное обеспечение системы СМС Школа является информационной системой, автоматизирующей процесс сбора, введения, хранения и анализа данных успеваемости учеников с возможностью оперативного оповещения родителей. В системе внедрены эффективные методы аутентификации и авторизации пользователей, позволяющие детально и гибко настроить нужное поведение системы, групповые политики безопасности, упрощающие логическое разбиение множества пользователей системы на некоторые подмножества. Система была спроектирована с учётом масштабируемости, отказоустойчивости и кроссплатформенности.

Программное обеспечение системы СМС Школа является клиент-серверным приложением.

Клиент-сервер - архитектура компьютерной сети, в которой ПК являются либо клиентами (запрашивающий ПК), либо серверами (ПК, который отвечает на запрос). Преимущества сетевого клиент-серверного решения:

  • поддержка единой системы доступа к документам, отчетам и функциям системы;
  • централизованное хранение данных в единой базе;
  • комплексная автоматизация управленческого процесса;
  • поддержка распределенной работы многих пользователей;
  • наличие механизмов прав доступа к данным в соотвествии с ролью пользователя;
  • минимальные требования к клиентскому рабочему месту (возможность использования "слабую" и устаревшую компьютерную технику);
  • возможность функционирования на различных компьютерах и различных аппаратных платформах (например, Windows или Linux)
  • возможность передачи данных в режимах on-line и off-line.

Требования к программному обеспечению системы СМС Школа

Способ организации данных

Ключевую роль в любой информационной системе играют данные. Данные — это представление фактов и идей в формализованном виде, пригодном для передачи и обработки в некотором информационном процессе. Одно из основных требований к любой информационной системе — это надежное хранение данных, их актуальность и доступность. Очень важно определится со способом хранения и обработки этих данных. Роль системы хранения определяется постоянно возрастающей ценностью информации в современном обществе. Возможность доступа к данным и управление ими является необходимым условием для выполнения бизнес-процессов.

Безвозвратная потеря данных — серьезная опасность. Утраченные вычислительные ресурсы можно восстановить, а утраченные данные уже не подлежат восстановлению.

Существует два подхода к хранению данных — централизованный и децентрализованный, имеющие свои плюсы и минусы.

При централизованном подходе снижаются накладные расходы, связанные с согласованием информации в разных местах, появляется полный контроль над системой в одном месте. Недостатком такого подхода является ограничение производительности/пропускной способности, меньшая степень надёжности - одно звено определяет работоспособность всей системы.

При децентрализованном подходе к хранению данных увеличивается доступность данных, масштабируемость, но появляется необходимость синхронизации возможно противоречивых данных из разных источников, накладные расходы на это.

Решить как же хранить данные, поможет анализ структуры источника данных. Источник данных — это большое количество школ, которые являются равноправными с точки зрения важности данных. Это говорит нам о пользе применения децентрализованного подхода. Взгляд на данную проблему со стороны ключевых требований к создаваемой информационной системе, говорит о необходимости механизма анализа всего объема данных. Таким образом, можно прийти к следующему способу организации хранения данных. В каждой школе есть локальная копия данных, с которой эта школа работает. Регулярно это локальная копия синхронизируется с центральным хранилищем, отправляя изменения, сделанные за определенный период времени. Такой подход дает ряд преимуществ: позволяет автономно работать школе, в случае отсутствия связи с главным хранилищем и, с другой стороны позволяет делать масштабный анализ данных.

Масштабируемость

Масштабируемость — способность системы увеличивать свою производительность при добавлении ресурсов. Система называется масштабируемой, если она способна увеличивать производительность пропорционально дополнительным ресурсам. Также под масштабируемостью понимается возможность наращивания дополнительных ресурсов без структурных изменений центрального узла системы.

Это еще один важный аспект функционирования проектируемой информационной системы, так как количество школ, заинтересованных в её функционировании неизвестно заранее. Это означает, что для запуска в эксплуатацию должно хватить скромных ресурсов, а при увеличении потребностей, эти ресурсы можно увеличить.

Безопасность

Обеспечение централизованного хранения данных накладывает дополнительные ограничения на безопасность системы в целом. Обеспечение безопасности в данном контексте можно разделить на две категории:

  • обеспечение конфиденциальности данных, т. е. доступ к ним осуществляют только субъекты, имеющие на него право;

  • обеспечение целостности данных, т. е. избежание несанкционированной модификации информации.

Эти требования возникают в связи, во-первых, с необходимостью избежать раскрытия персональных данных родителей и учеников, а во-вторых с необходимостью контролировать как круг лиц, которым доступен определенный набор действий по модификации данных (вертикаль безопасности), так и множество объектов, к которым у них есть доступ (горизонталь безопасности). Эти требования обуславливают введение системы аутентификации и авторизации.

Доступ к данным

Существует два способа получить интересующую информацию с центра хранения данных: использование толстого или тонкого клиента.

Тонкий клиент (англ. thin client) в компьютерных технологиях — компьютер или программа-клиент в сетях с клиент-серверной или терминальной архитектурой, который переносит все или большую часть задач по обработке информации на сервер. Примером тонкого клиента может служить компьютер с браузером, использующийся для работы с веб-приложениями.

Толстый или Rich-клиент в архитектуре клиент-сервер — это приложение, обеспечивающее (в противовес тонкому клиенту) расширенную функциональность независимо от центрального сервера. Часто сервер в этом случае является лишь хранилищем данных, а вся работа по обработке и представлению этих данных переносится на машину клиента.

Достоинства толстого клиента:
  • обладает широким функционалом в отличие от тонкого;

  • режим многопользовательской работы;

  • предоставляет возможность работы даже при обрывах связи с сервером;

  • высокое быстродействие;

  • экономия сетевых ресурсов.

Недостатки толстого клиента:
  • большой размер дистрибутива;

  • многое в работе клиента зависит от того, для какой платформы он разрабатывался;

  • при работе с ним возникают проблемы с удаленным доступом к данным;

  • довольно сложный процесс установки и настройки;

  • сложность обновления и связанная с ней неактуальность данных.

Исходя из поставленных задач, а именно из задачи предоставить удобный способ доступа к хранимой информации, наиболее приемлемый способ это веб-приложение, избавляющий от проблем с получением и установкой толстого клиента. С другой стороны, для обеспечения быстродействия приложения, функционирующего в школах и минимизации сетевого трафика более целесообразно использовать толстый клиент. Анализ требуемого функционала показал, что операторам в школах, вносящим изменения в данные, необходим минимум функционала для работы приложения: формы для заполнения данных и ведения журнала. Этот функционал может обеспечить толстый клиент, тогда как весь функционал, обеспечивающий построение аналитических отчетов, управления группами и т. д. может быть доступен через веб.

Кроссплатформенность

При распространении информационных систем приходится учитывать реальные среды функционирования систем в различных учебных заведениях России. При этом жесткая привязка программного комплекса к конкретной программно-технической среде может стать серьезным ограничением применения этих комплексов. Возникает задача обеспечения кроссплатформенности данной информационной системы.

Кроссплатформенность — возможность запуска программного продукта на разных аппаратно-программных комплексах.

В пользу важности данного вопроса говорит то, что одним из возможных потребителей функционала данной информационной системы могут быть государственные органы, например комитет по образованию. Ввиду сложившейся тенденции перехода государственных органов к использованию свободного программного обеспечения, в частности различного рода linux и unix платформ*, одним из ключевых требований становится кроссплатформенность.

* В марте 2008 г. Министерство связи и массовых коммуникаций РФ выпустило концепцию развития разработки и использования свободного программного обеспечения в Российской Федерации.

Средства разработки

Выбор языка программирования

Основой создания кроссплатформенного приложения является выбор языка программирования. Именно от языка зависит скорость написания приложения, его надежность, сложность и быстродействие. В настоящий момент выбора языка, это довольно трудный и трудоемкий процесс, т. к. кроссплатформенных языков, например C++, Ruby, Java, Python, Perl, каждый из которых обладает своими преимуществами и недостатками. Рассмотрим несколько из этих языков, применительно к требованиям нашей информационной системы.

C++

C++  — компилируемый статически типизированный язык программирования общего назначения. Это чрезвычайно мощный язык, содержащий средства создания эффективных программ практически любого назначения, от низкоуровневых утилит и драйверов до сложных программных комплексов самого различного назначения.

Плюсы:
  • высокая скорость выполнения приложения.
Минусы:
  • синтаксис, провоцирующий ошибки;
  • хотя код и является кроссплатформенным, он жёстко привязывается к аппаратно-програмной базе, существующей на момент компиляции приложения, что делает затруднительным использование и сопровождение приложения написанного с использованием данного языка программирования;
  • отсутствие стандартных библиотек для создания графического пользовательского интерфейса(GUI). Данное ограничение можно обойти, если использовать одну из кроссплатформенных библиотек по созданию GUI, но тем не менее очень усложняет процесс расспространения толстого клиента;
  • необходимость вначале реализовывать сервер, обслуживающий бизнес-логику процессов, а затем и саму бизнес-логику.

Ruby

Ruby — динамический, рефлективный, интерпретируемый высокоуровневый язык программирования для быстрого и удобного объектно-ориентированного программирования.

Плюсы:
  • в основе доступа к данным лежит объектно-ориентированный подход и концепция MVC (Model-View-Controller);
  • обладает мощной надстройкой для создания веб-приложений — Ruby on Rails, а также обеспечивает их интеграцию с веб-сервером и сервером базы данных.
Минусы:
  • сложности с написанием десктоп-ориентированных приложений, в данном случае толстого клиента;
  • довольно низкая производительность;
  • проблемы с документацией.

Java

Java — высокоуровневый язык программирования, ставящий во главу угла объектно-ориентированный подход.

Плюсы:
  • сложившиеся стандарты написания промышленных приложений (J2EE);
  • наличие производительных и надежных серверов приложений, требующим реализации только бизнес-логики;
  • один язык для написания десктоп-ориентированых приложений, веб-приложений, и бизнес-логики;
  • в основе лежит объектно-ориентированный подход, что упрощает написание и сопровждение приложения;
  • большое количество готовых свободных библиотек;
  • хорошая документированность, заложенная в основу языка (javadoc).
Минусы:
  • не высокая скорость выполнения, в сравнении с C++;
  • громоздкость кода.

Perl

Perl — высокоуровневый интерпретируемый динамический язык программирования общего назначения.

Плюсы:
  • богатые возможности для работы с текстом, в том числе реализованные при помощи регулярных выражений;
  • большое количество дополнительных модулей CPAN;
  • динамическая типизация.
Минусы:
  • довольно сложный и разнородный подход к стилю написания приложений на Perl усложняет написание и поддержку приложений;
  • отсутствие качественных современных веб-фреймворков и сервера приложений.

Несмотря на то, что все эти языки обладают своими плюсами и минусами, за основной язык принят Java, позволяющий наиболее точно и с наименьшими усилиями реализовать описанную архитектуру информационной системы.

Java — объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems. Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) независимо от компьютерной архитектуры.

Достоинство подобного способа выполнения программ — в полной независимости байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина. Другой важной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание.

Часто к недостаткам концепции виртуальной машины относят то, что исполнение байт-кода виртуальной машиной может снижать производительность программ и алгоритмов, реализованных на языке Java. Данное утверждение было справедливо для первых версий виртуальной машины Java, однако в последнее время оно практически потеряло актуальность.

Основная причина — это наличие набора спецификаций (J2EE) и соответствующей документации, описывающей архитектуру серверной платформы для задач средних и крупных предприятий. Спецификации детализированы настолько, чтобы обеспечить переносимость программ с одной реализации платформы на другую. Основная цель спецификаций — обеспечить масштабируемость приложений и целостность данных во время работы системы. J2EE во многом ориентирована на использование её через веб как в интернете, так и в локальных сетях.

Существенную роль сыграло наличие развитых веб-фреймворков и возможность написания веб-приложений на том же самом языке что и логика бизнес процессов.

Еще одно существенное преимущество — наличие сервера приложений, делающим тривиальной задачу распространения толстого клиента, упрощающего процесс поддержки и сопровождения системы.
Сервер приложений

J2EE — надстройка над Java, регламентирующая некоторые базовые концепции написания кода. Например, т. к. Java является чисто объектно-ориентированным языком программирования, J2EE вводит особый способ взаимодействия с базой данных, предоставляя все хранимые данные как объекты. Данная технология называется Java Persistence Query Language. Применение такой модели взаимодействия с базой данных позволяет стандартизировать способы обработки этих данных и повторно использовать один и тот же код.

Так же J2EE вводит довольно удобные способы контроля авторизации в виде аннотации к блокам кода, позволяющие наглядно разделить функционал информационной системы на роли.

Еще одной отличительной чертой технологии J2EE применительно к разработке данной информационной системы является использование Enterprise JavaBeans (также часто употребляется в виде аббревиатуры EJB) — спецификации технологии написания и поддержки серверных компонентов, содержащих бизнес-логику. Данная технология позволяет использовать одни и те же методы в работе разнородных клиентов, например для web страниц и для локально установленных на компьютеры операторов java-клиентов. Кроме единой бизнес-логики преимущество технологии EJB заключается еще и в использовании интерфейсов, т. е. изменения серверной части, при правильно спроектированном приложении, не коснется клиентской части.

Glassfish — это открытая реализация стандарта J2EE. Обладает удобным набором утилит и функциональным графическим web интерфейсом для конфигурирования работы как самого сервера, так и сопровождения жизненного цикла запущенных на нём приложений. Обладает рядом интересных особенностей, таких как:

  • опциональная защита канала обмена данными между клиентом и сервером;
  • ведения журнала событий, возможность гранулировать подробность этого журнала по каким либо критериям;
  • замена любого из своих компонентов, например механизм аутентификации и авторизации;
  • организации пулов ресурсов, таких как доступ к базе данных, пул процессов;
  • обеспечение целостности клиентской части, путем введения цифровой подписи приложения;
  • поддержка современных технологий web разработки, таких как Java Server Pages(JSP) и различных популярных web фрейморков, таких как DoJo.
Выбор СУБД

В качестве СУБД было рассмотрены две основные альтернативы mysql и postgresql, обладающие своими плюсами и минусами.

Основные достоинства mysql:
  • многопоточность, поддержка нескольких одновременных запросов;
  • оптимизация связей с присоединением многих данных за один проход;
  • записи фиксированной и переменной длины;
  • JDBC драйвер, позволяющий легко интегрироваться в сервер приложений Glassfish;
  • гибкая система привилегий и паролей;
  • гибкая поддержка форматов чисел, строк переменной длины и меток времени;
  • быстрая работа, масштабируемость;
  • совместимость с ANSI SQL;
  • бесплатна в большинстве случаев;
  • быстрая поддержка транзакций через механизм InnoDB.

Особо стоит отметить отдельный немаловажный фактор, сказывающийся на скорости разработки и отладки приложения — дружелюбный пользовательский интерфейс командной строки, а так же наличие бесплатного кроссплатформенного графического интерфейса как к настройке СУБД, так и к ее проектированию — mysql-workbench.

Схожий функционал имеет СУБД Postgresql. Использование сервера приложений и объектного подхода J2EE дало возможность отложить более детальный сравнительный анализ СУБД на стадию тестирования системы, так как можно в любое время сделать замену СУБД в настройках сервера приложений.


Интерфейс клиентской части ПО СМС Школа

Клиент программного обеспечения системы СМС Школа является "толстым" клиентом и предназначен для непосредственой работы операторов системы в школах для безопасного ввода информации в единую базу данных. Данное приложение является кроссплатформенным и работает на любой операционной системе. Соединение клиента с сервером происходит по сети интернет.

Внешний вид основных экранов и интерфейсов программы во многом аналогичен бумажному журналу и не требует от оператора специальных усилий и подготовки для освоения и работы с программой.

Функциональные возможности клиента
  • Ведение электронного журнала;
  • Ведение справочников: Оценки, Предметы, Преподователи, Классы, Договора;
  • Сервис-функции: Отправка оценок, Отправка сообщений, Поиск по справочнику Договора, Синхронизация с сервером.
Особенности
  • Наличие справочника Оценки позволяет использовать любую систему баллов, принятую в школе (5-ти, 10-ти, 20-ти значную и пр.). Также система блокирует любой ввод оценки, не присутствующей в данном справочнике.
  • Оператору в школе не требуется вести какой-либо финансовый учет. При синхронизации клиента с сервером происходит автоматическая проверка статуса Договора. Если у Договора отрицательный баланс (закончились средства на лицевом счете родителя), Договору присваивается статус Заблокирован и отправка sms-сообщений родителю становится невозможной. Отображение заблокированных учеников настраивается в электронном журнале.
  • Электронный журнал привязан к календарю, подсвечиваются выходные дни, блокируется простановка оценок в воскресенье, запрещается редактирование сохраненных и отправленных оценок. Каждая оценка имеет свой статус и тип.
  • Отправка сообщений возможна как по классу в отдельности, так и по всей школе.
  • При работе клиента с сервером используется кеширование, что позволяет избегать постоянного соединения клиента с сервером через интернет, например, в отличие от тонких клиентов, использующих web-браузер, при смене электронных журналов классов каждый раз не требуется высокоскоростное подключение к интернету и обновление страницы.
  • При сохранении оценок и сообщений в клиенте, по запросу оператора, данные отправляются и сохраняются на сервере. Оператору не требуется тратить время на отправку sms-сообщений, т.к. данную функцию выполняет сервер СМС Школа, подключенный к высокоскоростному SMS-шлюзу (скорость до 300 sms/сек.).
Скриншоты


Интерфейс панели управления сервером системы СМС Школа

Панель управления сервером предназначена для администрирования работы системы СМС Школа. Для доступа к панели управления используется web-браузер. Сервер СМС Школа предназначен для хранения данных, синхронизации с клиентами, синхронзации с сервером биллинговой системы, формирования sms-сообщений и отправки данных сообщений на сервер sms-шлюза.

Функциональные возможности панели управления
  • Создание и управление аккаунтами пользователей системы;
  • Создание и управление группами пользователей;
  • Назначение ролей и прав доступа пользователям и группам пользователей системы;
  • Создание и присоединение территорий;
  • Создание и управление школами;
  • Просмотр детальной статистики по отправленным соообщениям по каждой школе;
  • Просмотр общей статистики по всем школам;
  • Доступ к базе данных договоров;
  • Поиск по базе данных.
Скриншоты

 

Программное обеспечение СМС Школа зарегистрированно 05 февраля 2010 года Федеральной службой по интеллектуальной собственности, патентам и товарным знакам Российской Федерации (Роспатент) в государственном Реестре программ для ЭВМ. Свидетельство о государственной регистрации программы для ЭВМ "СМС Школа" № 2010611118. Программное обеспечение СМС Школа защищено законами об авторских правах и международными соглашениями. Незаконное воспроизведение или распространение данного программного обеспечения или любой его части влечет гражданскую и уголовную ответственность.

Есть вопросы? Звоните!

8 (800) 775-46-92

Или напишите нам!

Мы перезвоним!