RU2405190C2 - Приоритетное связывание - Google Patents

Приоритетное связывание Download PDF

Info

Publication number
RU2405190C2
RU2405190C2 RU2005107096/08A RU2005107096A RU2405190C2 RU 2405190 C2 RU2405190 C2 RU 2405190C2 RU 2005107096/08 A RU2005107096/08 A RU 2005107096/08A RU 2005107096 A RU2005107096 A RU 2005107096A RU 2405190 C2 RU2405190 C2 RU 2405190C2
Authority
RU
Russia
Prior art keywords
binding
computer
declaration
priority
user interface
Prior art date
Application number
RU2005107096/08A
Other languages
English (en)
Other versions
RU2005107096A (ru
Inventor
Дэвид Дж. ДЖЕННИ (US)
Дэвид Дж. ДЖЕННИ
Кеннет Б. КУПЕР (US)
Кеннет Б. КУПЕР
Намита ГУПТА (US)
Намита ГУПТА
Самьюэл В. БЕНТ (US)
Самьюэл В. БЕНТ
Тед А. ПИТЕРС (US)
Тед А. ПИТЕРС
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2005107096A publication Critical patent/RU2005107096A/ru
Application granted granted Critical
Publication of RU2405190C2 publication Critical patent/RU2405190C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B69/00Unpacking of articles or materials, not otherwise provided for
    • B65B69/0025Removing or cutting binding material, e.g. straps or bands
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B26HAND CUTTING TOOLS; CUTTING; SEVERING
    • B26FPERFORATING; PUNCHING; CUTTING-OUT; STAMPING-OUT; SEVERING BY MEANS OTHER THAN CUTTING
    • B26F3/00Severing by means other than cutting; Apparatus therefor
    • B26F3/06Severing by using heat
    • B26F3/08Severing by using heat with heated members
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H20/00Advancing webs
    • B65H20/02Advancing webs by friction roller
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H2301/00Handling processes for sheets or webs
    • B65H2301/40Type of handling process
    • B65H2301/44Moving, forwarding, guiding material
    • B65H2301/443Moving, forwarding, guiding material by acting on surface of handled material
    • B65H2301/4431Moving, forwarding, guiding material by acting on surface of handled material by means with operating surfaces contacting opposite faces of material
    • B65H2301/44318Moving, forwarding, guiding material by acting on surface of handled material by means with operating surfaces contacting opposite faces of material between rollers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Mechanical Engineering (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Forests & Forestry (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)
  • Bus Control (AREA)

Abstract

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

Description

ПРИОРИТЕТНОЕ СВЯЗЫВАНИЕ
ССЫЛКИ НА РОДСТВЕННЫЕ ЗАЯВКИ
Настоящая заявка на патент относится к заявке на патент MSFT-3490/307399.1, озаглавленной “Application of a data-binding mechanism to perform command binding”, подаваемой одновременно с настоящей заявкой.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к вычислительной технике и, в частности, к отображению мишени на некоторое количество элементов данных посредством технологии приоритетного связывания.
УРОВЕНЬ ТЕХНИКИ
Задача разработки интерфейса пользователя (ИП) для прикладных программ является кропотливой и времязатратной. Разработчики обычно затрачивают большое количество времени на написание кодов для передачи информации от нижележащих данных приложения к элементам или компонентам ИП и обратно. Но это не только поглощает время разработчика, это также означает, что разработчик должен быть существенным образом вовлечен в проектирование ИП. В то время как ИП становится все более визуально сложным, все большую важность приобретает тот факт, чтоб проектирование ИП ведут профессиональные проектировщики, а не разработчики приложений. Но поскольку коды все еще требуют “привязки” интерфейса к нижележащим данным, задача проектирования ИП должна быть распределена между проектировщиками и разработчиками приложений.
Было бы полезным, если бы существовал простой и гибкий путь привязки интерфейса к нижележащим данным.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Система и способ приоритетного связывания допускает декларативное определение ИП, не требуя кода, отвечающего за передачу данных. Декларативное описание отображения один-ко-многим элемента ИП в один или несколько нижележащих элементов данных в описании ИП дает возможность разработки сложного ИП без необходимости разработки сложного кода. Предоставляется список связываний и порядок приоритетов. Во время исполнения указанные связывания вычисляются. Связывание с наивысшим приоритетом, вычисление которого дает действительный результат (т.е. вычисляется успешно), исполняется, управляя передачей информации между ИП и нижележащими данными. В процессе исполнения ИП отслеживаются все возможные пути связывания данных. Если успешно вычисляется связывание, которое имеет более высокий приоритет, чем существующее связывание, существующее связывание завершается и исполняется новое связывание.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Приведенное выше краткое описание, также как и нижеследующее подробное описание иллюстративных вариантов осуществления изобретения будут более понятны при изучении совместно с прилагаемыми чертежами. Для иллюстрации настоящего изобретения приведены чертежи иллюстративных вариантов исполнения изобретения; однако изобретение не ограничивается конкретными раскрытыми способами и устройствами. На чертежах:
Фиг. 1 является блок-схемой, показывающей иллюстративную компьютерную среду, в которой могут быть реализованы аспекты настоящего изобретения;
Фиг. 2 является блок-схемой иллюстративной системы для выполнения приоритетных связываний согласно одному из вариантов осуществления настоящего изобретения;
Фиг. 3а является более подробным вариантом диаграммы по Фиг. 2 согласно одному из вариантов осуществления настоящего изобретения;
Фиг. 3b является более подробным вариантом диаграммы по Фиг. 3а согласно одному из вариантов осуществления настоящего изобретения;
На Фиг. 4а-4с показан иллюстративный интерфейс пользователя согласно одному из вариантов осуществления настоящего изобретения;
Фиг. 5 является блок-схемой последовательности операций иллюстративного способа приоритетного связывания согласно одному из вариантов осуществления настоящего изобретения;
Фиг. 6 является блок-схемой последовательности операций иллюстративного способа вычисления списка объявлений приоритетного связывания согласно одному из вариантов осуществления настоящего изобретения;
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Обзор
Для исключения необходимости при кодировании привязывать элементы компонента ИП к нижележащим данным свойство, обычно называемое “связывание данных”, позволяет проектировщикам декларативно описывать связь между нижележащими данными и ИП. При описании связи элемента или компонента ИП, такого как Текстовое Окно (Text Box), например, с элементом данных (т.е. количеством или счетчиком сотрудников), платформа может затем иметь возможность автоматического управления перемещением данных в ИП и из него. Например, связывание данных может быть вызвано выражением, таким как:
Text.TextContent=Bind(“Employees.Count”),
которое будет отображать количество сотрудников (т.е. состояние модели) в текстовое окно ИП. Двунаправленное связывание также дает возможность отражать изменения мишени в модели. Например, следующее выражение вызывает двунаправленное связывание:
CheckBox.IsChecked=Bind(“Employee.IsMarried”).
В вышеприведенном выражении изменение состояния выбора будет немедленно отражено в модели Employee в дополнение к отображению состояния модели.
Недостатком такого подхода является его жесткость. Например, один элемент ИП может быть связан с множеством элементов данных, что, например, может иметь место при отображении текста статуса или помощи в ИП. Текст статуса может показывать различные сообщения в зависимости от состояния ИП. Для демонстрации того, что выбран некий элемент списка, текст статуса может показывать информацию о выбранном элементе, если выбор не сделан, текст может показывать информацию обо всем списке в целом (например, текст может отображать количество элементов в списке).
Используя код, разработчик может описать более сложные связи между данными и ИП, чем отображение данных один-к-одному, которое выполняется при известном связывании данных, но этому подходу присущи проблемы, описанные выше, в отношении необходимости вовлечения в проектирование ИП как проектировщика, так и разработчика приложений.
Настоящее изобретение направлено на указанные и другие проблемы путем расширения отображения один-ко-многим при помощи системы и способа, которые являются более гибкими, позволяя проектировщикам описывать более сложные ИП без необходимости связывания только с одним элементом данных, но вместо этого может быть предоставлен список связываний и порядок приоритетов. В некоторых вариантах осуществления приоритет указывается при помощи порядка, в котором появляются объявления (т.е. последовательности появления объявлений в коде или разметке). В качестве альтернативы, может быть предоставлено множество объявлений связывания и указание порядка, в котором связывания должны вычисляться и/или выполняться (как, например, при помощи указателя приоритета, связанного с объявлением связывания). Когда во время исполнения создается экземпляр элемента ИП, указанные связывания вычисляются, и в случае, если существует конкретный элемент данных, идентифицированный объявлением связывания данных (т.е. объявление вычислено успешно), связывание становится активным и управляет переносом данных между ИП и нижележащими данными.
За время жизни ИП, если изменяется любое из состояний, описанное в списке элементов данных, механизм связывания данных выполняет повторное вычисление списка связываний с тем, чтобы снова найти действительное связывание с наивысшим приоритетом. Действительное связывание с наивысшим приоритетом исполняется. Предположим, что нижеследующее объявление описывает вышеприведенный пример:
StatusTextLabel.Text.Bindings.Add(“Emloyees.SelectedItem.Namе”);
StatusTextLabel.Text.Bindings.Add(“Emloyees.Count”).
Во время вычисления связывания механизм связывания данных в некоторых вариантах осуществления изобретения сначала проверяет первое связывание. Если выражение
Emloyees.SelectedItem.Name
может быть успешно вычислено, то это связывание является действительным, и механизм связывания данных делает указанные связывания активными, копируя данные в надпись текста статуса, как это необходимо. Если объявление вычислено неуспешно, либо потому что не существует данных с именем “Emloyees”, либо потому что в настоящее время в указанных данных отсутствует выбранный элемент, либо потому что SelectedItem не имеет свойства “Name”, то первое связывание не исполняется и вычисляется следующее. Если ни одно из связываний не является действительным, то ни одно связывание не исполняется и данные не копируются в ИП или из него.
Иллюстративная компьютерная среда
Фиг. 1 и нижеследующее описание предназначены для предоставления краткого общего описания подходящей компьютерной среды, в которой может быть реализовано настоящее изобретение. Хотя ниже описан компьютер общего назначения, это является только одним из примеров, и для настоящего изобретения необходим только тонкий клиент, имеющий возможность взаимодействия с сетевым сервером. Таким образом, настоящее изобретение может быть реализовано в среде сетевых служб, в которой реализовано немного или минимальное количество ресурсов клиента, например, сетевая среда, в которой клиентское устройство служит всего лишь в качестве браузера или интерфейса Всемирной Сети.
Хотя этого и не требуется, изобретение может быть реализовано при помощи интерфейса прикладных программ (API), для использования разработчиком, и/или программное обеспечение сетевого браузера, что будет описано в общем контексте исполняемых компьютером инструкций, таких как программные модули, исполняемых одним или несколькими компьютерами, такими как клиентские рабочие станции, серверы или другие устройства. В общем случае программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и им подобные, которые выполняют конкретные задачи или реализуют определенные абстрактные типы данных. Обычно функциональность программных модулей может быть скомбинирована или распределена, как это необходимо в различных вариантах осуществления. Помимо этого, специалисты в данной области техники признают, что настоящее изобретение может применяться с другими конфигурациями компьютерных систем. Другие хорошо известные компьютерные системы и/или конфигурации, которые могут подойти для использования с настоящим изобретением, включают в себя, без ограничения, персональные компьютеры (ПК), автоответчики, серверные компьютеры, носимые или портативные устройства, многопроцессорные устройства, основанные на микропроцессорах устройства, программируемую бытовую электронику, сетевые ПК, мини-компьютеры, мэйнфреймы и т.п. Изобретение также может быть реализовано в распределенных компьютерных средах, в которых задачи выполняются удаленными процессорными устройствами, соединенными по сети связи или через другую среду передачи данных. В распределенной компьютерной системе программные модули могут быть расположены на носителе данных как локального, так и удаленного компьютера, в том числе в запоминающих устройствах.
На Фиг.1 показан пример подходящей среды 100 компьютерной системы, в которой может быть реализовано настоящее изобретение. Хотя, как указывалось выше, среда 100 компьютерной системы является только одним примером подходящей компьютерной среды и не предназначена для введения каких-либо ограничений как на объем, так и на функциональность данного изобретения. Также компьютерную среду 100 не следует интерпретировать как имеющую какую-либо зависимость или требования, относящиеся к любому компоненту, приведенному в иллюстративной рабочей среде 100, или их комбинации.
Как показано на Фиг. 1, иллюстративная система для реализации настоящего изобретения включает в себя компьютерное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать в себя, без ограничения, процессорное устройство 120, системную память 130 и системную шину 121, связывающую различные компоненты системы, в том числе системную память, с процессорным устройством 120. Системная шина 121 может быть шинной структурой любого типа, включая шину памяти или контроллер памяти, периферийную шину и локальную шину с любой из многочисленных шинных архитектур. Для примера, но не с целью ограничения, такие архитектуры включают в себя шину архитектуры промышленного стандарта (ISA), шину микроканальной архитектуры (MCA), расширенную ISA (EISA) шину, локальную шину ассоциации стандартов видеоэлектроники (VESA) и шину соединений периферийных компонентов (PCI), также известную как шину Mezzanine.
Компьютер 110 обычно включает в себя ряд читаемых компьютером носителей данных. Читаемые компьютером носители данных могут быть любыми доступными носителями данных, к которым может получить доступ компьютер 110, и включают в себя как энергозависимые, так и энергонезависимые носители данных и как съемные, так и несъемные носители данных. Для примера, но не с целью ограничения, читаемые компьютером носители данных могут включать в себя компьютерные средства хранения данных и средства коммуникации. Компьютерные средства хранения данных включают в себя как энергозависимые так и энергонезависимые, и как съемные, так и несъемные средства хранения данных, реализованные с применением любого способа или технологии хранения информации, такой как читаемые компьютером инструкции, структуры данных, программные модули или другие данные. Компьютерные средства хранения данных включают в себя, без ограничения, ОЗУ, ПЗУ, EEPROM, флэш-память или другую технологию памяти, CD-ROM, универсальные цифровые диски (DVD) или другие оптические средства хранения данных, магнитные кассеты, магнитные ленты, средства хранения данных на магнитных дисках, или другие магнитные средства хранения данных, или любые другие носители данных, которые могут быть использованы для хранения необходимой информации и к которым может получить доступ компьютер 110. Средства коммуникации обычно представляют читаемые компьютером инструкции, структуры данных, программные модули или другие данные в виде модулированного сигнала данных, такого как несущая или другой транспортный механизм, и включают в себя любые средства доставки информации. Термин “модулированный сигнал данных” означает сигнал, имеющий одну или более его характеристик, установленных или изменяемых таким образом, что при этом в сигнале кодируется информация. Для примера, но не с целью ограничения, средства коммуникации включают в себя кабельные средства, такие как кабельная сеть или прямое кабельное соединение, беспроводные средства, такие как акустические, РЧ (радиочастотные), инфракрасные и другие беспроводные средства. В объем читаемых компьютером носителей данных также следует включить любую комбинацию упомянутых выше носителей.
Системная память 130 включает в себя компьютерные средства хранения данных в виде энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ПЗУ) 131 и оперативное запоминающее устройство (ОЗУ) 132. Базовая система 133 ввода/вывода (BIOS), содержащая основные подпрограммы, участвующие в передаче информации между элементами в компьютере 110, например, во время запуска, обычно хранятся в ПЗУ 131. ОЗУ 132 обычно содержит данные и/или программные модули, которые являются непосредственно доступными и/или выполняются в настоящее время процессорным устройством 120. Для примера, но не с целью ограничения, на Фиг. 1 показаны операционная система 134, прикладные программы 135, другие программные модули 136 и данные 137 программ.
Компьютер 110 также может включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные средства хранения данных. Исключительно в качестве примера на Фиг.1 показан привод 141 жесткого диска, считывающий или записывающий на несъемный, энергонезависимый магнитный носитель данных, привод 151 магнитного диска, считывающий или записывающий на съемный, энергонезависимый магнитный диск 152, и привод 155 оптического диска, считывающий и записывающий на съемный, энергонезависимый оптический диск 156, такой как CD-ROM или другой оптический носитель данных. Другие сменные/несменные, энергозависимые/энергонезависимые компьютерные средства хранения данных, которые могут применяться в иллюстративной рабочей среде, включают в себя, без ограничения, кассеты с магнитной лентой, карты флэш-памяти, универсальные цифровые диски, цифровую видеоленту, твердотельное ОЗУ, твердотельное ПЗУ и т.п. Привод 141 жесткого диска обычно связан с системной шиной 121 посредством интерфейса несъемной памяти, такого как интерфейс 140, и привод 151 магнитного диска, и привод 155 оптического диска обычно связаны с системной шиной 121 посредством интерфейса съемной памяти, такого как интерфейс 150.
Драйверы и ассоциированные с ними компьютерные средства хранения данных, обсуждаемые выше и иллюстрированные на Фиг. 1, обеспечивают в компьютере 110 хранение считываемых компьютером инструкций, структур данных, программных модулей и других данных. Например, на Фиг. 1 привод жесткого диска 141 изображен хранящим операционную систему 144, прикладные программы 145, другие программные модули 146 и данные 147 программ. Необходимо заметить, что эти компоненты могут быть либо теми же самыми, либо отличаться от операционной системы 134, прикладных программ 135, других программных модулей 136 и данных 137 программ. Операционная система 144, прикладные программы 145, другие программные модули 146 и данные 147 программ имеют в данном случае отличающиеся номера для иллюстрации того, что, по меньшей мере, они являются отдельными копиями. Пользователь может вводить команды и информацию в компьютер 110 через устройства ввода, такие как клавиатуру 162 и указывающее устройство 161, обычно называемое мышью, трекболом или сенсорным планшетом. Другие устройства ввода (не показано) могут включать в себя микрофон, джойстик, игровую панель, спутниковую тарелку, сканнер и т.п. Эти и другие устройства ввода часто соединены с процессорным устройством 120 через пользовательский интерфейс 160 ввода, связанный с системной шиной, но могут быть подсоединены через другой интерфейс или шинные структуры, такие как параллельный порт, игровой порт или универсальную последовательную шину (USB).
Монитор 191 или другое устройство отображения также подсоединены к системной шине 121 через интерфейс, такой как видеоинтерфейс 190. Графический интерфейс 182, такой как северный мост, также может быть подсоединен к системной шине 121. Северный мост является набором микросхем, осуществляющим связь с ЦПУ или главным процессорным устройством 120 и отвечающим за связь с ускоренным графическим портом (AGP). Одно или несколько графических процессорных устройств (ГПУ) 184 могут обмениваться данными с графическим интерфейсом 182. В этом отношении ГПУ 184 в общем случае включает в себя однокристальное запоминающее устройство, такое как регистровая память и набор ГПУ 184, обменивающихся данными с видеопамятью 186. Набор ГПУ 184, однако, представляет собой всего лишь один пример сопроцессора, и, таким образом, компьютер 110 может включать в себя разнообразные сопроцессорные устройства. Монитор 191 или устройство отображения другого типа также подсоединяется к системной шине 121 через интерфейс, такой как видеоинтерфейс 190, который, в свою очередь обменивается данными с видеопамятью 186. Дополнительно к монитору 191 компьютеры также могут включать в себя другие периферийные устройства вывода данных, такие как громкоговорители 197 и принтер 196, которые могут быть подсоединены через периферийный интерфейс 195 вывода.
Компьютер 110 может работать в сетевой среде, используя логические соединения с одним или более удаленными компьютерами, таким как удаленный компьютер 180. Удаленный компьютер 180 может быть персональным компьютером, сервером, маршрутизатором, сетевым ПК, одноранговым узлом сети или другим обычным узлом сети, и обычно включает в себя многие или все элементы, описанные выше в связи с компьютером 110, несмотря на то, что на Фиг. 1 изображено только запоминающее устройство 181. Изображенные на Фиг.1 логические соединения включают в себя локальную сеть (ЛС) 171 и глобальную сеть (ГС) 173, но также могут включать в себя другие сети. Такие типы сетевой среды являются обычными в офисах, промышленных компьютерных сетях, интрасетях и Интернете.
При использовании в локальной сетевой среде компьютер 110 подсоединяется к ЛС 171 через сетевой интерфейс или адаптер 170. При использовании в глобальной сетевой среде компьютер 110 обычно включает в себя модем 172 или другие средства для установления соединения через ГС 173, такую как Интернет. Модем 172, который может быть внутренним или внешним, может быть подсоединен к системной шине 121 через пользовательский интерфейс 160 ввода или другим подходящим способом. В сетевой среде программные модули, описанные в связи с компьютером 110, или часть их могут храниться в удаленном устройстве хранения данных. Для примера, но не с целью ограничения, на Фиг.1 показаны удаленные прикладные программы 185, размещенные в запоминающем устройстве 181. Очевидно, что показанные сетевые соединения являются иллюстративными и могут быть использованы другие средства организации соединения между компьютерами.
Специалисты в данной области техники признают, что компьютер 110 или любое другое клиентское устройство может быть развернуто как часть компьютерной сети. В этой связи настоящее изобретение относится к любой компьютерной системе, имеющей любое число блоков памяти или хранения данных и любое количество приложений и процессов, находящихся в любом количестве блоков или томов хранения данных. Настоящее изобретение применимо в среде с серверными компьютерами и клиентскими компьютерами, развернутыми в сетевой среде, имеющими удаленные или локальные хранилища данных. Настоящее изобретение также применимо к изолированным компьютерным устройствам, выполненным с возможностью исполнения или интерпретации языков программирования и связанной с этим функциональностью.
Система и способ для выполнения приоритетного связывания данных
На Фиг.2 показана иллюстративная система для выполнения приоритетного связывания согласно некоторым вариантам осуществления настоящего изобретения. Такая система может частично или целиком размещаться на одном или нескольких компьютерах, таких как иллюстративный компьютер 202 на Фиг. 2. Компьютер 201 может содержать компьютер, такой как изображен на Фиг. 1. Система для выполнения приоритетного связывания может содержать один или несколько из следующих элементов: компонент 208 связывания данных, источник 206 и/или мишень 203.
Источник 206 может включать в себя один или несколько объектов-источников, представленных объектами-источниками 210а, 210b и т.п. Объекты-источники 210а, 210b и т.п. могут быть связаны с одним или несколькими дочерними объектами-источниками, представленных на Фиг.2 объектом-источником 212а и т.п. В некоторых вариантах осуществления настоящего изобретения источник 206 может представлять модель. Модель в некоторых вариантах осуществления настоящего изобретения представляет собой логику нижележащего приложения, представляющую множество нижележащих состояний. Например, рассмотрим приложение, которое дает возможность пользователю просматривать файловую систему. Модель для приложения в этом случае может представлять собой файловую систему: набор папок и файлов в папках выбранной директории. С одной моделью могут быть связаны несколько вариантов просмотра. Варианты просмотра, связанные с моделью, могут быть зависимы от модели. В некоторых вариантах осуществления настоящего изобретения, однако, модель не является зависимой от варианта просмотра или просмотров. Модель может посылать извещение об изменении, если свойство одного из ее объектов изменилось или если произошло изменение состояния. Например, если в папку добавлен новый файл, может быть послано извещение об изменении.
Мишень 203 может включать в себя один или несколько объектов-мишеней, представленных на Фиг. 2 объектами-мишенями 204а, 204b и т.д. Объекты-мишени 204а, 204b и т.д. могут быть связаны с одним или несколькими дочерними объектами-мишенями (не показаны). В некоторых вариантах осуществления настоящего изобретения цель может представлять собой вариант просмотра или интерфейс пользователя. Один или несколько вариантов просмотра могут быть связаны с моделью и отображать состояние нижележащей модели. В некоторых вариантах осуществления настоящего изобретения вариант просмотра или интерфейс пользователя определены при помощи языка разметки, такого как HTML (язык разметки гипертекста), XML (расширяемый язык разметки), XAML (расширяемый язык разметки приложений) или другого подходящего языка разметки, в котором определяется вид интерфейса пользователя и определяются элементы и компоненты интерфейса пользователя. Объект-мишень может представлять собой элемент или управляющий компонент интерфейса пользователя, такой как, без ограничения, элемент меню, кнопка, текстовый управляющий компонент или окно списка. В примере файловой системы, приведенном выше, иллюстративный интерфейс пользователя может отображать список файлов в выбранной папке.
Для связывания цели с источником (например, интерфейса пользователя с нижележащей моделью) в некоторых вариантах осуществления настоящего изобретения вместо явного определения связывания при помощи кода, который поддерживает взаимодействие между интерфейсом пользователя и нижележащей моделью, используя обработчик событий, объект, представляющий компонент интерфейса пользователя, связывают с нижележащей моделью при помощи определения источника данных и пути связывания, такого как, без ограничения, путь запроса. Если любая часть запроса изменяется, объект посылает извещение об изменении, и механизм приоритетного связывания данных обнаруживает извещение об изменении и обновляет соответствующий объект (объекты). Очевидно, что субъектом запроса являются активные объекты в исполняемой программе. В некоторых вариантах осуществления настоящего изобретения упомянутый источник данных может представлять собой источник данных любого типа, такой как, без ограничения, объект, определенный URI (универсальный идентификатор ресурсов), база данных, доступ к которой осуществляют через запрос к базе данных, программная модель и т.п. Путь запроса может быть определен как объект пути, как выражение XML Xpath и т.п.
В некоторых вариантах осуществления настоящего изобретения компонент 208 связывания данных представляет собой механизм приоритетного связывания данных, который предоставляет возможность динамического связывания любого из нескольких объектов-источников (например, иллюстративных объектов-источников 210а, 210b и т.п., 212а и т.п.) с объектом-мишенью (например, иллюстративными объектами-мишенями 204а, 204b и т.п.). Механизм 208 приоритетного связывания данных может прослушивать извещения об изменениях от объектов (таких как объекты 204а, 204b и т.п., 210а, 210b и т.п., 212а и т.п.) таким образом, чтобы изменение объекта-источника автоматически отражалось связанным объектом-мишенью, и наоборот. Объект-мишень может быть ассоциирован с источником данных, который может идентифицировать модель источника, с которой связан объект-мишень. Механизм 208 приоритетного связывания данных может поддерживать свойства-пути, что дает возможность связывать определенные пути мишеней с определенными путями источников. В некоторых вариантах осуществления настоящего изобретения связывание объекта-мишени с объектом-источником может быть выполнено декларативно в языках разметки, таких как HTML (язык разметки гипертекста), XML (расширяемый язык разметки), XAML (расширяемый язык разметки приложений) или другого подходящего языка разметки. Механизм 208 связывания данных может выполнять поиск объекта-источника для источника данных объекта-мишени и выполнять соответствующее обновление, и наоборот.
В некоторых вариантах осуществления настоящего изобретения генерируют граф объектно-ориентированных объектов, в котором один, некоторые или все объекты указывают на другие объекты, формируя граф, причем каждая стрелка в графе, указывающая из одного объекта на другой, представляет свойство. Иллюстративный граф объектно-ориентированных объектов частично показан на Фиг. 3а. На Фиг. 3а и 3b представлен пример файловой системы (файлы и папки). Специалисты в данной области техники признают, что рассматриваемое изобретение не является ограниченным файлами и папками или моделью приложения обозревателя файловой системы и что также может рассматриваться любой подходящий субъект, реализованный с возможностью представления в виде источника данных и иерархии свойств, такой как, без ограничения, объекты в объектно-ориентированном языке программирования. На Фиг.3а, например, объект 324 может представлять приложение обозревателя файловой системы (модель). И объекты 323 и 312 могут представлять объекты-файлы или объекты-папки в файловой системе. Объекты 322 и 316 могут представлять соответствующие свойства-имена объектов-папок и объектов-файлов 323 и 312 соответственно. В некоторых вариантах осуществления настоящего изобретения механизм 208 приоритетного связывания данных допускает описание источника данных (такого как объект 324) и свойства-пути (такого как “CurrentFolder.Name”), представляющего путь от источника данных (объект 324) к объекту, идентифицируемому данными пути (объект 323 или 322). Таким образом, в данном примере механизм 208 приоритетного связывания данных может выполнить запрос в графе объектов для определения, какой объект представлен путем “CurrentFolder.Name” (в данном случае объект 322), определить содержимое объекта 322 и обновить описанный объект-мишень (например, текстовое поле 330 в ИП 328).
На Фиг. 3а механизм 320 приоритетного связывания данных может связать свойство 316 объекта-источника 312 (часть модели 324) со свойством объекта-мишени 330 (например, текстовым полем - компонентом ИП). Механизм 320 приоритетного связывания данных может прослушивать извещения об изменениях свойств (например, при изменении свойства-имени 316 объекта 312 выбранного элемента модели 324, объект 312 выбранного элемента может послать извещение об изменении). Механизм 320 приоритетного связывания данных может прослушивать извещения об изменении и при обнаружении извещения об изменении синхронизировать источник и мишень (элемент ИП, текстовое поле 330) автоматически.
На Фиг.3b показана иллюстративная система приоритетного связывания данных согласно некоторым вариантам осуществления настоящего изобретения. На Фиг. 3b модель 324 содержит один или несколько объектов, представленных объектами 323 (текущая папка) и 312 (выбранный элемент), и открывает одно или несколько свойств (представленных именем 322) для текущей папки 323 и одно или несколько свойств (представленных именем 316) для выбранного элемента 312. ИП 328 включает в себя один или несколько компонентов ИП, представленных на Фиг 3b текстовым полем 330. Описание ИП 328 включает в себя одно или несколько объявлений связывания, представленных на Фиг. 3b связыванием 1 305, связыванием 2 306… связыванием n 308 и резервным значением 310 (необязательно). Компонент текстового поля (отображаемый в ИП) может быть связан либо с именем текущей папки (объект 322), либо с именем выбранного элемента (объект 316). Механизм 320 связывания данных в некоторых вариантах осуществления настоящего изобретения определяет, которое из связываний следует исполнять и, тем самым, какое содержимое будет отображаться в текстовом поле 330. Для вычисления могут быть описаны одно или несколько объявлений связывания. Порядок, в котором объявления связывания представлены, может определять приоритет, то есть первое представленное объявление может иметь наивысший приоритет и второе объявление может иметь следующий приоритет и т.д., хотя очевидно, что может использоваться любое подходящее средство определения приоритета. Например, приоритет может указываться ассоциированным тегом, порядком появления в разметке (приоритет соответствует порядку сверху вниз или снизу вверх), алфавитным порядком или любым другим подходящим способом. На Фиг.3b множество объявлений связывания включает в себя связывание 1305 и связывание 2 306, хотя может быть описано любое количество связываний. В некоторых вариантах осуществления настоящего изобретения порядок вычисления объявлений связывания совпадает с порядком приоритетов, хотя очевидно, что объявления связывания могут вычисляться в любом порядке. В некоторых вариантах осуществления настоящего изобретения механизм 320 связывания данных сначала пытается вычислить связывание 1 305. Предположим, что связывание 1 305 ассоциировано с именем 322 текущей папки 323. Если связывание 1 305 вычисляют успешно, имя текущей папки будет отображено в текстовом поле 330. Предположим, что связывание 2 306 ассоциировано с именем 316 выбранного элемента 312. Если связывание 1 305 вычисляют неуспешно, механизм 320 связывания данных пытается вычислить связывание 2 306. Если связывание 2 306 вычисляют успешно, имя 316 выбранного элемента 312 будет отображено в текстовом поле 330. Дополнительно, в некоторых вариантах осуществления настоящего изобретения может быть определено значение 310 возврата. В этом случае, если и связывание 1 305 и связывание 2 306 вычислено неуспешно, резервное значение 310 может быть отображено в текстовом поле 330. Таким образом, механизм 320 связывания данных прослушивает события изменений, определяет, которое из множества связываний следует вычислить (т.е. которое из них является активным связыванием), и обновляет мишень (например, компонент ИП) в соответствии со связыванием, активным в настоящее время.
В некоторых вариантах осуществления настоящего изобретения механизм связывания данных непрерывно отслеживает все объекты на предмет извещений об изменениях. Если механизм связывания данных получает извещение об изменении от связывания с более высоким приоритетом, это связывание вычисляется, и если связывание вычислено успешно, механизм связывания данных исполняет связывание с более высоким приоритетом. Помимо этого, если текущее связывание становится недействительным (например, из-за отсутствия выбранных элементов выбранный элемент становится пустым), все выражение более не вычисляется успешно и механизм связывания данных вычисляет множество выражений связывания снова. Выражение с наивысшим приоритетом, которое вычисляется корректно, исполняется, и отображаемые данные обновляются соответствующим образом.
На Фиг.4а-4с показана последовательность интерфейсов, демонстрирующая возможные сценарии в соответствии с вышесказанным. На Фиг.4а показан иллюстративный ИП 400, в котором моделью является файловая система (файлы и папки). Панель 402 Details отображает состояние текущего выбора. В некоторых вариантах осуществления настоящего изобретения то, что отображается на панели 402 Details, является декларативно описанным через набор объявлений приоритетного связывания в определении ИП. В некоторых вариантах осуществления настоящего изобретения ИП определяют через язык разметки такой, как HTML (язык разметки гипертекста), XML (расширяемый язык разметки), XAML (расширяемый язык разметки приложений) или другой подходящий язык разметки. Содержимое текста панели 402 Details (соответствующее текстовому полю-мишени 330 на Фиг. 3а и 3b) может быть привязано к текущему выбору (соответствующему выбранному элементу 312 на Фиг. 3а и 3b) и текущей папке (текущая папка 323) посредством списка приоритетных связываний, описанных в определении ИП. Список приоритетных связываний может указывать, что текстовый управляющий элемент должен быть связан с именем или единичным выбором (наивысший приоритет), и если выбор отсутствует, текст должен быть связан с именем текущей папки. Ниже приведено иллюстративное описание выше описанного, написанное в XAML:
Figure 00000001
Таким образом, если выбор отсутствует, панель 402 Details может отображать имя текущей папки 404 (“Internet Explorer”).
Описание элемента (“File Folder” 406) и время 408 модификации, также могут быть отображены при помощи описания подобной секции разметки. Например, текстовый управляющий элемент может быть связан с описанием единичного выбора, если выбор был сделан. Если единичный выбор отсутствует, текст может быть связан с количеством выбранных элементов. Если отсутствует любой выбор, текст может быть связан с описанием текущей папки. Ниже приведено иллюстративное описание выше описанного, написанное в XAML:
Figure 00000002
На Фиг.4а, поскольку отсутствует выбранный элемент, не вычисляется ни одно из первых двух объявлений связывания. Однако третье объявление связывания вычисляется успешно таким образом, что описание текущей папки (“File Folder”) вычисляется таким образом, что в текстовом поле 406 отображается “File Folder”. На Фиг. 4b показан иллюстративный ИП 400 после того, как выполнен выбор одного элемента. На Фиг. 4b выбран элемент “IEXPLORE.EXE” 412. Элемент “IEXPLORE.EXE” 412 соответствует выбранному элементу 312 на Фиг. 3а и 3b.
Панель 402 Details теперь отображает имя выбранного элемента (“IEXPLORE.EXE” 414), описание (“File” 416). Текстовый управляющий элемент также может быть связан с размером файла в единичном выборе. Если единичный выбор отсутствует, текст может быть связан с общим размером файлов множества выбранных элементов. Если отсутствует выбор любого вида, текст может принимать значение по умолчанию для этого типа управляющего элемента - пустая строка. Ниже приведено иллюстративное описание выше описанного, написанное в XAML:
Figure 00000003
Здесь, на Фиг. 4b, поскольку был выбран элемент, отображается размер 420 файла. Аналогичный блок разметки может быть описан для отображения времени 418 модификации.
На Фиг.4с показан иллюстративный ИП 400 по Фиг. 4а после выбора множества элементов. На Фиг.4с выбраны элементы “HMMAPI.DLL” 422 и “IEXPLORE.EXE” 412. В этом случае панель 402 Details отображает имя папки (“Internet Explorer”) 404, а не имена выбранных элементов, причем описание отображает количество выбранных элементов 424 и общий размер 426 файлов. Время модификации не отображается.
В некоторых вариантах осуществления настоящего изобретения может быть выбрано несколько элементов и отображаться как единичное множество элементов, включающее в себя все выбранные элементы (возможно имеющее тип “Collection”, а не тип “File” и т.п.). Если в множество элементов добавляют или удаляют что-либо, то посылается извещение об изменении и механизм связывания выполняет обновления.
В некоторых вариантах осуществления настоящего изобретения в случае отсутствия действительных связываний используется значение по умолчанию. Символьное значение может быть описано в определении ИП. Символьное может быть применено к мишени, если поиск в списке приоритетных связываний не установил объявление связывания, которое вычисляется успешно. Например, в случае, если ни одно из объявлений связываний для поля описания не может быть вычислено успешно, текстовый управляющий элемент может использовать определенное резервное значение (“No description available”). Ниже приведено иллюстративное описание выше описанного, написанное в XAML:
Figure 00000004
В некоторых вариантах осуществления настоящего изобретения механизм приоритетного связывания вычисляет необязательное выражение для каждого объявления связывания для обеспечения дополнительной гибкости. Например, может быть определено выражение, которое обеспечивает альтернативный подход в примере поля имени в файловой системе панели ИП Details по Фиг. 4а-4с. Предположим, что поле должно быть связано с именем выбранного элемента, если в выборе присутствует только один элемент, или с именем текущей папки в противном случае. Такой результат может обеспечить ниже приведенная группа выражений:
Figure 00000005
Figure 00000006
В этом случае предполагается, что выбрано два элемента. Хотя SelectedItems содержат нулевой элемент и этот элемент может иметь свойство Name, выражение объявления 1 связывания будет неверным, поскольку SelectedItems.Count не равен 1. Следовательно, объявление 1 связывания не будет вычислено успешно, и вычисляется объявление 2 связывания:
<Bind Path=”Model.CurrentFolder.Name”/>
как описано выше в связи с объявлением 1 связывания.
На Фиг.5 показана иллюстративная блок-схема последовательности операций для способа описания и исполнения приоритетных связываний согласно одному из вариантов осуществления настоящего изобретения. Один или несколько этапов данного способа могут быть необязательными. На Фиг. 5 принимают описание источника на этапе 502. Это может подразумевать кодирование и/или создание экземпляра модели или приложения. Например, разработчик может реализовать модель, предоставляющую одно или несколько свойств для связывания. На этапе 504 принимают описание мишени. Это может подразумевать описание мишени в виде кода или разметки, такой как интерфейс пользователя и/или экземпляр интерфейса пользователя. Например, проектировщик может создать интерфейс пользователя, используя язык разметки, или разработчик может создать интерфейс пользователя в виде кода. На этапе 506 может быть принято множество из одного или нескольких объявлений связывания, указывающее на порядок или приоритет исполнения. В некоторых вариантах осуществления настоящего изобретения порядок приоритетов указывается порядком объявлений таким образом, что первое объявление связывания в списке объявлений является объявлением с наивысшим приоритетом, второе объявление связывания в списке объявлений является объявлением со следующим приоритетом и т.д. В качестве альтернативы приоритет исполнения может быть указан маркером или индикатором, ассоциированным с объявлением связывания, или при помощи другого подходящего средства. Например, приоритет исполнения может быть указан последовательностью объявлений связывания, как они появляются сверху вниз или снизу вверх. Также возможны другие подходящие средства указания приоритета. В некоторых вариантах осуществления настоящего изобретения описание объявлений связывания может быть внедрено в определение мишени (этап 504). Это может подразумевать кодирование передачи данных между мишенью и источником (например, разработчиком) или описание множества из одного или нескольких объявлений связывания в разметке (например, проектировщиком), как описано выше.
На этапе 508 может быть сгенерирована и/или создан экземпляр приложения содержащего модель и интерфейс пользователя. Механизм связывания может прослушивать пути модели и исполнять множество объявлений связывания данных в порядке приоритетов, т.е., исполняется объявление с наивысшим приоритетом, вычисленное успешно, синхронизуя тем самым мишень и модель, как описано выше. В некоторых вариантах осуществления настоящего изобретения объявления связывания вычисляются в порядке приоритета исполнения, хотя объявления связывания могут вычисляться в случайной последовательности, от точки объявления, исполняемого в настоящее время, в указанном порядке вычисления или в другом подходящем порядке.
Фиг.6 является блок схемой последовательности операций, иллюстрирующей вычисление множества объявлений связывания, как описано выше. На этапе 602 вычисляют объявление связывания. В случае если вычисление успешно, и выражение является истинным (этап 604, необязательно), значение объекта применяют на этапе 606. Если объявление связывания вычисляют неуспешно, то вычисляют следующее (если оно существует) объявление связывания (этап 608). Если следующее объявление связывания вычисляют успешно, и выражение является истинным (этап 610, необязательно), то значение, указанное объявлением связывания, применяют на этапе 612. Если следующее объявление связывания вычисляют неуспешно, то вычисляют следующее (если оно существует) объявление связывания. Эти этапы повторяются до тех пор, пока не будут вычислены все объявления связывания в множестве. Объявления связывания могут вычисляться в порядке приоритета или в любом другом порядке, как описывалось выше. Исполняют объявление связывания с наивысшим приоритетом, которое вычисляют успешно (и для которого ассоциированное выражение, если оно присутствует, является истинным). Если все объявления связывания в множестве объявлений вычислены и ни одно из них не вычислено успешно, и определено резервное значение (этап 614, необязательно) резервное значение может быть использовано для обновления мишени. Если не предусмотрено резервное объявление, значение мишени может быть оставлено не установленным, значение может быть очищено, или значение может быть установлено в значении по умолчанию.
Вновь обращаясь к Фиг. 3b и 4b, предположим, что объявление 1 связывания представляет собой:
<Bind Path= “Model.SelectedItem.Name”/>
На этапе 602 может быть вычислен путь связывания “Model.SelectedItem.Name”. Может быть выполнен запрос к графу объектов и определено ниже следующее:
В источнике данных, модели, существует ли свойство SelectedItem?
Если это так, не является ли значение объекта пустым?
Если это так, имеет ли объект свойство “Name”?
Если это так, определено ли выражение?
Если это так, вычисляют выражение. Выражение вычислено верно?
Если это так, применяют связывание.
Если это не так, вычисление связывания не успешно.
В выше приведенном примере свойство SelectedItem модели существует, и имеет свойство Name, (IEXPLORE.EXE), выражение отсутствует, и таким образом применяют объявление 1 связывания и IEXPLORE.EXE возвращают для отображения в текстовом поле ИП. Очевидно, что этот набор этапов может быть повторен для каждого вычисленного объявления связывания до тех пор, пока не будет найдено объявление связывания с наивысшим приоритетом, вычисленное успешно.
Механизм связывания может отслеживать извещения об изменениях. Например, если извещение об изменении было послано из объекта 316, объявления связывания будут повторно вычислены для определения объявления с наивысшим приоритетом.
Различные способы, изложенные в настоящем описании, могут быть реализованы в виде аппаратных средств или программных средств либо в случае необходимости в виде их комбинации. Таким образом, способы и устройства настоящего изобретения, или определенные его аспекты или части, могут быть выполнены в виде программных кодов (т.е. инструкций), реализованных в виде материальных носителей, таких как флоппи-диски, CD-ROM, жесткие диски, или любого другого машиночитаемого носителя данных, причем, если программный код загружен и исполнен машиной, такой как компьютер, машина становится устройством, реализующим настоящее изобретение. В случае исполнения программных кодов программируемыми компьютерами, компьютерное устройство в общем случае включает в себя процессор, носитель данных, читаемый процессором (в том числе энергозависимая и энергонезависимая память и/или элементы хранения данных), по меньшей мере, одно устройство ввода и, по меньшей мере, одно устройство вывода. Одна или несколько программ, которые могут использовать создание и/или осуществление специфических аспектов программных моделей настоящего изобретения, например, используя API обработки данных или ему подобный, предпочтительно реализуются на языке высокого уровня, процедурном или объектно-ориентированном, для связи с компьютерной системой. Однако программа (программы) могут быть реализованы на ассемблере или машинном языке в случае необходимости. В любом случае язык может представлять собой компилируемый или интерпретируемый язык в комбинации с реализациями в виде аппаратных средств.
Хотя настоящее изобретение было описано в связи с предпочтительными вариантами осуществления на различных фигурах, очевидно, что могут быть использованы другие подобные варианты осуществления либо могут быть сделаны модификации или добавления к описанным вариантам осуществления для выполнения такой же функции настоящего изобретения без отступления от него. Таким образом, настоящее изобретение не следует ограничивать любым единичным вариантом осуществления, но, напротив, его следует рассматривать в объеме прилагаемой формулы изобретения.

Claims (36)

1. Система для связывания мишени и источника, содержащая компьютер, который сохраняет множество объявлений связывания, используемых для определения содержимого, подлежащего отображению в интерфейсе пользователя в ходе исполнения программного обеспечения пользовательского интерфейса компьютером, множество объявлений связывания определено как декларативные объявления, причем множество объявлений связываний содержит, по меньшей мере, первое объявление связывания и второе объявление связывания;
механизм связывания, исполняемый на компьютере, механизм связывания, устанавливающий порядок приоритетов, в котором множество объявлений связывания подлежат исполнению посредством компьютера для того, чтобы связывать мишень с источником, причем порядок приоритета исполнения устанавливают, используя указатель приоритета или маркер, ассоциированный с каждым из множества объявлений связывания, механизм связывания оценивает множество объявлений связывания для определения содержимого, подлежащего отображению в интерфейсе пользователя в ходе исполнения программного обеспечения пользовательского интерфейса компьютером, при этом исполнение объявлений связывания на основании порядка приоритетов запускает эффективную генерацию интерфейса пользователя.
2. Система по п.1, в которой первое объявление связывания ассоциировано с первым приоритетом и второе объявление связывания ассоциировано со вторым приоритетом.
3. Система по п.2, в которой в ответ на определение того, что первый приоритет превышает второй приоритет, оценивают первое объявление связывания.
4. Система по п.3, в которой в ответ на определение того, что первое объявление связывания оценено успешно, исполняют первое объявление связывания.
5. Система по п.2, в которой приоритет исполнения содержит:
в ответ на определение того, что первый приоритет является наивысшим приоритетом и второй приоритет является следующим наивысшим приоритетом, и первое объявление связывания не оценивается успешно, а второе объявление связывания оценивается успешно, исполнение второго объявления связывания.
6. Система по п.1, в которой первое объявление связывания содержит источник данных.
7. Система по п.6, в которой источник данных содержит объект, доступный посредством URL (универсальный идентификатор ресурса).
8. Система по п.6, в которой источник данных содержит источник XML (расширяемый язык разметки).
9. Система по п.6, в которой источник данных содержит объектную модель.
10. Система по п.6, в которой источник данных содержит базу данных с доступом посредством языка запросов к базе данных.
11. Система по п.1, в которой первое объявление связывания содержит путь связывания.
12. Система по п.11, в которой путь связывания выражен в виде XML, Xpath.
13. Система по п.11, в которой путь связывания содержит путь объекта.
14. Система по п.1, в которой первое объявление связывания содержит выражение.
15. Система по п.14, в которой определение того, что первое объявление связывания оценивается успешно содержит определение того, что результат оценки выражения является истинным.
16. Система по п.1, в которой второе объявление связывания содержит значение по умолчанию, и указанное значение по умолчанию используют для обновления мишени, если успешно оценивается только второе объявление связывания.
17. Способ связывания мишени с, по меньшей мере, двумя из множества элементов данных, исполняемый посредством компьютера, содержащий:
сохранение множества объявлений связывания, определенных как декларативные объявления, обеспеченные в ходе разработки программного обеспечения пользовательского интерфейса, содержащих, по меньшей мере, первое объявление связывания и второе объявление связывания, при этом механизм связывания оценивает множество объявлений связывания для определения содержимого, подлежащего отображению в интерфейсе пользователя в ходе исполнения программного обеспечения пользовательского интерфейса компьютером,
прием порядка приоритета, указывающего на порядок исполнения множества объявлений связывания, причем первое объявление связывания ассоциировано с наивысшим приоритетом, и второе объявление связывания ассоциировано со следующим наивысшим приоритетом, порядок приоритетов устанавливается, используя указатель приоритета, ассоциированный с каждым из множества объявлений связывания
оценку наивысшего приоритета первого объявления связывания;
исполнение первого объявления связывания, если оценка является успешной; и
автоматическую оценку второго объявления связывания, если первое объявление связывания не проходит оценку;
при этом, оценка первого и второго объявления связывания осуществляется механизмом связывания; и
отображение резервного значения в интерфейсе пользователя, если оба - первое и второе объявления связывания не проходят оценку успешно;
при этом исполнение объявлений связывания на основании порядка приоритетов запускает эффективную генерацию интерфейса пользователя.
18. Способ по п.17, в котором исполнение первого объявления связывания содержит обновление мишени элементом данных, идентифицированным как первое объявление связывания.
19. Способ по п.17, в котором в ответ на определение, что первое объявление связывания не оценено успешно, автоматически оценивают второе объявление связывания.
20. Способ по п.19, в котором в ответ на успешное оценивание второго объявления связывания исполняют второе объявление связывания.
21. Способ по п.20, в котором множество объявлений связывания определяют через язык разметки.
22. Способ по п.21, в котором язык разметки представляет собой HTML (язык разметки гипертекста), XML (расширяемый язык разметки), XAML (расширяемый язык разметки приложений).
23. Способ по п.17, в котором первое объявление связывания содержит значение выражения.
24. Способ по п.23, в котором первое объявление связывания исполняется в ответ на определение того, что первое объявление связывания оценено успешно, и результат оценки первого выражения связывания является истинным.
25. Способ по п.19, в котором второе объявление связывания содержит значение по умолчанию и указанное значение по умолчанию используют для обновления мишени.
26. Способ по п.17, в котором мишень представляет собой элемент интерфейса пользователя.
27. Способ по п.17, дополнительно содержащий отслеживание множества путей связывания данных, ассоциированных с множеством объявлений связывания для уведомления об изменениях.
28. Способ по п.27, дополнительно содержащий повторную оценку множества объявлений связывания в ответ на прием уведомления об изменениях.
29. Машиночитаемый носитель, содержащий машиноисполняемые инструкции для:
отображения мишени на, по меньшей мере, первый элемент данных и второй элемент данных множества элементов данных источника, использующих набор объявлений связывания, используемых для определения содержимого, подлежащего отображению в интерфейсе пользователя в ходе исполнения программного обеспечения пользовательского интерфейса компьютером, множество объявлений связывания в декларативном языке разметки, при этом множество объявлений связывания обеспечивают в ходе разработки пользовательского интерфейса;
оценки набора объявлений связывания с механизмом приоритетного связывания данных для связывания мишени, использующей приоритетный протокол для определения, которое из объявлений связывания используют для определения содержимого, подлежащего отображению в интерфейсе пользователя в ходе исполнения программного обеспечения пользовательского интерфейса компьютером, и
отображения резервного значения в пользовательском интерфейсе, если оба - первое и второе объявления связывания не проходят оценку успешности;
при этом исполнение объявлений связывания на основании порядка приоритетов запускает эффективную генерацию интерфейса пользователя.
30. Машиночитаемый носитель по п.29, дополнительно содержащий машиноисполняемые инструкции для указания порядка исполнения набора объявлений связывания.
31. Машиночитаемый носитель по п.30, дополнительно содержащий машиноисполняемые инструкции для описания того, что набор объявлений связывания содержит первое объявление связывания, ассоциированное с первым элементом данных, и первый порядок исполнения, указывающий наивысший приоритет, и второе объявление связывания, ассоциированное со вторым элементом данных, и второй порядок исполнения, указывающий на второй наивысший приоритет.
32. Машиночитаемый носитель по п.31, дополнительно содержащий машиноисполняемые инструкции для оценки первого объявления связывания, и в ответ на определение того, что первое объявление связывания оценено успешно, исполнение первого объявления связывания.
33. Машиночитаемый носитель по п.32, дополнительно содержащий машиноисполняемые инструкции для обновления мишени значением первого элемента данных.
34. Машиночитаемый носитель по п.31, дополнительно содержащий машиноисполняемые инструкции для отслеживания первого элемента данных и второго элемента данных на предмет извещения об изменении и в ответ на обнаружение извещения об изменении, повторной оценки набора объявлений связывания.
35. Машиночитаемый носитель по п.31, дополнительно содержащий машиноисполняемые инструкции для определения того, что первое объявление связывания не оценено успешно, и в ответ оценку второго объявления связывания.
36. Машиночитаемый носитель по п.35, дополнительно содержащий машиноисполняемые инструкции для оценки второго объявления связывания, и в ответ на определение того, что второе объявление связывания оценено успешно, исполнение второго объявления связывания.
RU2005107096/08A 2004-04-13 2005-03-11 Приоритетное связывание RU2405190C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/823,461 2004-04-13
US10/823,461 US7539687B2 (en) 2004-04-13 2004-04-13 Priority binding

Publications (2)

Publication Number Publication Date
RU2005107096A RU2005107096A (ru) 2006-08-20
RU2405190C2 true RU2405190C2 (ru) 2010-11-27

Family

ID=34939124

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2005107096/08A RU2405190C2 (ru) 2004-04-13 2005-03-11 Приоритетное связывание

Country Status (10)

Country Link
US (1) US7539687B2 (ru)
EP (1) EP1586993A3 (ru)
JP (1) JP2005301994A (ru)
KR (1) KR101137070B1 (ru)
CN (1) CN1684035A (ru)
AU (1) AU2005200697B2 (ru)
BR (1) BRPI0500698A (ru)
CA (1) CA2498696A1 (ru)
MX (1) MXPA05002946A (ru)
RU (1) RU2405190C2 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2696305C2 (ru) * 2013-08-12 2019-08-01 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Браузинг изображений через интеллектуально проанализированные связанные гиперссылкой фрагменты текста

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7624350B2 (en) * 2006-08-10 2009-11-24 Kabushiki Kaisha Toshiba System and method for XML based data driven generation of a composite source user interface
US20090327238A1 (en) * 2008-06-28 2009-12-31 Microsoft Corporation Extensible binding of data within graphical rich applications
KR101044870B1 (ko) * 2008-10-02 2011-06-28 한국전자통신연구원 경로 코드를 이용한 xml 문서의 부호화 및 복호화 방법과 장치
US20110090236A1 (en) * 2009-10-15 2011-04-21 Microsoft Corporation Graphic Object Data Binding
US8935254B2 (en) * 2012-12-31 2015-01-13 Perinote LLC Methods and systems for organizing information
US20150052465A1 (en) * 2013-08-16 2015-02-19 Microsoft Corporation Feedback for Lasso Selection
US20170322696A1 (en) 2016-05-07 2017-11-09 Perinote LLC Selecting and performing contextual actions via user interface objects
US10606924B2 (en) * 2016-11-18 2020-03-31 Microsoft Technology Licensing, Llc Contextual file manager
CN108845856B (zh) * 2018-06-11 2021-12-14 腾讯科技(深圳)有限公司 基于对象的同步更新方法、装置、存储介质及设备
CN110674017B (zh) * 2018-07-03 2023-04-28 百度在线网络技术(北京)有限公司 埋点方法、装置及存储介质
CN112230909B (zh) * 2019-07-15 2023-05-23 腾讯科技(深圳)有限公司 小程序的数据绑定方法、装置、设备及存储介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5083262A (en) 1986-04-28 1992-01-21 International Business Machines Corporation Language bindings for graphics functions to enable one application program to be used in different processing environments
US5255356A (en) 1989-05-31 1993-10-19 Microsoft Corporation Method for hiding and showing spreadsheet cells
US5396587A (en) 1990-04-11 1995-03-07 501 Lotus Development Corp. Asynchronous, minimal update display system
US5388196A (en) 1990-09-07 1995-02-07 Xerox Corporation Hierarchical shared books with database
KR100287045B1 (ko) 1992-07-06 2001-04-16 존 비. 메이슨 객체의 명명 및 결합들 위한 방법 및 시스템
US5452459A (en) 1993-01-08 1995-09-19 Digital Equipment Corporation Method and apparatus for allocating server access in a distributed computing environment
US5485617A (en) 1993-12-13 1996-01-16 Microsoft Corporation Method and system for dynamically generating object connections
US5706505A (en) 1994-08-19 1998-01-06 Microsoft Corporation Method and system for binding data in a computer system
US6167455A (en) 1995-05-05 2000-12-26 Apple Computer, Inc. Method and system for synchronous operation of linked command objects
US5835904A (en) 1995-10-31 1998-11-10 Microsoft Corporation System and method for implementing database cursors in a client/server environment
US6401099B1 (en) 1996-12-06 2002-06-04 Microsoft Corporation Asynchronous binding of named objects
US6826759B2 (en) 1997-04-01 2004-11-30 Sun Microsystems, Inc. Method and apparatus for discovering and activating software components
US6262729B1 (en) 1997-04-14 2001-07-17 Apple Computer, Inc. Method and apparatus for binding user interface objects to application objects
US6378004B1 (en) 1998-05-07 2002-04-23 Compaq Computer Corporation Method of communicating asynchronous elements from a mini-port driver
US6330006B1 (en) * 1998-05-12 2001-12-11 Silverstream Software, Inc. Method and apparatus for synchronizing an application's interface and data
US6023271A (en) 1998-06-11 2000-02-08 Sun Microsystems, Inc. Framework for binding data viewers/data manipulation with one to many objects through introspection
US6463442B1 (en) 1998-06-30 2002-10-08 Microsoft Corporation Container independent data binding system
US6438618B1 (en) 1998-12-16 2002-08-20 Intel Corporation Method and device for filtering events in an event notification service
US6922708B1 (en) * 1999-02-18 2005-07-26 Oracle International Corporation File system that supports transactions
US6429882B1 (en) 1999-03-15 2002-08-06 Sun Microsystems, Inc. User interface component
US20040034833A1 (en) 1999-11-12 2004-02-19 Panagiotis Kougiouris Dynamic interaction manager for markup language graphical user interface
US6571253B1 (en) 2000-04-28 2003-05-27 International Business Machines Corporation Hierarchical view of data binding between display elements that are organized in a hierarchical structure to a data store that is also organized in a hierarchical structure
US6832220B1 (en) * 2000-08-03 2004-12-14 Microsoft Corporation Method and apparatus for file searching, accessing file identifiers from reference page
US7099958B2 (en) 2000-08-15 2006-08-29 Fujitsu Limited System for designing and performing web application
JP3902959B2 (ja) * 2002-01-28 2007-04-11 キヤノン株式会社 情報処理装置及びその制御方法、プログラム
US7519969B2 (en) * 2003-05-17 2009-04-14 Microsoft Corporation System and method for controlling user interface properties with data
CN100495392C (zh) * 2003-12-29 2009-06-03 西安迪戈科技有限责任公司 一种智能搜索方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IRIX Admin: System Configuration and Operation, 29.04.2003, найдено в Internet 23.03.2009, http://techpubs.sgi.com/library/tpl/cgibin/getdoc.cgi?coll=0650&db=bks&fhame=/SGI_Admin/IA_ConfigOps/ch07.html. *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2696305C2 (ru) * 2013-08-12 2019-08-01 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Браузинг изображений через интеллектуально проанализированные связанные гиперссылкой фрагменты текста
US11250203B2 (en) 2013-08-12 2022-02-15 Microsoft Technology Licensing, Llc Browsing images via mined hyperlinked text snippets

Also Published As

Publication number Publication date
MXPA05002946A (es) 2005-10-17
JP2005301994A (ja) 2005-10-27
KR20060043081A (ko) 2006-05-15
CA2498696A1 (en) 2005-10-13
EP1586993A2 (en) 2005-10-19
RU2005107096A (ru) 2006-08-20
AU2005200697B2 (en) 2010-04-29
AU2005200697A1 (en) 2005-10-27
BRPI0500698A (pt) 2005-11-16
CN1684035A (zh) 2005-10-19
KR101137070B1 (ko) 2012-04-19
US20050228801A1 (en) 2005-10-13
US7539687B2 (en) 2009-05-26
EP1586993A3 (en) 2007-10-10

Similar Documents

Publication Publication Date Title
RU2405190C2 (ru) Приоритетное связывание
RU2398266C2 (ru) Использование механизма привязки данных для выполнения привязки команд
US9772822B2 (en) Visualization framework for customizable types in a development environment
US7543268B2 (en) Development environment for developing applications using a metamodel and a metadata API
JP5173128B2 (ja) フローベースおよび制約ベースのワークフローをオーサリングし、実行するための統一モデル
US7114148B2 (en) Runtime services for network software platform
US10379847B2 (en) Representation of customizable types in a development environment
RU2365972C2 (ru) Интерфейс программирования для компьютерной платформы
US8799857B2 (en) XML application framework
JP5710852B2 (ja) 設計時および実行時にワークフローを継ぎ目なくオーサリングし編集するためのフレームワーク
US8132148B2 (en) XML application framework
US8255888B2 (en) API derivation and XML schema derivation for developing applications
US20050071805A1 (en) Developing applications using a metamodel
CN107408049B (zh) 计算系统和计算机实现的方法
US20110185282A1 (en) User-Interface-Integrated Asynchronous Validation for Objects
US20070074156A1 (en) Componentization of software computer programs
US8201147B2 (en) Generic XAD processing model
US8230357B2 (en) Visually processing instance data
JP2013518321A (ja) パターンベースのユーザインターフェース
US7434200B2 (en) Using incremental generation to develop software applications
KR101171566B1 (ko) 합성 공간 표현의 생성
JP2007538314A (ja) 汎用ユーザインターフェースコマンドアーキテクチャ
US8423895B2 (en) Method and apparatus for multi-file controls

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20130312