По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Хотим рассказать про операционную систему IOS, разработанную компанией Cisco. Cisco IOS или Internetwork Operating System (межсетевая операционная система) это программное обеспечение, которое используется в большинстве коммутаторов и маршрутизаторов Cisco (ранние версии коммутаторов работали на CatOS). IOS включает в себя функции маршрутизации, коммутации, межсетевого взаимодействия и телекоммуникаций, интегрированных в мультизадачную операционную систему. Не все продукты Cisco используют IOS. Исключения составляют продукты безопасности ASA, которые используют операционную систему Linux и роутеры-маршрутизаторы, которые запускают IOS-XR. Cisco IOS включает в себя ряд различных операционных систем, работающих на различных сетевых устройствах. Существует много различных вариантов Cisco IOS: для коммутаторов, маршрутизаторов и других сетевых устройств Cisco, версии IOS для определенных сетевых устройств, наборы функций IOS, предоставляющие различные пакеты функций и сервисов. Сам файл IOS имеет размер в несколько мегабайт и хранится в полупостоянной области памяти под названием flash. Флэш-память обеспечивает энергонезависимое хранилище. Это означает, что содержимое памяти не теряется, когда устройство теряет питание. Во многих устройствах Cisco IOS копируется из флэш-памяти в оперативное запоминающее устройство ОЗУ (RAM), когда устройство включено, затем IOS запускается из ОЗУ, когда устройство работает. ОЗУ имеет множество функций, включая хранение данных, которые используются устройством для поддержки сетевых операций. Работа IOS в ОЗУ повышает производительность устройства, однако ОЗУ считается энергозависимой памятью, поскольку данные теряются во время цикла питания. Цикл питания - это когда устройство намеренно или случайно отключается, а затем снова включается. Управление устройствами с IOS происходит при помощи интерфейса командной строки (CLI), при подключении при помощи консольного кабеля, по Telnet, SSH либо при помощи AUX порта. Названия версий Cisco IOS состоят из трех чисел, и нескольких символов a.b(c.d)e, где: a – номер основной версии b – номер младшей версии (незначительные изменения) c – порядковый номер релиза d – промежуточный номер сборки e (ноль, одна или две буквы) – идентификатор последовательности выпуска программного обеспечения, такой как none (который обозначает основную линию), T (Technology), E (Enterprise), S (Service provider), XA специальный функционал, XB как другой специальный функционал и т. д. Rebuild – часто ребилды выпускаются чтобы исправить одну конкретную проблему или уязвимость для данной версии IOS. Ребилды производятся либо для быстрого устранения проблемы, либо для удовлетворения потребностей клиентов, которые не хотят обновляться до более поздней крупной версии, поскольку они могут использовать критическую инфраструктуру на своих устройствах и, следовательно, предпочитают свести к минимуму изменения и риск. Interim release – промежуточные выпуски, которые обычно производятся на еженедельной основе и образуют срез текущих наработок в области развития. Maintenance release – протестированные версии, которые включают в себя усовершенствования и исправления ошибок. Компания Cisco рекомендует, по возможности, обновлять ПО до версии Maintenance. Стадии развития: Early Deployment (ED) – ранее развертывание, вводятся новые функции и платформы. Limited Deployment (LD) – первоначальная лимитированная развертка, включают в себя исправления ошибок. General Deployment (GD) – общее развертывание ОС, происходит тестирование, доработка и подготовка к выпуску окончательной версии. Такие выпуски, как правило, стабильны на всех платформах Maintenance Deployment (MD) – эти выпуски используются для дополнительной поддержки, исправлений ошибок и постоянного обслуживания программного обеспечения. Большинство устройств Cisco, которые используют IOS, также имеют один или несколько «наборов функций» или «пакетов» - Feature Set. Например, выпуски Cisco IOS, предназначенные для использования на коммутаторах Catalyst, доступны как «стандартные» версии (обеспечивающие только базовую IP-маршрутизацию), «расширенные» версии, которые предоставляют полную поддержку маршрутизации IPv4 и версии «расширенных IP-сервисов», которые предоставляют расширенные функции, а также поддержку IPv6. Каждый отдельный feature set соответствует одной категории услуг помимо базового набора (IP Base – Static Routes, OSPF, RIP, EIGRP. ISIS, BGP, IMGP, PBR, Multicast): IP-данные (Data – добавляет BFD, IP SLAs, IPX, L2TPv3, Mobile IP, MPLS, SCTP) Голос (Unified Communications – CUBE, SRST, Voice Gateway, CUCME, DSP, VXML) Безопасность и VPN (Security — Firewall, SSL VPN, DMVPN, IPS, GET VPN, IPSec)
img
Для пользователей, которые обладают премиальной лицензии на Cisco Unified Contact Center Express (UCCX), одной из самых крутых фич является наличие возможной интеграции и отправки запросов в базу данных. Сами запросы могут строиться на базе введенной звонящим информации, его номера – чего угодно. Безусловно важно сделать ¬¬изначальный дизайн скриптов правильным и учитывать нагрузку. Большие и тяжелые скрипты, которые имеют много «плеч» в БД (базу данных), значительно увеличивают нагрузку на ресурсы сервера. А если БД еще и удалена от сервера CCX и имеет место сетевая задержка, то может иметь место прямое воздействие на бизнес и лояльность звонящего вам клиента. Обзор Cisco Unified CCX Script Editor Для создания и управления IVR скриптами в UCCX используется специальный инструмент - Cisco Unified CCX Editor. Он позволяет визуально управлять некими блоками, которые отвечают за то, или иное действие. Выглядит эта палетта следующим образом: Давайте рассмотрим раздел Database. Здесь мы видимо 4 пункта: DB Get - сопоставление полученных данных из БД к переменным скрипта; DB Read - подключение к серверу и запрос; DB Release - закрываем подключение к БД; DB Write - если нужно внести изменения в БД, используем Write метод; На скриншоте выше видно, что каждый скрипт начинается с события Start и заканчивается событием End. Во время звонка, по ходу выполнения скрипта, мы можем запрашивать данные из БД сколько угодно раз. Каждый запрос имеет свой отдельный список шагов, которые указаны в списке из 4х пунктов выше. Мы рекомендуем предварительно обкатать все SQL запросы, доступ системы и прочие рабочие факторы перед выгрузкой в продуктивную среду Например, давайте посмотрим, что скрыто внутри блока DB Read: Взглянем на поля, которые доступны для конфигурации: DB Resource Name - метка запроса. Своего рода метка; Data Source Name - источник данных (DSN), указанное в административной консоли UCCX (Cisco Unified CCX Administration Database); Timeout (in sec) - пауза выполнения запроса. Этот интервал защитит вашу систему от, например, потери связи с БД. То есть, максимум 7 секунд ожидания. Кстати, если указано как 0, то запрос не будет ограничен по времени; Теперь из вкладки General переходим во вкладку Field Selection: Запрос - SQL – команда (запрос), который вы ходите выполнить. Например, SELECT fld1, fld2 from tbl where fld1 = $variable - выбираем два поля из таблицы, где одно из полей равно переменной, которую, мы ранее, присвоили в скрипте (DTMF от клиента, например); Test (кнопка) - нажмите на эту кнопку, чтобы проверить синтаксис запроса и подключение к БД; Number of rows returned - количество вернувшихся строк запроса, в случае, если была нажата кнопка Test; Show all fields (select table/view) - показать все поля в таблице, к которой выполняется подключение; Отлично, разобрались. Теперь давайте взглянем на блок DB Get: DB Resource Name - лэйбл или имя для этого запроса; Data Source Name - имя БД (настраивается на стороне Cisco Unified CCX Administration); Refresh Database Schema (кнопка) - кнопка, которая отвечает за подтягивание данных БД и таблицы в CCX Editor; Переходим во вкладку Field Selection: Table/View - данное поле показывает имя таблицы из БД, которая выбрана во вкладке General, которую мы описывали выше; Табличное поле: Field Name - имя поля, в выбранной БД; Data Type - типа данных (строка/число и так далее); Local Variable - переменная скрипта, которая будет хранить соответствующее поле; Add/Modify (кнопки) - кнопки, которые отвечают за модификацию полей (кроме типа данных, он read only); Полученные данные можно использовать в скрипте, например, чтобы озвучивать клиенту (TTS) его данные по номеру телефона, или по введенным цифрам (номер заказа). Кстати, аналогичную фичу мы реализовали в связке Yandex.SpeechKit и Asterisk.
img
JIT-компиляция – это метод повышения производительности интерпретируемых программ. JIT расшифровывается как Just-in-time. Во время выполнения программа может быть скомпилирована в машинный код для повышения ее производительности. Также этот метод известен как динамическая компиляция. Динамическая компиляция имеет несколько преимуществ перед статической. При запуске приложений на JAVA или C# среда выполнения может профилировать приложение во время его исполнения. Это позволяет создавать более оптимизированный код. Если поведение приложения меняется во время его исполнения, то среда выполнения может перекомпилировать код. Есть некоторые недостатки, заключающиеся в задержках при запуске или непроизводительных издержках при компиляции во время выполнения. Чтобы ограничить эти издержки, многие JIT-компиляторы компилируют только пути кода, которые часто используются. Обзор Традиционно существует два метода преобразования исходного кода в форму, которую можно запустить на платформе. Статистическая компиляция преобразует код в язык для конкретной платформы. Интерпретатор непосредственно выполняет исходный код. JIT-компиляция пытается использовать преимущества обоих. В то время как выполняется интерпретируемая программа, JIT-компилятор определяет участки часто используемого кода и компилирует его в машинный код. В зависимости от компилятора это можно сделать для метода или меньшего участка кода. Впервые динамическая компиляция была описана в статье о языке LISP Дж. Маккарти в 1960 году. Компиляция на лету, JIT или динамическая компиляция – это компиляция, которая выполняется непосредственно во время исполнения программы, а не до этого. Что в этот момент происходит? Перевод в машинный код. Преимущества JIT-компиляции заключаются в том, что поскольку компиляция происходит во время выполнения, то JIT-компилятор имеет доступ к динамической информации времени выполнения, а это в свою очередь позволяет ему оптимизировать процесс (например, встраивать функции). Что важно понимать, когда речь идет о JIT-компиляции? Она скомпилирует байт-код в инструкции машинного кода работающего компьютера. Это означает, что полученный машинный код оптимизирован для архитектуры процессора конкретного компьютера. В качестве примеров JIT-компиляторов можно привести JVM (Java Virtual Machine - виртуальная машина Java) на Java и CLR (Common Language Runtime – общеязыковая исполняющая среда) на C#. История Изначально компилятор отвечал за преобразование языка высокого уровня (выше, чем ассемблер) в объектный код (машинные инструкции), который затем должен был быть связан (линкером) с исполняемой программой. В какой-то момент эволюции языков компиляторы начали компилировать язык высокого уровня в псевдокод, который затем интерпретировался (интерпретатором) для запуска программы. Это исключило объектный код и исполняемые программы и позволило перенести эти языки на несколько операционных систем и аппаратных платформ. Одним из первых был Pascal (который скомпилирован в P-Code); более современными примерами являются Java и C#. Со временем термин P-Code был заменен на байт-код, поскольку большинство псевдоопераций имеют длину в один байт. JIT-компилятор – это функция интерпретатора, которая вместо интерпретации байт-кода при каждом вызове компилирует байт-код в инструкции машинного кода работающей машины, а затем вызывает этот объектный код. В идеальном варианте эффективность выполнения объектного кода должна превзойти неэффективность перекомпиляции программы при каждом ее запуске. Обычный сценарий Исходный код полностью преобразуется в машинный код. JIT-сценарий Исходный код преобразуется в структуру на языке ассемблера, например, IL (промежуточный язык) для C#, ByteCode для Java. Промежуточный код преобразуется в машинный только тогда, когда приложение нуждается в том, чтобы необходимые коды были преобразованы в машинный код. JIT или не JIT При JIT-компиляции не весь код преобразуется в машинный код. Для начала преобразуется только необходимая часть кода. Затем, если вызываемый метод или выполняемые функции находятся не в виде машинного кода, то они тоже будут преобразованы в машинный код. Это снижает нагрузку на ЦП. Поскольку машинный код будет генерироваться во время выполнения, то JIT-компилятор создаст машинный код, оптимизированный для запуска архитектуры ЦП машины. Ниже приведены некоторые примеры JIT-компиляторов: Java: JVM (Java Virtual Machine – виртуальная машина Java) C#: CLR (Common Language Runtime – общеязыковая исполняющая среда) Android: DVM (Dalvik Virtual Machine – виртуальная машина Dalvik) или ART (Android RunTime – среда выполнения Android-приложений) в новых версиях Виртуальная машина Java (JVM) выполняет байт-код и ведет подсчет времени выполнения функции. Если это значение превышает предустановленный порог, то JIT-компилятор компилирует код в машинный код, который в дальнейшем может быть выполнен непосредственно процессором (в отличие от случая, когда javac компилирует код в байт-код, а затем интерпретатор интерпретирует этот байт-код построчно, переводя его в машинный код, и выполняет его). Кроме того, при следующем вычислении функции тот же скомпилированный код выполняется снова, в отличие от обычной интерпретации, когда код повторно интерпретируется построчно. Это значительно ускоряет процесс выполнения программы.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59