Система и способ для осуществления управления удаленными компьютерами

Изобретение относится к системе и способу для осуществления управления удаленными компьютерами в сетевом компьютерном окружении. Техническим результатом является повышение надежности управления множеством вычислительных устройств через рабочий стол первого вычислительного устройства за счет интерпретации команд, перенаправляемых из устройства просмотра, для последующего выполнения на каждом из целевых устройств. Система содержит: устройство просмотра с дисплеем; множеством клиентских целевых устройств; серверное устройство; устройство интерпретации, причем устройство интерпретации соединено с базой данных, в которой хранится множество предварительно заданных пользователем записей, и устройство интерпретации сконфигурировано так, чтобы иметь связь с серверным устройством и принимать команды, перенаправляемые из устройства просмотра, так чтобы интерпретировать эти команды для последующего выполнения на каждом из целевых устройств. 2 н. и 20 з.п. ф-лы, 7 ил.

 

Область техники

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

Уровень техники

Известно, что в сетевой архитектуре отдельные компьютеры могут осуществлять связь друг с другом, используя специальные сетевые протоколы, такие как протокол TCP/IP. Используя эти протоколы, лицо, применяющее программное приложение на первом компьютере, может использовать данные, которые хранятся на другом компьютере, например файловом сервере и т.п.

В технике также известны программные приложения, которые предоставляют возможность удаленному пользователю эффективно управлять другим компьютером так, чтобы выполнять компьютерные приложения, которые хранятся на удаленном компьютере, с их локального компьютера. Из подобных приложений можно упомянуть решение от компании MicrosoftTM под брендом Remote Desktop и программное приложение с открытым кодом под именем VNC (Virtual Network Computing). Эти приложения дают возможность просматривать и полноценно взаимодействовать с одним компьютером, выполняя управление с любого другого компьютера или мобильного устройства в любой точке с доступом в Интернет. Программное обеспечение VNC является кросс-платформным ПО, преимущество которого заключается в том, что оно предоставляет возможность дистанционного управления между различными типами компьютеров, однако есть и ограничение, заключающееся в том, что в заданный момент времени конечный пользователь может управлять только одной удаленной машиной, то есть для каждого конечного пользователя обеспечивается схема 1-1.

AnyplaceControlTM является продуктом, который позволяет пользователю выполнять соединение одновременно с множеством машин. Тем не менее, хотя пользователь может одновременно соединяться с множеством машин, он ограничен тем, что в заданный момент времени он может управлять только одной машиной, то есть он не может управлять множеством машин путем передачи одного действия одновременно множеству машин. Следовательно, данное решение отличается от решения VNC тем, что оно обеспечивает возможность соединения по схеме 1-множество, но не позволяет выполнять управление по схеме 1-множество.

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

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

Могут применяться следующие виды тестирования:

· Тестирование устойчивости, надежности и безопасности

· Обеспечение безотказной работы программного обеспечения в особых аппаратных и программных средах

· Тестирование соответствия и сертификации логотипа

· Подтверждение соответствия тестируемого приложения с такими стандартами как "JavaVerified" компании Sun или "Designed for Windows" компании Microsoft.

· Тестирование совместимости

· Тестирование совместимости приложения и аппаратного обеспечения для новых версий платформ и системного программного обеспечения

· Тестирование функциональной совместимости/интеграции

· Подтверждение нормальной совместной работы различных компонентов системы в выбранных сценариях

· Глобализация/локализация

· Тестирование для подтверждения соответствия общепризнанным стандартам глобализации.

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

· Захват элементов управления,

· Манипуляция элементами управления,

· Получение данных от элементов управления.

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

1. Стандартные элементы управления WindowsTM - кнопки, окна для ввода текста, специальные управляющие элементы.

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

3. Окрашенные элементы управления являются элементами управления, которые имеют функциональность стандартных элементов управления, к которой разработчиком добавляется специальная функция. В добавление к "Пользовательским элементам управления" окрашенные элементы управления сами ответственны за обработку сообщений окон, таких как WM_PAINT.

Существующие инструменты автоматизированного тестирования разделяются на следующие три основные категории, где каждая категория имеет различные режимы работы:

· Простой захват - запись и воспроизведение,

· Объектно-ориентированная автоматизация,

· Обнаружение компонентов на основании изображения.

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

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

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

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

Сущность изобретения

Решение этих и других проблем является целью системы и способа согласно настоящему изобретению, которое обеспечивает автоматизацию тестирования и удаленное управление компьютерами в сетевом окружении. Сетевая архитектура согласно настоящему изобретению обеспечивает соединение по схеме 1-множество и управление между первым вычислительным устройством и множеством других вычислительных устройств. Архитектура обеспечивает возможность соединения по схеме 1-множество путем предоставления клиентского целевого модуля, который может исполняться на одной или более тестируемых системах, каждая из которых определяется как целевое устройство, клиентского модуля просмотра, который может исполняться на локальном компьютере и который предоставляет возможность пользователю просматривать и управлять каждой тестируемой системой на локальном рабочем столе, и диспетчерского серверного модуля (на которого ссылаются как на серверное устройство), который обеспечивает интерфейс между клиентскими модулями просмотра и клиентскими целевыми модулями. Диспетчерский серверный модуль представляет собой серверное приложение, исполняемое на компьютере и сконфигурированное так, чтобы быть посредником всех взаимодействий между пользователем и каждой из тестируемых систем. На интерфейсе с диспетчерским серверным модулем может быть предоставлен серверный модуль интерпретации, который может быть сконфигурирован так, чтобы активировать одну или более из множества задач, включающих в себя, например, обработку изображения, сегментацию изображения, интерпретацию изображения, поиск в базе данных и генерацию общей информации, такой как XML-описания опрашиваемого изображения.

Использование сетевой архитектуры согласно настоящему изобретению позволяет пользователю выполнять автоматизированное тестирование или удаленное управление одного или более удаленных компьютеров одновременно. Интерфейс, предоставленный между пользователем и тестируемыми системами, обеспечивает возможность одновременного соединения с каждой из тестируемых систем и их одновременного управления. Очевидно, что термин компьютер использован в данном описании в общем смысле, и он охватывает любое вычислительное устройство или электронное устройство, на котором действует операционная система, и в настоящем изобретении термин компьютер охватывает любое вычислительное устройство, такое как Персональные Цифровые Секретари (Personal Digital Assistant, PDA), мобильные телефоны и т.п., а также обычные персональные компьютеры или ноутбуки.

Настоящее изобретение предоставляет систему согласно п.1 формулы изобретения с полезными вариантами осуществления, указанными в зависимых пунктах формулы изобретения. Настоящее изобретения также предоставляет способ согласно п.23 формулы изобретения.

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

Краткое описание чертежей

Фиг.1 - схематическая иллюстрация сетевой архитектуры согласно настоящему изобретению;

Фиг.2 - иллюстрация примера обработки, реализованной по сетевой архитектуре согласно настоящему изобретению;

Фиг.3 - иллюстрация модификации архитектуры с Фиг.1, в которой добавлено дополнительно клиентское устройство просмотра;

Фиг.4A-4C - иллюстрации сокет-связей между компонентами настоящего изобретения;

Фиг.5 - мгновенный снимок экрана из клиентского устройства, который иллюстрирует работу системы согласно настоящему изобретению с двумя соединенными машинами.

Подробное описание чертежей

Ниже, система согласно настоящему изобретению описана со ссылкой на следующие термины, которые предоставлены для простоты описания, и не следует делать каких-либо выводов из наименований использованного здесь протокола. Как показано на Фиг.1, система 100 согласно настоящему изобретению включает в себя следующие компоненты:

· Одна или более Теневых Клиентских Целей 105 (ТКЦ)

· Теневой Диспетчерский Сервер 110 (ТДС), соединенный с устройством 110A хранения данных

· Теневой Клиентский Просмотрщик 115 (ТКП)

· Теневой Сервер Интерпретации 120 (ТСИ), соединенный с устройством 120A хранения данных

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

В следующих разделах по отдельности описаны отдельные компоненты.

Теневая Клиентская Цель 105 (ТКЦ)

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

· ТКЦ открывает порт, который необходимо прослушивать

· ТКЦ создает сокет для передачи данных

· ТКЦ активно пытается установить соединение с ТДС.

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

Если ТКЦ запущена как обычный исполняемый файл, то ТКЦ представляет пользователю диалоговое окно, запрашивающее пользователя специфицировать ТДС из перечня возможных ТДС. Альтернативно, если ТКЦ выполняется как служба операционной системы, то ТКЦ будет использовать данные конфигурации, чтобы определить ТДС, с которым нужно установить соединение. Данные конфигурации могут быть установлены посредством файла инициализации ("INI-файла), который пользователь может редактировать.

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

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

В течение работы системы ТКЦ принимает входные данные от ТДС через сокет данных. Очевидно, что связь между отдельными компонентами системы осуществляется посредством сетевых протоколов, таких как протокол TCP/IP. Эти данные могут содержать, но не ограничены перечисленным, один или более из следующих компонентов:

· Входные и вспомогательные данные клавиатуры

· Входные и вспомогательные данные мыши/указателя

· Запрос информации об аппаратной настройке ТКЦ

· Запрос на снятие мгновенного снимка экрана

· Запрос на извлечение содержимого буфера обмена

· Запрос на вставку данных в буфер обмена

Действия клавиатуры или мыши передаются в очередь операционной системы. Если ввода также включает в себя запрос на снятие мгновенного снимка экрана, то есть, если ТКП находится в режиме записи, то ТКЦ ожидает пока операционная система обработает ввод, и только после этого снимает мгновенный снимок экрана. Фиг.2 иллюстрирует пример подобного запроса на снятие мгновенного снимка экрана. На этапе 1 в ТКП 115 генерируется запрос. Этот запрос принимается в ТДС, где идентифицируются соответствующие ТКЦ (этап 2). Далее, запрос ретранслируется в соответствующие ТКЦ (этап 3), где он обрабатывается, и снимается соответствующий мгновенный снимок экрана (этап 4). Последний подвергается сжатию в ТКЦ и направляется обратно в ТДС (этап 5). При получении снимок перенаправляется из ТДС в ТКП в сжатом формате (этап 6). При получении в ТКП снимок разжимается и отображается в соответствующем окне для ТКЦ на дисплее ТКП (этап 7).

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

Если содержимое буфера обмена ТКЦ модифицируется, то в ТДС передается сообщение, которое указывает это событие. Это сообщение также включает в себя содержимое буфера обмена и любую необходимую вспомогательную информацию.

Очевидно, что выполнение задач, которые изначально выполняются в другой части данной архитектуры, является только одной частью соединения по схеме 1-множество. Также необходимо, чтобы подтверждение этих задач было возвращено в управляющее устройство - ТКП. Следовательно, ТКЦ требуется вывести последовательность выводов данных, соответствующих процессу, который локально выполняется на устройстве ТКЦ. Это достигается путем снятия одного или более мгновенных снимков экрана, которые могут быть впоследствии сжаты посредством известных библиотек сжатия, таких как ZLIB и т.п. Сжатый файл передается через сокет данных в ТДС. Конечный пользователь, то есть лицо, управляющее ТКП, может настроить частоту обновления кадров, то есть количество мгновенных снимков экрана, которые должны быть сняты за одну секунду. По умолчанию частота обновления кадров может составлять, например, 5 кадров в секунду.

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

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

ТКЦ также может передать обратно сообщение, содержащее информацию о ее аппаратных настройках и/или содержимом его буфера обмена.

Теневой Диспетчерский Сервер 110 (ТДС)

ТДС представляет собой многопоточный модуль программного обеспечения, который предоставляет интерфейс между одной или более ТКЦ и ТКП, и который выполняет следующие функциональные шаги:

· При запуске он ожидает соединений от ТКЦ и ТКП

· ТДС создает сокет и поток для каждой ТКЦ.

· ТДС создает сокет и поток для каждого ТКП.

· ТДС создает другие потоки для внутренних задач

ТДС соединяется с подгруппой доступных машин, количество которых составляет, по меньшей мере, 1. Как упоминалось выше, со ссылкой на ТКЦ, некоторые внедрения системы согласно настоящему изобретению могут включать в себя инсталляцию на множество машин и операционных систем, однако в любой заданный момент времени могут существовать некоторые машины, которые не соединены с каким-либо ТДС.

ТДС имеет входящие и исходящие соединения с множеством ТКП и целями ТКЦ, которые обеспечиваются посредством сетевых протоколов для передачи данных, таких как TCP/IP. По существу, он предоставляет интерфейс между ТКП и ТКЦ. Несмотря на то, что возможно соединение ТДС с множеством ТКП, имеет место случай, когда только один из множества ТКП имеет полное управление какой-либо ТКЦ. Другие ТКП, которые соединены через ТДС с этой ТКЦ, могут только наблюдать и принимать "поток" мгновенных снимков экрана от ТДС только для целей отображения.

Каждый поток ТДС, выделенный одной ТКЦ, выполняет следующие функции:

· Поддерживает соединение с ТКЦ. В действительности ТКЦ выполняет соединение с ТДС.

· Принимает запросы от ТКП.

· На основании содержимого сообщения запроса ТКП, ТДС может решить передать этот запрос в ТСИ для обработки. Если имеет место такой случай, то текущий поток будет ожидать ответа от ТСИ до обработки других запросов от ТКП, связанного с этим потоком.

· Запрос перенаправляется в соответствующие цели. Следует отметить, что один и тот же запрос от ТКП может быть передан множеству ТКЦ. Этот сценарий типа один-множество имеет место, когда ТКП находится в режиме контроллера и управляет множеством машин одновременно.

· Принимает запросы от ТКЦ.

· На основании запроса от ТКЦ ТДС может перенаправить запрос в ТСИ для дальнейшей обработки.

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

· ТДС может решить перенаправить запрос от ТКЦ в соответствующий ТКП.

· Принимает данные от ТКП в форме XML с описанием движений мыши и клавиатуры.

· Ретранслирует XML-данные в ТКЦ.

· Ретранслирует данные сжатого мгновенного снимка экрана в ТКП.

Очевидно, что как интерфейсный модуль ТДС принимает и передает множество вводов и выводов как от ТКЦ, так и от ТКП.

Ниже приведен перечень типов вводов, которые свойственны для ТДС:

· Запрос от ТКП на снятие мгновенного снимка ассоциированной ТКЦ.

· Запрос от ТКП на предоставление информации аппаратного и программного обеспечения ТКЦ.

· Запрос от ТКП на обработку ввода пользователя вместе с вспомогательной информацией.

· Сообщение от ТКП, указывающее, что текущая удаленная машина в данный момент является контроллером.

· Сообщение от ТКП, указывающее, что состояние записи текущей удаленной машины было изменено.

· Сообщение от ТКП, указывающее, что состояние воспроизведения текущей удаленной машины было изменено.

· Запрос от ТКП на передачу списка всех соединенных ТКЦ.

· Запрос от ТКП на закрытие этого соединения.

· Сообщение от ТКП, указывающее, что содержимое буфера обмена этого ТКП было изменено, а также информация буфера обмена.

· Запрос от ТКП на снятие мгновенного снимка экрана вручную.

· Ответ от ТСИ.

· Сжатый мгновенный снимок ТКЦ и вспомогательная информация.

· Информация аппаратного и программного обеспечения ТКЦ.

· Сообщение от ТКЦ, указывающее, что содержимое буфера обмена этого ТКЦ было изменено, а также информация буфера обмена.

· Ответ на ввод пользователя ТКЦ и вспомогательная информация.

· Ответ мгновенного снимка экрана ТКЦ, снятого вручную.

· Запрос от ТКЦ на закрытие этого соединения.

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

· Запрос в ТКЦ на снятие мгновенного снимка связанной ТКЦ.

· Запрос в ТКЦ на предоставление информации аппаратного и программного обеспечения ТКЦ.

· Запрос в ТКЦ на обработку ввода пользователя вместе с вспомогательной информацией.

· Сообщение в ТКЦ, указывающее, что содержимое буфера обмена этого ТКП было изменено, а также информация буфера обмена.

· Запрос в ТКЦ на снятие мгновенного снимка экрана вручную.

· Запрос в ТСИ на выполнение анализа данных.

· Сжатый мгновенный снимок ТКЦ и вспомогательная информация.

· Информация аппаратного и программного обеспечения ТКЦ.

· Сообщение от ТКЦ, указывающее, что содержимое буфера обмена этого ТКЦ было изменено, а также информация буфера обмена.

· Ответ на ввод пользователя ТКЦ и вспомогательная информация.

· Ответ мгновенного снимка экрана ТКЦ, снятого вручную.

· Запрос от ТКЦ на закрытие этого соединения.

Теневой Клиентский Просмотрщик 115 (ТКП)

ТКП также является многопоточным приложением. ТКП соединяется с одним ТДС, что может быть выполнено в режиме просмотра или в активном режиме. ТКП может соединяться с множеством ТДС, хотя в активном режиме будет только один из них. В активном режиме ТКП управляет работой ТКЦ. В режиме просмотра ТКП просто принимает информацию отображения от каждой соединенной ТКЦ и отображает каждую ТКЦ, и ТКП не передается каких-либо вводов пользователя в какую-либо ТКЦ. Фиг.1 иллюстрирует пример одной групповой конфигурации, где один ТКП 115 соединен с одним ТДС 110. Все ТКЦ 105 находятся в управлении ТКП, и в этой конфигурации данный ТКП находится в активном режиме. В примере с двумя группами с Фиг.3, два ТКП 115A, 115B соединены с одним ТДС 110. В этой конфигурации один из двух ТКП, например ТКП 115A, управляет всеми машинами своей группы. В Группе 1 ассоциированный с этой конфигурацией ТКП управляет всеми машинами в Группе 1. Существует три ТКЦ, которые являются членами обеих групп. В этом примере, ассоциированный с Группой 2 ТКП, то есть ТКП 115B, может только просматривать ТКЦ в группе 1, и он не управляет им. Однако ТКП 115B имеет полное управление другими ТКЦ в Группе 2.

Для целей настоящего описания, "соответствующей" ТКЦ в контексте соединения с ТКП является ТКЦ, для которой ТКП имеет полное управление над ТКЦ в активном режиме.

Фиг.4 иллюстрирует сокеты связи для данных, передаваемых в и от ТКП и ТДС. Также проиллюстрированы сокеты связи между ТДС и каждой отдельной ТКЦ. ТКП имеет один поток для каждого сокет-соединения к ТДС, соответствующей ТКЦ. Через эти сокеты ТКП осуществляет связь с ТКЦ через ТДС. Фиг.4A иллюстрирует присутствующие сокеты связи, тогда как Фиг.4B иллюстрирует потоки данных для сокетов, когда первая ТКЦ (ТКЦ_1) является контроллером, а вторая ТКЦ (ТКЦ_2) взаимодействует напрямую через ТКП, а не через контроллер. Фиг.4C иллюстрирует поток данных для сокетов, когда ТКЦ_1 является контроллером.

Для эффективного управления каждой ТКЦ важно, чтобы пользователю были известные действия, имеющие место на каждой из целевых машин. Система согласно настоящему изобретению достигает этого путем предоставления на ТКП отображения окна каждой ТКЦ, с которой он соединен. На Фиг.5 показан пример мгновенного снимка экрана, где очевидно, что ТКП имеет окно для каждой ТКЦ 505, 510, которые были выбраны. Также возможно предоставить второе окно 505A, 510A, увеличительное окно для каждой ТКЦ, где активная область на каждой ТКЦ увеличена. Сбор информации мыши и клавиатуры для каждого окна осуществляется с использованием стандартных приемников событий для этих типов событий.

В ТКП, окно контроллера, соответствующее определенной ТКЦ, может быть специфицировано, используя опцию меню или комбинацию клавиш. ТКП предоставляет эту информацию в ТДС. Это окно машины-контроллера в ТКП передает свои события в ТДС через сокеты данных. ТДС передает события в ТКЦ, соответствующую окну контроллера, но он также передает эти события в каждую (не управляющую) ТКЦ, которая соединена с ним. ТДС не передает все события всем ТКЦ, соединенным с ним, поскольку некоторые из этих событий могут быть не связаны с конкретным ТКП. Например, ТКП 115B с Фиг.3 не требуется видеть активность в Группе 1. В данной ситуации пользователь одновременно дистанционно управляет всеми соответствующими ТКЦ (машинами) посредством действий на одном окне ТКП.

В случае, когда присутствует набор окон контроллера и пользователь перемещает мышь на другое окно в ТКП, то имеет место другая ситуация. В этом случае данные события передаются через сокет, относящийся к ТКЦ и ТДС, и только оттуда - в ТКЦ. Тем не менее, в этом случае ТДС не ретранслирует события во все соответствующие (в смысле, описанном в предыдущем параграфе) ТКЦ, которые соединены с ним. Таким образом, пользователь дистанционно управляет одной единственной машиной (см. Фиг.4B).

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

Теневой Сервер Интерпретации 120 (ТСИ)

Как описано выше, некоторые внедрения настоящего изобретения будут достаточны при использовании только одного ТКП и одного ТДС, через который ТКП соединяется с одной или более ТКЦ. В тех случаях, когда при взаимодействии требуется дополнительная функциональность, настоящее изобретение предоставляет сервер интерпретации - Теневой Сервер Интерпретации 120 (ТСИ). ТСИ соединяется с ТДС. Он представляет собой многопоточное приложение. Целью ТСИ является выполнение цифровой обработки изображения и выполнение операций поиска в базе данных.

Функции ТСИ включают в себя следующее:

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

· Извлечение вектора признаков: используя определенную область изображения, могут быть применены различные технологии, такие как гистограммы оттенков серого и цветные гистограммы, моменты n-го порядка и/или вейвлеты, чтобы получить меру, которая описывает область изображения. Эта мера может быть выражена как векторная величина, так что к ней могут быть применены математические методы. Подобные векторы признаков могут потребоваться для нескольких смежных сегментов.

· Распознавания объектов с использованием векторов признаков. Идентификация объекта регулируется посредством размытой логики, нейронных сетей, поддерживающих векторных машин и/или мышления, основанного на прецедентах, которые применяются к группе векторов признаков. Эталонные объекты могут быть сохранены в формате базы данных, с которым будут сравниваться неизвестные признаки.

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

· Изображение сегментируется, используя метод сегментации с цифровой обработкой изображения.

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

· Эти векторы признаков определяют "объект" в изображении, из которого были определены координаты.

· Эти векторы признаков сравниваются с эталонными векторами признаков, чтобы оценить схожесть, используя меру расстояния, такую как, но не ограничиваясь перечисленным, евклидова метрика, метрика Манхеттена (Manhattan metric) или расстояние Earthmover distance.

· Эталонные векторы признаков сохраняются в базе данных. База данных вручную формируется так, чтобы включать в себя такие данные, которые могут потребоваться при исследовании набора мгновенных снимков экрана.

· Эталонные векторы признаков извлекаются, используя SQL. Эталонные векторы признаков имеют идентификатор применительно к "объектам", с которыми можно столкнуться при исследовании набора мгновенных снимков экрана, таких как "меню", "панель инструментов".

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

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

Object findWidget(point p) {return Object widget}

Еще одной функцией ТСИ является идентификация точки на изображении заданного объекта. Процесс осуществляется следующим образом.

· Вектор признаков искомого объекта определяется путем опроса базы данных. Данный признак обозначается термином "признак опроса".

· Изображение сегментируется, используя метод сегментации с цифровой обработкой изображения.

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

· Каждый элемент из списка векторов признаков сравнивается с вектором признаков опроса объекта, которые требуется идентифицировать. Чтобы оценить схожесть векторов признаков с признаком опроса, можно использовать метрику расстояния, такую как, но не ограничиваясь перечисленным, евклидова метрика, метрика Манхеттена (Manhattan metric) или расстояние Earthmover distance.

· При обнаружении признака с наибольшим соответствием возвращаются координаты центра тяжести данного сегмента.

Прототип описанной функции выглядит следующим образом:

point findCoordinates(Object widget) {return point p}

Примеры работы

Используя взаимодействие по схеме 1-множество, система согласно настоящему изобретению может быть развернута множеством различных способов. Ниже изложено описание примера применения методологии настоящего изобретения в первом режиме, то есть в режиме имитации. Данная конкретная последовательность потока иллюстрирует пример одной клиентской цели и требует наличия одной тестируемой системы с выполняемым на ней клиентским целевым модулем, одной системы с выполняемым на ней клиентским модулем просмотрщика и одного сервера с выполняемым на нем диспетчерским модулем. Каждый модуль предоставлен на определенной аппаратной машине, и модули осуществляют связь друг с другом, используя протокол TCP/IP.

Как показано на мгновенном снимке экрана с Фиг.5, при выполнении базового набора указанных выше шагов пользователь может локально видеть "тестируемую систему", то есть систему, на которой выполняется приложение Клиентской Цели - ТКП. Когда пользователь применяет действия мыши/указателя или клавиатуры на окне просмотрщика, тестируемая система (ТКЦ) соответствующим образом реагирует на эти вводы. В ТКП пользователь также может видеть два других окна - окно 520 регистрации и увеличительное окно 505A, 510A. Окно 520 регистрации отображает информацию, собранную из окна рабочего стола тестируемой системы, такую как координаты позиции мыши, действие мыши (одинарный щелчок, двойной щелчок и т.п.) и координаты или вводы клавиатуры. Увеличительное окно отображает область экрана, видимую вокруг мыши тестируемой системы, и обновляет эту информацию с заданной скоростью обновления. Если присутствует только одна ТКЦ, и она по умолчанию является "контроллером", то пользователь управляет системой посредством ТКП (см. Фиг.5). Если присутствует более одной ТКЦ, то один контроллер определяется пользователем, которым и управляется пользователем. Другие ТКЦ используют ввод пользователя, который принимается контроллером, то есть вводы мыши и клавиатуры. Размеры увеличительного окна определяются пользователем. Увеличительное окно некритично для функционирования приложения, и оно показывает только часть всего экрана, как приложение Экранная Лупа (MS Magnifier), которое как часть специальных возможностей системы показывает область экрана вокруг мыши. Позиция мыши, то есть экранные координаты (x,y) и действие мыши, то есть щелчок или двойной щелчок, передаются от ТКП в ТДС. Аналогичным образом другие действия пользователя, такие как действия нажатий клавиш, передаются от ТКП в ТДС. ТДС передает эту информацию в ТКЦ, которая в свою очередь передает сообщение в очередь своей операционной системы. Когда очередь операционной системы обрабатывает это сообщение, мышь перемещается в соответствующие координаты и применяется соответствующее действие. Действие обновления производится постоянно и независимо от взаимодействия пользователя. Тем не менее сохраненные мгновенные снимки получаются по запросу пользователя.

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

В любой момент времени пользователь может разъединить тестируемые системы от системы Контроллера. Это может быть сделано путем выбора элемента меню "Выключить Контроллер". Каждое окно становится доступным для взаимодействия пользователя по отдельности. В действительности, даже тогда, когда установлен контроллер, пользователь может манипулировать каждой отдельной машиной путем выбора соответствующего окна в ТКП и непосредственного взаимодействия с этим окном.

В ТКП пользователь может видеть два других окна для каждого окна рабочего стола - окно регистрации и увеличительное окно. Окно регистрации отображает информацию, собранную из окна рабочего стола тестируемой системы, такую как координаты позиции мыши, действие мыши (одинарный щелчок, двойной щелчок) и координаты, или вводы клавиатуры. Увеличительное окно отображает область экрана, видимую вокруг мыши тестируемой системы, и обновляет эту информацию с заданной скоростью обновления. Существует два варианта решения задачи загромождения на рабочем столе. Согласно первому окна, отображающие тестируемые системы, масштабируются и для тестирования систем для соответствующих машин используются увеличительные окна. Согласно второму варианту на машине, где выполняется программное обеспечение клиентского просмотрщика, используется видеокарта, поддерживающая множество мониторов, что увеличивает поверхность рабочего стола до 2, 4, 8 мониторов. Существуют карты, поддерживающие два монитора, например соответствующие решения компаний ATI и nVidia. Matrox поставляет графические карты, поддерживающие 4 монитора, а Xentera GT8 PCI 8 поставляет графические карты, поддерживающие 8 мониторов.

Наряду с тем, что полезно взаимодействовать с множеством удаленных компьютеров одновременно и выполнять мониторинг поведения одного компьютера или других компьютеров, чтобы обеспечить идентичные характеристики поведения, настоящее изобретение предоставляет возможность записи сценариев. Упомянутая запись полезна для ряда целей, включая ситуацию, когда требуется, например, выполнять определенное действие в первый момент времени и повторно выполнить идентичное действие позже на том же или на другом компьютере, чтобы гарантировать одинаковое поведение. Другие причины, по которым могут быть записаны сценарии, включают в себя: для обучающих и демонстрационных целей (сквозной контроль продукта) или для снятия мгновенных снимков экрана изменяющегося интерфейса пользователя для систем технической поддержки или документирования.

Выбирается система "Контроллера" согласно вышеупомянутой имитации 1-множество (где количество систем может быть больше или равно 1).

Чтобы начать запись, пользователь выбирает опцию меню записи. Далее, пользователь следует этапам теста и при завершении выбирает элемент меню "Остановить запись". Во многом данный процесс похож на запись макроса в среде Visual Basic и т.п. Форматом записанного сценария является XML. Сценарий по умолчанию сохраняется в ТДС. Для каждой ТКЦ будет по одному сценарию. Причиной этого является то, то множество ТКЦ могут выполняться на различных платформах, и в записанных сценариях могут присутствовать небольшие различия. Кроме того, в некоторой точке в процессе записи пользователь может пожелать применить некоторый ввод только в определенные тестируемые машины.

Запись элемента сценария может выглядеть следующим образом:

<Snapshot>

<MouseButton>

<Action>MOVE</Action>

<XPos>7488</XPos>

<YPos>21333</YPos>

<EventTimeSeconds>0</EventTimeSeconds>

<EventTimeMilliSeconds>15</EventTimeMilliSeconds>

<PlaybackMode>1</PlaybackMode>

</MouseButton>

</Snapshot>

Вышеизложенный пример иллюстрирует захват движения мыши в позиции на экране, обозначенной координатами <x,y>:<7488,21333>. Вводы с клавиатуры могут быть захвачены и вставлены в метки <Keyboard> </Keyboard>.

Наряду с тем, что полезно применять запись сценария, основное преимущество обеспечивается при воспроизведении этого записанного сценария на более позднем этапе. Это в особенности полезно, когда требуется автоматизировать определенные задачи, которые могут быть выполнены путем однократной записи и ее многократного воспроизведения по необходимости. В режиме воспроизведения каждая строка тестового сценария анализируется по отдельности, и далее действия передаются в соответствующую ТКЦ для выполнения. Сценарий контроллера может быть воспроизведен на машине-контроллере одним из следующих двух способов: воспроизведение в качестве контроллера множества ТКЦ, либо воспроизведения в качестве самой автономной ТКЦ. В течение процесса записи устанавливается контроллер и каждая отдельная ТКЦ "следует" ему. Сценарий записывается для этого контроллера и каждой ТКЦ. Эти сценарии сохраняются в ТДС. Сценарий контроллера содержит информацию, о том что он является контроллером и что существуют другие ТКЦ. Воспроизведение сценария контроллера на контроллере приводит к открытию окон ТКЦ - его подчиненных, связанных с записью сценария. Можно применить воспроизведение одновременно во множестве отдельных ТКЦ. Также возможно воспроизвести сценарий отдельной ТКЦ на отдельной клиентской цели.

Когда записывается сценарий типа 1-множество, имеет место следующее:

· Сценарий записывается для машины-контроллера.

· Отдельные сценарии записываются для каждой Клиентской Цели

Сценарий может быть воспроизведен на любой машине. Нет никаких особых ограничений, которые бы неразрывно связывали сценарий с конкретной машиной. Если система развернута в режиме имитации по схеме 1-множество и сценарий воспроизводится на контроллере, то все другие ТКЦ последуют ему. Сценарий, записанный на одной ТКЦ, будет воспроизведен на второй ТКЦ. Будет ли он воспроизведен успешно на второй ТКЦ зависит от того, идентичны ли Интерфейсы Пользователя для обеих ТКЦ.

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

В режиме точного соответствия использование системы по схеме 1-1 схоже с режимом имитации по схеме 1-1 с добавлением того, что каждый раз, когда имеет место взаимодействие пользователя, снимается мгновенный снимок области вокруг мыши. В данном случае в качестве признака используется область с размером 'n x m' пикселей по центру курсора мыши, что позволяет идентифицировать место, где происходит взаимодействие пользователя. В режиме имитации точные координаты мышки и позиция курсора передаются в Клиентскую Цель посредством Диспетчерского Сервера. В Теневом режиме к этой информации добавляется графика, изображение опроса, которое хранится в Диспетчерском Сервере. Информация в графике не используется в течение использования Онлайн схемы 1-1, а используется в течение применения Онлайн Тени 1-множество, а также в течение воспроизведения записанного сценария. Если система выполняется в этом режиме, то каждый раз, когда пользователь взаимодействует с тестируемой системой, генерируется графика, которая сохраняется в диспетчерском сервере.

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

Режим Точного Соответствия может рассматриваться как отдельный случай Теневого Режима.

Последовательность событий, имеющих место, когда пользователь передает ввод в управляющую ТКЦ в Теневом Режиме, имеет следующий вид:

· Пользователь применяет ввод в управляющую ТКЦ.

· ТКП генерирует информацию изображения опроса для этого ввода.

· Посредством ТКП ввод пользователя и информация изображения опроса передаются в ТДС.

· Для каждой не управляющей ТКЦ ТДС запрашивает мгновенный снимок экрана.

· Не управляющая ТКЦ возвращает мгновенный снимок экрана в ТДС.

· ТДС передает в ТСИ мгновенный снимок экрана ТКЦ вместе с изображением опроса и вспомогательной информацией.

· ТСИ пытается найти экранные координаты ввода пользователя на основании ввода, который ТСИ получил от ТДС. Это может быть точное соответствие или приемлемое соответствие.

· Если ТСИ находит уникальные координаты, то ТСИ передает найденные координаты в ТДС, и ТДС, в свою очередь, передает эти координаты в ТКЦ. ТСИ также может передать текст графического элемента интерфейса в ТДС.

· ТКЦ вводит координаты и информацию команды в очередь сообщений операционной системы, чтобы взаимодействие пользователя имело место в корректной позиции.

· Если уникальные координаты не удается найти, то ТСИ запрашивает у ТДС дополнительную вспомогательную информацию. ТДС запрашивает у ТКП дополнительную вспомогательную информацию, и ТКП возвращает запрашиваемую информацию. ТДС передает новую вспомогательную информацию в ТСИ, и процесс поиска повторяется. ТКП также может передать обратно ответ на отмену этого ввода.

· Ввод пользователя из управляющей ТКЦ передается в ТКЦ точно таким же образом, что и в режиме имитации.

В течение воспроизведения Клиентский Просмотрщик выполняет следующие шаги:

· Считывается элемент сценария.

· Элемент списка анализируется на предмет действий.

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

· ТДС выполняет поиск в базе данных переводческой памяти, чтобы найти перевод текста графического элемента интерфейса.

· В ТКЦ посредством ТДС посылается запрос на снятие мгновенного снимка экрана.

· ТКЦ возвращает мгновенный снимок экрана в ТДС.

· ТДС возвращает мгновенный снимок экрана в ТСИ вместе с изображением опроса и вспомогательной информацией.

· ТСИ пытается определить, содержит ли мгновенный снимок экрана приемлемое совпадение для графического изображения опроса.

· Если обнаруживается приемлемое соответствие, то ТСИ передает найденные координаты в ТДС, и ТДС в свою очередь передает эти координаты в ТКЦ.

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

· Если приемлемое соответствие не удается обнаружить, то ТКП выполняет одно из следующих действий: (i) остановка воспроизведения и запись флага ошибки в журнале регистрации; (ii) попытка автоматически предоставить дополнительную вспомогательную информацию; или (iii) запрос вспомогательной информации у пользователя.

В текущее время анализ выполняется только на ТКЦ, и он является функцией Сервера Интерпретации. Вышеописанный режим точного соответствия полезен для автоматизированного тестирования. Некоторые из преимуществ режима точного соответствия по сравнению с режимом имитации перечислены ниже.

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

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

· При опросе интерфейса пользователя меньше вероятность возникновения ошибок синхронизации в режиме воспроизведения.

Ошибки происходят в режиме Точного Соответствия аналогично режиму Имитации по таким причинам, как:

· Ошибки операционной системы

· Ошибки приложения

· Ошибки синхронизации сценария

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

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

2. графический элемент интерфейса отсутствует, и позиций точного соответствия не существует;

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

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

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

Выше настоящее изобретение было описано со ссылкой на два иллюстративных режима приложения - режим имитации и режим точного соответствия. Ниже следует описание со ссылкой на предпочтительный режим работы - теневой режим. В этом режиме работы показанная на Фиг.1 система расширяется путем добавления ТСИ - серверного модуля интерпретации, который имеет интерфейс с диспетчерским серверным модулем, а также осуществляет связь внутри сети посредством протокола TCP/IP. Серверный модуль интерпретации действует путем получения записанного тестового сценария и выполнения анализа этого сценария по каждой записи автоматическим образом. Для каждой записи он анализирует имя мгновенного снимка экрана и координат, в которых имело место взаимодействие пользователя. Далее, серверный модуль интерпретации открывает данный мгновенный снимок экрана и применяет множество методов обработки изображения, чтобы сегментировать изображения на области. В ТСИ векторы признаков извлекаются из каждой области и далее используются для идентификации объектов из базы данных. Следует понимать, что база данных предварительно заполняется пользователем, поскольку пользователь должен заполнить базу данных образцами для каждого типа графического элемента интерфейса, который может быть распознан. База данных заполняется посредством вручную предоставленных примеров, взятых из тестируемой операционной системы. Выполняется ручной процесс снятия мгновенных снимков экрана и ручной сегментации изображений на объекты. База данных заполняется объектами посредством, например, технологии Больших Двоичных Объектов (Binary Large Object Database-BLOB). Для описания изображения может использоваться описание изображения на уровне объектов, нечеткая логика, геометрия объектов и XML-схема. В частности, описание изображения на уровне объектов предоставляет возможность идентификации графического элемента интерфейса, который появляется в координатах из тестовой записи. С помощью информации из тестового сценария может быть получена следующая информация:

· Действие пользователя.

· Координаты на мгновенном снимке экрана, в которых произошло взаимодействие.

· Контекст действия пользователя.

Известным становится то, на каком графическом элементе интерфейса (объекте) пользователь выполнил щелчок. Посредством описания изображения на уровне объектов, предоставленного серверным модулем интерпретации, действие пользователя и идентичность объекта в заданных координатах предоставляют необходимый контекст для воспроизведения сценария. Еще одно применение с использованием функциональных возможностей, доступных посредством серверного модуля интерпретации, заключается в способности преобразовывать действия, записанные через сервер интерпретации, в "английскую" версию тестового сценария. Часто это необходимо для распределения другим членам тестовой организации, находящимся вне заданной тестовой группы.

Для режима воспроизведения можно сформулировать противоположный вопрос "Где находится заданный графический элемент интерфейса в изображении?". Предоставляется возможность взять изображение из воспроизведения и координаты, указывающие, где произошло взаимодействие пользователя, и определить местоположение графического элемента интерфейса. То, как будет найден графический элемент интерфейса, зависит от режима, в котором работает пользователь - режим Точного Соответствия или Теневой режим.

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

1. Идентификация графического элемента интерфейса в позиции с координатами (x,y);

2. Определение координат (x,y) заданного графического элемента интерфейса.

Эти функции могут быть выражены следующим образом:

1. Object findWidget(point p) {return Object widget}

2. point findCoordinates(Object widget) {return point p}

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

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

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

Следует понимать, что настоящее изобретение было описано со ссылкой на иллюстративные компоненты сетевой архитектуры, которые удобны для понимания изобретения. Эти примеры осуществления не следует рассматривать как ограничивающие, поскольку они предоставлены исключительно для описания работы согласно настоящему изобретению, и объем настоящего изобретения определяется только прилагаемой формулой изобретения. Каждый из клиентских модулей просмотра ТКП и клиентских целевых модулей ТКЦ предоставлены на отдельных компьютерах в сети. Несмотря на то, что предпочтительно, диспетчерский серверный модуль ТДС и серверный модуль интерпретации ТСИ предоставляются на отдельных машинах, чтобы они могли использовать мощность своего собственного выделенного процессора, определенные приложения могут быть использованы в условиях, где один или более из серверных модулей и клиентских модулей просмотра работают на одной машине. Связь между модулями желательно обеспечивается посредством протокола TCP/IP. Что касается компьютеров/машин, то также уместно применение технологии VMWare, которая позволяет данной машине (главному компьютеру) одновременно выполнять множество операционных систем (гостевых операционных систем). Эти операционные системы будут действовать как отдельные компьютеры в сети, что иногда обозначают термином "виртуализация компьютеров".

Клиентский Просмотрщик конфигурируется так, чтобы обеспечить возможность отображения рабочего стола систем(ы), работающих на Клиентском Целевом модуле. Если присутствует более одной тестируемой системы, то в Клиентском Просмотрщике будет по одному окну для каждой машины. Мгновенные снимки экрана всего рабочего стола Клиентской Цели сжимаются в SDT и передаются посредством протокола TCP/IP в Диспетчерский Сервер. Диспетчерский Сервер передает сжатые мгновенные снимки экрана в Клиентский Просмотрщик, между тем сохраняя копию этих мгновенных снимков. Клиентский Просмотрщик разархивирует и отображает мгновенные снимки экрана. Частота обновления, то есть количество мгновенных снимков экрана, передаваемых Клиентской Целью в Клиентский Просмотрщик (через Диспетчерский Сервер), по умолчанию составляет примерно 5 кадров/секунду, и она может изменяться пользователем. Частота обновления относится только к мгновенным снимкам экрана, передаваемым в Клиентский Просмотрщик. Присутствует отдельный поток мгновенных снимков экрана, снимаемых в другие моменты времени по запросу пользователя. После соединения машин пользователь взаимодействует только с Клиентским Просмотрщиком, который через диспетчерский сервер передает введенные через клиентский просмотрщик инструкции в клиентскую цель. Таким образом, поток информации в течение сессии минимизируется до уровня особых действий с клавиатуры/мыши, которые проводятся для каждого взаимодействия. Поскольку поток обмена в таком случае будет гораздо меньше, использование полосы пропускания минимизируется и скорость передачи данных увеличивается, так что действия, выполняемые в первый момент времени на клиентском просмотрщике, выполняются в клиентской цели в режиме псевдо-реального времени.

Сверх того, используя систему согласно настоящему изобретению, пользователю, работающему на системе с интерфейсом на английском языке, предоставляется возможность тестировать другие системы, работающие с интерфейсами на других языках. Это одновременное управление системой, использующей другие языки, имеет очевидные преимущества с точки зрения локализации. Для обеспечения подобной функциональности система действует в вышеупомянутом "Теневом режиме". Характеристикой некоторых графических элементов интерфейса является то, что их идентифицирующим признаком является текст. Это также применительно к случаю, когда для обнаружения в локализованной операционной системе графических элементов интерфейса, эквивалентных элементам с английским текстом, необходимо наличие в системе некоторого механизма перевода. База 120A данных в ТСИ 120 заполняется содержимым памяти перевода для каждого языка, который будет использоваться системой. Когда в течение воспроизведения сценария или в режиме онлайн снимается мгновенный снимок экрана контроллера ТКЦ, он передается в ТСИ для обработки. ТСИ кроме идентификации графического элемента интерфейса (как описано выше) может также идентифицировать связанный с этим элементом текст, используя оптическое распознавание символов.

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

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

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

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

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

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

2. Система по п.1, в которой связь между серверным устройством и каждым целевым устройством осуществляется через выделенный сокет данных.

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

4. Система по п.3, в которой каждый сокет данных является двунаправленным.

5. Система по п.1, в которой команды, ретранслируемые из серверного устройства в каждое из целевых устройств, включают в себя, по меньшей мере, одно из следующего:
Входные и вспомогательные данные клавиатуры,
Входные и вспомогательные данные мыши/указателя,
Запрос информации об аппаратной настройке ТКЦ,
Запрос на снятие мгновенного снимка экрана,
Запрос на извлечение содержимого буфера обмена,
Запрос на вставку данных в буфер обмена.

6. Система по п.1, в которой связи между устройствами осуществляются через сокет-соединения.

7. Система по п.6, в которой на каждом устройстве выполняется многопоточное программное приложение.

8. Система по п.7, в которой многопоточные программные приложения предоставляют один поток для каждого сокет-соединения между устройством просмотра и серверным устройством, соответствующим конкретному целевому устройству.

9. Система по п.7, в которой многопоточные программные приложения предоставляют один поток для каждого сокет-соединения между каждым целевым устройством и серверным устройством.

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

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

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

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

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

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

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

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

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

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

20. Система по п.19, в которой определение подходящей команды включает в себя этап, на котором определяют эквивалентную область в окне, ассоциированном с каждым тестируемым устройством, для применения команды, выполняемой в окне контроллера.

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

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



 

Похожие патенты:

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

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

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

Изобретение относится к интерфейсам сертифицированной беспроводной универсальной последовательной шины. .

Изобретение относится к способу перехвата информации и к соответствующему устройству для этого. .

Изобретение относится к информационным технологиям, в частности к области мобильной навигации. .

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

Изобретение относится к способу и устройствам обмена информацией с интеллектуальными полевыми приборами, используемыми в системах измерений и контроля процессов.

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

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

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

Изобретение относится к вычислительной технике

Изобретение относится к вычислительной технике и может быть использовано для подключения абонентов к общей магистрали

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

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

Изобретение относится к способу передачи информации по цифровым каналам связи
Наверх