Перекрестная ссылка на родственную заявку
Данная заявка притязает на приоритет согласно ст. 35 кодекса США §119(e), предварительной патентной заявки за № 60/657,330, озаглавленной «Активация данных конечного пользователя», поданной 28 февраля 2005 г., которая в полном объеме сим включена сюда посредством ссылки.
Уровень техники
Современные вычислительные системы могут иметь сотни программных процессов, активных в одно и то же время в различных состояниях выполнения. Эти процессы могут представлять собой фоновые процессы, инициированные операционной системой, процессами слежения или обслуживания, которые инициализируются в начальный момент или при запуске приложения, или сами приложения. Пользователь не в состоянии непосредственно управлять многими, если не большинством, из этих процессов или признаков этих процессов. Поэтому, если функциональные возможности, обеспечиваемые этими процессами, подлежат полному доступу, такой доступ обычно должен осуществляться посредством другого программного процесса.
Количество процессов, действующих в вычислительной системе, обычно является функцией объема данных, который система должна обрабатывать, и количества заданий, которые система должна выполнять. В общем случае наименее эффективными частями этих вычислительных заданий являются те, которые требуют взаимодействия с человеком. Кроме того, правильно реализованный вычислительный процесс обычно может выполнять сложные и повторяющиеся задания точнее, чем оператор-человек. Это обуславливает необходимость в системах и способах, способствующих уменьшению необходимости во взаимодействии с человеком при выполнении заданий обработки.
В общем случае, чтобы полностью использовать функциональные возможности, обеспечиваемые вычислительными процессами, конечный пользователь должен быть опытным программистом. Многие доступные функции остаются неиспользованными конечными пользователями, которые всего лишь имеют опыт работы на компьютере, но не имеют навыков программирования компьютера. Это часто происходит потому, что конечные пользователи часто даже не знают о существовании некоторых функциональных возможностей, встроенных в вычислительную систему. Многие из тех же самых пользователей извлекли бы большую пользу из возможности доступа к функциям более низкого уровня вычислительных компонентов. Современные системы не предоставляют конечному пользователю возможности доступа к функциям вычислительной системы и компоновки групп этих функций в соответствии с потребностями отдельных конечных пользователей.
Сущность изобретения
Ниже представлена упрощенная сущность для обеспечения понимания основных принципов и общего обзора. Эта сущность не является исчерпывающим описанием. Она также не призвана ни идентифицировать ключевые/критические элементы, ни ограничивать объем. Ее единственной целью является представление некоторых концепций в упрощенной форме в порядке прелюдии к более подробному описанию, представленному ниже. Кроме того, используемые здесь заголовки разделов обеспечены только для удобства и никоим образом не подлежат рассмотрению в порядке ограничения.
Модуль программирования конечного пользователя можно использовать для создания программ конечного пользователя, которые могут объединять функциональные возможности компонентов вычислительной системы. Эти компоненты могут представлять собой фрагменты кода программного обеспечения, присутствующего в вычислительной системе, например, помимо прочего, процессы операционной системы, фоновые процессы, демоны и автономные приложения. Выполнение модуля программирования конечного пользователя может происходить автоматически в ответ на некоторое запускающее событие, заданное конечным пользователем, и может выполнять вычислительные задания, заданные конечным пользователем, без вмешательства конечного пользователя. Дополнительно или альтернативно программа конечного пользователя может выполняться по команде конечного пользователя.
Конечные пользователи могут использовать платформу правил как основу для создания компонентов, которые выполняют задания, указанные самими конечными пользователями. Конечные пользователи могут, используя платформу правил, предписывать, чтобы задания обработки данных выполнялись автоматически по наступлении выбранного события или выполнялись вручную по команде конечного пользователя. Такие задания могут выполняться одним или несколькими компонентами вычислительной системы. Один или несколько компонентов вычислительной системы могут участвовать в общей обработке, осуществляемой программой конечного пользователя.
Программа конечного пользователя может обеспечивать настраиваемые функциональные возможности для уже существующих компонентов, например, приложений пользователя. Эти функциональные возможности можно создавать, обращаясь к платформе правил и связывая задания с различными средствами управления уже существующих компонентов, например элементами графического (или другого) интерфейса пользователя. Таким образом, конечные пользователи могут расширять и модифицировать функциональные возможности, обеспечиваемые стандартными компонентами, например автономными приложениями.
Раскрытые и описанные компоненты и способы содержат один или несколько признаков, описанных ниже и конкретно указанных в формуле изобретения. В нижеследующем описании и прилагаемых чертежах подробно описаны некоторые конкретные иллюстративные компоненты и способы. Однако эти компоненты и способы указывают лишь некоторые из возможностей применения раскрытых компонентов и способов. Конкретные реализации раскрытых и описанных компонентов и способов могут включать в себя некоторые, многие или все такие компоненты и способы, а также их эквиваленты. Вариации представленных здесь конкретных реализаций и примеров явствуют из нижеследующего подробного описания, приведенного совместно с чертежами.
Краткое описание чертежей
Фиг.1 - системная блок-схема системы программирования конечного пользователя.
Фиг.2 - системная блок-схема модуля программирования конечного пользователя.
Фиг.3 - системная блок-схема системы обработки конечного пользователя.
Фиг.4 - системная блок-схема системы программирования конечного пользователя, включающей в себя удаленные компоненты.
Фиг.5 - системная блок-схема автоматической системы программирования конечного пользователя.
Фиг.6 - системная блок-схема безопасной системы программирования конечного пользователя.
Фиг.7 - логическая блок-схема общей последовательности обработки, которую можно использовать с различными компонентами, раскрытыми и описанными здесь.
Фиг.8 - логическая блок-схема общей последовательности обработки, которую можно использовать с различными компонентами, раскрытыми и описанными здесь.
Фиг.9 - логическая блок-схема общей последовательности обработки, которую можно использовать с различными компонентами, раскрытыми и описанными здесь.
Фиг.10 - логическая блок-схема общей последовательности обработки, которую можно использовать с различными компонентами, раскрытыми и описанными здесь.
Фиг.11 - логическая блок-схема общей последовательности обработки, которую можно использовать с различными компонентами, раскрытыми и описанными здесь.
Фиг.12 - логическая блок-схема общей последовательности обработки, которую можно использовать с различными компонентами, раскрытыми и описанными здесь.
Фиг.13 - схема вычислительной среды, в которой можно реализовать различные раскрытые и описанные компоненты и способы.
Фиг.14 - системная блок-схема сетевой среды, в которой можно реализовать различные раскрытые и описанные компоненты и способы.
Осуществление изобретения
Используемые в этой заявке термины «компонент», «система», «модуль» и т.п. следует рассматривать как компьютерную сущность, например оборудование, программное обеспечение (например, выполняющееся) и/или программно-аппаратное обеспечение. Например, компонентом может быть процесс, действующий на процессоре, процессор, объект, выполняемый модуль, программа и/или компьютер. Кроме того, приложение, выполняющееся на сервере, и сервер могут быть компонентами. В процессе могут присутствовать один или несколько компонентов, и компонент может размещаться на одном компьютере и/или быть распределен между двумя или более компьютерами.
Раскрытые компоненты и способы описаны со ссылкой на чертежи, снабженные сквозной системой обозначений. В нижеследующем описании в целях объяснения многочисленные детали изложены для обеспечения исчерпывающего понимания раскрываемого предмета. Однако очевидно, что в конкретной реализации некоторые из этих конкретных деталей могут быть опущены или скомбинированы с другими. В других примерах определенные структуры и устройства показаны в виде блок-схемы для облегчения описания. Дополнительно, хотя в описании конкретных примеров может применяться терминология, согласующаяся с архитектурами клиент/сервер, или даже могут быть приведены примеры реализаций клиент/сервер, специалистам в данной области очевидно, что клиент и сервер могут меняться ролями, что раскрытые и описанные компоненты и способы не ограничиваются архитектурами клиент/сервер и могут быть легко адаптированы для использования в других архитектурах, например архитектурах равноправных устройств (P2P), без отклонения от сущности или объема раскрытых и описанных компонентов и способов. Кроме того, следует заметить, что хотя представленные здесь конкретные примеры включают в себя или опираются на конкретные компоненты, реализация раскрытых и описанных здесь компонентов и способов не обязана ограничиваться этими конкретными компонентами и может применяться в других контекстах.
Следует также понимать, что хотя представленные здесь конкретные примеры могут описывать или изображать системы и способы, базирующиеся на компонентах персональных компьютеров, использование раскрытых и описанных здесь компонентов и способов не ограничивается этой областью. Например, раскрытые и описанные компоненты и способы можно использовать в распределенной или сетевой вычислительной среде. Дополнительно или альтернативно раскрытые и описанные компоненты и способы можно использовать на одном сервере, доступном для множественных клиентов. Специалистам в данной области очевидно, что раскрытые и описанные компоненты и способы можно использовать для создания других компонентов и выполнения других способов для самых разных вычислительных устройств.
На фиг.1 показана системная блок-схема системы 100 программирования конечного пользователя. Система 100 программирования конечного пользователя может использоваться для создания вычислительного компонента, который может выполнять вычислительные задания, описанные или заданные конечным пользователем. Вычислительный компонент может выполнять задания, которые иначе конечному пользователю пришлось бы выполнять вручную, вводя одну или несколько команд посредством интерфейса пользователя. Дополнительно или альтернативно вычислительный компонент может выполнять задания с использованием функциональных возможностей, которые обычно напрямую недоступны конечному пользователю.
Система 100 программирования конечного пользователя включает в себя операционную платформу 110, которая обеспечивает среду обработки для системы 100. В этом контексте операционная платформа 110 может включать в себя аппаратные компоненты, программные компоненты или аппаратные и программные компоненты в совокупности. Среди этих реализаций, конкретно рассматриваемых для использования в качестве операционной платформы 110, можно выделить операционные системы на базе программного обеспечения, вычислительные устройства с операционными системами, выполненные в виде программно-аппаратного обеспечения, и встроенные системы.
Различные события, происходящие в вычислительной среде, можно рассматривать как значимые и использовать для генерации уведомления. Такие события могут включать в себя, помимо прочего, создание, изменение и удаление файла, прием сообщения электронной почты и запуск или выполнение приложения. Уведомление 120 может быть создано операционной платформой 110 для указания, что в вычислительной среде произошло некоторое событие. Уведомление 120 может служить указателем того, что задание обработки может или должно быть выполнено. Уведомление 120 может иметь вид сообщения, передаваемого между вычислительными компонентами, флага обработки или другого подходящего указателя. В частности, форма уведомления 120 сильно зависит от реализации и может варьироваться в соответствии с признаками, обеспечиваемыми операционной платформой 110, помимо прочего.
Модуль 130 программирования конечного пользователя (ПКП) может обеспечивать компонент, которым конечный пользователь может оперировать для задания действия, например программы 140 конечного пользователя, которое должно выполняться автоматически при наступлении события или, альтернативно, при поступлении команды от конечного пользователя. Конечный пользователь может обращаться к модулю 130 ПКП для создания программы конечного пользователя, которая содержит группу заданий управления данными или обработки информации, выбранных среди доступных функций вычислительной системы. Например, можно создать программу конечного пользователя для обнаружения, когда сообщение электронной почты поступает от указанного пользователя, для проверки сообщения на наличие вложенных файлов и для сохранения любых вложенных файлов в указанной директории. Эти действия могут осуществляться автоматически без активного участия конечного пользователя помимо первоначального создания программы конечного пользователя.
Модуль 130 ПКП может включать в себя интерфейс пользователя, который позволяет пользователю идентифицировать или указывать конкретное действие, которое может осуществлять вычислительный компонент. Этот интерфейс пользователя может представлять собой, помимо прочего, графический интерфейс пользователя (ГИП), интерфейс командной строки (ИКС), текстовый интерфейс или веб-интерфейс. Интерфейс пользователя также может представлять собой разновидность среды программирования конечного пользователя, подобной интегрированной среде разработки, используемой разработчиками программного обеспечения для написания, компиляции и тестирования программного кода. В частности, интерфейс пользователя может представлять собой графическую среду разработки, которая позволяет пользователю выбирать графические элементы, представляющие различные программные функции или объекты данных, и компоновать эти элементы в программу конечного пользователя.
Следует заметить, что программа 140 конечного пользователя может быть единичным заданием или группой заданий, подлежащих выполнению. Модуль 130 ПКП может обеспечивать интерфейс к функциям, включенным в вычислительную систему, которыми можно оперировать вручную или автоматически, или ранее доступным только другим программным компонентам, например, но без ограничения, операционной системе, служебному компоненту, приложению или другому вычислительному компоненту. Конечный пользователь может использовать интерфейс модуля 130 ПКП для построения вычислительного компонента, который использует эти функции вычислительной системы для выполнения разнообразных вычислительных заданий.
Один конкретный пример включает в себя организацию электронной почты и файлов. Конечный пользователь может задавать действие, которое должно производиться по приеме сообщения электронной почты, имеющего вложенный файл. Например, конечный пользователь может указывать, что при получении сообщения электронной почты из определенного домена (или пользователя в этом домене), которое включает в себя файловое вложение, вложенный файл нужно сохранить в указанной директории, проверить на вирусы, после чего открыть с использованием конкретной программы. Чтобы задать это действие, конечный пользователь может обратиться к списку конкретных функций, доступных в вычислительной системе. В этом примере используемые функции включают в себя обнаружение новых сообщений электронной почты, сохранение файлов, проверку на вирусы и открытие файла. Конечный пользователь может использовать модуль ПКП 130 для агрегирования этих функций в единую программу, заданную конечным пользователем, и указать правила, которые инициируются событиями, которые приведут к выполнению агрегированных функций. В данном случае первое событие может инициироваться получением сообщения электронной почты. Программа, заданная конечным пользователем, может обрабатывать правила для определения, поступило ли сообщение электронной почты от заранее указанного отправителя, и, если да, то включает ли в себя сообщение электронной почты файловое вложение. При выполнении обоих условий правила модуль, заданный пользователем, может сохранить вложенный файл в заранее определенной директории. Затем модуль, заданный конечным пользователем, может активировать антивирусную программу для обнаружения вирусов в сохраненном файле. Если проверка показывает, что сохраненный файл не содержит вирусов, то модуль, заданный пользователем, может запустить приложение, например текстовый редактор, программу редактирования фотографий или другое подходящее приложение, и предписать открытому приложению открыть сохраненный файл. Все эти этапы могут осуществляться автоматически без вмешательства конечного пользователя.
Обработка правил, описанная в вышеприведенном примере, может осуществляться с использованием платформы 150 правил, которая дает возможность конечному пользователю задавать условия или сценарии, которые переключаются на определенные задания обработки. Платформа 150 правил может включать в себя логику, которая позволяет конечному пользователю задавать одно или несколько действий, которые могут осуществляться автоматически или по команде конечного пользователя. Эти правила могут быть присоединены к или объединены с программами или агентами, которые могут выполняться с использованием элементов интерфейса пользователя, например, путем щелканья (или щелканья правой кнопкой и т.д.) по кнопкам, ссылкам, меню или другим элементам интерфейса. Дополнительно или альтернативно иконки для модулей, заданных конечным пользователем, или даже автономных приложений, заданных конечным пользователем, можно создавать и запускать путем двойного щелканья по иконке или иной активации выполнимого кода, связанного с иконкой. Такие действия можно добавлять к уже существующим компонентам, которые имеют действия или функции, спроектированные разработчиком, или можно создавать как автономные компоненты, созданные конечным пользователем. Платформа правил может использовать отражение связей и элементов, установленных системой или приложением, для создания и выполнения компонентов, заданных конечным пользователем. В этом контексте и везде, где необходимо или имеет смысл, под связями можно понимать ссылки или отображения между представлением функции или объекта данных, например графическим элементом в интерфейсе пользователя, который представляет функцию или файл, и кодом более низкого уровня, который фактически осуществляет функцию при своем выполнении или содержит объект данных.
На фиг.2 показана системная блок-схема модуля 200 программирования конечного пользователя. Модуль программирования конечного пользователя может использоваться как часть всего интерфейса пользователя, которая позволяет конечному пользователю задавать и создавать компонент программы, заданной конечным пользователем. В частности, модуль 200 программирования конечного пользователя может использоваться как модуль 130 программирования конечного пользователя, показанный на фиг.1. Конечный пользователь может обращаться к модулю 200 программирования конечного пользователя для отыскания функций или объектов данных, которые доступны для использования, и для компоновки этих функций или объектов данных в программы конечного пользователя.
Модуль 200 программирования конечного пользователя включает в себя модуль 210 кода. Модуль 210 кода может обращаться к хранилищу 220 данных кода. Хранилище 220 данных кода включает в себя программный код более низкого уровня, включающий в себя функции и объекты данных, которые доступны для использования, как часть компонента действия, заданного конечным пользователем. Следует заметить, что в некоторых реализациях, например в реализации, где используется отражение связей, методы, обеспечиваемые схемой отражения, можно использовать для динамического отыскания доступного кода альтернативно или дополнительно к поддержанию набора описателей в хранилище 220 данных кода.
Модуль 210 кода может обеспечивать описание сущности каждого доступного фрагмента кода или объекта данных, например любого кода в хранилище 220 данных кода, в формате, считываемом человеком. Дополнительно или альтернативно модуль 210 кода может выдавать машинно-считываемые описатели или идентификаторы кода в хранилище 220 данных кода на модуль 230 отображения. Модуль 230 отображения может отображать или связывать код из хранилища 220 данных кода с одним или несколькими действиями конечного пользователя. Таким образом, надлежащий вычислительный компонент, который обеспечивает некоторые функциональные возможности, можно согласовать с описанием действия, которое должно производиться по желанию конечного пользователя.
Модуль 240 действия конечного пользователя может обращаться к действию конечного пользователя, которое может быть описано, задано или указано конечным пользователем, и может обеспечивать надлежащий описатель для этого действия конечного пользователя в форме, которую модуль 230 отображения может использовать для согласования или связывания действия конечного пользователя с кодом, обеспечиваемым модулем 210 кода. Например, кодовый описатель может быть связан с действием конечного пользователя, которое хранится в хранилище данных 250 действия конечного пользователя. Это действие конечного пользователя может представлять собой, например, команду «сохранить файл Х в директории Y» или какое-либо другое подходящее действие. Соответствующий описатель кода в хранилище 220 данных кода может быть согласован с действием конечного пользователя модулем 230 отображения для отображения действия конечного пользователя на некоторый фрагмент кода. Одно или несколько таких согласованных действий конечного пользователя и фрагментов кода можно использовать как часть модуля 260 действия, заданного конечным пользователем, или готовой программы конечного пользователя.
Рассмотрим возможный пример одного режима работы модуля 200 программирования конечного пользователя. Пользователь может обратиться к модулю 200 программирования конечного пользователя через интерфейс пользователя, например ГИП, ИКС или любой другой подходящий человеко-машинный интерфейс. Конечный пользователь может использовать компоненты интерфейса пользователя для задания одного или нескольких действий конечного пользователя. Дополнительно или альтернативно пользователь может выбрать одно или несколько действий конечного пользователя из набора заранее заданных действий конечного пользователя, которые хранятся в хранилище данных 250 действия конечного пользователя.
Модуль 240 действия конечного пользователя обеспечивает или обращается к описателю, связанному с действием конечного пользователя, которое было задано или выбрано конечным пользователем. Этот описатель может обеспечивать машинно-интерпретируемое описание функциональных возможностей, нужных конечному пользователю. Модуль 240 действия конечного пользователя может выдавать этот описатель на модуль 230 отображения.
Модуль 230 отображения может выдавать описатель на модуль 210 кода. Модуль 210 кода использует описатель для поиска фрагмента кода, который имеет соответствующий описатель и который обеспечивает функцию обработки, нужную конечному пользователю. Модуль 210 кода, найдя такой фрагмент кода в хранилище 220 данных кода, выдает идентификатор найденного фрагмента кода на модуль 230 отображения. Затем модуль 230 отображения согласует или связывает действие конечного пользователя с фрагментом кода для создания модуля 260 действия, заданного пользователем.
На фиг.3 показана системная блок-схема системы 300 обработки конечного пользователя. Система 300 включает в себя модуль 310 программирования конечного пользователя, который обеспечивает доступ к системе для пользователя-человека. Модуль 310 программирования конечного пользователя связан с операционной платформой 320, которая может включать в себя аппаратные и программные компоненты. Модуль 310 программирования конечного пользователя также обращается к набору заданий 330, заданных конечным пользователем, и платформе 340 правил. Задания 330, заданные конечным пользователем, включают в себя задания к логике действия. Интерфейс 350 пользователя обеспечивает интерфейс верхнего уровня между системой 300 и конечным пользователем-человеком и включает в себя элементы управления для компонентов.
Для выполнения некоторых из описанных заданий система 300 обработки конечного пользователя может применять алгебру правил. Хотя здесь описана конкретная алгебра правил, вместо нее можно использовать вариант этой алгебры правил или совершенно другую алгебру правил. Следует также заметить, что вместо раскрытой и описанной алгебры правил можно использовать другой подходящий компонент.
Рассматриваемая алгебра правил может иметь пять основных термов: свойство, фильтр, событие, действие и набор. Свойство может описывать атрибуты типа данных конечного пользователя. Конечный пользователь может использовать свойства для описания фильтров и действий. Фильтр может задавать булеву функцию, которую можно использовать как экран обработки применительно к типам данных. Фильтр может возвращать значения «истина» или «ложь». Событие может задавать интересующее явление. События могут быть связаны с одним или несколькими типами данных. Действие - это метод побочного эффекта для типа данных, которое выполняет некоторую функцию обработки. Действие может принимать нуль или более входных параметров. Набор - это совокупность типов данных.
Свойства, фильтры и действия можно строить с помощью правил. В каждом правиле можно использовать различные условия, в том числе сравнение свойства с выражением, совпадение целевого объекта с фильтром и определение, принадлежит ли целевой объект набору. Построенные элементы, например вышеупомянутые, можно использовать как части программ конечного пользователя. Например, выведенный набор может быть законченной программой конечного пользователя или может подлежать соединению (объединению) с другим набором для создания более сложной программы конечного пользователя. Набор можно связать с действием для создания пакета. Пакет может задавать наборно-ориентированное задание, подлежащее выполнению. Пакеты можно выполнять вручную или планировать их выполнение в заранее определенное время или согласно расписанию. Из события и действия можно создать агент. Агент задает действие, подлежащее выполнению по наступлении некоторого события.
Для поддержки использования алгебры правил можно использовать файловую систему, которая может хранить объекты или типы данных способом, который непосредственно поддерживает запросы этих объектов или типов данных. Метаданные об этих объектах или типах данных могут храниться совместно с самими объектами и использоваться для поддержки запросов и действий. Для хранения этих объектов или типов данных можно использовать различные файловые системы. Файловая система может обеспечивать физическую организационную модель, основанную на свойствах элементного уровня и межэлементных отношениях. В такой файловой системе объекты или типы данных могут быть организованы динамически на основе выполнения правил, предназначенных для выбора и компоновки объектов или типов данных различными способами.
На фиг.4 показана системная блок-схема системы 400 программирования конечного пользователя, включающей в себя удаленные компоненты. Система 400 программирования конечного выбора и агрегирования объектов или типов данных различными способами.
На фиг.4 показана системная блок-схема системы 400 программирования конечного пользователя, включающей в себя удаленные компоненты. Система 400 программирования конечного пользователя может использоваться для получения уже существующих модулей программирования конечного пользователя из удаленного места. В частности, модули программирования конечного пользователя, которые можно получить, согласуются с одним или несколькими действиями, заданными пользователем, в локальной вычислительной системе.
Система 400 программирования конечного пользователя включает в себя действие 410, заданное пользователем. Действие 410, заданное пользователем, может быть описанием некоторого вычислительного задания, выполнение которого желает конечный пользователь, причем это вычислительное задание должно выполняться вручную, например по конкретной команде пользователя, чтобы можно было переключать на выполнение в ответ на некоторое событие согласно некоторому расписанию. Кроме того, действие 410, заданное пользователем, может включать в себя или быть связано с конкретным идентификатором или описателем, который позволяет другим компонентам определять, что функция или функции запрошены действием 410, заданным пользователем.
Интерфейс 420 программирования конечного пользователя может обеспечивать средство, позволяющее пользователю указывать или задавать действия, подлежащие использованию. Описания указанных или заданных действий интерфейса 420 программирования конечного пользователя.
Сервер 440 модулей может пересылать полученное описание действия 410, заданного конечным пользователем, на компонент 450 согласования. Компонент 450 согласования может использовать переданное ему описание для поиска в библиотеке 460 модулей для отыскания одного или нескольких модулей программирования конечного пользователя, которые могут обеспечивать функциональные возможности, необходимые конечному пользователю. Затем компонент согласования может посылать копии согласующихся модулей программирования конечного пользователя на сервер модулей для передачи на интерфейс 420 программирования конечного пользователя по сети 430. Дополнительно или альтернативно сервер 440 модулей может выдавать список доступных модулей программирования конечного пользователя на интерфейс 420 программирования конечного пользователя и ожидать команду на передачу одного из модулей программирования конечного пользователя в списке. Специалистам в данной области очевидно, что сервер 440 модулей может быть реализован, помимо прочего, как веб-сервер или сервер протокола передачи файлов (FTP). Дополнительно или альтернативно поиски и загрузки модулей могут быть обеспечены как веб-услуги.
Различные компоненты, раскрытые и описанные здесь, например, в связи с задачами идентификации или согласования, могут применять различные схемы на основе искусственного интеллекта для выполнения различных их аспектов. Например, согласование действия, заданного конечным пользователем, с модулем программирования конечного пользователя, может осуществляться посредством нейронной сети, экспертной системы, компонента обработки на основе правил или машины поддержки векторов (SVM).
Классификатор - это функция, которая отображает входной вектор атрибутов X = (x1, x2, x3, x4, …, xn) в уверенность, что вход принадлежит классу, т.е. f(X) = уверенность (класс). Такая классификация может применять вероятностный или статистический анализ (например, разложение на полезности и стоимости анализа) для прогнозирования или вывода действия, которое, по желанию пользователя, должно осуществляться автоматически. В случае модуля программирования конечного пользователя шаблоны событий можно классифицировать для определения, следует ли выполнять одно или несколько из указанных действий. Специалистам в данной области по прочтении этого раскрытия станет очевидно, что можно также использовать другие задачи согласования шаблонов.
SVM является примером классификатора, который можно применять. Действие SVM заключается в отыскании гиперповерхности в пространстве возможных входов, каковая гиперповерхность пытается отделить запускающие критерии от незапускающих событий. Интуитивно ясно, что это делает классификацию правильной для тестирующих данных, которые близки, но не идентичны обучающим данным. Можно применять другие подходы классификации направленной и ненаправленной модели, включающие в себя, например, наивный (критерий) Байеса, байесовы сети, деревья принятия решения и вероятностные классификационные модели, обеспечивающие различные шаблоны независимости. Используемая здесь классификация также включает в себя статистическую регрессию, которая используется для разработки моделей приоритета.
Из описания изобретения следует, что раскрытые и описанные здесь компоненты могут использовать классификаторы, которые обучены в явном виде (например, посредством общих обучающих данных), а также обучены в неявном виде (например, путем наблюдения за поведением пользователя, приема внешней информации). Например, SVM настраиваются на фазе обучения в конструкторе классификаторов и модуле выбора признаков. Таким образом, классификатор(ы) можно использовать для автоматического осуществления ряда функций, включая, но без ограничения определение, должно ли устройство передавать данные.
Следует понимать, что описанные компоненты и способы обеспечивают общие конструкции для программирования конечного пользователя. Примером использования таких компонентов и способов программирования конечного пользователя является создание автоматизированных заданий, заданных конечным пользователем. Также возможна способность совершать аналогичные типы изменений в пакетном режиме применительно к большому количеству файлов, например, путем изменения разрешения каждого из группы файлов изображения. Кроме того, благодаря объединению более сложных модулей, например агрегированных модулей, которые выполняют множественные задания совместно с компонентами искусственного интеллекта, возможно усложненное интеллектуальное поведение.
Рассмотрим один возможный режим работы системы 400 программирования конечного пользователя. Конечный пользователь обращается к интерфейсу 420 программирования конечного пользователя и задает одно или несколько действий, которые, по желанию конечного пользователя, должны выполняться на его компьютере. Интерфейс 420 программирования конечного пользователя создает действие 410, заданное конечным пользователем, из определения, обеспеченного конечным пользователем, а также создает подходящий описатель этого действия, заданного конечным пользователем. Затем интерфейс 420 программирования конечного пользователя направляет описатель по сети 430 на сервер 440 модулей. Сервер 440 модулей направляет описатель на компонент 450 согласования. Компонент 450 согласования осуществляет поиск в библиотеке 460 модулей для отыскания модуля, который будет обеспечивать функциональные возможности, указанные пользователем. Затем компонент согласования выдает список найденных модулей на сервер 450 модулей.
Сервер 450 модулей направляет список найденных модулей по сети 430 на интерфейс 420 программирования конечного пользователя. Конечный пользователь выбирает один или более модулей из списка и направляет свои варианты выбора по сети 430 на сервер 450 модулей. Затем выбранные модули поступают по сети 430 на интерфейс 420 программирования конечного пользователя и устанавливаются на машине конечного пользователя.
На фиг.5 показана системная блок-схема автоматической системы 500 программирования конечного пользователя. Автоматическая система 500 программирования конечного пользователя может использоваться для автоматического создания функциональных программных модулей, которые зависят от того, как в действительности конечный пользователь взаимодействует с компьютером при выполнении различных вычислительных заданий. В частности, автоматическая система 500 программирования конечного пользователя может отслеживать и анализировать команды и действия пользователя на компьютере, чтобы идентифицировать шаблоны обычно выполняемых заданий, которые можно автоматизировать, создав модуль программирования конечного пользователя.
Автоматическая система 500 программирования конечного пользователя включает в себя монитор 510. Монитор 510 может отслеживать действия конечного пользователя, например, в среде ГИП, щелчки мышью и конкретные действия, инициированные этими щелчками мышью. Монитор 510 работает на операционной платформе 520 и взаимодействует с нею. Специалистам в данной области очевидно, что определенные действия конечного пользователя, осуществляемые в среде интерфейса, например ГИП, инициируют действия, которые фактически осуществляет операционная среда, например операционная платформа 520. Помимо способности отслеживать операции и действия конечного пользователя, монитор 510 может отслеживать действия, выполняемые операционной платформой 520 от имени или по команде конечного пользователя.
Монитор 510 может хранить обнаруженные действия в хранилище 530 данных действия. Хранилище 530 данных действия может представлять собой совокупность объектов действия, список действий конечного пользователя или иметь иную подходящую форму, которая позволяет хранить сведения о том, как конечный пользователь взаимодействовал с компьютером. Монитор может анализировать эти действия конечного пользователя, чтобы постараться определить, возникает ли или возник ли шаблон действий. Например, конечный пользователь может работать с большим пакетом фотографий, открывая каждый отдельный файл изображения в программе редактирования фотографий и вставляя в файл изображения уведомление об авторском праве. Монитор 510 может определить, что конечный пользователь повторяет это задание, и послать информацию о повторяющемся задании на модуль 540 программирования конечного пользователя.
Модуль 540 программирования конечного пользователя может использовать эту информацию о повторяющемся задании (или последовательности заданий) для создания действия, заданного конечным пользователем, и поиска функций в хранилище 550 данных функций, которые можно использовать для выполнения задания. Найденные функции можно использовать для создания программы конечного пользователя, которая будет автоматически выполнять задания, идентифицированные монитором 510. Возможно, что эти действия вплоть до включающих в себя создание программы конечного пользователя могут осуществляться как фоновые вычислительные задания без взаимодействия с конечным пользователем. Когда программа конечного пользователя создана, система может предложить конечному пользователю определить, хочет ли конечный пользователь, чтобы компьютер автоматически завершил выполняемые задания. В приведенном выше примере уведомления об авторском праве система может спросить конечного пользователя, должен ли компьютер автоматически вставить уведомления об авторском праве в остальные файлы рабочей директории.
На фиг.6 показана системная блок-схема безопасной системы 600 программирования конечного пользователя. Безопасная система 600 программирования конечного пользователя может использоваться для обеспечения контролируемого доступа к модулю программирования конечного пользователя. Дополнительно программы конечного пользователя, созданные системой 600 программирования конечного пользователя, можно проверять, чтобы гарантировать, что такие программы не выполняются с инкапсулированными привилегиями.
Безопасная система 600 программирования конечного пользователя включает в себя модуль 610 программирования конечного пользователя. Модуль 610 программирования конечного пользователя может осуществлять все функции, раскрытые и описанные ранее, в сочетании с другими компонентами программирования конечного пользователя, указанными на других чертежах. Модуль 620 аутентификации пользователя может контролировать доступ к модулю 610 программирования конечного пользователя, чтобы разрешать доступ только уполномоченным конечным пользователям.
Для реализации модуля 620 аутентификации пользователя можно использовать различные механизмы и подходы. Модуль 620 аутентификации пользователя может принимать самые разные формы в зависимости от потребностей или инженерных решений конкретной реализации. В частности, модуль 620 аутентификации пользователя может использовать схему безопасности, которая действует согласно одной или нескольким парадигмам безопасности «кто Вы такой», «что Вы знаете» или «что Вы имеете».
Компоненты, которые можно использовать в реализациях, основанных на парадигме безопасности «кто Вы такой», включают в себя различные биометрические устройства, например сканеры отпечатков пальцев и сканеры радужной оболочки. Для реализаций, использующих парадигму «что Вы знаете», можно использовать систему аутентификации по имени пользователя и паролю. В категории реализаций, основанных на «что Вы имеете», - это системы, которые используют жетоны безопасности и детекторы близости, например системы ярлыков радиочастотной идентификации (RFID). В зависимости от нужного уровня безопасности одну или несколько вышеописанных систем можно встроить в модуль 620 аутентификации пользователя.
Модуль аутентификации пользователя 620 может выступать в роли «привратника» для модуля 610 программирования конечного пользователя. Чтобы пользователь имел возможность обращаться к модулю 610 программирования конечного пользователя и использовать его, конечный пользователь должен удостовериться в его полномочиях на использование системы с помощью соответствующих ответов на запросы безопасности, выданные модулем 620 аутентификации пользователя. Согласно конкретной реализации, такие ответы можно обеспечивать через указанный интерфейс пользователя или через другое подходящее средство.
Модуль 630 аутентификации привилегии может отслеживать выполнение программных моделей 640, созданных конечным пользователем. В частности, модуль 630 аутентификации привилегии может проверять, пытаются ли модели 640, созданные конечным пользователем, в ходе выполнения обращаться к компонентам или выполнять задания, зарезервированные для других процессов или не разрешенные по другой причине. Например, модуль, созданный конечным пользователем, например, один из модулей 640, созданных конечным пользователем, может пытаться в ходе своего выполнения изменить набор файлов, которые принадлежат другому конечному пользователю. Модуль 630 аутентификации привилегии может проверять, имеет ли конечный пользователь, запускающий модуль, созданный конечным пользователем, достаточные права доступа в вычислительной системе для доступа к файлам другого конечного пользователя. Если нет, то модуль 630 аутентификации привилегии может прерывать или останавливать выполнение модуля, созданного конечным пользователем. Кроме того, модуль 630 аутентификации привилегии может выполнять различные связанные задания, например регистрацию событий, например предполагаемых атак инкапсуляции привилегии, и выдачу предупреждений конечным пользователям.
На фиг.7-12 показаны логические блок-схемы различных способов и процедур. Хотя для простоты объяснения одна или несколько методологий, показанных здесь, например, в виде логических блок-схем показаны и описаны как последовательность действий, понятно, что ни проиллюстрированные и описанные способы и процедуры, ни какие-либо компоненты, с которыми могут использоваться такие способы или процедуры, не обязаны ограничиваться порядком действий, поскольку некоторые действия могут осуществляться в другом порядке и/или одновременно с другими действиями, в отличие от того, что показано и описано здесь. Например, специалистам в данной области очевидно, что методологию можно альтернативно представить в виде последовательности взаимосвязанных состояний или событий, например, с помощью диаграммы состояний. Кроме того, не все проиллюстрированные действия могут потребоваться для реализации методологии или процедуры.
На фиг.7 показана логическая блок-схема общей последовательности обработки 700, которую можно использовать с различными компонентами, раскрытыми и описанными выше в связи с другими чертежами. Общая последовательность обработки 700 представлена с точки зрения конечного пользователя и может использоваться для создания программных модулей, заданных конечным пользователем, которые могут дополнять уже существующие вычислительные функциональные возможности. Возможны и другие варианты использования.
Обработка общей последовательности обработки 700 начинается с блока 710 начала и переходит к блоку 720 процесса, где конечный пользователь обращается к интерфейсу программирования конечного пользователя. Интерфейс программирования конечного пользователя может представлять собой один из интерфейсов или модулей программирования конечного пользователя, раскрытых или описанных выше в связи с другими фигурами. На блоке 730 процесса конечный пользователь задает набор действий, подлежащих выполнению. Конечный пользователь может создавать эти действия из рабочей памяти или выбирать их из списка доступных действий, поддерживаемых вычислительной системой в ходе работы.
На блоке 740 процесса идентифицируются один или несколько компонентов, которые обеспечивают нужные функциональные возможности. Эти компоненты могут представлять собой автономные программы, фоновые процессы, признаки программ, сценарии или некоторый подходящий выполняемый компонент. На блоке 750 процесса создается объединенная программа конечного пользователя. На блоке 760 процесса обновляется база правил. Обработка завершается на блоке 770 окончания.
На фиг.8 показана логическая блок-схема общей последовательности обработки 800, которую можно использовать с различными компонентами, раскрытыми и описанными выше в связи с другими фигурами. Общая последовательность обработки 800 представлена с точки зрения системы программирования конечного пользователя и может использоваться для создания программных модулей, заданных конечным пользователем, имеющих множественные компоненты. Возможны и другие варианты использования.
Обработка общей последовательности обработки 800 начинается с блока 810 начала и переходит к блоку 820 процесса. На блоке процесса 820 получают набор действий, заданных конечным пользователем. Этот набор может включать в себя множественные действия, сгруппированные конечным пользователем, и может быть упорядочен некоторым нужным образом. На блоке 830 процесса выбирают действие из набора действий, заданных конечным пользователем. Обработка переходит к блоку процесса 840, где идентифицируют функцию, которая может выполнять вычислительное задание, описанное действием, заданным конечным пользователем. Такая идентификация может производиться на основе заранее заданной связи или согласования между доступными действиями и функциями с использованием описательного кода или согласно какому-либо другому подходящему подходу.
На блоке 850 процесса выбранное действие отображают на идентифицируемую функцию. На блоке 860 принятия решения определяют, остаются ли в наборе, полученном на блоке 820 процесса, какие-либо действия, заданные конечным пользователем. Если нет, то обработка переходит к блоку 870 процесса, где из отображенной(ых) функции(й) строят программный модуль конечного пользователя. Если да, то обработка возвращается к блоку 830 процесса, где из набора выбирают следующее действие, заданное конечным пользователем. После блока 870 процесса обработка заканчивается на блоке 880 окончания.
На фиг.9 показана логическая блок-схема общей последовательности обработки 900, которую можно использовать с различными компонентами, раскрытыми и описанными выше в связи с другими фигурами. Общая последовательность обработки 900 может использоваться для поиска и получения ранее созданных программных модулей, заданных конечным пользователем, которые обеспечивают функциональные возможности, необходимые пользователю. Возможны и другие варианты использования этой общей последовательности обработки.
Обработка общей последовательности обработки 900 начинается на блоке 910 начала и переходит к блоку 920 процесса, где получают описатель программного модуля конечного пользователя. Этот описатель может представлять собой код, который описывает функциональные возможности нужного программного модуля конечного пользователя, может быть заранее заданным именем или может быть описателем какого-либо другого типа. Обработка переходит к блоку 930 процесса, сервер запрашивают с использованием описателя. На блоке 940 процесса описатель согласуют с уже существующим программным модулем. Это согласование не обязано быть полным совпадением, но может быть наилучшим приближением или хорошим приближением нужного модуля. Даже хорошие приближения могут быть полезны, поскольку такие приближения могут сократить время разработки пользователя за счет обеспечения структуры, которую можно модифицировать для создания точного нужного модуля вместо необходимости строить новый модуль из рабочей памяти.
На блоке 950 процесса согласующийся модуль получают от сервера. На блоке 960 процесса этот модуль устанавливается на клиенте. После установки конечный пользователь может изменить модуль по желанию или использовать как он есть. Обработка общей последовательности обработки 900 заканчивается на блоке 970 окончания.
На фиг.10 показана логическая блок-схема общей последовательности обработки 1000, которую можно использовать с различными компонентами, раскрытыми и описанными выше в связи с другими фигурами. Общая последовательность обработки 1000 может использоваться для автоматического создания программных модулей, заданных конечным пользователем, которые могут дополнять уже существующие вычислительные функциональные возможности. Возможны и другие варианты использования.
Обработка начинается с блока 1010 начала и переходит к блоку 1020 процесса, где отслеживаются действия конечного пользователя, например как конечный пользователь работает на компьютере. На блоке 1030 процесса идентифицируется шаблон операций компьютера. Обработка переходит к блоку процесса 1040, где создается приглашение получить разрешение конечного пользователя на создание программного модуля на основе отслеженных действий конечного пользователя.
На блоке 1050 принятия решения производится определение, уполномочен ли конечный пользователь создавать программный модуль конечного пользователя. Если да, то обработка переходит к блоку процесса 1060, где создается программный модуль конечного пользователя. Если нет, то обработка возвращается к блоку процесса 1020, где отслеживаются действия конечного пользователя. После блока 1060 процесса обработка завершается на блоке 1070 окончания.
На фиг.11 показана логическая блок-схема общей последовательности обработки 1100, которую можно использовать с различными компонентами, раскрытыми и описанными выше в связи с другими фигурами. Общая последовательность обработки 1100 может использоваться для ограничения доступа для использования или создания программных модулей, заданных конечным пользователем, которые могут дополнять уже существующие вычислительные функциональные возможности, только конечными пользователями, которые ранее получили полномочия для этого. Возможны и другие варианты использования.
Обработка начинается с блока 1110 начала и переходит к блоку 1120 процесса. На блоке 1120 процесса осуществляется доступ к программному модулю конечного пользователя. Обработка переходит к блоку 1130 принятия решения, где производится определение, уполномочен ли конечный пользователь, обращающийся к программному модулю конечного пользователя, делать это. Если да, то обработка переходит к блоку 1140 процесса, где конечный пользователь строит программный модуль.
Обработка переходит от блока 1140 процесса к блоку 1150 процесса, где созданный программный модуль конечного пользователя выполняется. На блоке 1160 принятия решения производится определение, могут ли функции, подлежащие осуществлению программным модулем конечного пользователя, правильно осуществляться конечным пользователем, вызывающим выполнение модуля. Если да, то выполнению программного модуля конечного пользователя разрешается перейти к блоку 1170 процесса. Затем обработка завершается на блоке 1180 окончания. Аналогично, если на блоке 1130 или 1160 принятия решения принимается отрицательное решение, то обработка завершается на блоке 1180 окончания.
На фиг.12 показана логическая блок-схема общей последовательности обработки 1200, которой может придерживаться программа конечного пользователя, созданная с использованием компонентов или способов, раскрытых или описанных здесь. Обработка общей последовательности обработки 1200 начинается с блока 1210 начала и переходит к блоку 1220 процесса, где происходит запускающее событие, например поступление сообщения электронной почты. На блоке 1230 процесса системное уведомление, указывающее наступление запускающего события, передается программе конечного пользователя. Программа конечного пользователя использует системное уведомление, чтобы начать обработку на блоке 1240 процесса.
Обработка переходит к блоку 1250 процесса, где программа конечного пользователя применяет правила или логику, включенные(ую) в программу конечного пользователя. На блоке 1260 процесса программа конечного пользователя завершает свои задания обработки в соответствии с полученным системным уведомлением и своими правилами или логикой. На блоке 1270 принятия решения производится определение, успешно ли программа конечного пользователя выполнила свои задания. Если нет, то обработка переходит к блоку 1280 процесса, где генерируется сообщение ошибки, и конечный пользователь извещается об ошибке. После блока 1280 процесса обработка завершается на блоке 1290 окончания. Аналогично, если определение, произведенное на блоке 1270 принятия решения, дает положительный результат, то обработка завершается на блоке 1290 окончания.
Для обеспечения дополнительного контекста реализации фиг.13-14 и нижеследующее описание призваны обеспечить краткое общее описание подходящей вычислительной среды, в которой могут быть реализованы раскрытые и описанные компоненты и способы. Хотя различные конкретные реализации были описаны в общем контексте компьютерно-выполняемых команд компьютерной программы, которая выполняется на локальном компьютере и/или удаленном компьютере, специалистам в данной области очевидно, что возможны и другие реализации либо отдельные, либо в сочетании с другими программными модулями. В общем случае программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.д., которые выполняют определенные задачи или реализуют определенные абстрактные типы данных.
Кроме того, специалистам в данной области очевидно, что вышеописанные компоненты и способы можно использовать на практике в других конфигурациях компьютерной системы, включая однопроцессорные или многопроцессорные компьютерные системы, миникомпьютеры, универсальные компьютеры, карманные вычислительные устройства, микропроцессорную и/или программируемую бытовую электронику и т.п., каждая из которых может оперативно поддерживать связь с одним или более сопряженных устройств. Определенные проиллюстрированные аспекты раскрытых и описанных компонентов и способов можно также применять на практике в распределенных вычислительных средах, где определенные задания выполняются удаленными устройствами обработки, связанными друг с другом посредством сети связи или другого соединения для передачи данных. Однако некоторые, если не все, из этих аспектов можно применять на практике на автономных компьютерах. В распределенной вычислительной среде программные модули размещаются на локальных и/или на удаленных запоминающих устройствах.
Согласно фиг.13, иллюстративная среда 1300 для реализации различных аспектов изобретения включает в себя компьютер 1312. Компьютер 1312 включает в себя процессор 1314, системную память 1316 и системную шину 1318. Системная шина 1318 подключает компоненты системы, в том числе, но без ограничения, системную память 1316 к процессору 1314. Процессор 1314 может представлять собой любой доступный процессор. В качестве процессора 1314 можно также использовать двухпроцессорные и другие многопроцессорные архитектуры.
Системная шина 1318 может относиться к любому из нескольких типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину или внешнюю шину и/или локальную шину с использованием различных шинных архитектур, включая, но без ограничения, «архитектуру промышленного стандарта» (ISA), «микроканальную архитектуру» (MCA), расширенную ISA (EISA), локальную шину VESA (VLB) и «взаимосоединение периферийных компонентов» (PCI), «шину карты», универсальную последовательную шину (USB), усовершенствованный графический порт (AGP), шину Международной ассоциации производителей карт памяти для персональных компьютеров (PCMCIA), Firewire (IEEE 1394) и «интерфейс малых компьютерных систем» (SCSI).
Системная память 1316 включает в себя энергозависимую память 1320 и энергонезависимую память 1322. Базовая система ввода/вывода (BIOS), содержащая основные процедуры, которые помогают переносить информацию между элементами компьютера 1312, например при запуске, обычно хранятся в энергонезависимой памяти 1322. В порядке примера, но не ограничения, энергонезависимая память 1322 может включать в себя постоянную память (ПЗУ), программируемое ПЗУ (ППЗУ), электрически программируемое ПЗУ (СППЗУ), электрически стираемое ПЗУ (ЭСППЗУ) или флэш-память. Энергозависимая память 1220 включает в себя оперативную память (ОЗУ), которая действует как внешняя кэш-память. В порядке иллюстрации, но не ограничения, ОЗУ доступно во многих формах, например синхронное ОЗУ (SRAM), динамическое ОЗУ (DRAM), синхронное DRAM (SDRAM), SDRAM с удвоенной скоростью передачи данных (DDR SDRAM), расширенное SDRAM (ESDRAM), Synchlink DRAM (SLDRAM) и прямая Rambus RAM (DRRAM).
Компьютер 1312 также включает в себя сменные/стационарные, энергозависимые/энергонезависимые компьютерные носители данных. Например, на фиг.13 показано дисковое запоминающее устройство 1324. Дисковое запоминающее устройство 1324 включает в себя, но без ограничения, такие устройства, как привод магнитного диска, привод флоппи-диска, лентопротяжный механизм, привод диска Jaz, привод диска Zip, привод LS-100, карту флэш-памяти или линейку памяти. Кроме того, дисковое запоминающее устройство 1324 может включать в себя носители данных отдельно или в сочетании с другими носителями данных, включая, но без ограничения, привод оптического диска, например устройство компакт-диска только для чтения (CD-ROM), привод КД однократной записи (CD-R), привод КД многократной записи (CD-RW) или привод цифрового универсального диска только для чтения (DVD-ROM). Для облегчения соединения дисковых запоминающих устройств 1324 с системной шиной 1318 обычно используется интерфейс привода стационарного носителя, например интерфейс 1326.
Очевидно, что на фиг.13 описано программное обеспечение, которое выступает в качестве посредника между пользователями и основными ресурсами компьютера, описанными в подходящей операционной среде 1300. Такое программное обеспечение включает в себя операционную систему 1328. Операционная система 1328, которая может храниться в дисковом запоминающем устройстве 1324, действует для контроля и выделения ресурсов компьютерной системы 1312. Системные приложения 1330 пользуются управлением ресурсами, осуществляемым операционной системой 1328, посредством программных модулей 1332 и программных данных 1334, хранящихся либо в системной памяти 1316, либо в дисковом запоминающем устройстве 1324. Очевидно, настоящее изобретение можно реализовать с различными операционными системами или комбинациями операционных систем.
Пользователь вводит команды или информацию в компьютер 1312 через устройство(а) ввода 1336. Устройства ввода 1336 включают в себя, но без ограничения, указательное устройство, например мышь, шаровой манипулятор, перо, сенсорную панель, клавиатуру, микрофон, джойстик, игровую панель, спутниковую антенну, сканер, карту ТВ-тюнера, цифровой фотоаппарат, цифровую видеокамеру, веб-камеру и т.п. Эти и другие устройства ввода подключены к процессору 1314 через интерфейсный(е) порт(ы) 1338. Интерфейсный(е) порт(ы) 1338 включают в себя, например, последовательный порт, параллельный порт, игровой порт и универсальную последовательную шину (USB). Устройство(а) вывода 1340 используют некоторые из тех же типов портов, что и устройство(а) ввода 1336. Так, например, порт USB можно использовать для обеспечения ввода в компьютер 1312 и для вывода информации из компьютера 1312 на устройство вывода 1340. Выходной адаптер 1342 показан, чтобы проиллюстрировать, что существуют некоторые устройства вывода 1340, например мониторы, громкоговорители и принтеры среди других устройств вывода 1340, которым необходимы специальные адаптеры. Выходные адаптеры 1342 включают в себя в порядке иллюстрации, но не ограничения видео- и звуковые карты, которые обеспечивают средства соединения между устройством вывода 1340 и системной шиной 1318. Следует заметить, что другие устройства и/или системы устройств обеспечивают возможности ввода и вывода, например удаленный(е) компьютер(ы) 1344.
Компьютер 1312 работает в сетевой среде с использованием логических соединений с одним или несколькими удаленными компьютерами, например удаленным(и) компьютером(ами) 1344. Удаленный(е) компьютер(ы) 1344 может/могут представлять собой персональный компьютер, карманное устройство, сервер, маршрутизатор, сетевой ПК, равноправное устройство или другой общий сетевой узел и обычно включает в себя многие или все элементы, описанные выше, применительно к компьютеру 1312. Для краткости на удаленном(ых) компьютере(ах) 1344 показано только запоминающее устройство 1346. Удаленный(е) компьютер(ы) 1344 логически соединены с компьютером 1312 через сетевой интерфейс 1348 и физически соединены через соединение 1350 связи. Сетевой интерфейс 1348 включает в себя проводные и/или беспроводные сети связи, например локальные сети (ЛС) и глобальные сети (ГС). Технологии ЛС включают в себя распределенный интерфейс передачи данных по волоконно-оптическим каналам (FDDI), распределенный проводной интерфейс передачи данных (CDDI), Ethernet, Token Ring и т.д. Технологии ГС включают в себя, но без ограничения, каналы двухточечной связи, сети с коммутацией каналов, например цифровые сети интегрированных услуг (ISDN) и их варианты, сети с коммутацией пакетов и цифровые абонентские линии (DSL).
Соединение(я) 1350 связи представляют собой оборудование/программное обеспечение, используемое для подключения сетевого интерфейса 1348 к шине 1318. Хотя соединение 1350 связи показано в иллюстративных целях внутри компьютера 1312, оно также может быть внешним по отношению к компьютеру 1312. Оборудование/программное обеспечение, необходимое для подключения к сетевому интерфейсу 1248, включает в себя, исключительно в иллюстративных целях, внутренние и внешние технологии, например модемы, включая обычные телефонные модемы, кабельные модемы и модемы DSL, адаптеры ISDN и карты Ethernet.
На фиг.14 показана схематическая блок-схема иллюстративной вычислительной среды 1400, в которой можно использовать раскрытые и описанные компоненты и способы. Система 1400 включает в себя один или несколько клиент(ов) 1410. Клиент(ы) 1410 могут быть аппаратными и/или программными (например, потоки, процессы, вычислительные устройства). Система 1400 также включает в себя один или несколько сервер(ов) 1420. Сервер(ы) 1420 могут быть аппаратными и/или программными (например, потоки, процессы, вычислительные устройства). Сервер(ы) 1420 могут содержать потоки или процессы для осуществления преобразований, например, с использованием раскрытых и описанных здесь компонентов или способов.
Одно возможное средство связи между клиентом 1410 и сервером 1420 может иметь вид пакета данных, приспособленного для передачи между двумя или более компьютерными процессами. Система 1400 включает в себя структуру 1440 связи, которую можно использовать для облегчения связи между клиентом(ами) 1410 и сервером(ами) 1420. Клиенты 1410 оперативно подключены к одному или нескольким клиентским хранилищам данных 1450, которые можно использовать для хранения информации локально по отношению к клиентам 1410. Аналогично серверы 1420 оперативно подключены к одному или нескольким серверным хранилищам данных 1430, которые можно использовать для хранения информации локально по отношению к серверам 1420.
То, что было описано выше, включает в себя примеры настоящего изобретения. Конечно, невозможно описать каждую удобную комбинацию компонентов или методологий в целях описания настоящего изобретения, но специалисту в данной области очевидны различные комбинации и перестановки настоящего изобретения. Соответственно, настоящее изобретение призвано охватывать все такие изменения, модификации и вариации, отвечающие сущности и объему прилагаемой формулы изобретения.
В частности, и в связи с различными функциями, осуществляемыми вышеописанными компонентами, устройствами, схемами, системами и т.п., термины (включая ссылку на «средство»), используемые для описания таких компонентов, призваны соответствовать, если не указано обратное, любому компоненту, который осуществляет указанную функцию описанного компонента (например, функционального эквивалента), даже не структурно эквивалентному раскрытой структуре, которая осуществляет функцию в проиллюстрированных здесь иллюстративных аспектах изобретения. В этой связи также очевидно, что изобретение включает в себя систему, а также компьютерно-считываемый носитель, имеющий компьютерно-выполняемые команды для осуществления действий и/или событий различных способов изобретения.
Кроме того, хотя конкретный признак изобретения может быть раскрыт в отношении только одной из нескольких реализаций, такой признак можно комбинировать с одним или несколькими другими признаками других реализаций, что может быть желательно и преимущественно для данного или конкретного применения. Кроме того, в той степени, в какой термины “включает в себя” и «включающий в себя» и их варианты используются в подробном описании или в формуле изобретения, эти термины следует считать включительными наподобие термина «содержащий».
название | год | авторы | номер документа |
---|---|---|---|
СИСТЕМА И СПОСОБ ПРОЕЦИРОВАНИЯ ДАННЫХ ОТ ОДНОГО КО МНОГИМ | 2004 |
|
RU2412478C2 |
АВТОМАТИЗИРОВАННАЯ ОРГАНИЗАЦИЯ ДАННЫХ | 2006 |
|
RU2405193C2 |
СПОСОБ И СИСТЕМА ДЛЯ ВОПЛОЩЕНИЯ ПОЛИТИКИ БЕЗОПАСНОСТИ С ПОМОЩЬЮ ВИРТУАЛЬНОЙ МАШИНЫ БЕЗОПАСНОСТИ | 2005 |
|
RU2390837C2 |
КОНЕЧНЫЙ АВТОМАТ УНИФИЦИРОВАННОГО ОБМЕНА СООБЩЕНИЯМИ | 2008 |
|
RU2470364C2 |
БЕЗОПАСНАЯ ИДЕНТИФИКАЦИЯ ИСПОЛНЯЕМОГО ФАЙЛА ДЛЯ ОПРЕДЕЛЯЮЩЕГО ДОВЕРИЕ ЛОГИЧЕСКОГО ОБЪЕКТА | 2004 |
|
RU2357287C2 |
ПРОГРАММНЫЙ ИНТЕРФЕЙС ДЛЯ ЛИЦЕНЗИРОВАНИЯ | 2004 |
|
RU2377634C2 |
СПОСОБЫ РАЗВЕРТЫВАНИЯ И СВЕРТЫВАНИЯ ДЛЯ ОБЕСПЕЧЕНИЯ УПРАВЛЕНИЯ СВОЙСТВАМИ ФАЙЛОВ МЕЖДУ СИСТЕМАМИ ОБЪЕКТОВ | 2004 |
|
RU2348973C2 |
Система и способ для моделирования и расчета химико-технологических систем | 2017 |
|
RU2656687C1 |
СПОСОБ ПОВЫШЕНИЯ ЭФФЕКТИВНОСТИ РАБОТЫ АППАРАТНОГО УСКОРЕНИЯ ЭМУЛЯЦИИ ПРИЛОЖЕНИЙ | 2012 |
|
RU2514142C1 |
УКАЗАНИЕ, ЗАДАНИЕ И ОБНАРУЖЕНИЕ ПАРАМЕТРОВ ДОКУМЕНТОВ ЭЛЕКТРОННЫХ ТАБЛИЦ | 2006 |
|
RU2421797C2 |
Изобретение относится к области создания заданий обработки данных конечным пользователем. Техническим результатом является обеспечение доступа для конечного пользователя к функциям вычислительной системы и компоновки групп этих функций в соответствии с потребностями отдельных конечных пользователей. Система для создания заданий обработки данных содержит модуль программирования конечного пользователя, который позволяет конечному пользователю связывать одно или несколько действий, заданных конечным пользователем, с, по меньшей мере, одним доступным вычислительным компонентом. Система также включает в себя платформу правил, которая обеспечивает связывание одного или нескольких действий, заданных конечным пользователем, с доступным вычислительным компонентом, так что объединенная программа конечного пользователя создается с использованием доступного вычислительного компонента. Предусмотрены также способы использования системы. 3 н. и 10 з.п. ф-лы, 14 ил.
1. Система для создания заданий обработки данных, содержащая модуль программирования конечного пользователя, включающий в себя интерфейс пользователя, который позволяет конечному пользователю, посредством выбора графических элементов, представляющих доступные вычислительные компоненты, связывать одно или несколько действий, заданных конечным пользователем, с, по меньшей мере, одним доступным вычислительным компонентом, каждое из указанных действий, заданных конечным пользователем включает в себя конкретный описатель, который позволяет другим вычислительным компонентам определять, что функция запрошена действием, заданным конечным пользователем; и
платформу правил, которая обеспечивает связывание одного или нескольких действий, заданных конечным пользователем, с доступным вычислительным компонентом, при этом система выполнена с возможностью создания одной программы конечного пользователя с использованием доступного вычислительного компонента, агрегированного с указанным одним или более действиями, заданными конечным пользователем.
2. Система по п.1, дополнительно содержащая систему программирования конечного пользователя для направления конкретного описателя, соответствующего действию, заданному конечным пользователем, по сети на сервер модулей, который выполнен с возможностью направлять описатель на компонент согласования для поиска в библиотеке модулей для отыскания модуля, который будет обеспечивать функциональные возможности на основании действия, заданного конечным пользователем, для установки, как вычислительного компонента, на машине конечного пользователя.
3. Система по п.1, в которой доступным вычислительным компонентом является операционная система.
4. Система по п.1, в которой доступным вычислительным компонентом является приложение монитора.
5. Система по п.1, в которой доступным вычислительным компонентом является приложение пользователя.
6. Способ создания компонентов обработки данных в вычислительной среде, содержащий этапы, на которых
указывают одно или более действий, заданных конечным пользователем, подлежащих выполнению по наступлении события, посредством выбора графических элементов, представляющих доступные вычислительные компоненты, из интерфейса пользователя, каждое из указанных действий, заданных конечным пользователем, включает в себя конкретный описатель, который позволяет другим вычислительным компонентам определять, что функция запрошена действием, заданным конечным пользователем; и
идентифицируют первый программный компонент, который способен осуществлять действие, заданное конечным пользователем, при этом идентифицирование первого программного компонента включает в себя направление конкретного описателя, соответствующего действию, заданному конечным пользователем, по сети на сервер модулей, который направляет описатель на компонент согласования для поиска в библиотеке модулей для отыскания модуля, который будет обеспечивать функциональные возможности на основании действия, заданного конечным пользователем, для установки, как вычислительного компонента, на машине конечного пользователя; и
создают второй программный компонент, который использует первый программный компонент для осуществления действия, заданного конечным пользователем, указанный второй программный компонент, являющийся одной программой конечного пользователя, агрегирован с указанным одним или более действиями, заданными конечным пользователем.
7. Способ по п.6, дополнительно содержащий этап, на котором создают графическое средство управления в уже существующем программном компоненте, в котором графическое средство управления активирует второй программный компонент.
8. Способ по п.6, дополнительно содержащий этап, на котором создают иконку для графического интерфейса пользователя, в котором иконка активирует второй программный компонент.
9. Способ по п.6, в котором при идентификации первого программного компонента идентифицируют компонент операционной системы.
10. Способ по п.7, в котором при идентификации первого программного компонента идентифицируют компонент процесса монитора.
11. Способ по п.8, в котором при идентификации первого программного компонента идентифицируют компонент процесса демона.
12. Способ по п.6, в котором при идентификации первого программного компонента идентифицируют компонент приложения пользователя.
13. Компьютерно-считываемый носитель, содержащий машинно-интерпретируемые данные, которые могут предписывать вычислительному устройству осуществлять способы по любому из пп.6-12.
US 5751914 А, 12.05.1998 | |||
Прибор, замыкающий сигнальную цепь при повышении температуры | 1918 |
|
SU99A1 |
КОМПЬЮТЕРНОЕ УСТРОЙСТВО ДЛЯ ВЫПОЛНЕНИЯ ПРИКЛАДНЫХ ПРОГРАММ | 1997 |
|
RU2210803C2 |
Авторы
Даты
2011-05-27—Публикация
2006-01-27—Подача