Способ и компьютерное устройство для динамической индексации и загрузки кодов модулей

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

 

ОБЛАСТЬ ТЕХНИКИ

[0001] Настоящая технология относится к способу и системе динамической индексации и загрузки кодов модулей.

УРОВЕНЬ ТЕХНИКИ

[0002] В настоящее время при загрузке программных кодов на компьютерное устройство для выполнения действия сервер часто должен загружать на компьютерное устройство большое количество кодов модулей, причем часть этих кодов модулей может даже не понадобиться для выполнения конкретного действия, запрошенного пользователем.

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

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

[0005] Динамическая загрузка, с другой стороны, относится к загрузке одного или нескольких модулей во время выполнения программы на основе явных программных инструкций компьютерной программы. Например, компьютерная игра, которая позволяет пользователю играть либо в покер, либо в пасьянс солитер, может номинально требовать оба модуля: и модуль покера, и модуль солитера для успешной обработки всех потенциальных пользовательских взаимодействий, даже когда пользователь может однозначно пожелать играть только в покер.

[0006] При статическом подходе и модуль покера, и модуль солитера будут загружены на локальный носитель информации компьютерного устройства при исходной загрузке компьютерной игры. Альтернативно, при динамическом подходе, компьютерная игра может быть запрограммирована изначально не загружать ни модуль покера, ни модуль солитера, а непосредственно загружать модуль покера при достижении программой состояния, когда пользователь выбрал игру в покер.

[0007] И статическая, и динамическая загрузки имеют свои достоинства и недостатки. В случае статической загрузки главное достоинство заключается в гарантии того, что все модули, которые могут потребоваться, уже доступны на компьютерном устройстве, что обеспечивает отклик компьютерной программы; однако это преимущество оборачивается недостатком: потенциально большим трафиком данных, поскольку автоматически загружаются все модули, что потенциально включает в себя некоторые (или многие) модули, чьи программные инструкции так и не выполняются. Напротив, динамичная загрузка предоставляет преимущество потенциально меньшего трафика. Однако при динамической загрузке может быть необходимо предварительно загружать индексы кодов модулей (карты или перечисления доступных модулей для конкретного программного обеспечения). Весь индекс для сложного программного интерфейса, например, может быть относительно большим, поскольку может отражать множество модульных зависимостей, разрешений на данные и т.д.

[0008] В патенте США US 8,626,919 В1 раскрыта система, которая выполняет приложение. Во время выполнения система получает список ресурсов, связанный с приложением и хранящий набор ресурсов, включающих в себя модуль исходного кода из списка ресурсов, посредством передачи данных по сетевому соединению, причем ресурсы хранятся в постоянном локальном хранилище. Приложение далее загружается в веб-браузере и загружает модуль исходного кода в безопасную среду исполнения. Далее, приложение выполняется независимо от сетевого соединения, используя модуль исходного кода и сохраненные ресурсы.

[0009] В патенте США US 8,676,978 В2 раскрыт способ, включающий в себя доступ к списку ресурсов, связанному со структурированным документом, загруженным клиентским приложением, выполняющемся на клиентском устройстве; идентификацию первого набора ресурсов, на которые есть ссылки в списке ресурсов, и которые хранятся на носителе информации клиентского устройства; извлечение первого набора ресурсов из носителя информации; загрузку первого набора ресурсов в модельное представление структурированного документа, созданного клиентским приложением отрисовки документа для отрисовки клиентским приложением отрисовки документа; идентификацию второго набора ресурсов, на которые есть ссылки в списке ресурсов, и которые не хранятся на носителе информации клиентского устройства; формулировка и передача одного или нескольких запросов на второй набор ресурсов; получение второго набора ресурсов в ответ на запросы; загрузка второго набора ресурсов в модельное представление для отрисовки клиентским приложением отрисовки документа.

[0010] В патенте США US 2014/0096110 A1 раскрыт способ, система и/или компьютерный программный продукт для управления набором модулей программного обеспечения в среде исполнения программного обеспечения, где набор модулей программного обеспечения имеет одну или несколько динамичных зависимостей и одну или несколько статических зависимостей. Идентифицируется каждый модуль программного обеспечения, имеющий статическую зависимость от другого модуля программного обеспечения в наборе модулей программного обеспечения. Идентифицируется каждая подгруппа набора модулей программного обеспечения, которая взаимозависима от другой подгруппы из-за статических зависимостей между подгруппами. В ответ на изменение состояния модуля в идентифицированной подгруппе, изменения в состоянии применяются ко всем модулям в идентифицированной подгруппе.

РАСКРЫТИЕ ИЗОБРЕТЕНИЯ

[0011] Задачей предлагаемой технологии является минимизация по меньшей мере некоторых недостатков, присущих известному уровню техники.

[0012] Одним предметом настоящей технологии является компьютерный способ загрузки кодов модулей, причем коды модулей запрашиваются компьютерным устройством для выполнения действия; способ выполняется на компьютерном устройстве. Способ включает в себя: получение компьютерным устройством запроса на выполнение действия, которое можно выполнить с использованием кода первого модуля, ссылка кода первого модуля указывает положение кода первого модуля, записанное в первом предварительно определенном индексе; получение из первого предварительно определенного индекса: ссылки кода первого модуля, которая указывает на положение кода первого модуля, и указания того, что выполнение кода первого модуля требует кода второго модуля, и указания второго предварительно определенного индекса, включающего в себя ссылку кода второго модуля, которая указывает положение кода второго модуля, поддерживающего выполнение кода первого модуля; получение из второго предварительно определенного индекса ссылки кода второго модуля; на основе ссылки кода первого модуля получение кода первого модуля из положения кода первого модуля; на основе ссылки кода второго модуля получение кода второго модуля из положения кода второго модуля.

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

[0014] В некоторых вариантах осуществления технологии способ дополнительно включает в себя сохранение на компьютерном устройстве указания первого предварительно определенного индекса, который включает в себя ссылку кода первого модуля, указывающую положение кода первого модуля.

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

[0016] В некоторых вариантах осуществления технологии первый предварительно определенный индекс является любым из: первым предварительно определенным индексом, сохраненным удаленно, или по меньшей мере частью первого предварительно определенного индекса, сохраненной локально; а второй предварительно определенный индекс является любым из: вторым предварительно определенным индексом, сохраненным удаленно, или по меньшей мере частью второго предварительно определенного индекса, сохраненной локально.

[0017] В некоторых вариантах осуществления технологии по меньшей мере часть первого предварительно определенного индекса, сохраненная локально, является любой из: модифицированной версией по меньшей мере части первого предварительно определенного индекса, сохраненной удаленно, или точной копией по меньшей мере части первого предварительно определенного индекса, сохраненной удаленно; а по меньшей мере часть второго предварительно определенного индекса, сохраненная локально является любой из: модифицированной версией по меньшей мере части второго предварительно определенного индекса, сохраненной удаленно, или точной копией по меньшей мере части второго предварительно определенного индекса, сохраненной удаленно.

[0018] В некоторых вариантах осуществления технологии перед получением по из меньшей мере части первого предварительно определенного индекса любой из: (i) ссылки на кода первого модуля или (ii) указания второго предварительно определенного индекса, способ также включает в себя осуществление проверки доступности по меньшей мере части первого предварительно определенного индекса, сохраненной локально, и в ответ на доступность по меньшей мере части первого предварительно определенного индекса, сохраненной локально, способ также включает в себя использование компьютерным устройством, одного из: (i) первого предварительно определенного индекса, сохраненного удаленно, или (ii) по меньшей мере части первого предварительно определенного индекса, сохраненной локально, как источника по меньшей мере одного пункта, выбранного из списка: ссылки кода первого модуля, указания второго предварительно определенного индекса; в ответ на недоступность по меньшей мере части первого предварительно определенного индекса, сохраненной локально, способ также включает в себя использование компьютерным устройством первого предварительно определенного индекса, сохраненного удаленно, как источника ссылки кода первого модуля и указания второго предварительно определенного индекса.

[0019] В некоторых вариантах осуществления технологии в ответ на доступность по меньшей мере части первого предварительно определенного индекса, сохраненной локально, использование одного из: (i) первого предварительно определенного индекса, сохраненного удаленно, или (ii) по меньшей мере части первого предварительно определенного индекса, сохраненной локально, осуществляется после выбора соответствующего одного пункта из: (i) первого предварительно определенного индекса, сохраненного удаленно, или (ii) по меньшей мере части первого предварительно определенного индекса, сохраненной локально, причем выбор осуществляется с помощью выполнения следующих этапов: определения параметра устаревания по меньшей мере части первого предварительно определенного индекса, сохраненной локально, сравнения параметра устаревания по меньшей мере части первого предварительно определенного индекса, сохраненной локально, с параметром предварительно определенного порогового значения устаревания, причем параметр предварительно определенного порогового значения устаревания указывает на то, является ли по меньшей мере часть соответствующего индекса, сохраненной локально, устаревшей, и в ответ на то, что параметр устаревания по меньшей мере части первого предварительно определенного индекса, сохраненной локально, превышает параметр предварительно определенного порогового значения устаревания, использование первого предварительно определенного индекса, сохраненного удаленно, как источника по меньшей мере одного пункта, выбранного из списка: ссылки кода первого модуля или указания второго предварительно определенного индекса; а в ответ на то, что параметр устаревания по меньшей мере части первого предварительно определенного индекса, сохраненной локально, не превышает параметр предварительно определенного порогового значения устаревания, использование по меньшей мере части первого предварительно определенного индекса, сохраненной локально, как источника по меньшей мере одного пункта, выбранного из списка: ссылки кода первого модуля или указания второго предварительно определенного индекса.

[0020] В некоторых вариантах осуществления технологии положение кода первого модуля является любым пунктом, выбранным из списка: локальный носитель информации или удаленный носитель информации, а положение кода второго модуля является любым пунктом, выбранным из списка: локальный носитель информации или удаленный носитель информации.

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

[0022] В некоторых вариантах осуществления технологии первый предварительно определенный индекс и второй предварительно определенный индекс реализованы как единственный третий предварительно определенный индекс, и получение из любого пункта, выбранного из списка: по меньшей мере части первого предварительно определенного индекса или по меньшей мере части второго предварительно определенного индекса является получением по меньшей мере из части третьего предварительно определенного индекса.

[0023] В некоторых вариантах осуществления технологии третий предварительно определенный индекс является любым пунктом, выбранным из: третьего предварительно определенного индекса, сохраненного удаленно, или по меньшей мере части третьего предварительно определенного индекса, сохраненной локально.

[0024] В некоторых вариантах осуществления технологии по меньшей мере части третьего предварительно определенного индекса, сохраненной локально является любым пунктом из списка: модифицированной версией по меньшей мере части третьего предварительно определенного индекса, сохраненного удаленно, или точной копией по меньшей мере части третьего предварительно определенного индекса, сохраненного удаленно.

[0025] В некоторых вариантах осуществления технологии получение компьютерным устройством запроса на выполнение действия является получением запроса, инициированного кодом третьего модуля.

[0026] В некоторых вариантах осуществления технологии компьютерное устройство связано с пользователем, и получение компьютерным устройством запроса на выполнение действия является получением запроса от пользователя.

[0027] Другим объектом настоящей технологии является компьютерное устройство. Компьютерное устройство включает в себя носитель информации. Компьютерное устройство включает в себя процессор, соединенный с носителем информации. Процессор выполнен с возможностью получать доступ к машиночитаемым командам, выполнение которых обеспечивает осуществление процессором: получения компьютерным устройством запроса на выполнение действия, которое можно выполнить с использованием кода первого модуля, ссылка кода первого модуля указывает положение кода первого модуля, записанное в первом предварительно определенном индексе; получения из первого предварительно определенного индекса: ссылки кода первого модуля, которая указывает положение кода первого модуля, и указания того, что выполнение кода первого модуля требует кода второго модуля, и указания второго предварительно определенного индекса, включающего в себя ссылку кода второго модуля, которая указывает положение кода второго модуля, поддерживающего выполнение кода первого модуля; получения из второго предварительно определенного индекса ссылки кода второго модуля; на основе ссылки кода первого модуля получения кода первого модуля из положения кода первого модуля; на основе ссылки кода второго модуля получения кода второго модуля из положения кода второго модуля.

[0028] В некоторых вариантах осуществления процессор также выполнен с дополнительной возможностью выполнять действия с помощью запуска кода первого модуля и кода второго модуля.

[0029] В некоторых вариантах осуществления технологии процессор выполнен с дополнительной возможностью сохранять на компьютерном устройстве указание первого предварительно определенного индекса, который включает в себя ссылку кода первого модуля, указывающую положение кода первого модуля.

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

[0031] В некоторых вариантах осуществления технологии первый предварительно определенный индекс является любым из: первого предварительно определенного индекса, сохраненного удаленно, или по меньшей мере частью первого предварительно определенного индекса, сохраненной локально; а второй предварительно определенный индекс является любым из: вторым предварительно определенным индексом, сохраненным удаленно, или по меньшей мере частью второго предварительно определенного индекса, сохраненной локально.

[0032] В некоторых вариантах осуществления технологии по меньшей мере часть первого предварительно определенного индекса, сохраненная локально, является любой из: модифицированной версией по меньшей мере части первого предварительно определенного индекса, сохраненного удаленно или точной копией по меньшей мере части первого предварительно определенного индекса, сохраненного удаленно; а по меньшей мере часть второго предварительно определенного индекса, сохраненная локально является любой из: модифицированной версией по меньшей мере части второго предварительно определенного индекса, сохраненного удаленно или точной копией по меньшей мере части второго предварительно определенного индекса, сохраненной удаленно.

[0033] В некоторых вариантах осуществления технологии процессор также выполнен с возможностью перед получением по меньшей мере из части первого предварительно определенного индекса любой из: (i) ссылки на кода первого модуля или (ii) указания второго предварительно определенного индекса, осуществлять проверку доступности по меньшей мере части первого предварительно определенного индекса, сохраненной локально, и в ответ на доступность по меньшей мере части первого предварительно определенного индекса, сохраненной локально, использовать один пункт из списка: (i) первый предварительно определенный индекс, сохраненный удаленно, или (ii) по меньшей мере часть первого предварительно определенного индекса, сохраненную локально, как источник по меньшей мере одного пункта, выбранного из списка: ссылки кода первого модуля, указания второго предварительно определенного индекса; в ответ на недоступность по меньшей мере части первого предварительно определенного индекса, сохраненной локально, использовать первый предварительно определенный индекс, сохраненный удаленно, как источник ссылки кода первого модуля и указания второго предварительно определенного индекса.

[0034] В некоторых вариантах осуществления технологии в ответ на доступность по меньшей мере части первого предварительно определенного индекса, сохраненной локально, использование одного из: (i) первого предварительно определенного индекса, сохраненного удаленно, или (ii) по меньшей мере части первого предварительно определенного индекса, сохраненной локально, осуществляется после выбора соответствующего одного пункта из: (i) первого предварительно определенного индекса, сохраненного удаленно, или (ii) по меньшей мере части первого предварительно определенного индекса, сохраненной локально, причем выбор осуществляется с помощью выполнения следующих этапов: определения параметра устаревания по меньшей мере части первого предварительно определенного индекса, сохраненной локально, сравнения параметра устаревания по меньшей мере части первого предварительно определенного индекса, сохраненной локально, с параметром предварительно определенного порогового значения устаревания, причем параметр предварительно определенного порогового значения устаревания указывает на то, является ли по меньшей мере часть соответствующего индекса, сохраненной локально, устаревшей, и в ответ на то, что параметр устаревания по меньшей мере части первого предварительно определенного индекса, сохраненной локально, превышает параметр предварительно определенного порогового значения устаревания, использование первого предварительно определенного индекса, сохраненного удаленно как источника по меньшей мере одного пункта, выбранного из списка: ссылки кода первого модуля или указания второго предварительно определенного индекса; и в ответ на то, что параметр устаревания по меньшей мере части первого предварительно определенного индекса, сохраненной локально, не превышает параметр предварительно определенного порогового значения устаревания, использование по меньшей мере части первого предварительно определенного индекса, сохраненной локально, как источника по меньшей мере одного пункта, выбранного из списка: ссылки кода первого модуля или указания второго предварительно определенного индекса.

[0035] В некоторых вариантах осуществления технологии положение кода первого модуля является любым пунктом, выбранным из списка: локальный носитель информации или удаленный носитель информации, а положение кода второго модуля является любым пунктом, выбранным из списка: локальный носитель информации или удаленный носитель информации.

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

[0037] В некоторых вариантах осуществления технологии первый предварительно определенный индекс и второй предварительно определенный индекс реализованы как единственный третий предварительно определенный индекс, и получение из любого пункта, выбранного из списка: по меньшей мере части первого предварительно определенного индекса или по меньшей мере части второго предварительно определенного индекса является получением по меньшей мере из части третьего предварительно определенного индекса.

[0038] В некоторых вариантах осуществления технологии третий предварительно определенный индекс является любым пунктом, выбранным из: третьего предварительно определенного индекса, сохраненного удаленно, или по меньшей мере части третьего предварительно определенного индекса, сохраненной локально.

[0039] В некоторых вариантах осуществления технологии по меньшей мере части третьего предварительно определенного индекса, сохраненной локально, является любым пунктом из списка: модифицированной версией по меньшей мере части третьего предварительно определенного индекса, сохраненного удаленно, или точной копией по меньшей мере части третьего предварительно определенного индекса, сохраненного удаленно.

[0040] В некоторых вариантах осуществления технологии получение компьютерным устройством запроса на выполнение действия является получением запроса, инициированного кодом третьего модуля.

[0041] В некоторых вариантах осуществления технологии компьютерное устройство связано с пользователем, и получение компьютерным устройством запроса на выполнение действия является получением запроса от пользователя.

[0042] В контексте настоящего описания «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для данной технологии. В контексте настоящей технологии использование выражения «сервер» не означает, что каждая задача (например, полученные команды или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».

[0043] В контексте настоящего описания, если конкретно не указано иное, «информация» включает в себя любую информацию любого типа, которую можно хранить на носителе информации. Таким образом, информация включает в себя (но не ограничивается) индексы любого типа, базы данных, массивы информации, файлы любого типа, аудиовизуальные произведения (фотографии, видео, звукозаписи, презентации и т.д.), данные (картографические данные, данные о местоположении, цифровые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы и т.д.

[0044] В контексте настоящего описания, если конкретно не указано иное, «компонент» подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной(ых) указанной(ых) функции(й).

[0045] В контексте настоящего описания, если конкретно не указано иное, термин «носитель информации» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д.

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

[0047] В контексте настоящего описания, если конкретно не указано иное, термин «предварительно определенный индекс» обозначает индекс кода модуля, включающий в себя одну ссылку на код модуля или множество ссылок на коды модулей, причем ссылки на коды модулей указывают положения кодов модулей на одном или нескольких носителях информации. Предварительно определенный индекс может быть осуществлен, в качестве неограничивающих примеров, как карта или перечисление, набор ссылок на ресурсы и т.д. Предварительно определенный индекс может быть частью множества предварительно определенных индексов. Различные предварительно определенные индексы могут храниться на одном или нескольких носителях информации. Например, первый предварительно определенный индекс может храниться на первом носителе информации на первом сервере, а второй предварительно определенный индекс также может храниться на первом носителе информации на первом сервере, или он может храниться на втором носителе информации на втором сервере. Словосочетание «предварительно определенный» в выражении «предварительно определенный индекс» должно обозначать, что пользователь, делающий запрос на выполнение действия, которое может быть выполнено с использованием конкретного кода модуля, может указать конкретный, т.е. предварительно определенный индекс из множества индексов, который включает в себя ссылку на этот конкретный код модуля. Предварительно определенный индекс также включает в себя указание на то, что выполнение кода этого конкретного модуля требует кода второго модуля. В таком случае предварительно определенный индекс может содержать в себе ссылку на код второго модуля, или, если в этом предварительно определенном коде нет ссылки на код второго модуля, предварительно определенный индекс может включать в себя указание на второй предварительно определенный индекс, который включает в себя ссылку на код второго модуля. Предварительно определенные индексы, или их части, могут быть загружены компьютерным устройством и сохранены на локальном носителе информации. По меньшей мере части предварительно определенных индексов, сохраненные локально, могут быть модифицированы компьютерным устройством для отражения того факта, что локальная копия кода модуля является доступной, например, по меньшей мере части предварительно определенных индексов, сохраненные локально, могут включать в себя ссылки на коды модулей, хранящиеся локально и/или удаленно.

[0048] В контексте настоящего описания, если конкретно не указано иное, термин «ссылка на код модуля» обозначает ссылку, указывающую положение кода конкретного модуля на конкретном носителе информации.

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

[0050] Каждый вариант осуществления настоящей технологии преследует по меньшей мере одну из вышеупомянутых целей и/или объектов, но наличие всех не является обязательным. Следует иметь в виду, что некоторые объекты данной технологии, полученные в результате попыток достичь вышеупомянутой цели, могут не удовлетворять этой цели и/или могут удовлетворять другим целям, отдельно не указанным здесь.

[0051] Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления настоящей технологии станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0052] Для лучшего понимания настоящей технологии, а также других ее аспектов и характерных черт сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:

[0053] На Фиг. 1 представлена принципиальная схема системы, реализованной в соответствии с вариантами осуществления настоящей технологии, не ограничивающими ее объем.

[0054] На Фиг. 2 представлена блок-схема компьютерного способа загрузки кодов модулей, запрашиваемых компьютерным устройством для выполнения действия, способ реализуется в соответствии с вариантами осуществления настоящей технологии, не ограничивающими ее объем.

[0055] На Фиг. 3 представлена принципиальная схема графического пользовательского интерфейса и иллюстрация определенных аспектов способа, причем и принципиальная схема графического пользовательского интерфейса и иллюстрация определенных аспектов способа с Фиг. 2 реализуются в соответствии с вариантами осуществления настоящей технологии, не ограничивающими ее объем.

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ

[0056] На Фиг. 1 представлена схема системы 100, выполненная в соответствии с вариантами осуществления настоящей технологии, не ограничивающими ее объем. Важно иметь в виду, что нижеследующее описание системы 100 представляет собой описание показательных вариантов осуществления настоящей технологии. Таким образом, все последующее описание представлено только как описание показательного примера настоящей технологии. Это описание не предназначено для определения объема или установления границ настоящей технологии. Некоторые полезные примеры модификаций системы 100 также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящей технологии. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где это еще не было сделано, т.е. там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого элемента настоящей технологии. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 100 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления настоящей технологии, и в подобных случаях представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящей технологии будут обладать гораздо большей сложностью.

[0057] Система 100 включает в себя первое удаленное компьютерное устройство, которое в этом варианте осуществления технологии является первым сервером 102. Первый сервер 102 может представлять собой обычный компьютерный сервер. В примере варианта осуществления настоящей технологии, первый сервер 102 может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Излишне говорить, что первый сервер 102 может представлять собой любое другое подходящее аппаратное и/или прикладное программное, и/или системное программное обеспечение или их комбинацию. В представленном варианте осуществления настоящей технологии, не ограничивающем ее объем, первый сервер 102 является одиночным сервером. В других вариантах осуществления настоящей технологии, не ограничивающих ее объем, функциональность первого сервера 102 может быть разделена, и может выполняться с помощью нескольких серверов.

[0058] Варианты осуществления первого сервера 102 хорошо известны. Таким образом, достаточно отметить, что первый сервер 102 содержит, среди прочего, интерфейс 106 сетевой связи (например, модем, сетевую карту и тому подобное) для двусторонней связи по сети ПО передачи данных; и процессор 108, соединенный с интерфейсом 106 сетевой связи и носителем 104 информации, причем процессор 108 выполнен с возможностью выполнять различные процедуры, включая те, что описаны ниже. С этой целью процессор 108 может иметь доступ к машиночитаемым инструкциям, хранящимся на носителе 104 информации, выполнение которых инициирует процессор 108 выполнять различные описанные здесь процедуры.

[0059] Первый сервер 102 включает в себя носитель 104 информации, который может использоваться первым сервером 102. В общем случае носитель 104 информации может быть выполнен как носитель любого характера и вида, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д. а также их комбинацию. Носитель 104 информации выполнен с возможностью хранить информацию, включая машиночитаемые инструкции и другие данные, включая, но не ограничиваясь, коды модулей и предварительно определенные индексы.

[0060] Носитель 104 информации может хранить первый предварительно определенный индекс 104, изображенный на Фиг. 1 и Фиг. 3. Первый предварительно определенный индекс 130 является индексом, включающим в себя множество ссылок на коды модулей, включая первую ссылку 316 кода модуля, указывающую положение кода первого модуля. Положение кода первого модуля может быть на любом носителе информации; оно включает в себя (но не ограничивается) носитель 104 информации.

[0061] Первый предварительно определенный индекс 130 может также содержать в себе список зависимостей, указывающих на то, что выполнение кода модуля, на который ссылается первый предварительно определенный индекс 130, требует кода другого модуля. Первый предварительно определенный индекс 130 может включать в себя указание 318 того, что выполнение кода первого модуля требует кода второго модуля (указание 318, изображенное на Фиг. 3), и указание 320 второго предварительно определенного индекса 140, который включает в себя ссылку 324 кода второго модуля, указывающую на положение кода второго модуля, причем код второго модуля поддерживает выполнение кода первого модуля.

[0062] Первый предварительно определенный индекс 130 может быть частью множества предварительно определенных индексов. Различные предварительно определенные индексы могут храниться на одном или нескольких носителях информации. Например, первый предварительно определенный индекс 130 и второй предварительно определенный индекс 140 оба могут храниться на единственном носителе информации на удаленном компьютерном устройстве, например, на сервере, или они могут храниться на различных носителях информации. Аналогичным образом, носитель 104 информации может хранить более чем один предварительно определенный индекс.

[0063] Носитель 140 информации может хранить машиночитаемые инструкции, которые распоряжаются управлением, загрузкой, обновлениями и модификациями предварительно определенных индексов, а также загрузкой на другие компьютерные устройства. Более конкретно, машиночитаемые инструкции, сохраненные на носителе 104 информации, могут инициировать индексирование процессором 108 положений кодов модулей, и сохранение информации о зависимостях кодов модулей.

[0064] Более конкретно, машиночитаемые инструкции, сохраненные на носителе 104 информации, могут инициировать получение процессором 108 кодов модулей, сохранение кодов модулей и сохранение информации о зависимостях кодов модулей. Зависимости кодов модулей могут существовать, когда для выполнения кода первичного модуля необходим код поддерживающего модуля. Носитель 104 информации может хранить коды более чем одного модуля.

[0065] Носитель 104 информации может хранить машиночитаемые инструкции, которые при выполнении инициируют получение процессором 108 запроса на выполнение действия, причем действие выполняется с использованием кода по меньшей мере одного модуля (кода первого модуля). Запрос на выполнение действия может быть получен, например, из кода другого модуля. В другом примере запрос на выполнение действия может быть получен, например, с компьютерного устройства 122 по сети 110 передачи данных. Компьютерное устройство 122, которое будет описано подробнее ниже, может отправлять запрос на выполнение действия в ответ на получение указания от пользователя 121 компьютерного устройства 122 на желание пользователя 121 осуществить действие.

[0066] Сохраненные на носителе 104 информации машиночитаемые инструкции при выполнении могут также инициировать отправку процессором 108, в ответ на получение запроса на выполнение действия, на компьютерное устройство 122 ссылки кода первого модуля, указывающей положение кода первого модуля. Процессор 128 компьютерного устройства 122 может извлекать ссылку кода первого модуля из соответствующего предварительно определенного индекса (первый предварительно определенный индекс 130).

[0067] Исполнение кода первого модуля может поддерживаться или запускаться кодом другого модуля (кодом второго модуля). В этом случае машиночитаемые инструкции могут инициировать проверку процессором 108 первого предварительного определенного индекса 130 на наличие ссылки 324 кода второго модуля, указывающей положение кода второго модуля. В ответ на наличие ссылки 324 кода второго модуля в первом предварительно определенном индексе 130, машиночитаемые инструкции при их исполнении могут инициировать отправку процессором 108 ссылки 324 кода второго модуля на компьютерное устройство 122. В ответ на отсутствие ссылки 324 кода второго модуля в первом предварительно определенном индексе 130, машиночитаемые инструкции при их исполнении могут инициировать отправку процессором 108 указания 318 того, что выполнение кода первого модуля требует кода второго модуля, на компьютерное устройство 122. Кроме того, машиночитаемые инструкции могут инициировать отправку процессором 108 указания 320 второго предварительного определенного индекса 140, который включает в себя ссылку 324 кода второго модуля, указывающую положение кода второго модуля. И второй предварительно определенный индекс 140, и код второго модуля не должны храниться на том же самом носителе 104 информации, что и первый предварительно определенный индекс 130 и код первого модуля. Например, код второго модуля и второй предварительно определенный индекс 140 могут храниться на носителе 114 информации второго сервера 112, также изображенного на Фиг. 1.

[0068] Система 100 также включает в себя второе удаленное компьютерное устройство, которое в этом варианте осуществления технологии является вторым сервером 112. Второй сервер 112 может быть осуществлен как обычный компьютерный сервер, аналогичный первому серверу 102, включающий в себя интерфейс 116 сети передачи данных, носитель 114 информации и процессор 118. Следовательно второй сервер 112 не будет описан подробно. Будет только отмечено, что он может хранить аналогичную информацию, включающую в себя программные инструкции, предварительно определенные индексы, коды модулей и т.д. Носитель 114 информации включает в себя, среди прочего, второй предварительно определенный индекс 140, включающий в себя ссылку 324 кода второго модуля, указывающую положение кода второго модуля. Второй предварительно определенный индекс 140 может быть реализован, в основном, аналогично первому предварительно определенному индексу 130. Носитель 114 информации может хранить множество кодов модулей, включая код второго модуля. Носитель 114 информации может хранить более чем один предварительно определенный индекс и/или коды более чем одного модуля.

[0069] Первый сервер 102 и второй сервер 112, изображенные на Фиг. 1, взаимно соединены по сети 110 передачи данных. В некоторых вариантах осуществления настоящей технологии, не ограничивающих ее объем, сеть 110 передачи данных может представлять собой Интернет. В других вариантах осуществления настоящей технологии сеть 110 передачи данных может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п.

[0070] Система 100 также включает в себя компьютерное устройство 122. Компьютерное устройство 122 может быть связано с пользователем 121. Пользователь 121 может выполнять действия, которые могут быть интерпретированы компьютерным устройством 122 как запросы на выполнение действия. Следует отметить, что тот факт, что компьютерное устройство 122 может быть связано с пользователем 121, не подразумевает какого-либо конкретного режима работы.

[0071] Компьютерное устройство 122 может быть выполнено как DellTM Precision Т1700 МТ CA033PT170011RUWS PC с процессором 128 Intel® Хеоn™, частотой 3300 МГц, видеокартой nVIDIA Quadro K2000, и операционной системой Windows 7® Pro 64-bit, носителем 124 информации, интерфейсом 126 сети передачи данных (например, модемом, сетевой картой и так далее) для двустороннего обмена данными по сети 110 передачи данных. Процессор 108 соединен с интерфейсом 106 сети передачи данных и носителем 124 информации. Однако, как будет понятно специалистам в данной области техники, варианты осуществления компьютерного устройства 122 никак конкретно не ограничены. Компьютерное устройство 122 может быть реализовано в виде персонального компьютера (настольного компьютера, ноутбука, нетбука и т.п.), беспроводного устройства передачи данных (мобильного телефона, смартфона, планшета и т.п.), а также другого оборудования.

[0072] Компьютерное устройство 122 соединено с сетью 110 передачи данных через линию передачи данных (отдельно не пронумерована). В некоторых вариантах осуществления настоящей технологии, не ограничивающих ее объем, сеть 110 передачи данных может представлять собой Интернет. В других вариантах осуществления настоящей технологии сеть 110 передачи данных может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п.

[0073] Реализация линии передачи данных не ограничена и будет зависеть от того, какое компьютерное устройство 122 используется. В качестве примера, но не ограничения, в данных вариантах осуществления настоящей технологии в случаях, когда компьютерное устройство 122 представляет собой беспроводное устройство связи (например, смартфон), линия 102 передачи данных представляет собой беспроводную сеть передачи данных (например, среди прочего, линия передачи данных 3G, линия передачи данных 4G, беспроводной интернет Wireless Fidelity или коротко WiFi®, Bluetooth® и т.п.). В тех примерах, где компьютерное устройство 122 представляет собой портативный компьютер, линия передачи данных может быть как беспроводной (беспроводной интернет Wireless Fidelity или коротко WiFi®, Bluetooth® и т.п.) так и проводной (соединение на основе сети Ethernet).

[0074] Важно иметь в виду, что варианты реализации компьютерного устройства 122, линия передачи данных и сеть 110 передачи данных даны исключительно для наглядности. Таким образом, специалисты в данной области техники смогут понять подробности других конкретных вариантов осуществления компьютерного устройства 122, линии передачи данных и сети 110 передачи данных. То есть представленные здесь примеры не ограничивают объем настоящей технологии.

[0075] Компьютерное устройство 122 может устанавливать соединения по сети 110 передачи данных с другими устройствами, например, с серверами. Компьютерное устройство 122 может быть соединено с первым сервером 102 и вторым сервером 112 по сети 110 передачи данных.

[0076] Компьютерное устройство 122 включает в себя устройство пользовательского ввода (не изображено). Реализация устройства пользовательского ввода не ограничена и будет зависеть от того, какое компьютерное устройство 122 используется. Устройство пользовательского ввода может включать в себя любой механизм предоставления пользовательского ввода процессору 128. Устройство пользовательского ввода может являться клавиатурой, мышью и так далее. Устройство ввода не ограничивается любым конкретным способом ввода, но может быть исполнено, например, как виртуальная кнопка на сенсорном экране или как физическая кнопка на корпусе электронного устройства. Ввод, предоставленный процессору 128, может представлять собой запрос пользователя 121 на выполнение действия.

[0077] Исключительно как пример и без введения ограничений, в тех вариантах осуществления настоящей технологии, в которых компьютерное устройство 122 реализовано как беспроводное устройство передачи данных (например, смартфон), устройство пользовательского ввода может быть выполнено как устройство пользовательского ввода на основе интерференции света. Устройство пользовательского ввода в одном примере является устройством восприятия движения пальца/объекта, с которым пользователь осуществляет жест и/или на которое нажимает пальцем. Устройство пользовательского ввода может идентифицировать/отслеживать жест и/или определять положение пальца пользователя на устройстве пользовательского ввода.

[0078] Устройство пользовательского ввода функционально подключено к процессору 128 и передает сигналы ввода на основе различных форм пользовательского ввода для обработки и анализа процессором 128.

[0079] Компьютерное устройство 122 включает в себя экран 129. Экран 129 может быть выполнен, например, как экран 21,5 м Dell™ Е2214Н 2214-7803, с разрешением 1920×1080. Экран 129 функционально соединен с процессором 128 и получает от него сигналы.

[0080] В альтернативных вариантах осуществления настоящей технологии экран 129 может быть жидкокристаллическим дисплеем (LCD), светодиодным дисплеем (LED), дисплеем на основе интерферометрической модуляции (IMOD) или дисплеем на основе любой другой подходящей технологии. Экран 129 может быть устройством на основе сенсорной модели, например, сенсорным экраном. Сенсорный экран является экраном, который определяет наличие и местоположение касаний пользователя. Экран 129 может быть экраном мультисенсорной или дуальной сенсорной модели, которые могут определять наличие, местоположение и движение ввода прикосновениями. В примерах, в которых экран 129 выполнен как устройство на основе сенсорной модели, например, сенсорный экран, или мультисенсорный экран, экран 129 может выполнять функции устройства пользовательского ввода. В примерах, которых экран 129 выполнен как устройство на основе сенсорной модели, например, сенсорный экран, или мультисенсорный экран, экран 129 может также передавать сигналы ввода на основе различных форм пользовательского ввода для обработки и анализа процессором 128.

[0081] Дисплей 129 в общем случае выполнен с возможностью отображать графический интерфейс 302 пользователя (GUI), изображенный на Фиг. 3, который предоставляет визуальный интерфейс между пользователем 121 электронного устройства 122, а также операционной системой или приложением(ями), установленными на компьютерном устройстве 122. В общем случае графический интерфейс 302 пользователя (GUI) представляет программы, файлы и операционные опции с помощью графических изображений и/или текста. Графический интерфейс 302 пользователя (GUI) позволяет пользователю 121 осуществлять запрос на выполнение действия. Запрос может быть сделан, например, с помощью устройства ввода, щелчком пользователя 121 на элемент 308 GUI (изображен на Фиг. 3), причем этот щелчок может инициировать отправку процессором 128 на первый сервер 102 запроса на выполнение действия, которое может быть выполнено с использованием кода первого модуля. Выбор первого сервера 102 как сервера для обращения может быть предварительно запрограммирован и связан с конкретным элементом 308 GUI (первый элемент 308 GUI) с помощью связывания ссылкой первого элемента 308 GUI с указанием 310 на то, что выполнение действия требует кода первого модуля, и с указанием 312 первого предварительно определенного индекса 130, который включает в себя ссылку 316 кода первого модуля.

[0082] Компьютерное устройство 122 также включает в с себя носитель 124 информации, выполненный как жесткий диск на 500 ГБ и как 8 ГБ (2×4ГБ) 1600 МГц DDR3 Non-ECC. Как будет понятно специалистам в данной области техники, носитель 124 информации может быть выполнен как носитель информации любого характера и вида, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д., а также их комбинацию. Носитель 124 информации выполнен с возможностью хранить информацию, включая машиночитаемые инструкции и другие данные, включая, но не ограничиваясь, коды модулей и по меньшей мере части предварительно определенных индексов.

[0083] Предварительно определенные индексы могут быть загружены компьютерным устройством 122 и сохранены на локальном носителе 124 информации. По меньшей мере части предварительно определенных индексов, сохраненные локально, (которые могут быть частичными копиями или полными копиями предварительно определенных индексов, сохраненных удаленно) могут быть модифицированы компьютерным устройством для отражения того факта, что локальная копия кода модуля является доступной, например, предварительно определенные индексы, сохраненные локально, могут включать в себя ссылки на коды модулей, хранящиеся локально и/или удаленно. Например, носитель информации может локально сохранять по меньшей мере часть 132 первого предварительно определенного индекса 130 и/или по меньшей мере часть 142 второго предварительно определенного индекса 140.

[0084] Программные инструкции, хранящиеся на носителе 124 информации могут инициировать модифицирование процессором 128 уже сохраненных по меньшей мере части 132 первого предварительно определенного индекса 130 и/или по меньшей мере части 142 второго предварительно определенного индекса 140, чтобы отразить тот факт, что коды некоторых модулей сохранены локально на носителе 124 информации. Если по меньшей мере часть 132 первого предварительно определенного индекса 130 и/или по меньшей мере часть 142 второго предварительно определенного индекса 140 пока не сохранены на носителе 124 информации, программные инструкции, хранящиеся на носителе 124 информации могут инициировать создание и сохранение процессором 128 уже сохраненных по меньшей мере части 132 первого предварительно определенного индекса 130 и/или по меньшей мере части 142 второго предварительно определенного индекса 140, чтобы отразить тот факт, что коды некоторых модулей сохранены локально на носителе 124 информации.

[0085] Носитель 124 информации может сохранять программные инструкции, которые при исполнении инициируют получение процессором 128 через устройство ввода запрос пользователя 121 на выполнение действия.

[0086] Носитель 124 информации может сохранять программные инструкции, которые при исполнении инициируют получение процессором 128 запроса на выполнение действия от кода третьего модуля. Например, запущенная на компьютерном устройстве 122 программа может запросить выполнение действия.

[0087] Носитель 124 информации может хранить программные инструкции, которые при исполнении инициируют получение процессором 128 из первого предварительно определенного индекса 130 ссылки кода первого модуля, указывающей положение кода первого модуля, и указания 318 того, что выполнение кода первого модуля требует кода второго модуля. Кроме того, программные инструкции при их исполнении инициируют получение процессором 128 из первого предварительно определенного индекса 130 указания 320 второго предварительно определенного индекса 140, который включает в себя ссылку 324 кода второго модуля, указывающую положение кода второго модуля, причем код второго модуля поддерживает выполнение кода первого модуля. Другими словами, программные инструкции могут инициировать получение процессором 128 из первого предварительно определенного индекса 130: положения первого кода и указания 320 второго предварительно определенного индекса 140, из которого процессор 128 может получить положение кода второго модуля. Зная положение кода первого модуля и положение кода второго модуля, процессор 128 может извлечь код первого модуля и код второго модуля из их соответствующих положений. Также возможно, что исполнение кода второго модуля может поддерживаться или запускаться кодом четвертого модуля. В этом сценарии процессор 128 может извлечь из второго предварительно определенного индекса 140 не только ссылку 324 кода второго модуля, но также и указание на четвертый предварительно определенный индекс, включающий в себя ссылку кода четвертого модуля, указывающую положение кода четвертого модуля, причем код четвертого модуля поддерживает выполнение кода второго модуля. Таким образом, возможна последовательность запросов, когда выполнение кода одного модуля нуждается в поддержке кода другого модуля, и так далее.

[0088] Также возможно, что первый предварительно определенный индекс 130 включает в себя ссылку кода четвертого модуля. В этом сценарии процессор 128 может извлечь из второго предварительно определенного индекса 140 не только ссылку 324 кода второго модуля, но также и указание 312 на первый предварительно определенный индекс 130, включающий в себя ссылку кода четвертого модуля, указывающую положение кода четвертого модуля, причем код четвертого модуля поддерживает выполнение кода второго модуля.

[0089] Носитель 124 информации может хранить машиночитаемые инструкции, которые управляют загрузкой, выполнением и сохранением кодов модулей. Более конкретно, машиночитаемые инструкции, сохраненные на носителе 124 информации, могут инициировать получение процессором 128 кодов модулей, выполнение кодов модулей, сохранение кодов модулей на носителе 124 информации и сохранение информации о зависимостях кодов модулей на носителе 124 информации. Получив код первого модуля и/или код второго модуля и/или код четвертого модуля, процессор 128 может сохранить один из них или все на носителе 124 информации.

[0090] Процессор 128 может исполнять коды модулей.

[0091] На Фиг. 2 представлена блок-схема компьютерного способа 200 загрузки кодов модулей и выполнение действия; способ 200 выполняется на компьютерном устройстве 122 системы 100 на Фиг. 1 и реализуется в соответствии с вариантами осуществления настоящей технологии, не ограничивающими ее объем.

[0092] С целью иллюстрации объяснение этапов способа 200 будет поддерживаться ссылками на схематическое представление графического пользовательского интерфейса 302; иллюстрации, сопровождающие определенные аспекты способа 200 изображены на Фиг. 3. Способ 200 реализуется в соответствии с вариантами осуществления настоящей технологии, не ограничивающими ее объем. Способ 200 является способом загрузки кодов модулей, требуемых компьютерным устройством 122 для выполнения действия.

[0093] Способ 200 может быть выполнен, например, когда для выполнения действия компьютерному устройству 122 могут понадобиться коды двух или нескольких кодов модулей. Чтобы выполнить действие, компьютерное устройство 122 может нуждаться в загрузке кодов модулей. Во многих случаях первый поставщик удаленного сервиса сохраняет коды своих соответствующих модулей на первом сервере 102. Первый сервер 102 также хранит первый предварительно определенный индекс 130, который включает в себя ссылки на все или некоторые из кодов модулей, сохраненные на том же первом сервере 102. Однако, во многих случаях другие поставщики сервисов могут добавить дополнительную функциональность к сервисам, предоставляемым первым поставщиком удаленного сервиса. Например, второй поставщик сервиса может предоставлять дополнительные функции к сервисам, предоставляемым первым поставщиком удаленного сервиса. Второй поставщик сервиса может сохранять его коды модулей, которые добавляют дополнительную функциональность к сервисам первого поставщика сервиса, на своем втором сервере 112. Этот второй сервер 112 может также хранить второй предварительно определенный индекс 140, который может включать в себя ссылки на все или некоторые из кодов модулей, сохраненные на втором сервере 112. В тоже время, первый поставщик сервиса может дополнительно сохранять информацию о том, что конкретные модули могут быть выполнены с поддержкой кодов модулей второго поставщика сервиса. Чтобы получить коды модулей с первого сервера 102 компьютерное устройство 122 может получить соответствующую информацию о положении из первого предварительно определенного индекса 130. Чтобы дать возможность компьютерному устройству 122 найти эти поддерживающие коды модулей, первый сервер 102 может иметь сохраненную информацию о том, что поддерживающие коды модулей доступны на втором сервере 112, и что их положение может быть найдено в соответствующем втором предварительно определенным индексом 140, сохраненным на втором сервере 112. Поскольку на компьютерном устройстве 122 могут уже быть загруженные необходимые данные (например, коды модулей или предварительно определенные индекс), компьютерное устройство 122 может перед этим соединиться с соответствующим сервером, чтобы проверить, доступна ли соответствующая информация локально, и не устарела ли локально сохраненная информация.

[0094] Этап 202 - получение компьютерным устройством 122 запроса на выполнение действия, которое может быть выполнено с использованием кода первого модуля.

[0095] Способ 200 начинается на этапе 200, когда компьютерное устройство 122 получает запрос на выполнение действия, которое может быть выполнено с использованием кода первого модуля. Запрос может быть получен от пользователя 121 или от кода третьего модуля.

[0096] Код третьего модуля, может быть, например, любым модулем, запущенным на компьютерном устройстве 122, причем выполнение кода третьего модуля поддерживается кодом первого модуля.

[0097] Если запрос получен от пользователя 121, такой запрос может быть сделан, например, с помощью устройства ввода, щелчком пользователя 121 на элемент 308 GUI (изображен на Фиг. 3), причем этот щелчок может инициировать отправку процессором 128 на первый сервер 102 запроса на выполнение действия, которое может быть выполнено с использованием кода первого модуля. Выбор первого сервера 102 как сервера для обращения может быть предварительно запрограммирован и связан с конкретным элементом 308 GUI (первый элемент 308 GUI) с помощью связывания ссылкой первого элемента 308 GUI с указанием 312 первого предварительно определенного индекса 130, который включает в себя ссылку 316 кода первого модуля. Указание 312 первого предварительно определенного индекса 130 может быть реализовано разными способами. Один из них, например, заключается в том, что указание предварительно определенного индекса осуществляется указателем этого конкретного индекса, ссылающимся на конкретный носитель информации. Другой неограничивающий вариант заключается в том, что предварительно определенный индекс назначен индексом по умолчанию, так что при отсутствии указателя конкретного предварительно определенного индекса процессор 128 обращается к индексу по умолчанию, который может храниться на постоянном удаленном или локальном носителе информации.

[0098] С целью проиллюстрировать сказанное, Фиг. 3 представляет собой экран 129, отображающий графический пользовательский интерфейс (GUI) 302. В этом варианте осуществления настоящей технологии GUI 302 является он-лайн сервисом карт, предоставляемым Яндекс. Пользователь 121 желает определить расстояние между Москвой, Россия, и Петушками, Владимирская область, Россия. Пользователь 121 вводит слово «Москва» в поле 304 «откуда» GUI 302 и вводит слова «Петушки, Владимирская обл.» в поле 306 «куда» GUI 302. Затем пользователь 121 делает запрос на определение расстояния посредством устройства ввода, щелкая на элемент 308 GUI «определить расстояние» (изображен на Фиг. 3). Щелчок инициирует отправление процессором 128 первому серверу 102 запроса на выполнение действия, которое может быть выполнено с использованием кода первого модуля. Выбор первого сервера 102 как сервера для обращения в этом варианте осуществления настоящей технологии предварительно запрограммирован и связан с элементом 308 GUI «определить расстояние» с помощью связывания первого элемента 308 GUI с указанием 312 первого предварительно определенного индекса 130.

[0099] При получении запроса от кода третьего модуля код третьего модуля может включать в себя указание 312 обращаться к первому предварительно определенному индексу 130, сохраненному на первом сервере 102. Указание 312 первого предварительно определенного индекса 130 может быть реализовано так, как это описано выше.

[00100] В случае, когда один предварительно определенный индекс назначен индексом по умолчанию, все остальные предварительно определенные индексы, отличающиеся от индекса по умолчанию, могут быть указаны с использованием указателей этих индексов.

[00101] Этап 204 - проверка доступности по меньшей мере части первого предварительно определенного индекса 130, сохраненной локально, и в случае доступности, проверка на устаревание по меньшей мере части первого предварительно определенного индекса 130, сохраненной локально

[00102] В ответ на получение запроса на выполнение действия, выполняемого с использованием кода первого модуля, процессор 128 компьютерного устройства 122 проверяет доступность по меньшей мере части первого предварительно определенного индекса 130, сохраненной локально.

[00103] При доступности по меньшей мере части первого предварительно определенного индекса 130, сохраненной локально, процессор 128 проверяет, устарела ли по меньшей мере часть первого предварительно определенного индекса 130, сохраненная локально, или нет. Чтобы осуществить проверку, процессор 128 извлекает из носителя информации 124 предварительно определенный пороговый параметр устаревания, указывающий на то, сколько времени по меньшей мере часть первого предварительно определенного индекса 130, сохраненная локально, считается не устаревшей. Процессор 128 также проверяет метку времени по меньшей мере части первого предварительно определенного индекса 130, сохраненной локально, указывающую время хранения на локальном носителе информации 124. Сравнивая метку времени с предварительно определенным пороговым параметром устаревания, процессор 128 может установить, устарела ли по меньшей мере часть первого предварительно определенного индекса 130, сохраненная локально. Например, предварительно определенный пороговый параметр устаревания может указывать, что по меньшей мере часть первого предварительно определенного индекса 130, сохраненная локально, не устаревает в течение 2 часов с времени сохранения н носителе 124 информации. Если метка времени по меньшей мере части первого предварительно определенного индекса 130, сохраненной локально, указывает, что сохранение произошло 7 часов назад, то эта часть устарела. Напротив, если сохранение произошло 47 секунд назад, она не устарела.

[00104] Затем способ 200 переходит к этапу 206.

[00105] Этап 206 - извлечение из первого предварительно определенного индекса 130 ссылки кода первого модуля, указания 318 на то, что выполнение кода первого модуля требует кода второго модуля, и указания 320 второго предварительно определенного индекса 140.

[00106] Если по меньшей мере часть первого предварительно определенного индекса 130, сохраненная локально, доступна, процессор 128 обращается по меньшей мере к части первого предварительно определенного индекса 130, сохраненной локально, и извлекает оттуда код первого модуля, при условии, что по меньшей мере часть первого предварительно определенного индекса 130, сохраненная локально, не устарела. Если по меньшей мере часть первого предварительно определенного индекса 130, сохраненная локально, не доступна или по меньшей мере часть первого предварительно определенного индекса 130, сохраненная локально, устарела, процессор 128 обращается к удаленному носителю информации, на котором расположен первый предварительно определенный индекс 130, и извлекает оттуда положение кода первого модуля.

[00107] Куда бы ни обращался процессор 128 - по меньшей мере к части первого предварительно определенного индекса 130, сохраненной локально, или удаленному носителю информации, - процессор 128 далее извлекает информацию о том, что выполнение кода первого модуля требует кода второго модуля, и указание 320 второго предварительно определенного индекса 140, которое будет использовано для определения положения кода второго модуля.

[00108] Затем способ 200 переходит к этапу 208.

[00109] Этап 208 - проверка доступности по меньшей мере части второго предварительно определенного индекса 140, сохраненной локально, и в случае доступности, проверка на устаревание по меньшей мере части второго предварительно определенного индекса 140, сохраненной локально.

[00110] Затем процессор 128 проверяет доступность по меньшей мере части второго предварительно определенного индекса 140, сохраненной локально.

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

[00112] Затем способ 200 переходит к этапу 210.

[00113] Этап 210 - извлечение из второго предварительно определенного индекса ссылки 324 кода второго модуля

[00114] Если по меньшей мере часть второго предварительно определенного индекса 140, сохраненная локально, доступна, процессор 128 обращается по меньшей мере к части второго предварительно определенного индекса 140, сохраненной локально, и извлекает оттуда код второго модуля, при условии, что по меньшей мере часть второго предварительно определенного индекса 140, сохраненная локально, не устарела. Если по меньшей мере часть второго предварительно определенного индекса 140, сохраненная локально, не доступна или по меньшей мере часть второго предварительно определенного индекса 140, сохраненная локально, устарела, процессор 128 обращается к удаленному носителю информации, на котором расположен второй предварительно определенный индекс 140, и извлекает оттуда положение кода второго модуля.

[00115] Куда бы ни обращался процессор 128 - по меньшей мере к части второго предварительно определенного индекса 140, сохраненной локально, или удаленному носителю информации, - процессор 128 далее извлекает информацию о том, нужен ли для выполнения кода второго модуля код четвертого модуля и, если ответ положительный, указание четвертого предварительно определенного индекса 140, которое будет использовано для определения положения кода четвертого модуля.

[00116] Этап 212 - извлечение кода первого модуля и кода второго модуля, и выполнение действия с помощью запуска кода четвертого модуля и кода второго модуля

[00117] Получив все необходимые положения кодов модулей, включая положение кода первого модуля, из первого предварительно определенного индекса 130 и положение кода второго модуля из второго предварительно определенного индекса 140, компьютерное устройство 122 может извлечь все необходимые коды модулей и выполнить действия с помощью запуска требуемых кодов модулей.

[00118] Затем способ 200 завершается.

[00119] Следует отметить, что в некоторых вариантах осуществления способа 200 первый предварительно определенный индекс 130 и второй предварительно определенный индекс 140 могут быть выполнены как единственный третий предварительно определенный индекс. В таком случае, получение из любого, выбранного из: по меньшей мере части первого предварительно определенного индекса 130 или по меньшей мере части второго предварительно определенного индекса 140 может быть выполнено как получение по меньшей мере из части третьего предварительно определенного индекса. Этот третий предварительно определенный индекс может быть третьим предварительно определенным индексом, сохраненным удаленно, или по меньшей мере частью третьего предварительно определенного индекса, сохраненной локально (либо модифицированной версией по меньшей мере части третьего предварительно определенного индекса, сохраненной удаленно, либо точной копией по меньшей мере части третьего предварительно определенного индекса, сохраненной удаленно). Другими словами, способ 200 может быть выполнен и тогда, когда существует только один удаленный предварительно определенный индекс. В таком варианте осуществления настоящей технологии компьютерное устройство 122 может взаимодействовать с одним удаленным третьим предварительно определенным индексом. Процессор 128 может, однако, перед взаимодействием с третьим предварительно определенным индексом, проверить доступность и устаревание локальной копии по меньшей мере части третьего предварительно определенного индекса.

[00120] Таким образом, с одной точки зрения, варианты осуществления настоящей технологии можно изложить следующим образом, структурировано, пронумерованными пунктами:

[00121] 1. Компьютерный способ загрузки кодов модулей, причем коды модулей запрашиваются компьютерным устройством для выполнения действия; способ выполняется на компьютерном устройстве 122 и включает в себя:

получение компьютерным устройством (122) запроса на выполнение действия, которое можно выполнить с использованием кода первого модуля, ссылка (316) кода первого модуля указывает положение кода первого модуля, записанное в первом предварительно определенном индексе (130);

получение из первого предварительно определенного индекса (130):

ссылки (316) кода первого модуля, которая указывает положение кода первого модуля, и

указания (318) того, что выполнение кода первого модуля требует кода второго модуля, и

указания (320) второго предварительно определенного индекса (140), включающего в себя ссылку (324) кода второго модуля, которая указывает положение кода второго модуля, поддерживающего выполнение кода первого модуля;

получение из второго предварительно определенного индекса (140) ссылки (324) кода второго модуля;

на основе ссылки (316) кода первого модуля получение кода первого модуля из положения кода первого модуля;

на основе ссылки (324) кода второго модуля получение кода второго модуля из положения кода второго модуля.

[00122] 2. Способ по п. 1, в котором способ дополнительно включает в себя выполнение действия с помощью запуска кода первого модуля и кода второго модуля.

[00123] 3. Способ по любому из пп. 1-2, в котором способ дополнительно включает в себя сохранение на компьютерном устройстве (122) указания (312) на первый предварительно определенный индекс (130), который включает в себя ссылку (316) кода первого модуля, указывающую положение кода первого модуля.

[00124] 4. Способ по любому из пп. 1-3, в котором:

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

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

указание на индекс по умолчанию осуществляется с помощью любого из:

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

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

[00125] 5. Способ по любому из пп. 1-4, в котором:

первый предварительно определенный индекс (130) является любым из:

первым предварительно определенным индексом (130), сохраненным удаленно, или

по меньшей мере частью первого предварительно определенного индекса (130), сохраненной локально;

а второй предварительно определенный индекс (140) является любым из:

вторым предварительно определенным индексом (140), сохраненным удаленно, или

по меньшей мере частью второго предварительно определенного индекса (140), сохраненной локально;

[00126] 6. Способ по п. 5, в котором:

по меньшей мере часть первого предварительно определенного индекса (130), сохраненная локально, является одним из:

модифицированной версией по меньшей мере части первого предварительно определенного индекса (130), сохраненного удаленно, или

точной копией по меньшей мере части первого предварительно определенного индекса (130), сохраненного удаленно,

а

по меньшей мере часть второго предварительно определенного индекса (140), сохраненная локально, является одним из:

модифицированной версией по меньшей мере части второго предварительно определенного индекса (140), сохраненного удаленно, или

точной копией по меньшей мере части второго предварительно определенного индекса (140), сохраненного удаленно.

[00127] 7. Способ по любому из пп. 5-6, в котором:

перед получением по меньшей мере из части первого предварительно определенного индекса (130) любого из: (i) ссылки (316) кода первого модуля или (ii) указания (320) второго предварительно определенного индекса (140), способ также включает в себя осуществление проверки доступности по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально; и

в ответ на доступность по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально, способ также включает в себя использование компьютерным устройством (122) одного из: (i) первого предварительно определенного индекса (130), сохраненного удаленно, или (ii) по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально, как источника по меньшей мере одного пункта из списка:

ссылки (316) кода первого модуля,

Указания (320) второго предварительно определенного индекса (140); и

в ответ на недоступность по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально, способ также включает в себя использование компьютерным устройством (122) первого предварительно определенного индекса (130), сохраненного удаленно, как источника ссылки (316) кода первого модуля и указания (320) второго предварительно определенного индекса (140).

[00128] 8. Способ по п. 7, в котором в ответ на доступность по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально, использование одного из: (i) первого предварительно определенного индекса (130), сохраненного удаленно, или (ii) по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально, осуществляется после выбора соответствующего одного пункта из: (i) первого предварительно определенного индекса (130), сохраненного удаленно, или (ii) по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально, причем выбор осуществляется с помощью выполнения следующих этапов:

определения параметра устаревания по меньшей мере части второго предварительно определенного индекса (130), сохраненной локально;

сравнения параметра устаревания по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально, с параметром предварительно определенного порогового значения устаревания, причем параметр предварительно определенного порогового значения устаревания указывает на то, является ли по меньшей мере часть соответствующего индекса, сохраненной локально, устаревшей, и

в ответ на то, что параметр устаревания по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально, превышает параметр предварительно определенного порогового значения устаревания, использование первого предварительно определенного индекса (130), сохраненного удаленно, как источника по меньшей мере одного пункта, выбранного из списка: ссылки (316) кода первого модуля и указания (320) второго предварительно определенного индекса (140); и

в ответ на то, что параметр устаревания по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально, не превышает параметр предварительно определенного порогового значения устаревания, использование по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально, как источника по меньшей мере одного пункта, выбранного из списка: ссылки (316) кода первого модуля и указания (320) второго предварительно определенного индекса (140); и

[00129] 9. Способ по любому из пп. 5-8, в котором:

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

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

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

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

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

[00131] 11. Способ по любому из пп. 1-10, в котором первый предварительно определенный индекс (130) и второй предварительно определенный индекс (140) реализованы как единственный третий предварительно определенный индекс, и в котором получение из любого пункта, выбранного из списка: по меньшей мере части первого предварительно определенного индекса (130) или по меньшей мере части второго предварительно определенного индекса (140) является получением по меньшей мере из части третьего предварительно определенного индекса.

[00132] 12. Способ по п. 11, в котором третий предварительно определенный индекс является любым пунктом, выбранным из: третьего предварительно определенного индекса, сохраненного удаленно, или по меньшей мере части третьего предварительно определенного индекса, сохраненной локально.

[00133] 13. Способ по п. 12, в котором по меньшей мере часть третьего предварительно определенного индекса, сохраненная локально, является одним из:

модифицированной версией по меньшей мере части третьего предварительно определенного индекса, сохраненного удаленно, или

точной копией по меньшей мере части третьего предварительно определенного индекса, сохраненного удаленно.

[00134] 14. Способ по любому из пп. 1-13, в котором получение компьютерным устройством (122) запроса на выполнение действия является получением запроса, инициированного кодом третьего модуля.

[00135] 15. Способ по любому из пп. 1-13, в котором компьютерное устройство (122) связано с пользователем, и получение компьютерным устройством (122) запроса на выполнение действия является получением запроса от пользователя.

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

получение компьютерным устройством (122) запроса на выполнение действия, которое можно выполнить с использованием кода первого модуля, ссылка (316) кода первого модуля указывает положение кода первого модуля, записанное в первом предварительно определенном индексе (130);

получение из первого предварительно определенного индекса (130):

ссылки (316) кода первого модуля, которая указывает положение кода первого модуля, и

указания (318) того, что выполнение кода первого модуля требует кода второго модуля, и

указания (320) второго предварительно определенного индекса (140), включающего в себя ссылку (324) кода второго модуля, которая указывает положение кода второго модуля, поддерживающего выполнение кода первого модуля;

получение из второго предварительно определенного индекса (140) ссылки (324) кода второго модуля;

на основе ссылки (316) кода первого модуля получение кода первого модуля из положения кода первого модуля;

на основе ссылки (324) кода второго модуля получение кода второго модуля из положения кода второго модуля.

[00137] 17. Компьютерное устройство (122) по п. 16, в котором процессор также выполнен с дополнительной возможностью выполнять действия с помощью запуска кода первого модуля и кода второго модуля.

[00138] 18. Компьютерное устройство (122) по любому из пп. 16-17, в котором процессор выполнен с дополнительной возможностью сохранять на компьютерном устройстве (122) указание (312) на первый предварительно определенный индекс (130), который включает в себя ссылку (316) кода первого модуля, указывающую положение кода первого модуля.

[00139] 19. Компьютерное устройство (122) по любому из пп. 16-18, в котором:

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

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

указание на индекс по умолчанию осуществляется с помощью любого из:

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

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

[00140] 20. Компьютерное устройство (122) по любому из пп. 16-19, в котором:

первый предварительно определенный индекс (130) является любым из:

первым предварительно определенным индексом (130), сохраненным удаленно, или

по меньшей мере частью первого предварительно определенного индекса (130), сохраненной локально;

а второй предварительно определенный индекс (140) является любым из:

вторым предварительно определенным индексом (140), сохраненным удаленно, или

по меньшей мере частью второго предварительно определенного индекса (140), сохраненной локально;

[00141] 21. Компьютерное устройство (122) по п. 20, в котором:

по меньшей мере часть первого предварительно определенного индекса (130), сохраненная локально, является одним из:

модифицированной версией по меньшей мере части первого предварительно определенного индекса (130), сохраненного удаленно, или

точной копией по меньшей мере части первого предварительно определенного индекса (130), сохраненного удаленно,

а

по меньшей мере часть второго предварительно определенного индекса (140), сохраненная локально, является одним из:

модифицированной версией по меньшей мере части второго предварительно определенного индекса (140), сохраненного удаленно, или

точной копией по меньшей мере части второго предварительно определенного индекса (140), сохраненного удаленно.

[00142] 22. Компьютерное устройство (122) по любому из пп. 20-21, в котором процессор дополнительно выполнен с возможностью:

перед получением по меньшей мере из части первого предварительно определенного индекса (130) любого из: (i) ссылки (316) кода первого модуля или (ii) указания (320) второго предварительно определенного индекса (140), осуществлять проверку доступности по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально; и

в ответ на доступности по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально, использовать один из: (i) первый предварительно определенный индекс (130), сохраненный удаленно, или (ii) по меньшей мере часть первого предварительно определенного индекса (130), сохраненную локально, как источник по меньшей мере одного пункта из списка:

ссылки (316) кода первого модуля,

указания (320) второго предварительно определенного индекса (140); и

в ответ на недоступность по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально, использовать первый предварительно определенный индекс (130), сохраненный удаленно, как источник ссылки (316) кода первого модуля и указания (320) второго предварительно определенного индекса (140).

[00143] 23. Компьютерное устройство (122) по п. 22, в котором в ответ на доступности по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально, использование одного из: (i) первого предварительно определенного индекса (130), сохраненного удаленно, или (ii) по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально, осуществляется после выбора соответствующего одного пункта из: (i) первого предварительно определенного индекса (130), сохраненного удаленно, или (ii) по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально, причем выбор осуществляется с помощью выполнения следующих этапов:

определения параметра устаревания по меньшей мере части второго предварительно определенного индекса (130), сохраненной локально;

сравнения параметра устаревания по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально, с параметром предварительно определенного порогового значения устаревания, причем параметр предварительно определенного порогового значения устаревания указывает на то, является ли по меньшей мере часть соответствующего индекса, сохраненной локально, устаревшей, и

в ответ на то, что параметр устаревания по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально, превышает параметр предварительно определенного порогового значения устаревания, использование первого предварительно определенного индекса (130), сохраненного удаленно, как источника по меньшей мере одного пункта, выбранного из списка: ссылки (316) кода первого модуля и указания (320) второго предварительно определенного индекса (140); и

в ответ на то, что параметр устаревания по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально, не превышает параметр предварительно определенного порогового значения устаревания, использование по меньшей мере части первого предварительно определенного индекса (130), сохраненной локально, как источника по меньшей мере одного пункта, выбранного из списка: ссылки (316) кода первого модуля и указания (320) второго предварительно определенного индекса (140); и

[00144] 24. Компьютерное устройство (122) по пп. 20-23, в котором:

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

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

[00145] 25. Компьютерное устройство (122) по п. 24, в котором положение кода второго модуля - удаленный носитель информации, после получения кода второго модуля из второго положения кода модуля процессор выполнен с дополнительной возможностью:

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

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

[00146] 26. Компьютерное устройство (122) по любому из пп. 16-25, в котором первый предварительно определенный индекс (130) и второй предварительно определенный индекс (140) реализованы как единственный третий предварительно определенный индекс, и в котором получение из любого пункта, выбранного из списка: по меньшей мере части первого предварительно определенного индекса (130) или по меньшей мере части второго предварительно определенного индекса (140) является получением по меньшей мере из части третьего предварительно определенного индекса.

[00147] 27. Компьютерное устройство (122) по п. 26, в котором третий предварительно определенный индекс является любым пунктом, выбранным из: третьего предварительно определенного индекса, сохраненного удаленно, или по меньшей мере части третьего предварительно определенного индекса, сохраненной локально.

[00148] 28. Компьютерное устройство (122) по п. 27, в котором по меньшей мере часть третьего предварительно определенного индекса, сохраненная локально, является одним из:

модифицированной версией по меньшей мере части третьего предварительно определенного индекса, сохраненного удаленно, или

Точной копией по меньшей мере части третьего предварительно определенного индекса, сохраненного удаленно.

[00149] 29. Компьютерное устройство (122) по любому из пп. 16-28, в котором получение компьютерным устройством (122) запроса на выполнение действия является получением запроса, инициированного кодом третьего модуля.

[00150] 30. Компьютерное устройство (122) по любому из пп. 16-28, в котором компьютерное устройство (122) связано с пользователем, и получение компьютерным устройством (122) запроса на выполнение действия является получением запроса от пользователя.

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

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

1. Компьютерный способ загрузки кодов модулей, причем коды модулей запрашиваются компьютерным устройством для выполнения действия; способ выполняется на компьютерном устройстве и включает в себя:

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

получение из первого предварительно определенного индекса:

ссылки кода первого модуля, которая указывает положение кода первого модуля, и

указания того, что выполнение кода первого модуля требует кода второго модуля, и

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

получение из второго предварительно определенного индекса ссылки кода второго модуля;

на основе ссылки кода первого модуля получение кода первого модуля из положения кода первого модуля;

на основе ссылки кода второго модуля получение кода второго модуля из положения кода второго модуля.

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

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

4. Способ по п. 1, в котором:

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

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

указание на индекс по умолчанию осуществляется с помощью любого из:

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

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

5. Способ по п. 1, в котором:

первый предварительно определенный индекс является любым из:

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

по меньшей мере частью первого предварительно определенного индекса, сохраненной локально;

второй предварительно определенный индекс является любым из:

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

по меньшей мере частью второго предварительно определенного индекса, сохраненной локально.

6. Способ по п. 5, в котором:

по меньшей мере часть первого предварительно определенного индекса, сохраненная локально, является одним из:

модифицированной версией по меньшей мере части первого предварительно определенного индекса, сохраненного удаленно, или

точной копией по меньшей мере части первого предварительно определенного индекса, сохраненного удаленно,

а по меньшей мере часть второго предварительно определенного индекса, сохраненная локально, является одним из:

модифицированной версией по меньшей мере части второго предварительно определенного индекса, сохраненного удаленно, или

точной копией по меньшей мере части второго предварительно определенного индекса, сохраненного удаленно.

7. Способ по п. 5, в котором:

перед получением по меньшей мере из части первого предварительно определенного индекса любого из: (i) ссылки кода первого модуля или (ii) указания второго предварительно определенного индекса, способ также включает в себя осуществление проверки доступности по меньшей мере части первого предварительно определенного индекса, сохраненной локально; и

в ответ на доступность по меньшей мере части первого предварительно определенного индекса, сохраненной локально, способ также включает в себя использование компьютерным устройством одного из: (i) первого предварительно определенного индекса, сохраненного удаленно, или (ii) по меньшей мере части первого предварительно определенного индекса, сохраненной локально, как источник по меньшей мере одного пункта из списка:

ссылки кода первого модуля,

указания второго предварительно определенного индекса; и

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

8. Способ по п. 7, в котором в ответ на доступности по меньшей мере части первого предварительно определенного индекса, сохраненной локально, использование одного из: (i) первого предварительно определенного индекса, сохраненного удаленно, или (ii) по меньшей мере части первого предварительно определенного индекса, сохраненной локально, осуществляется после выбора соответствующего одного пункта из: (i) первого предварительно определенного индекса, сохраненного удаленно, или (ii) по меньшей мере части первого предварительно определенного индекса, сохраненной локально, причем выбор осуществляется с помощью выполнения следующих этапов:

определения параметра устаревания по меньшей мере части второго предварительно определенного индекса, сохраненной локально;

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

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

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

9. Способ по п. 5, в котором:

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

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

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

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

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

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

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

13. Способ по п. 12, в котором по меньшей мере часть третьего предварительно определенного индекса, сохраненная локально, является одним из:

модифицированной версией по меньшей мере части третьего предварительно определенного индекса, сохраненного удаленно, или

точной копией по меньшей мере части третьего предварительно определенного индекса, сохраненного удаленно.

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

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

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

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

получение из первого предварительно определенного индекса:

ссылки кода первого модуля, которая указывает положение кода первого модуля, и

указания того, что выполнение кода первого модуля требует кода второго модуля, и

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

получение из второго предварительно определенного индекса ссылки кода второго модуля;

на основе ссылки кода первого модуля получение кода первого модуля из положения кода первого модуля;

на основе ссылки кода второго модуля получение кода второго модуля из положения кода второго модуля.

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

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

19. Компьютерное устройство по п. 16, в котором:

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

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

указание на индекс по умолчанию осуществляется с помощью любого из:

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

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

20. Компьютерное устройство по п. 16, в котором:

первый предварительно определенный индекс является любым из:

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

по меньшей мере частью первого предварительно определенного индекса, сохраненной локально;

второй предварительно определенный индекс является любым из:

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

по меньшей мере частью второго предварительно определенного индекса, сохраненной локально;

21. Компьютерное устройство по п. 20, в котором:

по меньшей мере часть первого предварительно определенного индекса, сохраненная локально, является одним из:

модифицированной версией по меньшей мере части первого предварительно определенного индекса, сохраненного удаленно, или

точной копией по меньшей мере части первого предварительно определенного индекса, сохраненного удаленно,

а по меньшей мере часть второго предварительно определенного индекса, сохраненная локально, является одним из:

модифицированной версией по меньшей мере части второго предварительно определенного индекса, сохраненного удаленно, или

точной копией по меньшей мере части второго предварительно определенного индекса, сохраненного удаленно.

22. Компьютерное устройство по п. 20, в котором процессор также выполнен с возможностью:

перед получением по меньшей мере из части первого предварительно определенного индекса любого из: (i) ссылки кода первого модуля или (ii) указания второго предварительно определенного индекса осуществлять проверку доступности по меньшей мере части первого предварительно определенного индекса, сохраненной локально; и

в ответ на доступность по меньшей мере части первого предварительно определенного индекса, сохраненной локально, использовать один из: (i) первого предварительно определенного индекса, сохраненного удаленно, или (ii) по меньшей мере части первого предварительно определенного индекса, сохраненной локально, как источник по меньшей мере одного пункта из списка:

ссылки кода первого модуля,

указания второго предварительно определенного индекса; и

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

23. Компьютерное устройство по п. 22, в котором в ответ на доступность по меньшей мере части первого предварительно определенного индекса, сохраненной локально, использование одного из: (i) первого предварительно определенного индекса, сохраненного удаленно, или (ii) по меньшей мере части первого предварительно определенного индекса, сохраненной локально, осуществляется после выбора соответствующего одного пункта из: (i) первого предварительно определенного индекса, сохраненного удаленно, или (ii) по меньшей мере части первого предварительно определенного индекса, сохраненной локально, причем выбор осуществляется с помощью выполнения следующих этапов:

определения параметра устаревания по меньшей мере части второго предварительно определенного индекса, сохраненной локально;

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

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

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

24. Компьютерное устройство по п. 20, в котором:

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

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

25. Компьютерное устройство по п. 24, в котором положение кода второго модуля - удаленный носитель информации, после получения кода второго модуля из второго положения кода модуля процессор выполнен с дополнительной возможностью:

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

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

26. Компьютерное устройство по п. 16, в котором первый предварительно определенный индекс и второй предварительно определенный индекс реализованы как единственный третий предварительно определенный индекс, и в котором получение из любого пункта, выбранного из списка: по меньшей мере части первого предварительно определенного индекса или по меньшей мере части второго предварительно определенного индекса является получением из по меньшей мере части третьего предварительно определенного индекса.

27. Компьютерное устройство по п. 26, в котором третий предварительно определенный индекс является любым пунктом, выбранным из: третьего предварительно определенного индекса, сохраненного удаленно, или по меньшей мере части третьего предварительно определенного индекса, сохраненной локально.

28. Компьютерное устройство по п. 27, в котором по меньшей мере часть третьего предварительно определенного индекса, сохраненная локально, является одним из:

модифицированной версией по меньшей мере части третьего предварительно определенного индекса, сохраненного удаленно, или

точной копией по меньшей мере части третьего предварительно определенного индекса, сохраненного удаленно.

29. Компьютерное устройство по п. 16, в котором получение компьютерным устройством запроса на выполнение действия является получением запроса, инициированного кодом третьего модуля.

30. Компьютерное устройство по п. 16, в котором компьютерное устройство связано с пользователем, и получение компьютерным устройством запроса на выполнение действия является получением запроса от пользователя.



 

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

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

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

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

Изобретение относится к способам загрузки компьютерных систем. .

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

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