Описанный подход используется в четырех направлениях:
1. логическое управление (события отсутствуют, входные и выходные переменные двоичны);
2. программирование с явным выделением состояний;
3. объектно-ориентированное программирование с явным выделением состояний;
4. вычислительные алгоритмы (алгоритмы дискретной математики).
Известные практические применения:
Впервые технология автоматного программирования применительно к логическому управлению изложена в книге применительно к логическому управлению.
Программирование с явным выделением состояний для систем, реагирующих на события, впервые было использовано при автоматизации судовых дизель-генераторов.
Объектно-ориентированное программирование с явным выделением состояний впервые было применено в игре Robocode.
Разработка прикладного программного обеспечения для микроконтроллеров.
Проекты, созданные с использованием инструментального средства UniMod.
Кроме того, автоматный подход эффективен для реализации визуализаторов алгоритмов дискретной математики и при реализации некоторых из таких алгоритмов (например, обход дерева [20]), а также все чаще начинает использоваться в рамках такого научного направления, как «искусственный интеллект», и при программировании мобильных устройств.
Проект «Технология автоматного программирования: применение и инструментальные средства».
В 2005 году по результатам конкурса, проводимого в рамках Федеральной целевой научно-технической программы «Исследования и разработки по приоритетным направлениям развития науки и техники» на 2002—2006 годы, проект «Технология автоматного программирования: применение и инструментальные средства» был поддержан Федеральным агентством по науке и инновациям.
Проект вошел в список 15 наиболее перспективных и социально значимых проектов, выполняемых в рамках указанной программы (проект ИТ-13.4/004, а также статья в приложении к газете КоммерсантЪ).
Указанные выше работы в области Switch-технологии находятся в русле работ по обеспечению высокого качества программного обеспечения, проводимых в Западной Европе при создании синхронного программирования для ответственных систем и в NASA при создании программного обеспечения для беспилотных космических аппаратов.
1.1.3. Маршрутиза?тор
Маршрутиза?тор (проф. жарг. рутер (от англ. router /??u:t?(?)/ или /??a?t??/[1], /??a?t?/), раутер или роутер) — специализированный сетевой компьютер, имеющий минимум два сетевых интерфейса и пересылающий пакеты данных между различными сегментами сети, принимающий решения о пересылке на основании информации о топологии сети и определённых правил, заданных администратором.
Маршрутизаторы делятся на программные и аппаратные. Маршрутизатор работает на более высоком «сетевом» уровне 3 сетевой модели OSI, нежели коммутатор (или сетевой мост) и концентратор (хаб), которые работают на 2 уровне и 1 уровне модели OSI соответственно.
Принцип работы
Обычно маршрутизатор использует адрес получателя, указанный в пакетных данных, и определяет по таблице маршрутизации путь, по которому следует передать данные. Если в таблице маршрутизации для адреса нет описанного маршрута, пакет отбрасывается.
Существуют и другие способы определения маршрута пересылки пакетов, когда, например, используется адрес отправителя, используемые протоколы верхних уровней и другая информация, содержащаяся в заголовках пакетов сетевого уровня. Нередко маршрутизаторы могут осуществлять трансляцию адресов отправителя и получателя, фильтрацию транзитного потока данных на основе определённых правил с целью ограничения доступа, шифрование/расшифрование передаваемых данных и т. д.
Таблица маршрутизации
Таблица маршрутизации содержит информацию, на основе которой маршрутизатор принимает решение о дальнейшей пересылке пакетов. Таблица состоит из некоторого числа записей — маршрутов, в каждой из которых содержится адрес сети получателя, адрес следующего узла, которому следует передавать пакеты, административное расстояние — степень доверия к источнику маршрута и некоторый вес записи — метрика. Метрики записей в таблице играют роль в вычислении кратчайших маршрутов к различным получателям. В зависимости от модели маршрутизатора и используемых протоколов маршрутизации, в таблице может содержаться некоторая дополнительная служебная информация. Например:
192.168.64.0/16 [110/49] via 192.168.1.2, 00:34:34, FastEthernet0/0.1
где 192.168.64.0/16 — сеть назначения,
110/- административное расстояние
/49 — метрика маршрута,
192.168.1.2 — адрес следующего маршрутизатора, которому следует
передавать пакеты для сети 192.168.64.0/16,
00:34:34 — время, в течение которого был известен этот маршрут,
FastEthernet0/0.1 — интерфейс маршрутизатора, через который можно
достичь «соседа» 192.168.1.2.
Таблица маршрутизации может составляться двумя способами:
1) статическая маршрутизация — когда записи в таблице вводятся и изменяются вручную. Такой способ требует вмешательства администратора каждый раз, когда происходят изменения в топологии сети. С другой стороны, он является наиболее стабильным и требующим минимума аппаратных ресурсов маршрутизатора для обслуживания таблицы.
2) динамическая маршрутизация — когда записи в таблице обновляются автоматически при помощи одного или нескольких протоколов маршрутизации — RIP, OSPF, IGRP, EIGRP, IS-IS, BGP, и др. Кроме того, маршрутизатор строит таблицу оптимальных путей к сетям назначения на основе различных критериев — количества промежуточных узлов, пропускной способности каналов, задержки передачи данных и т. п. Критерии вычисления оптимальных маршрутов чаще всего зависят от протокола маршрутизации, а также задаются конфигурацией маршрутизатора. Такой способ построения таблицы позволяет автоматически держать таблицу маршрутизации в актуальном состоянии и вычислять оптимальные маршруты на основе текущей топологии сети. Однако динамическая маршрутизация оказывает дополнительную нагрузку на устройства, а высокая нестабильность сети может приводить к ситуациям, когда маршрутизаторы не успевают синхронизировать свои таблицы, что приводит к противоречивым сведениям о топологии сети в различных её частях и потере передаваемых данных.
Зачастую для построения таблиц маршрутизации используют теорию графов.
Применение
Маршрутизаторы помогают уменьшить загрузку сети, благодаря её разделению на домены коллизий или широковещательные домены, а также благодаря фильтрации пакетов. В основном их применяют для объединения сетей разных типов, зачастую несовместимых по архитектуре и протоколам, например для объединения локальных сетей Ethernet и WAN-соединений, использующих протоколы xDSL, PPP, ATM, Frame relay и т. д. Нередко маршрутизатор используется для обеспечения доступа из локальной сети в глобальную сеть Интернет, осуществляя функции трансляции адресов и межсетевого экрана.
В качестве маршрутизатора может выступать как специализированное (аппаратное) устройство, так и обычный компьютер, выполняющий функции маршрутизатора. Существует несколько пакетов программного обеспечения (на основе ядра Linux, на основе операционных систем BSD) с помощью которого можно превратить ПК в высокопроизводительный и многофункциональный маршрутизатор, например, Quagga, IPFW или простой в применении PF.
Устройства для малого/домашнего офиса — галерея
Устройства сбора и передачи данных (УСПД) в АИИС КУЭ
Маршрутизатор является основным сетевым устройством сети АИИС КУЭ. Основной функцией маршрутизатора является транзит цифровых информационных потоков между исполнительными устройствами (например счетчиками) в сети потребления энергоресурсов и центром. Он предназначен для конфигурирования каналов связи, согласования протоколов и обеспечения обмена данными счетчиков энергии, концентраторов, ретрансляторов и других компонентов автоматизированных информационно-измерительных систем коммерческого и технического учета энергоресурсов. Отличительной особенностью является возможность использовать одновременно несколько каналов передачи данных (GSM/GPRS, PLC, Радиоканал, Ethernet, RS-232 и др.)