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

Что представляет

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

Для клиента, серверное приложение, это некий “черный ящик”, к которому он имеет реквизиты доступа, или приложение уже изначально настроено на работу с определенным сервером.

Обмен данными и функциональное взаимодействие, обеспечивает определенный протокол API. Формат и содержание протокола может быть как стандартизированным (например файловый доступ FTP), так и специальным (разрабатываемый как REST, или свой). Формат и содержание протокола может меняться, в процессе доработки программного обеспечения, соответственно и клиентские приложения должны быть обновлены, для синхронного понимания входящих данных.

Применяемость

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

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

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

Интеграция со сторонними системами

Проектирование и разработка серверных приложений для бизнеса, часто сопровождаются требованиями интеграции с существующими системами организации, например 1С, СБИС++, СЭД, CRM, ERP и прочими. На ровне с этим, а в некоторых случаях и совместно, присутствует необходимость интеграции приложений с внешними информационными системами. Для реализации интеграции возможны несколько путей:

  • Интеграция через API-протокол

    Это набор описанных протоколов интеграции приложений, набора REST, предполагающий обмен короткими сообщениями в виде сериализированного универсального формата JSON, XML, YML, по протоколам связи HTTP, HTTPS, SOAP, FTP и пр. Например синхронизация с 1С возможна по механизму SOAP-XML в двустороннем режиме.

  • Интеграция на уровне ресурсов и баз данных

    В данном случае, одно приложение заимствует данные другой системы, не уведомляя ее. Например мобильное приложение для клиентов, отображающее посещения поликлиники, может брать данные из базы данных ERP системы поликлиники. В большинстве случаев, такой подход допустим, только для систем чтения (без изменения данных)

  • Интеграция по средствам программных модулей (SDK)

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

Технологии

Разработка серверного программного обеспечения ведется преимущественно на ОС Linux и в меньшей степени на ОС Windows Server. Выбор платформы зависит от компонентных сервисов (например AD), рабочей нагрузки, требований безопасности, принадлежность к категориям сертификации, а также наличием SDK в случае необходимости интеграции. После выбора платформы функционирования серверных приложений, ее сменить невозможно, либо это понесет объем трудозатрат соизмеримый затратам на разработку нового серверного приложения.

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

  • Под среду Linux: Bash, Erlang, Perl, PHP, JAVA
  • Под среду Windows: C++, JAVA

Реляционные Системы Управления Данными

  • Postgresql,
  • MS SQL,
  • MySql,
  • Oracle

Спецхостинг

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

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

Программное окружение (операционная система и сопутствующие системные сервисы), должны обеспечивать возможность непрерывной работы, и быть подобраны специально, для работы в составе серверной системы. В большинстве серверных систем, используются серверные ОС (MS Windows Server, Linux Debian, HREL, FreeBSD и т.п.)

Несмотря на все средства поддержания бесперебойной работы, в практике случаются различные аварии. Для обеспечения уровня отказоустойчивости свыше 99%, применяются средства резервирования на всех участках от эноргообеспечения, до дублирования программного функционала. Вместе с резервированием, для работы серверных систем предполагающих накопление данными, используются средства резервного копирования и восстановления (Backup/Restore). Обычно эти средства находятся в отчуждаемой зоне (за периметром ЦОД).

На базе компании Дотрунет, инженерами HDD-Company (входят в состав Дотрунет групп) была разработана линейка специальных серверных решений, удовлетворяющих условиям для серверной работы. Программисты Дотрунет рекомендуют использование именно этих программно-аппаратных платформы, для запуска серверов.

Гарантия

Все программные продукты, в том числе и серверные решения, имеют гарантийный период. В этот срок разработчики обязаны устранять все замечания, связанные с работой системы, в рамках описанного в техническом задании функционала. Для серверных систем и серверов API обычно определяется гарантийный срок 3-6 мес. Период, условия и количество гарантийных обращений, определяются договором на разработку или договором на постгарантийное обслуживание. В случае, если сопрягаемое оборудование или сервис работают с нарушением регламентированного функционала, что нарушает корректную работу всего создаваемого комплекса, это не является гарантийным случаем.