СПОСОБ, АППАРАТУРА И УСТРОЙСТВО РЕАЛИЗАЦИИ ДРАЙВЕРА И МАШИНОЧИТАЕМЫЙ НОСИТЕЛЬ ДАННЫХ
METHOD, APPARATUS AND DEVICE FOR IMPLEMENTING DRIVER AND COMPUTER-READABLE DATA MEDIUM

Область техники, к которой относится настоящее изобретение
[0001] Настоящее изобретение связано с областью компьютерных технологий и, в частности, со способом, аппаратурой и устройством реализации драйвера и машиночитаемого носителя данных.
Предшествующий уровень техники настоящего изобретения
[0002] В условиях непрерывного увеличения размера сетей и разработки технологий Интернета вещей архитектуре имеющихся сетей постепенно стало все сложнее поддерживать такое развитие, и технология программно-конфигурируемых сетей (ПКС) становится направлением развития сетей в будущем. Коммутатор с протоколом OpenFlow (новая модель коммутации сети) может быть встроен в контроллер ПКС для выполнения разделения задач передачи данных и управления маршрутизацией. Это предварительно реализует основную идею ПКС.
[0003] Однако, в имеющихся сетях установлены разные сетевые устройства, а типы и версии протоколов, поддерживаемые поставщиками, коммутаторами и т.п., могут быть различными. Следовательно, в контроллере ПКС нужно реализовать различные драйверы для разных версий каждого протокола, и усилия на такую разработку являются очень значительными.
Краткое раскрытие настоящего изобретения
[0004] В настоящем изобретении предложен способ реализации драйвера, который предусматривает: анализ управляющего потока целевого драйвера; сравнение управляющего потока целевого драйвера с управляющим потоком заранее определенного драйвера по умолчанию для получения отличающейся части; реализацию отличающейся части; и регистрацию целевого драйвера согласно управляющему потоку драйвера по умолчанию, который заранее реализован, и реализованной отличающейся части.
[0005] В настоящем изобретении предложена аппаратура реализации драйвера, которая включает в себя: модуль анализа потока, выполненный с возможностью анализировать управляющий поток целевого драйвера; модуль нахождения отличий, выполненный с возможностью сравнения управляющего потока целевого драйвера с управляющим потоком заранее определенного драйвера по умолчанию для получения отличающейся части; модуль реализации, выполненный с возможностью реализации отличающейся части, и модуль регистрации, выполненный с возможностью регистрации целевого драйвера согласно управляющему потоку драйвера по умолчанию, который заранее реализован, и реализованной отличающейся части.
[0006] В настоящем изобретении предложено устройство реализации драйвера, содержащие процессор, память и шину передачи данных. Шина передачи данных выполнена с возможностью реализовать соединение для передачи данных между процессором и памятью, процессор выполнен с возможностью выполнения хранящейся в памяти программы реализации драйвера для выполнения этапов упомянутого выше способа реализации драйвера.
[0007] В настоящем изобретении предложен машиночитаемый носитель данных, на котором хранится одна или несколько программ, которые при выполнении на одном или нескольких процессорах заставляют один или несколько процессоров реализовать упомянутый выше способ реализации драйвера.
Краткое описание фигур
[0008] На фиг. 1 показана блок-схема алгоритма способа реализации драйвера согласно варианту осуществления настоящего изобретения.
[0009] На фиг. 2 показана другая блок-схема алгоритма способа реализации драйвера согласно варианту осуществления настоящего изобретения.
[0010] На фиг. 3 показана блок-схема аппаратуры реализации драйвера согласно варианту осуществления настоящего изобретения.
[0011] На фиг. 4 показана другая блок-схема аппаратуры реализации драйвера согласно варианту осуществления настоящего изобретения.
Подробное раскрытие настоящего изобретения
[0012] Настоящее изобретение подробно описано ниже со ссылками на соответствующие фигуры и варианты осуществления, чтобы сделать более понятными и очевидными решаемые с помощью настоящего изобретения технические проблемы, технические решения и преимущества настоящего изобретения. Следует понимать, что описанные в настоящем документе конкретные варианты осуществления являются просто иллюстративными для настоящего изобретения и не предназначены для ограничения изобретения.
[0013] Как показано на фиг. 1, в варианте осуществления настоящего изобретения предложен способ реализации драйвера, предусматривающий описанные ниже этапы с S110 по S140.
[0014] На этапе S110 анализируется управляющий поток целевого драйвера.
[0015] Согласно техническому решению варианта осуществления настоящего изобретения может быть реализована платформа драйвера, и целевой драйвер может быть установлен на платформу драйвера.
[0016] На этапе S120 управляющий поток целевого драйвера сравнивается с управляющим потоком заранее определенного драйвера по умолчанию для получения отличающейся части.
[0017] В варианте осуществления настоящего изобретения анализируются отличия между управляемым целевым драйвером потоком взаимодействия коммутатора с драйвером, и управляющим потоком заранее определенного драйвера по умолчанию.
[0018] На этапе S130 проводится реализация отличающейся части.
[0019] В варианте осуществления настоящего изобретения для быстрой реализации нового драйвера можно унаследовать имеющиеся драйверы, которые уже были реализованы. Следовательно, можно анализировать отличия между потоком взаимодействия нового драйвера с коммутатором и управляющим потоком заранее определенного драйвера по умолчанию, и реализовать отличия.
[0020] На этапе S140 целевой драйвер регистрируется согласно управляющему потоку драйвера по умолчанию, который заранее был реализован, и реализованной отличающейся части.
[0021] В варианте осуществления настоящего изобретения отличающаяся часть получается за счет анализа управляющего потока целевого драйвера и его сравнения с управляющим потоком драйвера по умолчанию, при этом реализуется только отличающаяся часть. Целевой драйвер можно регистрировать на основе реализованной отличающейся части и ранее реализованного управляющего потока драйвера по умолчанию. Так как нужно реализовать управляющий поток только для отличающейся части, а не для всего целевого драйвера, существенно уменьшается трудоемкость разработки, необходимой для реализации целевого драйвера.
[0022] Как показано на фиг. 2, в варианте осуществления настоящего изобретения предложен способ реализации драйвера, предусматривающий описанные ниже этапы с S210 по S280.
[0023] На этапе S210 анализируется управляющий поток целевого драйвера.
[0024] На этапе S220 управляющий поток целевого драйвера сравнивается с управляющим потоком заранее определенного драйвера по умолчанию для получения отличающейся части.
[0025] На этапе S230 анализируется соответствующее отличающейся части действие, создается соответствующий действию интерфейс, и согласно интерфейсу реализуется отличающаяся часть.
[0026] В варианте осуществления настоящего изобретения в качестве примера приведена реализация драйвера стандартного протокола OpenFlow. Все потоки, относящиеся к драйверу стандартного протокола OpenFlow, можно разделить на небольшие ступени с единственной функцией, и каждая ступень рассматривается как действие в рабочем процессе, чтобы создать интерфейс для действий. Процесс для реализации драйвера по умолчанию с поддержкой стандартного протокола OpenFlow включает в себя следующие этапы: реализация согласно стандартному протоколу OpenFlow потоков, относящихся ко всем драйвером, и функций, реализованных в процессе реализации, включая: все функции, перечисленные в стандартном протоколе OpenFlow, функции сборки и передачи сообщений согласно запросу сервисного модуля верхнего уровня, передачи полученных коммутатором сообщений на сервисный модуль верхнего уровня и тому подобное; регистрация драйвера, отмена драйвера и тому подобное; конфигурирование информации описания и информации потока драйвера с помощью использования файла конфигурации (после реализации функций регистрации драйвера, отмены драйвера, файла конфигурации и тому подобного можно обеспечить выполнение последующей операции).
[0027] В варианте осуществления настоящего изобретения согласно отличиям между потоком взаимодействия нового драйвера с коммутатором и управляющим потоком заранее определенного драйвера по умолчанию можно реализовать соответствующее отличию действие, а также выполнить добавление файла конфигурации драйвера и реализацию механизма регистрации/отмены. В файле конфигурации нужно настроить только родительский драйвер и ступени отличающейся части.
[0028] На этапе S240 информация описания и информация потока целевого драйвера добавляются в заранее настроенный файл конфигурации, при этом в информации описания целевого драйвера записана идентификационная информация драйвера по умолчанию, а в информации потока целевого драйвера записана реализованная отличающаяся часть.
[0029] В варианте осуществления настоящего изобретения файл конфигурации драйвера в формате расширяемого языка разметки (xml) используется для настройки информации описания и информации потока драйвера, причем информация описания включает в себя (уникальное) имя драйвера, родителя драйвера, информацию о поставщике, версию аппаратуры, версию программного обеспечения, идентификатор системы (systemId) и тому подобное, а информация потока включает в себя информацию действия потока, характерную для родителя драйвера, а информация действия включает в себя название действия, класс интерфейса в модуле API, класс реализации в драйвере и класс обработки преобразования между действиями.
[0030] На этапе S250 согласно идентификационной информации драйвера по умолчанию выполняется поиск управляющего потока драйвера по умолчанию, который заранее был реализован, и для завершения регистрации создаются экземпляры управляющего потока драйвера по умолчанию, который заранее был реализован, и реализованной отличающейся части.
[0031] В варианте осуществления настоящего изобретения процесс завершения регистрации выполняется следующим образом: в среде на основе инициативы доступа к открытым службам (OSGi) реализованная согласно варианту осуществления настоящего изобретения платформа драйвера создает службу для чтения информации описания и информации потока драйвера из файла конфигурации; за счет использования службы вся информация описания и поток драйвера передаются на платформу драйвера; платформа драйвера хранит информацию описания драйвера и создает экземпляры всех действий и связей, используемых драйвером; после получения сообщения в стеке протокола выполняется поиск подходящего драйвера из платформы драйвера, и сообщение обрабатывается с использованием рабочего процесса, созданного по действиям драйвера.
[0032] В дополнение к этому в варианте осуществления настоящего изобретения дополнительно предложен процесс отмены драйвера: в среде на основе OSGi реализованная согласно варианту осуществления настоящего изобретения платформа драйвера создает службу, используемую реализацией драйвера. Платформа драйвера уведомляется для удаления всей информации драйвера, и платформа драйвера удаляет всю информацию драйвера.
[0033] В одном варианте осуществления для обеспечения гибкой регистрации или отмены драйвера, решение в варианте осуществления настоящего изобретения основано на применении среды OSGi, а модуль, в котором расположен драйвер, может быть установлен в контейнер Karaf (среда выполнения на основе OSGi) или удален из него за счет использования порта командной строки Karaf.
[0034] На этапе S260 уникальная идентификационная информация заранее настроенного коммутатора получается с помощью драйвера по умолчанию.
[0035] На этапе S270 уникальная идентификационная информация коммутатора сравнивается с информацией описания целевого драйвера, и согласно результату сравнения принимается решение, нужно ли связывать целевой драйвер с коммутатором.
[0036] В варианте осуществления настоящего изобретения, когда драйвер по умолчанию взаимодействует с коммутатором, драйвер по умолчанию может получить от коммутатора информацию описания коммутатора, при этом информация описания коммутатора включает в себя информацию о поставщике, версию аппаратуры, версию программного обеспечения, заводской номер, информацию описания идентификатора тракта данных (datapathId) и тому подобное, при этом datapathId используется для уникальной идентификации коммутатора. Затем драйвер по умолчанию передает информацию коммутатора на платформу драйвера и платформа драйвера по очереди просматривает зарегистрированные драйверы; информация описания одного из драйверов (информация описания находится во множестве элементов) и информация описания коммутатора могут сравниваться по элементам, и один балл добавляется, если информация одинаковая. После того, как платформа драйвера завершит просмотр всех зарегистрированных драйверов, можно сравнить баллы всех драйверов, при этом драйвер с наибольшим числом баллов, превышающем 3 балла, привязывается к коммутатору; если ни у одного из драйверов не набрано свыше 3 баллов, привязка не проводится.
[0037] На этапе S280 после удаления всей информации, соответствующей целевому драйверу, на заранее настроенный коммутатор посылается уведомление на отмену целевого драйвера.
[0038] В варианте осуществления настоящего изобретения после отключения драйвера все привязанные к драйверу коммутаторы получают уведомление об отключении драйвера. Эти коммутаторы затем запрашивают платформу драйвера выполнить новую привязку драйвера.
[0039] Согласно указанному выше пользователь может использовать командную строку Karaf для указания драйвера коммутатора или запуска новой привязки. Процесс новой привязки выполняется следующим образом: пользователь вводит datapathId коммутатора (указанный коммутатор) и имя драйвера (указанный коммутатор) в порт командной строки Karaf, и платформа драйвера привязывает идентифицированный по datapathId коммутатор к указанному драйверу согласно параметрам. Пользователь может запустить новую привязку с порта командной строки Karaf, и все коммутаторы будут запрашивать платформу драйвера выполнить новую привязку драйвера.
[0040] Согласно варианту осуществления настоящего изобретения предложен способ для реализации системы драйвера на основе платформы OSGi и рабочего процесса, который может помочь разработчику снизить трудоемкость разработки. Более конкретно, способ может на основе драйвера по умолчанию быстро реализовать драйвер, соответствующий новому стандарту или измененному драйверу поставщика, тем самым заметно улучшая эффективность разработки. В фактической рабочей среде способ может динамически установить или удалить драйвер, чтобы снизить загруженность оборудования. В дополнение к этому пользователь может гибко указывать версию или запросить новую привязку драйвера на основе конкретного сценария для привязки устройства к оптимальному драйверу.
[0041] Как показано на фиг. 3, в варианте осуществления настоящего изобретения предложена аппаратура реализации драйвера, которая включает в себя: модуль 310 анализа потока, модуль 320 нахождения отличий, модуль 330 реализации и модуль 340 регистрации.
[0042] Модуль 310 анализа потока выполнен с возможностью анализировать управляющий поток целевого драйвера.
[0043] Согласно техническому решению варианта осуществления настоящего изобретения аппаратурой реализации драйвера в варианте осуществления настоящего изобретения является платформа драйвера, и целевой драйвер можно установить за счет использования платформы драйвера.
[0044] Модуль 320 нахождения отличий выполнен с возможностью сравнения управляющего потока целевого драйвера с управляющим потоком драйвера по умолчанию для получения отличающейся части.
[0045] В варианте осуществления настоящего изобретения модуль 320 нахождения отличий может анализировать отличия между управляемым целевым драйвером потоком взаимодействия коммутатора с драйвером и управляющим потоком заранее определенного драйвера по умолчанию.
[0046] Модуль 330 реализации выполнен с возможностью реализации отличающейся части.
[0047] В варианте осуществления настоящего изобретения для быстрой реализации нового драйвера можно унаследовать имеющиеся драйверы, которые уже были реализованы. Следовательно, можно анализировать отличия между потоком взаимодействия нового драйвера с коммутатором и управляющим потоком заранее определенного драйвера по умолчанию, и реализовать отличия.
[0048] Модуль 340 регистрации выполнен с возможностью регистрировать целевой драйвер согласно управляющему потоку драйвера по умолчанию, который заранее был реализован, и реализованной отличающейся части.
[0049] В варианте осуществления настоящего изобретения отличающаяся часть получается за счет анализа управляющего потока целевого драйвера и его сравнения с управляющим потоком драйвера по умолчанию, при этом реализуется только отличающаяся часть. Целевой драйвер можно регистрировать на основе реализованной отличающейся части и ранее реализованного управляющего потока драйвера по умолчанию. Так как нужно реализовать управляющий поток только для отличающейся части, а не для всего целевого драйвера, существенно уменьшается трудоемкость разработки, необходимой для реализации целевого драйвера.
[0050] Как показано на фиг. 4, в варианте осуществления настоящего изобретения предложена аппаратура реализации драйвера, которая включает в себя: модуль 410 анализа потока, модуль 420 нахождения отличий, модуль 430 реализации, модуль 440 регистрации, модуль 450 привязывания и модуль 460 уведомления.
[0051] Модуль 410 анализа потока выполнен с возможностью анализировать управляющий поток целевого драйвера.
[0052] Модуль 420 нахождения отличий выполнен с возможностью сравнения управляющего потока целевого драйвера с управляющим потоком заранее настроенного драйвера по умолчанию для получения отличающейся части.
[0053] В варианте осуществления настоящего изобретения необходимо заранее запустить контроллер, платформа драйвера устанавливается в среду Karaf контроллера, а затем устанавливается драйвер по умолчанию. На платформе драйвера имеется только один драйвер по умолчанию.
[0054] Модуль 430 реализации выполнен с возможностью анализа действия, соответствующего отличающейся части, получения соответствующего действию интерфейса, и реализации отличающейся части согласно интерфейсу.
[0055] В варианте осуществления настоящего изобретения управляющий поток разделяется как для драйвера по умолчанию, так и для целевого драйвера. Поток можно разделить на действия в рабочем процессе, и поток драйвера по умолчанию и поток целевого драйвера сравниваются для получения отличающейся части, и затем создается интерфейс, и отличающаяся часть реализуется согласно действию отличающейся части.
[0056] Модуль 440 регистрации выполнен с возможностью добавления информации описания и информации потока целевого драйвера в заранее настроенный файл конфигурации, при этом в информации описания целевого драйвера записана идентификационная информация драйвера по умолчанию, а в информации потока целевого драйвера записана реализованная отличающаяся часть.
[0057] В варианте осуществления настоящего изобретения файл конфигурации добавляется для настройки информации описания и информации потока драйвера. Информация описания включает в себя (уникальное) имя драйвера, родителя драйвера, информацию о поставщике, версию аппаратуры, версию программного обеспечения, идентификатор системы systemId и тому подобное, а информация потока включает в себя информацию действия потока, характерную для родителя драйвера, а информация действия включает в себя название действия, класс интерфейса в модуле API, класс реализации в драйвере и класс обработки преобразования между действиями.
[0058] Модуль 440 регистрации выполнен с возможностью поиска согласно идентификационной информации драйвера по умолчанию управляющего потока драйвера по умолчанию, который заранее был реализован, и для завершения регистрации создаются экземпляры управляющего потока драйвера по умолчанию, который заранее был реализован, и реализованной отличающейся части.
[0059] В варианте осуществления настоящего изобретения механизм для регистрации и отмены драйвера реализован на основе информации описания и информации потока в файле конфигурации. При установке драйвера информация описания и информация потока считываются из файла конфигурации для создания экземпляра драйвера, и драйвер регистрируется на платформе драйвера. При удалении модуля драйвера драйвер отменяется на платформе драйвера.
[0060] В варианте осуществления настоящего изобретения для драйверов разных поставщиков можно анализировать отличия от управляющего потока по умолчанию для реализации отличающейся части, а родительский драйвер и отличающаяся ступень настраиваются в файле конфигурации. Так как драйверы различных поставщиков подобны драйверу по умолчанию в отношении потока, только отличающуюся часть потока можно реализовать на основе драйвера по умолчанию, тем самым драйверы различных поставщиков реализуются быстро.
[0061] В варианте осуществления настоящего изобретения целевой драйвер устанавливается после завершения регистрации, при этом целевой драйвер является драйвером для конкретного поставщика. Можно установить множество драйверов для разных поставщиков.
[0062] Модуль 450 привязывания выполнен с возможностями: получать уникальную идентификационную информацию о настроенном коммутаторе из драйвера по умолчанию; и сравнивать уникальную идентификационную информацию о коммутаторе с информацией описания целевого драйвера, и согласно результату сравнения принимать решение, нужно ли связывать целевой драйвер с коммутатором.
[0063] В варианте осуществления настоящего изобретения коммутатор выполнен с возможностью активно устанавливать канал связи с контроллером. В стандарте OpenFlow после настройки IP-адреса и порта контроллера коммутатора OpenFlow коммутатор устанавливает канал связи с драйвером контроллера. Платформа драйвера контроллера сначала использует драйвер по умолчанию для выполнения согласования версии, обрабатывает сообщения ответов о функциях, получает информацию коммутатора, а затем привязывает коммутатор OpenFlow к надлежащему драйверу согласно информации коммутатора. Последующие взаимодействия между контроллером и коммутатором обрабатываются драйвером.
[0064] Модуль 460 уведомления выполнен с возможностью передачи уведомления на отмену целевого драйвера на заранее настроенный коммутатор после удаления всей информации, соответствующей целевому драйверу.
[0065] Согласно техническому решению варианта осуществления настоящего изобретения это помогает разработчику снизить трудоемкость разработки. Более конкретно, согласно техническому решению на основе драйвера по умолчанию можно быстро реализовать драйвер, соответствующий новому стандарту или измененному драйверу поставщика, тем самым заметно улучшая эффективность разработки. В фактической рабочей среде техническое решение может динамически установить или удалить драйвер, чтобы снизить загруженность оборудования. В дополнение к этому пользователь может гибко указывать версию или запросить новую привязку драйвера на основе конкретного сценария для привязки устройства к оптимальному драйверу.
[0066] В варианте осуществления настоящего изобретения также предложено устройство реализации драйвера, содержащие процессор, память и шину передачи данных. Шина передачи данных выполнена с возможностью реализовать соединение для передачи данных между процессором и памятью, процессор выполнен с возможностью выполнения хранящейся в памяти программы реализации драйвера для выполнения этапов реализации драйвера согласно указанным выше вариантам осуществления.
[0067] В варианте осуществления настоящего изобретения также предложен машиночитаемый носитель данных, на котором хранится одна или несколько программ, которые при выполнении на одном или нескольких процессорах заставляют один или несколько процессоров реализовать этапы способа реализации драйвера согласно указанным выше вариантам осуществления.
[0068] Приведенные в качестве примеров варианты осуществления настоящего изобретения были описаны выше со ссылками на соответствующие фигуры, которые не предназначены для ограничения объема формулы настоящего изобретения. Специалисты в этой области техники могут реализовать настоящее изобретение с различными модификациями, например, описанные в одном варианте осуществление признаки можно использовать в другом варианте осуществления без отклонения от сути и объема настоящего изобретения. Любая модификация, эквивалентная замена и улучшение, выполненные в рамках технической концепции настоящего изобретения, будут находиться в пределах сущности настоящего изобретения.