ХОЛСТ С СЕТКОЙ
CANVAS WITH GRID

Область техники, к которой относится изобретение
Настоящее изобретение относится, в целом, к области компьютерной графики. В частности, это изобретение относится к размещению объектов на экране устройства отображения.
Предшествующий уровень техники
При проектировании схемы (макета) размещения элементов интерфейса пользователя (областей окон, средств управления и т.д.) часто используют холст (полотно) разработчика, а элементы (также именуемые здесь объектами), накладывают на «холст». Однако по мере создания приложения и изменения размера области, покрытой холстом, становится сложным обеспечить интеллектуальное изменение размеров всех элементов. Существующие в настоящее время подходы к решению этой проблемы имеют тенденцию быть неполными, сложными или трудными для понимания разработчиком.
Желательно спроектировать макет размещения таким образом, чтобы он обеспечивал изменение размеров без необходимости написания разработчиком программного кода для изменения размеров. Создание макета размещения приложений, обеспечивающего интеллектуальное изменение размеров, является проблемой, подходы к решению которой в настоящее время реализуют посредством неполных механизмов, чрезвычайно сложных механизмов или посредством программного кода, являющегося недоступным для разработчика.
Обычным механизмом являются макеты размещения в стиле «холста» (полотна). Макет размещения такого типа обеспечивает наличие участка, на котором могут быть закреплены новые элементы, подобно размещению объявлений на доске объявлений. Как и на доске объявлений, помещенные на него объекты являются стационарными, если программист не перемещает их в явном виде.
Другим обычным механизмом являются макеты с пропорциональным изменением размеров. Эти макеты размещения являются аналогичными макетам размещения в стиле холста за исключением того, что всю доску объявлений впоследствии считают единым изображением, которое может быть пропорционально растянуто. Макет этого типа является приемлемым для интерфейса пользователя с фиксированными функциями, размер которого, как предполагают, увеличивается при увеличении размера экрана (например, в простых играх), но является плохим для тех случаев, в которых может быть обеспечено лучшее использование экрана для визуального отображения информации с большей плотностью (например, для отображения информации при обработке текстов).
Еще одним обычным механизмом являются макеты размещения в стиле таблицы. Эти макеты размещения аналогичны схемам размещения, имеющимся в языке гипертекстовой разметки (HTML). Доступное пространство нарезано на отдельные ячейки, при этом каждая ячейка представляет собой контейнер для ее содержимого. Часто для создания желательного макета размещения большие элементы (например, изображения) должны быть разделены на части, распределенные между ячейками.
Другим типом макетов размещения являются макеты на основе присоединения. В этих макетах каждому объекту предоставлена возможность "присоединяться" к сторонам полного холста; например, если происходит его присоединение к левой и к правой сторонам, то при изменении размера приложения его ширина изменяется, а поля остаются неизменными.
Также известны "усовершенствованные" макеты размещения, например, "GridBag" языка Джава (Java). "GridBag" присваивает каждому дочернему элементу информацию о позиционировании (в том числе информацию о занимаемом участке и о полях) и производит анализ данных обо всех дочерних элементах для получения результата. Сам контейнер "GridBag" не является носителем какой-либо информации. Результат является более функциональным, чем вышеупомянутые макеты, но его чрезвычайно трудно реализовать инструментальными средствами (то есть трудно представить в виде ясного и простого интерфейса пользователя).
Обычным вариантом макета является схема типа "пружины и распорки" ("springs and struts"), в которой каждая координата объекта может быть фактически задана в виде выражения, определяющего ее зависимость от любой иной координаты. Например, в среде типа "пружины и распорки" конфигурацию двух элементов можно задать таким образом, чтобы расстояние между ними всегда было равным 10 пикселям. Несмотря на то что первоначально этот способ кажется многообещающим, в нем быстро сталкиваются с трудностями, в частности, когда выполнение программы требует чрезвычайно большой объем вычислений, что, в конечном счете, является непригодным для этой задачи.
С учетом вышеизложенного, существует необходимость в создании систем и способов, устраняющих ограничения и недостатки, присущие известному уровню техники.
Сущность изобретения
Задачей настоящего изобретения является создание такого макета, который обеспечивает несложное "интеллектуальное" изменение размеров. Элементы (то есть объекты) присоединяются к виртуальной сетке, состоящей из линий сетки - из строк и столбцов, заданных по отдельности. Зависимость между объектами и сеткой является двусторонней, поэтому перемещение одного из них (линии сетки или объекта) оказывает воздействие на другой (объект или линию сетки). Другими словами, увеличение/уменьшение размеров объекта приводит к сдвигу линий сетки, а перемещение линии сетки приводит к увеличению/уменьшению размеров объекта. Виртуальная сетка может быть создана до или после создания объектов, что обеспечивает дополнительную гибкость. Дочерний объект может иметь свою собственную виртуальную сетку, которая обеспечивает возможность тонкого многоуровневого управления в тех случаях, когда это желательно.
Дополнительные признаки и преимущества настоящего изобретения станут очевидными из изложенного ниже подробного описания вариантов осуществления изобретения, приведенных в качестве иллюстративных примеров, при их рассмотрении со ссылкой на сопроводительные чертежи.
Краткое описание чертежей
Приведенное выше описание сущности настоящего изобретения, а также приведенное ниже подробное описание предпочтительных вариантов его осуществления станут более понятными при их рассмотрении совместно с приложенными чертежами для вычислительной среды, в которой могут быть реализованы аспекты настоящего изобретения.
Подробное описание предпочтительных вариантов осуществления изобретения
Целью настоящего изобретения является создание такого макета размещения, который обеспечивает присоединение объектов к виртуальной сетке, состоящей из линий сетки по строкам и столбцам, заданных по отдельности. Зависимость (соотношение) между объектами и сеткой является двусторонней, так что увеличение/уменьшение размеров объекта приводит к сдвигу линий сетки, а перемещение линии сетки приводит к увеличению/уменьшению размеров объекта. Такой механизм размещения именуют здесь макетом (механизмом) размещения на "холсте с сеткой".
На Фиг.1 показан пример макета холста с сеткой. Макет холста с сеткой представляет собой взаимодействие между родительским элементом и дочерними элементами. Родительский элемент 10 фактически представляет собой «холст», на котором по желанию могут быть нарисованы объекты 30, 40 в любом месте, и объекты остаются там, где они были помещены. В любой момент времени холст 10 с сеткой может быть разбит на требуемое количество строк R и столбцов С. Каждый дочерний элемент холста с сеткой поддерживает ограничивающий прямоугольник сетки вместе с полями, относящимися к этому прямоугольнику. Например, ограничивающим прямоугольником сетки для объекта 30 является вся строка R1 (то есть R1C1:R1C2). Параметры полей допускают множество типов "присоединения" в пределах ограничивающего прямоугольника сетки с использованием соответствующих смещений относительно границ прямоугольника. Сами строки R и столбцы С принадлежат родительскому элементу 10 холста с сеткой, а их размер может быть задан обычным способом (например, фиксированный размер, размер " в процентах, автоматически регулируемый размер, размер с весовым коэффициентом).
В настоящем изобретении изображение разделяют на виртуальные ячейки, которые отображают только лишь места расположения. Поэтому, например, объект 30 не нужно разбивать на множество ячеек, перемещение каждой из которых необходимо осуществлять по отдельности. Вместо этого, объект 30 занимает несколько виртуальных ячеек на нижележащем холсте 10 с сеткой. Кроме того, объекты могут перекрываться. Линии сетки являются виртуальными и выступают в качестве системы координат, а виртуальные ячейки являются просто проявлениями системы координат. Настоящее изобретение нарушает зависимости, характеризующие то, где именно должны быть расположены дочерние ячейки относительно линий сетки.
Настоящее изобретение может быть реализовано в панели интерфейса пользователя, способной вычислять и размещать дочерние элементы в столбцах и в строках. Дочерним элементом может являться любой объект, например, панель или средство управления. Пересечения линий сетки по столбцам и строкам образуют сетку слотов. Дочерний элемент или объект могут занимать несколько соседних слотов сетки (например, объект 30 занимает слоты или ячейки, заданные строкой R1, столбцом С1 и строкой R1, столбцом С2). Поведение макета размещения объекта определяется параметрами столбцов и строк, которые он занимает. Например, слоту сетки может быть присвоен фиксированный размер путем задания значения ширины в пикселях в соответствующем столбце и значения высоты в пикселях соответствующей строки. Ширина столбца может быть вычислена относительно желательных значений ширины дочерних элементов, проходящих через него. Строке может быть присвоена пропорциональная часть от остального доступного пространства. Объекты могут перекрываться, когда два или большее количество дочерних элементов могут занимать один и тот же поднабор слотов  макета размещения (например, см. объекты 20 и 30 на Фиг.5).
Дочерний объект может, например, иметь следующие свойства, но не ограничиваться ими, четыре координаты сетки (ограничивающий прямоугольник ячеек сетки), четыре поля ограничивающего прямоугольника, высоту и ширину объекта. Поля, высота и ширина могут быть заданы как "устанавливаемые автоматически" для того, чтобы они занимали максимально возможное доступное пространство, например, для поддержания соответствующих соотношений и мест расположения. В частности, для ширины и высоты желательно наличие описаний различных типов: абсолютное значение (например, 100 пикселей, 2 дюйма и т.д.), процентное соотношение (например, 10 процентов), автоматический режим (то есть естественные размеры) и звездочка ("*") (например, *, 25* и т.д.). Звездочка представляет собой описание для использования оставшегося пространства. Если два столбца отмечены как "*", то пространство для этих двух объектов разделено пропорционально их значениям, обозначенным звездочками. Это является желательным распределением на основании весовых коэффициентов.
На Фиг.2 показана укрупненная схема последовательности операций, выполняемых в примере способа генерации холста с сеткой. На этапе 100 создают нижележащую (базовую) сетку или родительский элемент путем задания виртуальной сетки, состоящей из линий сетки по строкам и столбцам. Затем на этапе 110 задают объект или объекты с использованием различных свойств и атрибутов, которые может иметь объект. На этом этапе также могут быть заданы строки и столбцы. Предусмотрено наличие цикла до тех пор, пока не будут завершены операции задания. Затем на этапе 120 измеряют сетку и размещают объекты. Полагают следующее: несмотря на то что сетку задают до того, как на ней могут быть размещены объекты, конфигурация сетки может быть задана в любой момент времени до или после размещения на ней объектов. Например, сначала объекты могут быть расположены на странице, а затем может быть задана конфигурация сетки.
Желательно, чтобы контейнер макета начинался как сетка из одной строки и из одного столбца. Сетка имеет фиксированное количество строк и столбцов, но не имеет ячейки. Строки и столбцы могут быть фиксированными или растягивающимися. По мере рисования объектов им, в предпочтительном варианте, присваивают атрибуты двух типов: "строка", "размах строк", "столбец", "размах столбца", для задания ограничивающего прямоугольника из линий сетки и "левая сторона", "правая сторона", "верх", "низ", "ширина", "высота". Объекты помещают в ограничивающий прямоугольник из линий сетки.
Таким образом, пример холста с сеткой обеспечивает создание разнообразных размещений диалоговых элементов и компонентов. Желательно, чтобы набор функциональных возможностей (признаков) содержал следующее: размещение по строкам и столбцам; перекрытие; поддержка установки размеров столбцов и строк в абсолютных величинах, в виде процентного соотношения, "по содержимому" и пропорционально весовым коэффициентам; полное управление местоположением дочернего элемента и поведение при установке размеров.
Желательно, чтобы объекты были упорядочены относительно линий сетки по строкам и столбцам. Например, строки и столбцы могут быть фиксированы и/или может быть задан минимальный размер. Объекты могут быть размещены в сетке таким образом, чтобы они растягивались согласно параметрам строк и столбцов, которые они занимают. Множество объектов может перекрываться, при этом для каждого из них используют различный диапазон ячеек. Подобный пример показан на Фиг.5, описание которой приведено ниже. В предпочтительном варианте сетки обладают способностью привязки к данным, при этом количество строк и столбцов является неизвестным.
Система согласно настоящему изобретению содержит средство (механизм) компоновки, который реализует оптимизированные алгоритмы и способы определения размеров и местоположения объектов, и размеры и местоположения столбцов и строк самой сетки. Как показано на Фиг.3, на высоком уровне примерное средство 200 компоновки находится в компьютере либо объединено с микропроцессором или с контроллером, и поддерживает связь с интерфейсом 210 пользователя и с устройством 220 отображения. Средство компоновки содержит программы 203, 206, служащие соответственно для изменения размеров и позиционирования объектов и для изменения размеров и позиционирования холста.
В предпочтительном варианте операции определения макета размещения могут быть выполнены в двух режимах (независимо в обоих измерениях: по горизонтали (по ширине) и по вертикали (по высоте)). Первым режимом, например, является вычисление с приведением к заранее заданному размеру (например, когда размер задан автором схемы размещения в явном виде). В этом случае размер распределяют по столбцам (строкам) с учетом естественных размеров объекта. Вторым режимом, например, является вычисление с приведением к его естественному размеру (например, когда размер не задан в явном виде). В этом случае определяют естественный размер сетки с учетом естественных размеров объекта и описания размеров в отношении столбцов (строк) и сохраняют пропорции размеров столбцов (строк) в случае описания размера как процентного соотношения и в случае описания размера как пропорционального весовым коэффициентам.
Выполнение программы
Холст с сеткой представляет собой элемент, который может быть использован в системе исполнения программ. Холст 10 с сеткой разделен на строки R и столбцы С, например, как показано на Фиг.4.
Несмотря на то что на Фиг.4 показаны две строки R1, R2 и два столбца C1, С2, полагают, что холст с сеткой может быть разделен на любое количество строк и столбцов. Желательно, чтобы каждая строка и каждый столбец имели информацию об их размерах (например, фиксированный, равный процентному отношению, устанавливаемый автоматически или с весовым коэффициентом).
Дочерние объекты могут быть размещены в любом месте на родительском холсте с сеткой. Дочерние элементы показаны на Фиг.5 в качестве примеров как четыре объекта 20, 30, 40, 50. Объекты 20 и 30 занимают множество ячеек (говорят, что строка и столбец образуют ячейку). Объект 20 расположен в строках R1 и R2 и в столбцах С1 и С2, а объект 30 расположен в строке R1 и в столбцах С1 и С2. Объект
40 целиком расположен в ячейке, образованной строкой R2 и столбцом С1, а объект 50 целиком расположен в ячейке, образованной строкой R2 и столбцом С2.
В этом месте предполагают, что желательно, чтобы нижняя строка R2 макета размещения, показанного на Фиг.5, имела абсолютную высоту, и желательно, чтобы верхняя строка R1 занимала все остальное пространство. На Фиг.6 показан желательный результат при изменении размера этого макета размещения с увеличением его высоты. Следует отметить, что сохраняются исходные фиксированные значения высоты строки R2 и содержащихся в ней объектов или частей объектов. С другой стороны, произошло изменение размеров строки R1 и содержащихся в ней объектов или частей объектов по вертикали таким образом, что ими охвачено дополнительное пространство в этом направлении. Взаимные относительные пропорции объектов и ячеек в строке R1 остаются теми же самыми, что и в исходной строке R1, размер которой не был изменен.
Такой макет может быть достигнут за счет установления соответствующих строк/столбцов (например, высота нижней строки = "150 пикселей"; высота верхней строки = "*", где "*" означает, что она занимает пропорциональную часть доступного пространства после учета фиксированных строк/столбцов; если никакая другая строка не имеет присвоенного ей значения "*", то "*" означает использование всего оставшегося пространства), и задания зависимостей между объектом и сеткой, в том числе полей. Использована система координат, в которой ячейка, заданная С1, R1, обозначена как (0, 0); ячейка, заданная С2, R1, обозначена как (1, 0); ячейка, заданная C1, R2, обозначена как (0, 1); а ячейка, заданная С2, R2, обозначена как (1, 1). Предполагая, что расстояние между краем объекта и соответствующим краем ячейки представляет собой "поле", а поле задают, например, в пикселях или как устанавливаемое автоматически, соотношения между объектами для объектов 20, 30, 40, 50 могут быть в этом случае определены следующим образом.
Объект 20: местоположение сетки = (0, 0)-(1, 1) (это означает, что объект занимает ячейку (0, 0) - ячейку (1, 1), как показано); поле = (10, 10, 10, 10) (это означает, что расстояние от края в каждом направлении до соответствующего ему края ячейки сетки равно 10 пикселям) (следует отметить, что чертежи выполнены не в масштабе); ширина = устанавливается автоматически; высота = устанавливается автоматически.
Объект 30: местоположение сетки = (0, 0)-(1, 0); поле = (20, 20, 20, 10); ширина = устанавливается автоматически; высота = устанавливается автоматически.
Объект 40: местоположение сетки = (0, 1)-(0, 1); поле = (20, 10, автоматически, 20); ширина = фиксированная (например, 100); высота = устанавливается автоматически.
Объект 50: местоположение сетки = (1, 1)-(1, 1); поле = (10, 10, 10, автоматически); ширина = устанавливается автоматически; высота = фиксированная (например, 40).
Желательно, чтобы значения, заданные в явном виде, обозначали измерения, выраженные в явном виде, а значения, заданные как устанавливаемые автоматически, занимали остальное доступное пространство. Полагают, что в различных вариантах реализации поля могут быть заданы для всех сторон, а затем могут быть добавлены дополнительные флаги присоединения. Кроме того, значения, требуемые для дочернего элемента, могут быть недоступными для родительского элемента, и в этом случае холст с сеткой может обеспечивать обработку задач с наличием чрезмерных ограничений, например, путем возврата сообщения об ошибках или, например, путем пересмотра значения таким образом, чтобы оно было достоверным.
Среда выполнения программы функционирует таким образом, что обеспечивает измерение дочерних объектов, распределяет значения ширины строк и высоты столбца согласно любым ограничениям, при которых она работает, а затем размещает дочерние объекты исходя из доступного объема пространства.
Период проектирования
Процесс периода проектирования представляет собой операцию автоматического создания макета размещения объектов на холсте с сеткой с использованием минимального объема данных, заданных пользователем. Автору или разработчику макета предоставлена возможность задавать форму макета и динамическое поведение макета.
На Фиг.7 показан пример способа создания макета размещения холста с сеткой согласно настоящему изобретению. На этапе 700 разработчик размещает объект в конкретном месте на экране устройства отображения (например, в интерфейсе пользователя на устройстве отображения). На этапе 710 задают его ограничивающий прямоугольник из линий сетки. Это соответствует вышеописанному свойству задания местоположения сетки. Затем на этапе 720 при сравнении протяженности этого ограничивающего прямоугольника из линий сетки с желательным положением могут быть определены соответствующие поля и ширина/высота, например, согласно схеме, заданной по умолчанию. Одним из примеров схемы, заданной по умолчанию, является та, в которой (1) если указанное местоположение находится целиком в левой половине пространства, занимаемого прямоугольником из линий сетки, то левое поле и ширину задают в явном виде, а правое поле задают как устанавливаемое автоматически; (2) если указанное местоположение находится целиком в правой половине пространства, занимаемого прямоугольником из линий сетки, то правое поле и ширину задают в явном виде, а левое поле задают как устанавливаемое автоматически; (3) если указанное местоположение охватывает среднюю линию пространства, занимаемого прямоугольником из линий сетки, то левое и правое поля задают в явном виде, а ширину задают как устанавливаемую автоматически; и (4) высоту и верхнее/нижнее поле обрабатывают аналогичным способом.
На Фиг.8 показан пример холста с сеткой, который является полезным для пояснения вышеописанных параметров, в частности, для объекта 50, расположенного в строке R2 в столбце С2. Фиксированные значения показаны сплошными линиями, а значения, устанавливаемые автоматически, показаны пунктирными линиями. Путем переключения между любыми из шести показанных указателей позиционирования (высота, ширина и поля) пользователь может изменять схему позиционирования и заменять любое значение, устанавливаемое автоматически, фактическим текущим фиксированным значением. При желании пользователь может также регулировать ограничивающий прямоугольник из линий сетки путем перемещения четырех внешних указателей привязки к другим желательным линиям сетки. При перемещении или при изменении размера объекта производят повторную оценку его нового положения и вычисляют новые значения в том случае, если пользователем в явном виде выражены какие-либо любые желания. При добавлении или удалении строки или столбца заново вычисляют соседние объекты в том случае, если пользователем в явном виде выражены какие-либо любые желания.
Приведенный в качестве примера способ проектирования содержит этапы: для объекта задают ограничивающий прямоугольник из линий сетки. Если верхний край расположен выше средней линии, то его верхнее поле является фиксированным. Если нижний край также расположен выше средней линии, то его высота является фиксированной, а нижнее поле задают динамически изменяющимся. Однако если нижний край расположен ниже средней линии, то его нижнее поле является фиксированным, а его высоту задают
/>
<!- Верхняя строка !-->
Заполнение скругленного прямоугольника (RoundedRect Fill)="красный" Столбец="0" Расстояние между столбцами (ColumnSpan)="3" Строка="0" Расстояние между строками (RowSpan)="1"
Левое поле="5" Правое поле="5" Ширина="Автоматически"
Верхнее поле="5" Нижнее поле="5" Высота="Автоматически"
/>
</Сетка>
Было упомянуто, что сначала поступает информация о столбцах и строках, а порядком дочерних элементов является тот порядок, в котором их рисуют. Кроме того, каждый объект имеет присоединенные свойства, описывающие прямоугольник сетки, внутри которого помещается объект. Вычисление полей осуществляют относительно указанного прямоугольника сетки. Может быть добавлена. дополнительная привязка к информации для управления поведения во время изменения размеров. Система, имеющая доступ к значениям линии сетки, выбирает прямоугольник относительно ограничивающего прямоугольника сетки и, желательно, с учетом границ сетки и, значений смещения.
Пример вычислительной среды
На Фиг.10 показан пример подходящей среды 800 вычислительной системы, в которой может быть реализовано настоящее изобретение. Среда 800 вычислительной системы является только лишь одним из примеров пригодной вычислительной среды и подразумевают, что этот пример не накладывает каких-либо ограничений в отношении объема использования или функциональных возможностей настоящего изобретения. Вычислительную среду 800 не следует истолковывать как каким-либо образом зависящую от какого-либо из компонентов, изображенных в приведенной в качестве примера операционной среде 800, либо от какой-либо их комбинации, или как среду, зависящую от наличия какого-либо из этих компонентов или какой-либо их совокупности.
Изобретение способно функционировать с многочисленными иными универсальными или специализированными средами или конфигурациями вычислительных систем. Примерами известных вычислительных систем, сред и/или конфигураций, которые могут быть пригодными для использования совместно с настоящим изобретением, являются, в том числе, персональные компьютеры, серверные компьютеры, карманные или портативные компьютерные устройства, многопроцессорные системы, системы на основе микропроцессоров, компьютерные приставки к телевизору, программируемые бытовые электронные приборы, сетевые персональные компьютеры, миникомпьютеры, большие универсальные вычислительные машины, распределенные вычислительные среды, содержащие любую из вышеупомянутых систем или устройств, и т.п., но эти примеры не являются ограничивающим признаком.
Изобретение может быть описано, в общем случае, применительно к исполняемым посредством компьютера командам, например программным модулям, исполняемым компьютером. Программные модули обычно содержат подпрограммы, программы, объекты, компоненты, структуры данных и т.д., выполняющие конкретные задачи или реализующие отдельные абстрактные типы данных. Изобретение также может быть реализовано в распределенных вычислительных средах, в которых выполнение задач осуществляют посредством удаленных устройств обработки, поддерживающих связь через сеть связи или через иную среду передачи данных. В распределенной вычислительной среде программные модули могут находиться как в локальных, так и в удаленных компьютерных запоминающих средах, в том числе в запоминающих устройствах для хранения данных.
Со ссылкой на Фиг.10, приведенная в качестве примера система, пригодная для реализации настоящего изобретения, содержит универсальное вычислительное устройство, выполненное в виде компьютера 810. В состав компьютера 810 могут входить, но не ограничиваться ими, следующие компоненты: процессор 820, системная память 830 и системная шина 821, соединяющая различные компоненты системы, в том числе системную память, с процессором 820. Системная шина 821 может представлять собой любую из нескольких типов шин различной архитектуры, в том числе шину памяти или контроллер памяти, шину периферийных устройств и локальную шину с использованием любой из множества архитектур шин. В качестве примеров, не являющихся ограничением, могут быть приведены архитектуры шин: шина архитектуры промышленного стандарта (ISA), шина микроканальной архитектуры (MCA), шина расширенной архитектуры промышленного стандарта (EISA), локальная шина стандарта Ассоциации по стандартам в области видеоэлектроники (VESA) и шина соединения периферийных компонентов (PCI) (также известная как шина расширения).
Компьютер 810 обычно содержит множество считываемых компьютером носителей информации. Считываемыми компьютером носителями информации могут быть любые существующие носители информации, к которым компьютер 810 может осуществлять доступ, и ими могут быть как энергозависимые, так и энергонезависимые носители информации, как сменные, так и стационарные носители информации. Считываемыми посредством компьютера носителями информации могут являться, например, но без ограничения, компьютерные запоминающие среды и среды связи. Компьютерными запоминающими средами являются, в том числе, энергозависимые и энергонезависимые, сменные и стационарные носители информации, реализованные любым способом или посредством любой технологии, которые служат для сохранения информации, например считываемых посредством компьютера команд, структур данных, программных модулей или иных данных. Компьютерными запоминающими средами являются, в том числе, оперативные запоминающие устройства (ОЗУ), постоянные запоминающие устройства (ПЗУ), электрически стираемые программируемые постоянные запоминающие устройства (ЭСППЗУ), флэш-память или запоминающие устройства на основе иных технологий, постоянные запоминающие устройства на компакт-дисках (CD-ROM), универсальные цифровые диски (DVD) или иные запоминающие устройства на оптических дисках, магнитные кассеты, магнитная лента, запоминающие устройства на магнитных дисках или иные магнитные запоминающие устройства, либо любые иные носители информации, которые могут быть использованы для запоминания желательной информации, а доступ к ним может быть осуществлен посредством компьютера 810, но эти примеры не являются ограничивающим признаком. Среда связи обычно обеспечивает реализацию считываемых посредством компьютера команд, структур данных, программных модулей или иных данных в виде модулированного информационного сигнала, например несущей, или посредством иного механизма транспортировки, и в ее состав входят любые средства передачи информации. Термин "модулированный информационный сигнал" означает сигнал, один или большее количество параметров которого устанавливают или изменяют таким образом, чтобы обеспечить кодирование информации в сигнале. Примерами среды связи являются, в том числе, средства проводной связи, например, но не ограничиваясь ими, сеть проводной связи или прямое проводное соединение, и средства беспроводной связи, например, средства акустической связи, радиосвязи, инфракрасной связи и иные средства беспроводной связи. Термин "считываемый компьютером носитель информации" также охватывает совокупности любых из вышеуказанных носителей и средств.
Системная память 830 содержит компьютерную запоминающую среду в виде энергозависимой и/или энергонезависимой памяти, например, постоянное запоминающее устройство (ПЗУ) 831 и оперативное запоминающее устройство (ОЗУ) 832. Хранение базовой системы 833 ввода-вывода (BIOS), содержащей базовые подпрограммы, помогающие осуществлять передачу информации между элементами в компьютере 810, например, во время запуска, обычно осуществляют в ПЗУ 831. ОЗУ 832 обычно содержит данные и/или программные модули, к которым процессор 820 имеет непосредственный доступ и/или которые обрабатываются им в текущий момент времени. В качестве примера, который не является ограничивающим, на Фиг.10 показана операционная система 834, прикладные программы 835, другие программные модули 836 и данные 837 программ.
Компьютер 810 может также содержать иные сменные/стационарные энергозависимые/энергонезависимые компьютерные запоминающие среды. Только в качестве примера на Фиг.10 показан накопитель 841 на жестких дисках, который осуществляет считывание информации со стационарного энергонезависимого магнитного носителя или ее запись на него, накопитель 851 на магнитных дисках, который осуществляет считывание информации со сменного энергонезависимого магнитного диска 852 или ее запись на него, и накопитель 855 на оптических дисках, который осуществляет считывание информации со сменного энергонезависимого оптического диска 856, например, с постоянного запоминающего устройства на компакт-диске (CD-ROM) или с иного оптического носителя информации, или запись на него. Другими сменными/стационарными энергозависимыми/энергонезависимыми компьютерными запоминающими средами, которые могут быть использованы в приведенной в качестве неограничивающего примера операционной среде, являются, в том числе, кассеты с магнитной лентой, платы флэш-памяти, универсальные цифровые диски, цифровая видеолента, твердотельное ОЗУ, твердотельное ПЗУ и т.п. Накопитель 841 на жестких дисках обычно подключен к системной шине 821 через интерфейс стационарных запоминающих устройств, например, интерфейс 840, а накопитель 851 на магнитных дисках и накопитель 855 на оптических дисках обычно подключены к системной шине 821 через интерфейс сменных запоминающих устройств, например интерфейс 850.
Вышеописанные накопители и соответствующие им компьютерные запоминающие среды, обеспечивают запоминание считываемых посредством компьютера команд, структур данных, программных модулей и других данных для компьютера 810. Например, на Фиг.10 накопитель 841 на жестких дисках изображен как устройство, обеспечивающее хранение операционной системы 844, прикладных программ 845, других программных модулей 846 и данных 847 программ. Следует отметить, что эти компоненты могут быть как идентичными соответственно операционной системе 834, прикладным программам 835, другим программным модулям 836 и данным 837 программ, так и отличаться от них. На этом чертеже операционной системе 844, прикладным программам 845, другим программным модулям 846 и данным 847 программ присвоены иные номера для пояснения того, что они представляют собой, по меньшей мере, иные копии. Ввод команд и информации в компьютер 810 пользователь может осуществлять посредством устройств ввода данных, например, клавиатуры 862 и координатно-указательного устройства 861, обычно именуемого манипулятором "мышь", шаровым манипулятором или сенсорной панелью. Другими устройствами ввода данных (не показаны) могут являться, в том числе, микрофон, джойстик, игровая клавишная панель, спутниковая антенна, сканер и т.п. Эти и другие устройства ввода данных часто соединяют с процессором 820 через интерфейс 860 ввода данных пользователя, подключенный к системной шине, но они могут быть также подключены через иной интерфейс и шины иной структуры, например, через параллельный порт, игровой порт или через универсальную последовательную шину (USB). К системной шине 821 через интерфейс, например, через видеоинтерфейс 890, также подключен монитор 891 или устройство визуального отображения иного типа. Помимо монитора компьютеры также могут содержать и другие периферийные устройства вывода, например громкоговорители 897 и принтер 896, которые могут быть подключены через интерфейс 895 периферийных устройств вывода.
Компьютер 810 может функционировать в сетевой среде с использованием логических соединений с одним или более удаленных компьютеров, например с удаленным компьютером 880. Удаленный компьютер 880 может представлять собой персональный компьютер, сервер, маршрутизатор, сетевой персональный компьютер, равноправное устройство или иной узел общей сети и обычно содержит многие или все из тех элементов, описание которых было приведено выше применительно к компьютеру 810, несмотря на то, что на Фиг.10 изображено всего лишь одно запоминающее устройство 881. Изображенные на чертеже логические соединения содержат локальную сеть 871 (ЛС) и глобальную сеть 873 (ГС), но также могут содержать и другие сети/шины. Такими широко распространенными сетевыми средами являются офисные сети, компьютерные сети масштаба предприятия, внутрикорпоративные сети (интрасети) и сеть Интернет.
При использовании компьютера 810 в среде локальной сети (ЛС) его соединяют с локальной сетью 871 через сетевой интерфейс или адаптер 870. При использовании компьютера 810 в среде глобальной сети он обычно содержит модем 872 или иное средство установления связи через глобальную сеть 873, которой является, например, сеть Интернет. Модем 872, который может быть внутренним или внешним, может быть соединен с системной шиной 821 через интерфейс 860 ввода данных пользователя или иное надлежащее устройство. В сетевом окружении сохранение программных модулей, изображенных на чертеже как относящихся к компьютеру 810, или их частей может быть осуществлено в удаленном запоминающем устройстве. В качестве примера, не являющегося ограничивающим, на Фиг.10 изображено, что удаленные прикладные программы 885 хранятся в запоминающем устройстве 881. Понятно, что показанные на чертеже сетевые соединения приведены лишь в качестве примера, и что может быть использовано иное средство установления канала связи между компьютерами.
Как было упомянуто выше, несмотря на то что описание приведенных в качестве примеров вариантов осуществления настоящего изобретения было изложено применительно к различным вычислительным устройствам, основные концепции могут быть применены для любого вычислительного устройства или системы.
Различные описанные здесь способы могут быть реализованы посредством аппаратного или программного обеспечения либо посредством их совокупности в тех случаях, когда это является целесообразным. Таким образом, способы и устройства по настоящему изобретению либо некоторые его аспекты или части могут быть выполнены в виде программного кода (то есть команд), реализованного в материальных носителях информации, например, на гибких дискетах, постоянных запоминающих устройствах на компакт-дисках (CD-ROM), накопителях на жестких дисках или на любом ином считываемом компьютером носителе информации, в котором после загрузки и выполнения программного кода в машине, которой является, например, компьютер, эта машина становится устройством, обеспечивающим практическую реализацию настоящего изобретения. В том случае когда выполнение программного кода осуществляют в программируемых компьютерах, вычислительное устройство обычно содержит процессор, считываемый процессором носитель информации (включая энергозависимое и энергонезависимое запоминающие устройства и/или запоминающие элементы), по меньшей мере, одно устройство ввода данных и, по меньшей мере, одно устройство вывода данных. При желании программа(ы) может быть реализована на ассемблере или на машинном языке. В любом случае язык программирования может являться компилируемым или интерпретируемым языком и может быть связан с вариантами аппаратной реализации.
Способы и устройства из настоящего изобретения могут быть также осуществлены с использованием средств обмена информацией, реализованных в виде программного кода, передаваемого через какую-либо среду передачи информации, например, по электрическим проводам или по кабелю, по волоконно-оптическому кабелю или любым иным способом передачи, в котором после приема, загрузки и выполнения программного кода машиной, например стираемым программируемым постоянным запоминающим устройством (СППЗУ), матрицей логических элементов, программируемым логическим устройством (ПЛУ), клиентским компьютером, видеомагнитофоном или подобным устройством, эта машина становится устройством, способным обеспечивать практическую реализацию настоящего изобретения. При реализации в универсальном процессоре объединение программного кода с процессором приводит к созданию уникального устройства, функционирующего таким образом, что оно обеспечивает функциональные возможности настоящего изобретения. Кроме того, любые способы сохранения данных, используемые в настоящем изобретении, всегда могут представлять собой совокупность аппаратных и программных средств.
Несмотря на то что описание настоящего изобретения было приведено применительно к предпочтительным вариантам его осуществления, изображенным на различных чертежах, следует понимать, что могут быть использованы и иные аналогичные варианты его осуществления либо вышеописанные варианты осуществления могут быть видоизменены и дополнены таким образом, чтобы обеспечить выполнение той же самой функции настоящего изобретения, не выходя за пределы его сущности. Поэтому настоящее изобретение не следует ограничивать каким-либо одним вариантом его осуществления, но следует толковать в расширительном смысле в соответствии с объемом патентных притязаний, определяемым приложенной формулой изобретения.