Файлы DLL

Программная конфигурация. Примеры

Программная конфигурация. Примеры

Синтаксис

Синтаксис конфигурационного файла однозначно определяется в терминах:

  • Конфигурация — последовательность параметров
  • Параметр — имя без пробельных символов со следующим за ним значением, отделенным хотя бы одним пробельным символом
  • Значение — строка без пробельных символов / строка, заключенная в кавычки / вложенная конфигурация, заключенная в фигурные скобки

Конфигурация

Дополнительные ограничения / соглашения:

  • Значения всех временны х параметров задаются как целые числа, единица измерения — миллисекунды — не указывается

Все FastCGI-приложения, которыми должен управлять Пускач, должны быть либо явно описаны в конфигурационном файле, либо должна быть определена конфигурация по умолчанию. Приложение описывается параметром fcgi со вложенной конфигурацией:

  1. req_pool_size 256
  2. # Команда запуска PHP-скриптов
  3. start_cmd
  4. mask *.php
  5. mask *.phtml
  6. cmd "/usr/local/bin/php-cgi -f $script_filename"
  7. # Конфигурация по умолчанию
  8. default_fcgi
  9. unix_socket_prefix "/tmp/puskach/site_user_fcgi_"
  10. io_timeout 10000
  11. max_processes 5
  12. sleep_timeout 30000
  13. requests_per_process 1000
  14. path "/usr/home/site_user/www/myscript.fcgi"
  15. unix_socket_prefix "/tmp/puskach/site_user_myscript_fcgi_"
  16. io_timeout 10000
  17. max_processes 1
  18. sleep_timeout 15000
  19. request_processing_timeout 10000
  20. requests_per_process 100
  21. on_abort_request_behaviour 1

req_pool_size — глобальный параметр, устанавливает размер пула запросов, находящихся в обработке, либо ждущих в очереди. При исчерпании пула запросов новые запросы от web-сервера отклоняются. Значение по умолчаню 128.

Параметры FastCGI-приложения

path — путь к FastCGI-приложению, служит для двух целей: (1) запуск приложения и (2) поиск приложения при входящем запросе от web-сервера (во входящем запросе должен передаваться FastCGI-параметр SCRIPT_FILENAME с тем же значением). Может задаваться как абсолютно, так и относительно текущей директории рабочего процесса Пускача (текущую директорию можно установить при старте Пускача в стартовом скрипте).

unix_socket_prefix — префикс имени Unix сокета, используемого для связи Пускача с копиями FastCGI-приложения. Для обеспечения неблокирующей обработки запросов Пускач поддерживает параллельную работу с несколькими процессами одного приложения, именуемыми копиями . Каждая копия слушает свой Unix-сокет, имя которого состоит из префикса и номера копии.

req_queue_len — максимальная длина очереди запросов. Если на момент прихода запроса от web-сервера не находится свободных обработчиков, запрос ставится в очередь; если очередь переполнена, запрос отклоняется. Значение по умолчанию 10.

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

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

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

request_processing_timeout — таймаут обработки запроса — максимально допустимое время между запросом web-сервера и ответом приложения об окончании обработки запроса. В случае превышения таймаута обработка запроса прерывается, а копия приложения останавливается.

requests_per_process — максимальное число запросов, которое может последовательно обработать копия данного FastCGI-приложения. В случае достижения лимита копия завершается. Полезно для профилактики утечки ресурсов.

on_abort_request_behaviour — выбор поведения при прерывании обработки запроса web-сервером: 0 — корректно завершить обработку запроса, если это возможно, 1 — прервать обработку запроса копией FastCGI приложения. По умолчанию 0. Обратите внимание, что для использования значения 1 необходимо, чтобы возможность прерывания обработки запроса при получении соответсвующего сигнала была реализована в логике FastCGI приложения.

Конфигурация по умолчанию

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

Стартовая команда

Стартовая команда определяет исполняемую программу (как правило, интерпретатор) с набором аргументов командной строки, которая может быть использована для запуска FastCGI-приложений. Путь к исполняемому файлу и аргументы задаются в обязательном параметре cmd . Сложные аргументы, содержащие пробельные символы, необходимо заключать в двойные кавычки. По умолчанию путь к запускаемому скрипту будет передан последним аргументом, для явного указания аргумента необходимо использовать макрос $script_filename .

Для ассоциации стартовой команды со скриптами используется один или более параметров mask . Маска — любая комбинация из значащих символов и служебного символа * , совпадающего в любым колическом любых символов. Для поиска стартовой команды Пускач последовательно сравнивает все маски всех стартовых команд с путем к скрипту до первого совпадения. Если в результате поиска стартовая команда не найдена, будет выполнен прямой запуск скрипта по path .

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

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

Последнее обновление: 04.09.2017

Конфигурация по умолчанию

Начиная с версии 2.0, необязательно явным образом подключать конфигурацию в проект. Инфраструктура ASP.NET Core автоматически может это сделать. Единственное ограничение состоит в том, что в качестве файла конфигурации должен выступать файл с именем appsettings.json .

Итак, добавим в проект файл appsettings.json со следующим содержимым:

{ "color": "navy", "text": "Hello ASP.NET Core 2.0!" }

Используем этот файл конфигурации в классе Startup:

Using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Configuration; namespace ConfigurationApp { public class Startup { public Startup(IConfiguration config) { AppConfiguration = config; } public IConfiguration AppConfiguration { get; set; } public void ConfigureServices(IServiceCollection services) { } public void Configure(IApplicationBuilder app) { var color = AppConfiguration["color"]; var text = AppConfiguration["text"]; app.Run(async (context) => { await context.Response.WriteAsync($"

{text}

"); }); } } }

Чтобы получить конфигурацию из файла appsettings.json, достаточно передать в конструктор класса объект IConfiguration, который и будет содержать все настройки. И затем полученную конфигурацию можно использовать в приложении.

Dependency Injection

Более того конфигурация, составленная из файла appsettings.json, доступна по всему приложению, и мы можем ее получить через механизм Dependency Injection, например, в конструкторе какого-нибудь класса. Так, можно определить компонент middleware - ConfigMiddleware, который будет использовать конфигурацию:

Using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; namespace ConfigurationApp { public class ConfigMiddleware { private readonly RequestDelegate _next; public ConfigMiddleware(RequestDelegate next, IConfiguration config) { _next = next; AppConfiguration = config; } public IConfiguration AppConfiguration { get; set; } public async Task Invoke(HttpContext context) { var color = AppConfiguration["color"]; var text = AppConfiguration["text"]; await context.Response.WriteAsync($"

{text}

"); } } }

И затем использовать данный компонент в классе Startup:

Public class Startup { public Startup(IConfiguration configuration) { AppConfiguration = configuration; } public IConfiguration AppConfiguration { get; set; } public void ConfigureServices(IServiceCollection services) { } public void Configure(IApplicationBuilder app) { app.UseMiddleware(); } }

Передача конфигурации из разных источников

Однако выше приведенный способ получения конфигурации в middleware и в других классах будет работать, если в приложении определен файл appsettings.json, который и хранит все настройки. Однако если файл называется иначе, или настройки хранятся в файлах xml, ini, каких-то других источниках или просто определяются в памяти, то по умолчанию передача конфигурации в качестве сервиса работать не будет. И в этом случае необходимо явным образом указать, с каким объектом будет сопоставляться сервис IConfiguration.

Например, мы хотим хранить конфигурационные настройки в памяти и передавать их в качестве сервиса в middleware:

Public class Startup { public Startup() { var builder = new ConfigurationBuilder() .AddInMemoryCollection(new Dictionary { {"color", "red"}, {"text", "Hello ASP.NET Core 2.0"} }); AppConfiguration = builder.Build(); } public IConfiguration AppConfiguration { get; set; } public void ConfigureServices(IServiceCollection services) { services.AddTransient(provider => AppConfiguration); } public void Configure(IApplicationBuilder app) { app.UseMiddleware(); } }

В метод AddTransient() через фабрику сервисов передается объект, который будет использоваться в качестве сервиса IConfiguration. При этом код ConfigMiddleware не меняется, он также получает IConfiguration через конструктор.

Совокупность настроек программы, задаваемая пользователем.

Существуют различные подходы к хранению конфигурации. Многие программы хранят настройки в текстовых файлах; особенно характерно это для UNIX-подобных систем . В Windows текстовые конфигурационные файлы так же используются и часто имеют формат .ini . Несмотря на то, что почти во всех случаях эти файлы можно редактировать вручную, во многих случаях для этого создаётся специальный интерфейс (который может быть как консольный, так и графический).

Иногда в UNIX-подобных системах конфигурация задаётся на этапе сборки программы, и для её изменения программу необходимо пересобирать. Ярким примером может служить ядро Linux . Почти во всех приложениях, собираемых на основе autoconf , можно подключать или отключать те или иные внешние библиотеки через параметры к скрипту configure .

Часто для хранения конфигурации используется специальная база данных. В Windows используется реестр Windows , а в GNOME - GConf ; в обоих случаях конфигурация имеет древовидную структуру.

Источники


Wikimedia Foundation . 2010 .

Смотреть что такое "Конфигурация программного обеспечения" в других словарях:

    Содержание 1 Бразилия 2 Великобритания 3 Индия … Википедия

    Конфигурация: В Викисловаре есть статья «конфигурация» Конфигурация (астрономия) … Википедия

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

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

    ГОСТ Р МЭК 61508-4-2007: Функциональная безопасность систем электрических, электронных, программируемых электронных, связанных с безопасностью. Часть 4. Термины и определения - Терминология ГОСТ Р МЭК 61508 4 2007: Функциональная безопасность систем электрических, электронных, программируемых электронных, связанных с безопасностью. Часть 4. Термины и определения оригинал документа: 3.7.4 анализ влияния (impact analysis) …

    Инфраструктура - (Infrastructure) Инфраструктура это комплекс взаимосвязанных обслуживающих структур или объектов Транспортная, социальная, дорожная, рыночная, инновационная инфраструктуры, их развитие и элементы Содержание >>>>>>>> … Энциклопедия инвестора

    система - 4.48 система (system): Комбинация взаимодействующих элементов, организованных для достижения одной или нескольких поставленных целей. Примечание 1 Система может рассматриваться как продукт или предоставляемые им услуги. Примечание 2 На практике… … Словарь-справочник терминов нормативно-технической документации

    СТО Газпром 2-2.3-141-2007: Энергохозяйство ОАО "Газпром". Термины и определения - Терминология СТО Газпром 2 2.3 141 2007: Энергохозяйство ОАО "Газпром". Термины и определения: 3.1.31 абонент энергоснабжающей организации: Потребитель электрической энергии (тепла), энергоустановки которого присоединены к сетям… … Словарь-справочник терминов нормативно-технической документации

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

    ГОСТ Р МЭК 61513-2011: Атомные станции. Системы контроля и управления, важные для безопасности. Общие требования - Терминология ГОСТ Р МЭК 61513 2011: Атомные станции. Системы контроля и управления, важные для безопасности. Общие требования оригинал документа: [МАГАТЭ 50 SG D8] Примечание 1 См. также «система, важная для безопасности», «класс систем контроля… … Словарь-справочник терминов нормативно-технической документации


Программное обеспечение

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

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

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

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

Базовый уровень. Самый низкий уровень программного обеспечения представляет базовое программное обеспечение. Оно отвечает за взаимодействие с базовыми аппаратными средствами. Как правило, базовые программные средства непосредственно входят в состав базового оборудования и хранятся в специальных микросхемах, называемых постоянными запоминающими устройствами (ПЗУ Read Only Memory, ROM ). Программы и данные записываются («прошиваются») в микросхемы ПЗУ на этапе производства и не могут быть изменены в процессе эксплуатации.

В тех случаях, когда изменение базовых программных средств во время эксплуатации является технически целесообразным, вместо микросхем ПЗУ применяют перепрограммируемые постоянные запоминающие устройства (ППЗУ Erasable and Programmable Read Only Memory, EPROM ). В этом случае изменение содержания ПЗУ можно выполнять как непосредственно в составе вычислительной системы (такая технология называется флэш-технологией ), так и вне нее, на специальных устройствах, называемых программаторами.

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

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

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

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

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

Статьи и Лайфхаки

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

Конфигурация устройства: что это такое

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

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

Что такое конфигурация ПО девайса


Конфигурация программного обеспечения означает определённые параметры программы, которые задает сам владелец устройства.

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

Нередко конфигурация задается ещё на стадии сборки программного обеспечения. Для того чтобы подвергнуть её каким-либо изменениям, программу нужно заново собрать. Нередко для хранения конфигурации используется и особая база данных (по примеру GConfig в ОС Windows).

Современное мобильное устройство фактически является портативным компьютером. У него есть своя операционная система, которая управляет работой программного обеспечения. К наиболее популярным можно отнести Windows Phone, Android и iOS.

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

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