Computer Science
7.92K subscribers
2 photos
17 links
По всем вопросам: @altmainf

Уважаемый менеджер: @altaiface
Download Telegram
Протокол SOAP

SOAP - протокол обмена структурированными сообщениями в распределённой вычислительной среде. Первоначально SOAP предназначался в основном для реализации удалённого вызова процедур (RPC). Сейчас протокол используется для обмена произвольными сообщениями в формате XML, а не только для вызова процедур.

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

Из недостатков выделяют, что при Использование SOAP для передачи сообщений увеличивает их объём и снижает скорость обработки. В системах, где скорость важна, чаще используется пересылка XML-документов через HTTP напрямую, где параметры запроса передаются как обычные HTTP-параметры.
Автоматизированная система управления технологическим процессом (АСУ ТП)

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

Составными частями АСУ ТП могут быть отдельные системы автоматического управления (САУ) и автоматизированные устройства, связанные в единый комплекс.

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

Главной особенностью АСУ ТП является периодическое либо регулярное участие человека-оператора в ее работе. Роль оператора состоит в периодическом либо регулярном контроле за системой операторского управления.
Функции автоматизированной системы управления

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

Функции АСУ в общем случае включают в себя следующие элементы:
- планирование и прогнозирование;
- учет, контроль, анализ;
- координацию и регулирование.

Необходимый состав элементов выбирают в зависимости от вида конкретной АСУ. Функции АСУ можно объединять в подсистемы по функциональному и другим признакам.
Персональная сеть(PAN) и ее особенности

Персональная сеть — это сеть, построенная «вокруг» человека.

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

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

Особенности PAN:
- Малое число абонентов
- Небольшой радиус действия, до 30 метров
- Некритичность к наработке на отказ.
- Все устройства, входящие в PAN-сеть, можно контролировать.
- Отсутствие арбитража среды. Это означает, что встроенных средств контроля, как и кто может работать с этим типом сети — нет.
Сетевая топология

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

Сетевая топология может быть:

1) физической — описывает реальное расположение и связи между узлами сети.

2) логической — описывает хождение сигнала в рамках физической топологии.

3) информационной — описывает направление потоков информации, передаваемых по сети.

4) управления обменом — это принцип передачи права на пользование сетью.
Полносвязная топология

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

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

Чаще всего эта топология используется в многомашинных комплексах или глобальных сетях при малом количестве рабочих станций.

Преимущество этой тополигии в том, что имеется прямой канал до каждого узла в сети.

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

1) Шина
представляет собой общий кабель, к которому подсоединены все рабочие станции. На концах кабеля находятся терминаторы, для предотвращения отражения сигнала.

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

3) Кольцо
В сети с топологией типа «кольцо» все узлы соединены каналами связи в неразрывное кольцо, по которому передаются данные. Выход одного ПК соединяется со входом другого ПК. Начав движение из одной точки, данные, в конечном счете, попадают на его начало. Данные в кольце всегда движутся в одном и том же направлении.

4) Ячеистая топология
Получается из полносвязной топологии путём удаления некоторых связей. Допускает соединения большого количества компьютеров и характерна для крупных сетей.
Характеристики алгоритмов сжатия и их применимость

1) Коэффициент сжатия
Коэффициент сжатия — основная характеристика алгоритма сжатия. Она определяется как отношение объёма исходных несжатых данных к объёму сжатых данных. Чем выше коэффициент сжатия, тем алгоритм эффективнее.

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

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

DLL - динамическая библиотека, позволяющая многократное использование различными программными приложениями. Эти библиотеки обычно имеют расширение DLL, OCX или DRV.

Формат файлов для DLL такой же, как для EXE-файлов Windows, то есть Portable Executable (PE) для 32-битных и 64-битных приложений Windows. Так же, как EXE, DLL могут содержать секции кода, данных и ресурсов. В системах Unix аналогичные функции выполняют так называемые общие объекты.

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

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

В дальнейшем идея модульности выросла в концепции Component Object Model и System Object Model.
Языки программирования ПЛК (Программируемый логический контроллер)

Для программирования ПЛК используются стандартизированные языки МЭК.

Языки программирования (графические):
- LD (Ladder Diagram) — Язык релейных схем — самый распространённый язык для PLC
- FBD (Function Block Diagram) — Язык функциональных блоков — 2-й по распространённости язык для PLC
- SFC (Sequential Function Chart) — Язык диаграмм состояний — используется для программирования автоматов
- CFC (Continuous Function Chart) — Не сертифицирован IEC61131-3, дальнейшее развитие FBD

Языки программирования (текстовые):
- IL (Instruction List) — Ассемблеро-подобный язык
- ST (Structured Text) — Паскале-подобный язык
- C-YART — Си-подобный язык (YART Studio)
Преимущества динамического анализа

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

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

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

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

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

Поэтому на практике, при разработке и оптимизации системы, часто используется условная оптимизация
Отличие условной от безусловной оптимизации

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

Безусловная оптимизация имеет только одну цель - найти глобальный экстремум функции без каких-либо ограничений на оптимизируемые переменные (позволяет находить самое оптимальное значение функции)

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

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

Итерационная формула метода: x_k+1 = x_k - α * grad(f(x_k)), где α - постоянный шаг, grad - градиент

Алгоритм можно описать следующим образом:
1. Определить начальную точку x_0
2. Вычислить градиент функции f(x_0)
3. Найти новую точку x_1 = x_0 - α * grad(f(x_0))
4. Повторять шаги 2 и 3 до тех пор, пока не будет выполнено условие остановки
Градиентный метод с дроблением шага

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

Итерационная формула метода: x_k+1 = x_k - α * grad(f(x_k)), где grad - градиент

Алгоритм :
1. Определить начальную точку x0
2. Вычислить градиент функции f(x0)
3. Посчитать оптимальный шаг α
4. Найти новую точку x1 = x0 - α * grad(f(x0))
5. Повторять шаги 2-4 до тех пор, пока не будет выполнено условие остановки

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

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

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

Итерационная формула метода: x_k+1 = x_k - α * grad(f(x_k)), где grad - градиент

В схеме метода вычисляется оптимальное значение шага на каждой итерации:
α_k = argmin f(x_k - α * grad(f(x_k))

Характерная черта метода: градиенты функции в соседних точках ортогональны
Достоинства и недостатки градиентного метода

Достоинства:
- Глобальная сходимость, т.е. слабые требования к исходным данным
- Слабые требования к f(x), используется только градиент функции f.
- Относительная простота вычислений

Недостатки:
- Медленная скорость сходимости
Метод Ньютона

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

Алгоритм можно описать следующим образом:

1. Выберите начальное приближение x_0
2. Вычислите первую и вторую производную функции в точке x_0
3. Определите направление спуска как противоположное знаку первой производной (для минимизации) и вычислите длину шага в направлении, определенном с помощью второй производной.
4. Переместитесь в новую точку x_1 = x_0 - (f''(x_0))^-1 * f'(x_0), где f'' - это вторая производная функции, а f' - это первая производная функции.
5. Повторяйте шаги 2-4 до тех пор, пока не будет достигнута достаточно точная оценка оптимума или не будет выполнено другое условие остановки.
Достоинства и недостатки метода Ньютона

Достоинства:
- Быстрая сходимость (квадратичная)

Недостатки:
- Локальная сходимость
- Жесткие требования к самой функции (она должна быть дважды непрерывно дифференцируема)
- Большой объем вычислений, связанный с необходимостью вычисления матрицы вторых производных и ее обращения)
Автоматическое распараллеливание

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

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

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

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

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

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

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