Принципы построения и основные задачи выполняемые серверными программами

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

Есть отдельный вид контента, требующий особого внимания, особенно в 21 веке. Это – веб-утилиты. Такое программное обеспечение лучше всего пишется на веб languages (скриптовых). Отличным решением станет JavaScript. Он специализируется преимущественно на веб-разработке, легко запоминается и работает относительно быстро.

Для web-софта, особенно сложного, важна серверная работа. О ней пойдет речь в данной статье. Информация по JS, а также лучшим платформам (среди них есть Node) для программирования на этом языке окажется полезной не только новичкам, но и опытным программистам.

Основные термины – что знать о веб-разработке

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

Занятие 1. Компьютерные сети: общие понятия, виды и принципы. Локальные, городские и глобальные сети

Запомнить рекомендуется следующие понятия:

  • веб-утилита – client-серверная программа, в котором client (web interface) осуществляет запуск посредством браузера, а серверная часть работает на специальном веб-сервере;
  • клиент – локальное устройство, находящееся на стороне юзера, которое отправляет запросы к серверам для дальнейшей работы;
  • сетевой протокол – сборник принципов и правил, которые задают принципы выполнения взаимодействия между устройствами в пределах виртуальной сети;
  • архитектура – элемент, отвечающий за формулирование принципов «общения» между локальными устройствами, а также за правила взаимодействий непосредственно в пределах протокола.

Все эти понятия относятся к языку программирования JS, а также к другим веб-языкам. Чтобы в процессе разработки не возникло никаких проблем, рекомендуется дополнительно изучить и запомнить основные термины в программировании. Это поможет при составлении даже самых сложных программных кодов.

Сервер – определение понятия

Введение в веб-разработку осуществляется путем изучения не только подходящего языка программирования, но и с терминов, связанных с servers. Все это относится и к JS тоже.

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

Сервером в JS и других языках также могут называть мощное устройство, которое используется для решения задач, связанных с программными кодами. Осуществляет сервисное обслуживание по запросам. Отвечает за сохранение данных и БД.

Серверная часть представляет собой программу, которая обеспечивает работу сайта. Разработка подобной утилиты подразумевает непосредственное создание веб-странички. Серверная часть находится на server. Пользователи в сети не могут получить к ней доступ. Работой с оной занимаются веб-программеры.

Основы сетевых технологий. Глава 1. Основные принципы

Особенности клиент-серверной модели

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

  1. Client формирует запрос и отправляет его на сервер.
  2. Последний принимает «сигнал».
  3. Осуществляется системная обработка поданного запроса и выполнение соответствующих операций.
  4. Клиенту выводится тот или иной результат.

Важно: данная схема предусматривает одновременную работу с несколькими clients.

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

За что отвечают клиенты и серверы

В JS и не только на стороне сервера реализовываются следующие задачи:

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

А вот параметры, проходящие реализацию со стороны клиента:

  • предоставление доступа к пользовательскому графическому интерфейсу;
  • формирование запроса для дальнейшей обработки и выполнения той или иной команды;
  • отправка запросов на server;
  • получение результатов;
  • направление дополнительных групп команд (добавление, обновление, удаление сведений).

Все это – лишь введение в клиент-серверную часть программирования в JS. Не зная соответствующие основы, составить веб-утилиту будет крайне проблематично.

Концепции постройки системы

Перед тем, как создавать код на JS, стоит хорошо усвоить принципы работы клиент-серверной части контента. Существуют следующие концепции постройки оной:

  1. Слабый клиент-мощный сервер. База данных и другая информация обрабатывается за счет серверной мощности. Пользователи здесь обладают сильно ограниченными правами. Сервер отправляет ответ, не требующий дополнительной обработки. Client будет взаимодействовать с пользователем: создаст и направит необходимую команду, примет входящие сигналы, осуществит результирующую часть.
  2. Сильный клиент. Тут некоторая часть обработки информации отдается clients. Server здесь будет простым местом хранения информации (база данных, таблица и так далее). Основная деятельность ведется на пользовательском устройстве. Часть электронных материалов переносится на девайс клиента.

Есть еще один вариант – когда система или софт, который обрабатывает информацию, предоставляется юзеру. Здесь server – это особое хранилище данных. Все манипуляции по обработке и предоставлению сведений переносится на клиентский компьютер.

Важно: при программировании на JS стоит заранее определиться с концепцией. В противном случае создать качественный софт не получится. Код JavaScript придется переписывать.

Архитектура

При желании код на JS можно написать в самом обычном «Блокноте» с расширением .js. Утилита заработает, но лучше всего пользоваться для реализации поставленной задачи специальными утилитами. Они называются платформами (один вариант – Node). Помогают довольно быстро создать даже сложный проект, задействовав удобный интерфейс и функциональные возможности.

Но перед этим необходимо хорошо разобраться в принципах работы клиент-сервера. Существуют следующие виды архитектур:

  1. Двухуровневая. Здесь есть server, который отвечает за получение входящих запросов, а также отправку ответов юзерам. Для реализации поставленной задачи задействуются собственные системные ресурсы.
  2. Трехуровневая. Включает в себя предоставление информации через графический пользовательский прикладной объект, представленный сервером приложений. Здесь присутствует менеджер ресурсов. Это – база данных (ее server), который предоставляет информацию.

Второй вариант может переходить во многоуровневую. В данном случае при работе с программой JS получится установить группы дополнительных servers. Такая архитектура – лучшее решение для повышения производительности.

О платформах для JS

Введение в принципы работы рассматриваемого типа приложений и игр закончено. Теперь можно остановиться на таком моменте как платформа (пример – VIM, Node). С ее помощью удается создавать веб-контент с максимальным комфортом. Это – специальный софт, предназначенный для разработки.

В случае с JS вариантов платформ очень много. Каждая имеет собственные преимущества и недостатки. Далее будут представлены самые успешные из них. Также получится определить лучший редактор для программера, решившего использовать programming language из Java семейства.

Notepad++

Первый вариант – это Notepad. Редактор, который имеет открытый исходный код. С ним разберется даже новичок.

Обладает следующими особенностями:

  • синтаксис можно подсветить на нескольких языках (включая JS);
  • автоформатирование;
  • автодополнение;
  • навигация посредством вкладок;
  • файловые менеджеры;
  • карты кода;
  • работа с кодировками различных типов;
  • возможность подключения компиляторов и плагинов.
Читайте также:
Осуществить программу или работу

Единственный существенный недостаток – это работа исключительно на Windows. Для других операционных систем предстоит искать иной редактор JS.

Vim – непревзойденная классика

Классическая среда программирования, поддерживающая множество languages of programming. Иногда кажется, что разобраться с Vim достаточно трудно (синтаксис остается понятным), но это не так. Новичкам в разработке нередко этот софт доставляет хлопоты, но в будущем менять его не захочется.

При помощи Vim можно:

  • работать с плагинами;
  • осуществлять замену тем;
  • назначать горячие клавиши.

Работает на всех операционных системах, включая MS DOS и OS/2.

Visual Studio

Детище компании Microsoft. IDE, который предусматривает все необходимое для работы с JS и веб-разработки. Здесь имеется дебагер и возможность создания Unit-тестов.

  • большой вес;
  • наличие подписки до 250 долларов в месяц для полноценной разработки;
  • установка на Linux через Wine.

Для новичков имеется бесплатная версия, позволяющая составлять контент с открытым исходным кодом.

Nodejs

Еще один редактор, на который можно найти специальные уроки в Сети – это Node. Представляет собой программную платформу, которая базируется на движке V8 (транслирует Javascript в машинную кодификацию). Превращает JS в язык общего назначения.

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

Преимущества и возможности платформы

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

Node обладает следующими особенностями:

  • синтаксис подсвечивается;
  • есть асинхронные скрипты, основанные на событиях;
  • высокая производительность;
  • работа однопоточного типа, только среда поддерживает масштабируемость;
  • разнообразные библиотеки и фреймворки (express, nest и другие);
  • отсутствие буферизации – информация будет выводить сведения на дисплей по частям.

Node – среда, имеющая лицензию MIT. Ей пользуются разнообразные популярные крупные компании. Пример – eBay, PayPal, Microsoft.

Для чего нужна

Среда Node отлично зарекомендовала себя. По ней есть разнообразные уроки. Они учат грамотно применять фреймворк express для веб-утилит и другим возможностям редактора. Чаще всего Node используют для создания приложений:

  • где нужен ввод-вывод информации;
  • с потоковой передачей электронных сведений;
  • поддерживающих активное применение данных в реальном времени (поможет фреймворк express);
  • базирующихся на API JSON.

Node Editor имеет относительно простой syntax и понятный interface. Легко устанавливается – достаточно скачать Node с официального сайта.

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

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

Источник: otus.ru

Основные принципы построения

В основу Корпоративной информационной системы ПАРУС заложены следующие базовые принципы:

Архитектура «клиент-сервер»:

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

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

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

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

Масштабируемость решений ПАРУСА базируется:

На многоплатформенности технологий, что предполагает оптимальный подбор используемого программного обеспечения в зависимости от конкретной ситуации и допускает, наряду с достижением целей построения корпоративной системы управления,применение на отдельных автоматизируемых участках относительно дешевых и легко сопровождаемых решений на СУБД FoxPro или Btrieve, сопрягаемых с информационным ядром Системы, реализованном на СУБД Oracle.

На принципе построения продуктов ПАРУСа в единую преемственную линию. Так, начав с относительно простой и дешевой Системы 7-й версии, использующей СУБД FoxPro, Вы сможете впоследствии перейти на более мощную «Систему управления ПАРУС» на базе Oracle.

Модульность:

Система ПАРУС является модульной. Многие ее компоненты успешно функционируют автономно. Однако такая работа может быть более или менее оправдана только для некрупных фирм. Для больших предприятий целесообразнее приобретать сразу пакет приложений. В любом случае Вы можете начинать с минимальных комплектаций, добавляя отдельные компоненты Системы по мере надобности и оптимально по Вашим финансовым возможностям.

Заказав проектное или специальное решение, Вы можете получить модифицированное под собственные нужды «коробочное» или совершенно новое приложение, которое информационно и функционально стыкуется с остальными приложениями Системы. Если Вам необходимо использовать программные продукты других фирм, то можно наладить их взаимодействие с Системой ПАРУС. Во многих случаях такое взаимодействие уже реализовано (например, приложение «Фондовый отдел нефтебазы» взаимодействует с программно-аппаратным комплексом для автоматической отгрузки нефтепродуктов).

Интеграция с Web-технологиями:

Интернет, объединив локальные сети во Всемирную паутину, открыл новые возможности для ведения бизнеса в едином информационном пространстве в масштабах компании, отрасли, страны и мира в целом. Развитие новых информационных технологий заставляет по новому взглянуть на стратегию и тактику автоматизации предприятия. Чтобы окончательно и безнадежно не отстать от конкурентов, Корпоративная информационная система класса MRP или ERP должна «научиться» общаться с внешним миром, стать более понятной, удобной и доступной.

ПАРУС-ON-LINE — новое решение, объединяющее учетные и управленческие возможности КИС ПАРУС с коммуникационными возможностями Web-технологий, позволит нашим клиентам по-новому взглянуть на свой бизнес.

В основе ПАРУС-ON-LINE лежит трехуровневая схема, включающая следующие компоненты:

Корпоративный сервер управления данными и соответствующими методами их обработки.

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

Универсальная программа просмотра содержимого Web-узлов (Web-браузер).

На сервере управления данными хранится корпоративная база данных и бизнес-логика, реализованная в КИС ПАРУС.

На сервере приложений хранятся ASP-сценарии (Active Server Pages), позволяющие отображать в html-формате данные из корпоративной базы данных и заносить в эту базу информацию, введенную пользователями через Web-интерфейс.

Благодаря специализированным функциям модуля «Администратор», входящего в состав КИС ПАРУС, пользователь получает возможность интерактивной настройки Web-интерфейсов для любого раздела системы — определять состав, названия и порядок следования отображаемых полей, указывать обязательные для заполнения поля, значения по умолчанию и т.п. Генерация Web-интерфейсов выполняется автоматически на основании пользовательских настроек и asp-сценариев.

Интеграция с программными продуктами других разработчиков:

Система ПАРУС целеустремленно идет по пути интеграции с широко используемыми, а порой — «де-факто» стандартными программными продуктами, например, Microsoft Excel. Подобная практика эффективна по следующим причинам:

Читайте также:
Программа КС:ГО exe не работает

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

Сотрудники предприятия, где внедряется Система, часто уже имеют навыки работы со «стандартными» программами. Если это не так, то обучиться работе с ними достаточно легко: ведь они изначально ориентированы на массовое применение.

Отсутствие проблем при передаче подготовленных материалов в электронном виде (в виде файлов самых разнообразных форматов).

Программы Microsoft Word и Microsoft Excel широко известны среди пользователей персональных компьютеров. Фактически они стали международными стандартами текстового процессора и электронных таблиц. Разработчики ПАРУСа всемерно интегрируют Систему с Microsoft Office (в который входят Word и Excel). А потому, когда Вы будете печатать подготовленные в Системе документы, строить графики по отчетам, проводить массовый ввод информации через электронные таблицы, Вы сможете в полной мере использовать разнообразные возможности этих программ.

Система располагает средствами подготовки отчетов практически любого вида. Разумеется, в состав Системы входят все обычно необходимые отчеты. Но Вы можете добавить к ним любые — «под Ваши собственные запросы». В качестве инструментального средства для подготовки шаблонов подобных отчетов используется генератор отчетов Seagate Crystal Reports Professional — лидер в своем классе. Этот программный продукт отличают:

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

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

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

Разнообразие способов распространения отчетов: по электронной почте; экспорт в HTML для публикации на Web-сервере; экспорт в популярные форматы данных: Excel, Lotus 1-2-3, Microsoft Word, WordPerfect, ODBC, ASCII.

Для обмена информацией между территориально-удаленными рабочими местами может быть использована электронная почта, поддерживающая интерфейс MAPI (например, Microsoft Exchange).

Система интегрируема с любыми приложениями на уровне информационного сопровождения записи (минимальной информационной порции), зарегистрированной в базе данных. Вы можете связать с записью Системы любой файл, а затем оперативно вызвать для этой записи то приложение, которое указано общими установками Microsoft Windows для связанного файла с одновременной загрузкой данных этого файла для их просмотра или коррекции. Вы сможете «привязать» к записи любую, например, сопроводительную, информацию, зарегистрированную в документе Microsoft Word, таблице Microsoft Excel, базе данных Microsoft Access, демо- и мультимедиа файлах и т.п.

Открытость Системы ПАРУС обеспечивается следующими факторами:

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

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

Возможность использования открытых API-интерфейсов позволяет интегрировать Систему с программами, созданными силами специалистов Вашего предприятия.

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

Документооборот:

Документооборот в Системе основан на следующих принципах:

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

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

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

Для каждого документа Система ведет «Журнал документооборота», куда автоматически записывает всю историю: кто, когда и с какими особенностями проводил этапы. Для каждого документа можно оперативно просмотреть список «родительских» и «дочерних» документов.

Помимо этого, учитывая возросшую потребность заказчиков в организации единого документооборота предприятия (как административно-хозяйственного, так и финансового), специалисты нашей Корпорации изучают возможность сопряжения систем управления документооборотом, например, Novell GroupWise, с Системой ПАРУС.

Возможность глубокого анализа данных:

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

Система ПАРУС располагает большим количеством средств подготовки данных для экономического и финансового анализа. Так, каждому бухгалтерскому счету Вы можете поставить в соответствие неограниченное количество аналитических счетов по пяти различным признакам классификации. Кроме того, для накопления информации по доходам и расходам в разрезе центров ответственности, видов и направлений деятельности и т.п., Вы можете разработать систему особых пометок по десяти различным произвольным признакам. И Вы можете получить полный отчет о движении средств в разрезе любого из этих признаков или любой их комбинации. Для агрегирования данных возможно использование произвольных периодов, планирование финансовой деятельности возможно с точностью до дня и т.п.

Защита данных:

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

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

Функциональный состав системы:

Управление деловыми процессами.

Рассмотрим более подробно один из модулей системы.

Управление производством, как одно из направлений хозяйственной деятельности предприятия, ставит свои взаимосвязанные специфические задачи:

Планирование выпуска продукции в соответствии с планами продаж.

Формирование производственных планов по всей технологической цепочке создания продукции.

Планирование потребностей в материалах, сырье, комплектующих, рабочей силе, оборудовании.

Расчет затрат на производство и его рентабельности.

Оперативное управление производством и диспетчирование.

Производственный учет — учет движения материалов в производстве.

Учет затрат на производство продукции и калькуляция ее фактической себестоимости. Анализ полученных данных.

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

Читайте также:
Список установленных программ cmd

Общность «тиражируемой» части поддерживается самыми разнообразными ее настройками. Поэтому Корпорация ПАРУС предлагает автоматизацию управления производством с общей «тиражируемой» частью, которая дополняется специальными приложениями, учитывающими «нестандартизируемые» аспекты управления производством:

Подчеркнем, что «постоянство» тиражируемой части Системы не является догмой: если Вас не удовлетворят готовые приложения, то мы готовы разработать новые в рамках специальной разработки.

Отличительными чертами предлагаемого решения являются:

Глубокая интеграция приложений автоматизации управления производством с другими приложениями Системы (см. рисунок на следующей странице: обратите внимание на связи приложений управления производством с приложениями управления персоналом и финансами).

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

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

Источник: studopedia.su

5.2. Создание программ на стороне сервера

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

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

Популярные языки программирования Для создания программного обеспечения, предназначенного для выполнения на стороне сервера, могут использоваться различные языки. Несмотря на то что вся история всемирной сети очень коротка, отношение разработчиков к тем или иным языкам программирования не раз изменялись.

В настоящее время чаще всего используются PHP, Java и классическая технология ASP; также становятся все более популярными ASP.NET и Ruby. Эти названия, конечно же, знакомы большинству читателей. Ajax имеет дело преимущественно с клиентским программным обеспечением, которое может взаимодействовать с серверными программами, написанными на любом из этих языков.

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

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

188 Часть II. Основные подходы к разработке приложений

5.2.2. N-уровневые архитектуры

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

Этим понятие уровней отличается от понятия ролей в архитектуре MVC. Модель, представление и контроллер не являются уровнями, поскольку они реализованы в рамках одного процесса. Первые распределенные системы насчитывали два уровня — клиентский и серверный. Уровень клиента обычно располагался на настольной системе и взаимодействовал с серверным уровнем по сети.

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

По мере развития и усложнения Web-приложений потребовался доступ к базам данных. Двухуровневая модель «клиент/сервер» уступила место трехуровневой модели, в которой сам Web-сервер занял место промежуточного уровня между клиентом и СУБД. Дальнейшее развитие привело к выделению на промежуточном уровне средств представления и бизнес-логики.

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

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

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

Глава 5. Роль сервера в работе Ajax-приложения 189
Web-браузер Web-сервер Сервер баз данных

Рис. 5.1. В Ajax-приложении некоторые функции уровня представления переместились со стороны сервера на сторону клиента. В результате возник новый уровень — клиентский уровень представления

5.2.3. Управление моделью предметной области на стороне клиента и на стороне сервера

В приложении Ajax нам по-прежнему необходимо моделировать предметную область на сервере, «в непосредственной близости» от базы данных и других жизненно важных ресурсов. Однако для того, чтобы клиентская программа могла обеспечить быстрый отклик на действия пользователя, она должна обладать определенным «интеллектом», а это требует наличия на стороне клиента хотя бы частично реализованной модели.

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

Модель предметной области поддерживается средствами бизнес-логики. К ней обращается уровень представления, на котором затем генерируется содержимое Web-страниц, передаваемых браузеру. В J2EE проблема была решена путем применения объектов передачи (transfer objects), которые представляют собой обычные объекты, передаваемые между уровнями.

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

В принципе можно применить для’написания программ на стороне сервера язык JavaScript, однако такой подход нельзя назвать общепринятым, да и к тому же остается задача взаимодействия двух JavaScript-программ. При организации взаимодействия уровней приходится решать две основные задачи: чтение данных с сервера и запись их на сервер. Подробно они рассмотрены в разделах 5.3-5.5. Перед тем как завершить разговор об архитектуре, мы должны рассмотреть основные принципы создания серверных программ, используемых в настоящее время. В частности, нас интересуют вопросы формирования модели предметной области, организации доступа к ней с уровня представления и ограничения, которые могут возникнуть при использовании Ajax.

Источник: studfile.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru