администрирование удаленной системы с использованием среды командной строки
Классы МПК: | G06F21/22 путем ограничения доступа к программам или процессам G06F15/16 сочетание двух или более вычислительных машин, каждая из которых снабжена по меньшей мере арифметическим устройством, программным устройством и регистром, например для одновременной обработки нескольких программ G06F9/04 с применением носителей информации, содержащих только программные команды |
Автор(ы): | УРЭЙ Дэрил В. (US), СНОУВЕР Джеффри П. (US), ЧАНДРАСЧЕКАРАН Раджеш (IN), ШАСТРИ М.С. Шанкара (IN) |
Патентообладатель(и): | МАЙКРОСОФТ КОРПОРЕЙШН (US) |
Приоритеты: |
подача заявки:
2004-07-21 публикация патента:
27.05.2009 |
Изобретение относится к администрированию сетевой системы и, более конкретно, к среде командной строки, предназначенной для администрирования удаленной сетевой системы. Техническим результатом является возможность распределения задачи установления сеансов средой командной строки одной системы другим системам для улучшения рабочих характеристик. Среда командной строки сконфигурирована для приема командной строки, которая включает в себя множество удаленных узлов. Среда командной строки сконфигурирована для установления сеанса, который может быть постоянным для каждого включенного удаленного узла, и для инициирования выполнения удаленной команды на этих узлах. Сеанс может быть назначен переменной, и удаленное исполнение может выполняться одновременно. Результаты удаленного выполнения принимаются и могут быть объединены в массив. 4 н. и 28 з.п. ф-лы, 6 ил.
Формула изобретения
1. Считываемый компьютером носитель, содержащий выполняемые компьютером инструкции, которые позволяют обеспечить удаленное выполнение команд, причем инструкции содержат:
прием инструкции командной строки, включающей в себя удаленную команду, причем удаленная команда идентифицирует исполняемую задачу, предназначенную для выполнения на удаленной системе;
инициирование сеанса, по меньшей мере, с двумя удаленными системами;
назначение каждого сеанса для переменной среды, сконфигурированной таким образом, что множество команд может одновременно использовать этот сеанс путем ссылки на переменную среды, и
побуждение одновременного выполнения удаленной команды на каждой из, по меньшей мере, двух удаленных систем, включая подачу удаленной команды в одну переменную среды.
2. Считываемый компьютером носитель по п.1, в котором сеанс содержит соединение между системой, на которой была принята инструкция командной строки.
3. Считываемый компьютером носитель по п.1, в котором сеанс инициируется как постоянный сеанс, который доступен для выполнения последующих удаленных команд.
4. Считываемый компьютером носитель по п.3, дополнительно содержащий прием второй инструкции командной строки, включающей в себя вторую удаленную команду, и побуждение выполнения второй удаленной команды с использованием постоянного сеанса.
5. Считываемый компьютером носитель по п.1, в котором удаленная система содержит удаленный агент, сконфигурированный таким образом, чтобы возвращать информацию в локальную систему, причем информация содержит, по меньшей мере, одно из: результаты выполнения, метаинформацию и информацию о удаленной системе, из которой были выданы результаты.
6. Считываемый компьютером носитель по п.1, в котором удаленная система содержит альтернативный процесс.
7. Считываемый компьютером носитель по п.1, в котором удаленная система содержит альтернативную область приложений, расположенную в локальной компьютерной системе.
8. Считываемый компьютером носитель по п.1, в котором побуждение выполнения удаленной команды содержит делегирование этапа побуждения выполнения удаленной команды контроллеру, ассоциированному с поднабором из, по меньшей мере, двух удаленных систем.
9. Считываемый компьютером носитель по п.8, в котором каждая из, по меньшей мере, двух удаленных систем содержит узел в топологии иерархической сети, и контроллер сохраняет позицию в иерархии между поднабором из, по меньшей мере, двух удаленных систем и системой, принимающей инструкцию командной строки.
10. Считываемый компьютером носитель по п.1, в котором удаленная команда выполняется одновременно в каждой из, по меньшей мере, двух удаленных систем.
11. Считываемый компьютером носитель по п.1, дополнительно содержащий агрегирование результатов выполнения каждой удаленной команды.
12. Считываемый компьютером носитель по п.11, в котором результаты агрегируют в массиве.
13. Считываемый компьютером носитель по п.11, в котором результаты включают в себя информацию, которая идентифицирует удаленную систему, из которой эти результаты поступили.
14. Выполняемый на компьютере способ удаленного выполнения команды, содержащий этапы:
прием в локальной системе первой командной строки, которая идентифицирует удаленную систему;
побуждение создания сеанса между локальной системой и удаленной системой, причем сеанс включает в себя соединение с удаленным процессом, резидентным на удаленной системе;
назначение сеанса для переменной среды, сконфигурированной таким образом, что множество команд может одновременно использовать сеанс путем ссылки на переменную среды,
подача удаленной команды в переменную среды для побуждения выполнения удаленной команды в удаленном процессе и
сохранение результатов выполнения удаленной команды в переменной среды, связанной с этим сеансом.
15. Выполняемый на компьютере способ по п.14, дополнительно содержащий подачу второй удаленной команды в переменную среды для побуждения второй удаленной команды для одновременного выполнения удаленной команды в удаленном процессе и сохранение результатов выполнения второй удаленной команды в переменной среды.
16. Выполняемый на компьютере способ по п.14, в котором побуждение создания сеанса содержит создание переменной среды и делает доступным переменную для других задач.
17. Выполняемый на компьютере способ по п.16, в котором первая командная строка дополнительно содержит параметр, который идентифицирует переменную среды, связанную с этим сеансом.
18. Выполняемый на компьютере способ по п.14, в котором этап побуждения создания сеанса дополнительно содержит распределение задачи инициирования соединения с другим вычислительным устройством, отличным от локальной системы.
19. Выполняемый на компьютере способ по п.14, в котором командная строка дополнительно идентифицирует данные с правами доступа для использования при создании сеанса между локальной системой и удаленной системой.
20. Считываемый компьютером носитель информации, содержащий выполняемые компьютером инструкции, предназначенные для выполнения способа по п.14.
21. Считываемый компьютером носитель информации, содержащий выполняемые компьютером компоненты, содержащий:
менеджер сеанса, выполненный с возможностью создания и поддержания сеансов между локальной системой и одной или более удаленными системами, причем каждый сеанс позволяет обеспечить хостинг для множества соединений между локальной системой и удаленными системами;
назначения каждого сеанса для переменной среды, сконфигурированной таким образом, что множество команд может одновременно использовать каждый сеанс путем ссылки на переменную среды, и
подачи удаленной команды в переменную среды для побуждения выполнения удаленной команды в одной или более удаленных системах;
агрегатор, выполненный с возможностью приема результатов удаленного выполнения команды, причем каждый из этих результатов связан с удаленной системой, причем агрегатор, кроме того, выполнен с возможностью агрегирования результатов в массив; и
клапан, выполненный с возможностью ограничения по запросу количества активных соединений в каждом сеансе.
22. Считываемый компьютером носитель информации по п.21, в котором каждый из результатов в массиве связан с удаленной системой, из которой эти результаты были получены.
23. Считываемый компьютером носитель информации по п.21, в котором агрегатор дополнительно выполнен с возможностью обеспечения доступности результатов в деагрегатированном виде.
24. Считываемый компьютером носитель информации по п.21, в котором агрегатор дополнительно выполнен с возможностью агрегатирования результатов в переменную среду, связанную с сеансом, созданным менеджером сеанса.
25. Считываемый компьютером носитель информации по п.21, в котором клапан дополнительно выполнен с возможностью взаимодействия с другими механизмами, основанными на рабочих характеристиках, для регулирования влияния на рабочие характеристики, оказываемом удаленным выполнением команды.
26. Считываемый компьютером носитель информации по п.25, в котором другие механизмы, основанные на рабочих характеристиках, содержат механизм качества услуги.
27. Считываемый компьютером носитель информации по п.25, в котором другие механизмы, основанные на рабочих характеристиках, содержат агент в удаленной системе, который выполнен с возможностью регулирования влияния на ресурсы удаленной системы.
28. Считываемый компьютером носитель информации по п.21, дополнительно содержащий механизм ядра, выполненный с возможностью управления потоком информации в каждом из нескольких компонентов.
29. Считываемый компьютером носитель информации по п.28, в котором механизм ядра дополнительно выполнен с возможностью делегирования задачи инициирования сеанса другой системе в иерархии удаленных систем.
30. Считываемый компьютером носитель информации по п.21, в котором удаленная система содержит удаленный агент, сконфигурированный для возвращения информации в локальную систему, причем информация содержит, по меньшей мере, одно из: результатов выполнения, метаинформацию и информацию о удаленной системе, из которой были выданы результаты.
31. Считываемый компьютером носитель информации по п.21, в котором удаленная система содержит альтернативный процесс.
32. Считываемый компьютером носитель информации по п.21, в котором удаленная система содержит альтернативную область приложений.
Описание изобретения к патенту
Область техники, к которой относится изобретение
Настоящее изобретение относится к администрированию сетевой системы и более конкретно, к среде командной строки, предназначенной для администрирования удаленной сетевой системы.
Уровень техники
Вычислительные системы и сети в настоящее время являются сложными и часто очень большими. Некоторые крупные предприятия могут иметь тысячи отдельных вычислительных систем, взаимно соединенных по локальной и глобальной вычислительным сетям. Обеспечение согласованной работы всех этих вычислительных систем является критичным для успеха предприятия. По этой причине разработчики систем стремятся создать полезные инструменты администрирования для администрирования системы.
Поскольку типичный системный администратор является очень опытным пользователем, административные инструменты часто являются более сложными, чем прикладные программы, предназначенные для обычных пользователей. Например, среды с использованием командной строки все еще остаются популярным среди системных администраторов, даже при том, что графический интерфейс пользователя является предпочтительным для обычных пользователей. Часто администраторы могут выполнять относительно сложные задачи быстрее с использованием командной строки, чем при использовании графического интерфейса.
Типичная среда с использованием командной строки обеспечивается оболочкой, работающей в вычислительной системе. Обычно среда командной строки предоставляет несколько основных команд, которые администратор может выполнять. Для более сложных задач типичные среды командной строки позволяют организовать "конвейерную обработку" команд, что означает, что две или больше команд могут быть введены в одну командную строку, и результаты каждой команды организованы в виде "конвейера" или передаются в следующую команду конвейерным образом.
Несмотря на популярность среди администраторов, до настоящего времени уделялось мало внимания тому, чтобы сделать среды командной строки в большей степени удобными и более мощными, в частности, для администрирования удаленной системой. Например, администратор часто должен выполнять некоторые действия на удаленном компьютере или должен использовать информацию, собранную с одного или нескольких удаленных компьютеров. Однако даже относительно простые задачи становятся обескураживающими, когда требуется удаленное управление. Кроме того, из-за сложности вычислительных систем известного уровня техники приходится переопределять значение слова "удаленный". Например, в настоящее время "удаленная" система может представлять собой другой процесс, выполняющийся на том же компьютере, хотя существующие среды командной строки игнорируют эту ситуацию.
До настоящего времени среда командной строки, которая обеспечивала бы сложное администрирование удаленной системы, была не доступна для специалистов в данной области.
Сущность изобретения
Изобретение направлено на механизмы и технологии, предназначенные для сложного администрирования удаленной системы. Вкратце, среда командной строки сконфигурирована для приема командной строки, которая включает в себя множество удаленных узлов. Среда командной строки сконфигурирована для установления сеанса, который может быть постоянным для каждого включенного удаленного узла, и позволяет инициировать исполнение удаленных команд на таких узлах, сеанс может быть назначен переменной, и удаленное исполнение может выполняться одновременно. Результаты удаленного исполнения принимают, и они могут быть сгруппированы в массив. Среда командной строки может распределять задачу установления сеансов другим системам для улучшения рабочих характеристик.
Краткое описание чертежей
На фиг.1 показана функциональная блок-схема, в целом, иллюстрирующая вычислительную среду, которые позволяют выгодно использовать механизмы и технологии, описанные в соответствии с настоящим изобретением.
На фиг.2 показана функциональная блок-схема, подробно иллюстрирующая работу среды командной строки, введенной на фиг.1.
На фиг.3 показана функциональная блок-схема иерархической топологии вычислительных систем в сетевой среде, которой можно управлять с помощью описанной среды командной строки.
На фиг.4 показана логическая последовательность операций, в целом иллюстрирующая этапы, которые могут быть выполнены процессом для удаленного выполнения, по меньшей мере, части инструкций командной строки.
На фиг.5 показана логическая последовательность выполнения операций, в общем иллюстрирующая процесс, предназначенный для улучшения рабочих характеристик среды командной строки, при выдаче удаленной команды в большое количество удаленных устройств.
На фиг.6 показан пример вычислительного устройства, которое может использовать иллюстративную среду командной строки.
Подробное описание предпочтительного варианта осуществления
Приведенное ниже подробное описание относится к одному иллюстративному варианту выполнения среды командной строки для выполнения удаленных команд. Это описание предназначено только для иллюстрации, и его не следует рассматривать как единственный возможный способ выполнения изобретения.
На фиг.1 показана функциональная блок-схема, в общем иллюстрирующая вычислительную среду 100, в которой используются механизмы и технологии, описанные в соответствии с настоящим изобретением. Здесь представлены несколько вычислительных систем, соединенных сетью 110. В частности, сеть 110 соединяет вычислительную систему "администратора" 112 с несколькими удаленными вычислительными системами (например, удаленным компьютером А 120, удаленным компьютером В 121 и удаленным компьютером С 122. Несколько вычислительных систем могут быть частями вычислительной сети предприятия или любой другой среды администрируемой сети. Удаленные вычислительные системы могут быть физически расположены в любом месте.
Сеть 110 может представлять собой любой механизм, предназначенный для соединения различных вычислительных систем, таких как локальная вычислительная сеть, глобальная вычислительная сеть или Интернет. Каждая из удаленных вычислительных систем может быть отдельной вычислительной системой, используемую конечным пользователем, таким как сотрудник компании или абонент.
Администратор 112 представляет собой вычислительную систему, используемую системным администратором, или подобным лицом, для поддержания вычислительной среды 100. Другими словами, администратор 112 выдает команды и выполняет задачи, которые могут посылать запрос о статусе или состоянии других вычислительных систем в вычислительной среде, и производит изменения в одной или нескольких других вычислительных системах. Администратор 112 также может запрашивать или изменять состояние сети 110. Администратор 112 включает в себя среду выполнения программ, которая поддерживает один или более процессов, таких как процесс А 113 и процесс В 114. Каждый процесс является ведущим, по меньшей мере, для одной программы или приложения. Кроме того, один процесс (например, процесс А 113), может представлять собой главный процесс для одной или больше области приложений, таких как приложения Арр1 115 и Арр2 116. Области приложений представляют собой относительно новый механизм, который позволяет выполнять множество прикладных программ в одном и том же процессе, будучи при этом изолированными от других прикладных программ. Область приложений представляет собой логическую и физическую границу, созданную выполняющейся средой вокруг приложения программы. Каждая область приложений исключает влияние других прикладных программ, выполняемых в других областях приложений, на свою конфигурацию, безопасность или стабильность ее соответствующих приложений.
Каждая вычислительная система в вычислительной среде 100 поддерживает среду командной строки, которая реализует описанные здесь механизмы и технологии. Как более подробно описано ниже со ссылкой на фиг.2, администратор 112 включает в себя среду командной строки, которая позволяет пользователю выполнять команды как локально, так и удаленно. Администратор 112 сконфигурирован для установления сеанса между своей локальной средой командной строки (также называемой "оболочкой"), и любой одной или несколькими удаленными системами. В таком варианте выполнения удаленные системы включают в себя удаленные вычислительные устройства (например, удаленный компьютер А 120), а также другие процессы или области приложений в локальной вычислительной системе (то есть в администраторе 112). В соответствии с этим, в отличие от существующих систем, пользователь администратора 112 может устанавливать соединение и удаленно выполнять команды в удаленных вычислительных устройствах или в других процессах или области приложений на локальном вычислительном устройстве. Кроме того, администратор 112 создает отдельные сеанса для каждой удаленной системы и, таким образом, может инициировать команды для одновременного выполнения на множестве удаленных систем, что не обеспечивалось ранее.
На фиг.2 представлена функциональная блок-схема, более подробно иллюстрирующая работу среды 200 командной строки, которая была введена на фиг.1. На фиг.2 представлен администратор 112 и несколько удаленных систем 201. В этом примере две удаленные системы (то есть удаленный компьютер А 120 и удаленный компьютер В 121) представляют собой удаленные вычислительные устройства. В отличие от этого, другая удаленная система (например, удаленная система N 220) может быть другим процессом на локальном компьютере, который выполняет программу в другой прикладной области приложений, или тому подобное. При таком варианте выполнения администратор 112 выполняет удаленное администрирование на удаленных системах 201.
Каждая удаленная система включает в себя несколько "команд" (например, cmds 222). Команды представляют собой относительно небольшие компоненты кода, которые используются для выполнения задач системного администрирования. Примеры могут включать в себя команду "process", для идентификации каждого процесса, выполняемого на вычислительном устройстве, команду "dir" для идентификации файлов в директории на вычислительном устройстве, и множество других. Однако эти команды могут включать в себя любой исполняемый компонент на удаленной системе.
Каждая из удаленных систем 201 также включает в себя удаленный агент (например, агент 224), который представляет собой компонент, отвечающий на дистанционные запросы на выполнение одной или больше команд (например, cmds 222). Кроме того, агенты сконфигурированы так, чтобы брать результаты выполнения одной или больше команд и формировать пакет, который возвращают в запрашивающее устройство. В одном варианте выполнения эти пакеты представлены в форме передаваемого в последовательном виде объекта, который включает в себя результаты выполнения, а также метаинформацию, такую как дата и время вызова, идентифицирующую информацию о конкретной удаленной системе, из которой были выданы результаты, и информацию о запрашивающем объекте. Эта и, возможно, другая информация объединены в возвращаемый пакет 226 для передачи обратно в запрашивающий объект (например, в администратор 112).
Администратор 112 включает в себя компоненты, которые поддерживают среду 200 командной строки. Более конкретно, администратор 112 включает в себя команды 250, аналогичные командам, резидентных на удаленных системах, которые используются в администрировании системы. Управление операциями среды 200 командной строки выполняются с помощью механизма 251 ядра, который сконфигурирован для управления потоком операций и информации между каждым из нескольких компонентов и между администратором 112 и каждой удаленной системой 201. Механизм ядра позволяет принимать данные, вводимые пользователем (например, через оболочку или подобное средство) в форме инструкций командной строки, и выполнять действие в соответствии с ними. Конкретный формат такой инструкции командной строки и технологии ее обработки более подробно описаны ниже.
Кроме того, среда 200 командной строки включает в себя функцию менеджера 253 сеанса. Среда 200 командной строки сконфигурирована для одновременного выполнения удаленных команд на множестве удаленных систем. С этой целью между администратором 112 и любыми удаленными системами 201, идентифицированными в инструкции командной строки, устанавливается разный "сеанс". "Сеанс" 230 представляет собой соединение между администратором 112 и ассоциированными удаленными системами 201. В ответ на инструкцию командной строки, которая касается удаленной системы, менеджер 253 сеанса взаимодействует с агентом (например, агентом 224) на удаленной системе, для вызова процесса на удаленной системе и для создания соединения с этим процессом. Такое соединение называется "сеансом". Один или более сеансов могут быть установлены из командной строки с использованием конкретной команды, например, в такой форме:
$C=new/session-node N1, N2, N3-creds {XXX}-session yes.
В этом примере фраза "new/session" указывает, что должен быть создан новый сеанс. Параметр "-node N1, N2, N3" указывает узлы (удаленные системы), для которых создается сеанс(ы). В качестве альтернативы, вместо параметра "-node", может использоваться параметр "-workerprocess", для создания сеанса для альтернативного процесса на локальной машине, или параметр "-appdomain" можно использовать для создания сеанса для другой прикладной программы в другой области приложений в том же процессе. Параметр "-creds {XXX}" идентифицирует любые конкретные регистрационные данные, используемые для подключения к удаленной системе 201. И, наконец, параметр "-session yes" используется для указания, следует ли продолжать сеанс или нет. Продолжение сеанса используется в случае, когда множество команд могут быть вызваны удаленно с использованием различных командных строк. В отличие от известных ранее систем, сеанс позволяет повторно использовать удаленный процесс для множества инструкций командной строки. Такая возможность улучшает автоматизированное администрирование и выполнение сценария.
Обращаясь снова к примеру командной строки, приведенному выше, можно видеть, что использование синтаксиса "$С=" совместно с созданием нового сеанса, назначает новый сессию переменной "$С" среды. Переменные 275 среды, по существу, представляют собой переменные, поддерживаемые оболочкой, которые были сделаны доступными для других задач и часто используются для совместного использования информации между процессами или прикладными программами. Путем назначения сеанса переменной среды, различные команды могут сделать использование сеанса путем простой ссылки на переменную среды. Кроме того, поскольку один сеанс может включать в себя соединения с множеством удаленных систем, несколько команд могут быть поданы путем подачи их в одну переменную среды, что, таким образом, существенно упрощает выполнение более крупных ("1:множество") административных задач. Ниже приведена иллюстрация командной строки, которую можно применять для использования такой возможности:
$A=rcmd $C get/process.
Данный пример основан на предыдущем примере, вызывая удаленную команду (rcmd) get/process на удаленных системах, имеющих сеансы, идентифицированные в переменной "$С" среды. В соответствии с приведенной выше командной строкой, каждая удаленная команда инициируется одновременно. Это свойство представляет собой существенное улучшение по сравнению с существующими средами командной строки, для которых потребовалось бы программирование цикла или выполнение аналогичной операции для запуска команды в каждой удаленной системе. Таким образом, технология, в соответствии с данным вариантом выполнения, обеспечивает улучшение рабочих характеристик при одновременной обработке команды, вместо необходимости последовательного выполнения каждой удаленной команды.
Кроме того, результаты каждой отдельной удаленной команды объединяют в переменной "$А" среды с помощью агрегатора 255. Другими словами, когда одна удаленная система, соединение с которой обозначено в сеансе "$С", возвращает свой обратный пакет (например, обратный пакет 226), агрегатор 255 включает данные в указанную переменную среды, в данном случае "$А". Таким образом, последующие команды и задачи имеют доступ к результатам выполнения команды во множестве удаленных систем. Результаты записывают в переменной среды в виде агрегатированного массива. Агрегатор 255 сокращает информацию, которая ассоциирует источник каждого пакета с результатами с его конкретным индексом в переменной среды. Таким образом, компоненты среды 200 командной строки могут легко получать доступ к результатам каждого устройства, каждого процесса или каждой области приложений, если это требуется или необходимо. В одном варианте выполнения доступ к агрегатированным результатам может быть сделан синхронно, например, когда возвращены все результаты. В качестве альтернативы, доступ к результатам может обеспечиваться через переменную среды, по мере их поступления.
Аналогичным образом, механизм 251 ядра позволяет обеспечить выполнение командной строки в разагрегатированном виде, благодаря чему команда может иметь доступ к результатам удаленного выполнения, по мере возврата результатов. Например, если пользователь заинтересован в том, чтобы определить какое-либо из множества удаленных вычислительных устройств, в котором имеется избыток некоторого количества свободной памяти, в этом случае выполнение команды может соответствующим образом заканчиваться, после того, когда будет найдено первое такое устройство. В таком случае агрегатор 255 и механизм 251 ядра могут взаимодействовать так, что оценка результатов будет выполняться асинхронно. При этом информация об источнике результатов остается доступной.
Можно рассмотреть случай, когда команда предназначена для выполнения на очень большом количестве удаленных устройств, возможно, на сотнях или даже тысячах устройств. В этом случае может быть предпочтительным не инициировать одновременное выполнение всех этих команд. При этом для улучшения рабочих характеристик можно использовать функцию 257 "клапана". Клапан 257 взаимодействует с механизмом 251 ядра и, возможно, с менеджером 253 сеанса для ограничения количества соединений, которые делаются во время сеанса, что предотвращает перегрузку сети или ресурсов администратора 112. Например, параметр "-throttle 50" можно использовать в командной строке для указания, что не более, чем 50 соединений могут быть активны одновременно. Такое улучшение помогает предотвратить перегрузку ресурсов администратора 112 или сети. В качестве альтернативы, клапан 257 также может взаимодействовать с другими механизмами, связанными с рабочими характеристиками, для регулирования влияния на рабочие характеристики при удаленном выполнении команды. Например, клапан 257 может взаимодействовать с механизмом QOS (КУ, качества услуги) для ограничения влияния на полосу пропускания сети. Кроме того, клапан 257 может быть сконфигурирован для взаимодействия с каждым удаленным агентом для регулирования влияния на рабочие характеристики каждой удаленной системы, например, нагрузки на процессор или запоминающее устройство, или тому подобное.
На фиг.3 показана функциональная блок-схема иерархической топологии 300 вычислительных систем в сетевой среде, администрирование которыми может осуществляться с помощью среды командной строки, описанной выше. Можно представить, что систему, описанную выше, можно использовать для выдачи удаленных инструкций в очень большое количество удаленных устройств, например, включенных в сеть крупного предприятия. С этой целью система командной строки реализует иерархическую топологию 300 для исключения перегрузки администратора 112 в случае большого количества подключений.
Как показано, топология 300 включает в себя администратор 112 и распределенную сеть 301 вычислительных устройств. Распределенная сеть 301 включает в себя иерархическую структуру с первым уровнем 310 вычислительных устройств, состоящую из серверов (то есть сервера А 302, сервера В 303 и сервера С 304), каждый из которых управляет группой дочерних вычислительных устройств на втором уровне 312. Одно или несколько вычислительных устройств второго уровня (например, сервер D 361) может, в свою очередь, иметь свои собственные дочерние устройства, расположенные на третьем уровне 314, и так далее. Распределенная сеть 301, показанная на фиг.3, представлена только в качестве иллюстрации, и следует понимать, что сложные сети предприятия могут содержать множество уровней серверов, и тысяч вычислительных устройств.
В данном варианте выполнения несколько вычислительных устройств в распределенной сети 301 включают в себя компоненты (например, агент 308), которые могут взаимодействовать совместно с администратором 112 для обеспечения распределения работы, связанной с выполнением командной инструкции. Более конкретно, инструкция командной строки, передаваемая в администратор 112 может влиять на очень большое количество вычислительных устройств в распределенной сети 301. В соответствии с этим администратор 112, вместо того, чтобы локально инициировать все соединения, необходимые для выполнения инструкций, распределяет задачу среди нескольких дочерних устройств в распределенной сети 301. Такое распределение может быть выполнено, по меньшей мере, двумя способами.
Во-первых, в случае, когда администратор 112 не обладает информацией о схеме распределенной сети 301, такая администратор 112 может выдавать инструкцию на выполнение команды в каждый сервер на первом уровне 310, с дополнительными инструкциями выполнения этой команды на каждом из их дочерних устройствах или на каких-либо их дочерних устройствах, которые находятся в идентифицированном наборе соответствующих узлов. Таким образом, задача фактического запуска каждого соединения распределяется среди других вычислительных устройств. Вычислительные устройства на первом уровне 310 могут дополнительно делегировать некоторые из выполняемых задач в подчиненные вычислительные устройства, находящиеся на втором уровне 312, например сервер D 361.
Во-вторых, в случае, когда администратор 112 обладает информацией о схеме размещения распределенной сети 301 и может идентифицировать, какие серверы управляют каждым из краевых узлов, администратор 122 может разделять команду на подкоманды для каждой ветви распределенной сети 301, содержащей задействованные узлы. Затем администратор 112 подает эти подкоманды непосредственно в контроллер задействованных узлов. В сущности, такая технология позволяет администратору 112 поддерживать управление в отношении того, какой сервер или узел в распределенной сети 301 фактически выполняет инструкцию команды. Кроме того, такая технология упрощает задачу, выполняемую подчиненными вычислительными устройствами, благодаря тому, что им не требуется определять, содержат ли они задействованные дочерние устройства.
Следует отметить, что каждая из этих технологий упрощается, благодаря тому, что возвращаемые результаты (см. фиг.2) содержат достаточную информацию для идентификации источника результатов и командных инструкций, к которым эти результаты относятся. При отсутствии такой информации администратору 112 и каждому делегируемому устройству потребовалось бы выполнять координацию для обеспечения возможности сопоставления возвращаемых результатов с конкретным узлом, в случае, когда бы такая информация потребовалась.
На фиг.4 показана логическая последовательность операций, в общем иллюстрирующая этапы, которые может выполнять процесс 400 для удаленного выполнения, по меньшей мере, части инструкций командной строки. Процесс 400 начинается на этапе 401, где в среду выполнения командной строки поступает командная строка. Хотя любая среда выполнения командной строки, пригодная для воплощения описанных технологий, является приемлемой, среда командной строки, описанная в совместно находящейся на рассмотрении заявке № 10/693785 на патент США под названием Administrative Tool Environment, поданной 24 октября 2003 г., является в особенности пригодной для этой цели. То есть эта заявка на патент США и полностью приведена здесь в качестве ссылки.
На этапе 403 определяется, что принятая командная строка включает в себя, по меньшей мере, одну команду, предназначенную для удаленного выполнения в одной или нескольких удаленных системах. Удаленное выполнение означает выполнение в удаленном вычислительном устройство, в другом процессе в локальном вычислительном устройстве, или в задаче в другой области приложений в том же локальном процессе.
На этапах 405 и 407 среда командной строки инициирует постоянного сеанса для каждой идентифицированной удаленной системы, и вызывает выполнение удаленной команды каждой удаленной системой. В качестве альтернативы, можно использовать один сеанс, который включает в себя отдельные соединения с каждым удаленным устройством. Как отмечено выше, для переменной среды может быть назначен постоянный сеанс. Кроме того, каждое соединение в сеансе может быть последовательно или одновременно вызвано для выполнения удаленной команды. Улучшение работы на этих этапах представлено на фиг.5 и описано ниже.
На этапе 409 получают результаты удаленного выполнения команд. Как отмечено выше, эти результаты могут быть представлены в форме возвращаемого пакета или передаваемого в последовательном виде объекта, который включает в себя результаты выполнения, а также другую идентифицирующую информацию, относящуюся к удаленному узлу, который выполнил команду и т.п.
На фиг.5 показана логическая последовательность операций, в общем иллюстрирующая процесс 500, предназначенный для улучшения рабочих характеристик среды командной строки при выдаче удаленной команды в большое количество удаленных устройств. Процесс 500 начинается на этапе 501, где командную строку разделяют на множество подкоманд на основе информации, относящейся к тому, какие задействованные узлы управляются каким контроллером в наборе контроллеров. Затем на этапе 503 каждую подкоманду передают в каждый идентифицированный контроллер для этих задействованных узлов, управляемых конкретными контроллерами. Наконец, на этапе 505 результаты, поступающие из каждого контроллера, агрегатируют. Поскольку каждый из результатов включает в себя информацию об узле - источнике, на этапе агрегатирования не теряется ценная информация о том, какой из узлов сгенерировал эти результаты, если такая информация необходима.
Среда командной строки, описанная выше, имеет несколько преимуществ по сравнению с существующими системами. Возможность продолжения сеанса позволяет повторного использовать удаленные процессы для множества команд. Множество команд могут быть агрегированы в один сеанс, что позволяет обеспечить простую одновременную обработку удаленной команды без необходимости использования рабочих потоков или подобного инструмента. И задача выполнения удаленной команды может быть распределена в другие системы для улучшения рабочих характеристик. Эти и другие преимущества очевидны для специалистов в данной области техники.
На фиг.6 представлен пример вычислительного устройства, которое можно использовать в примере среды командной строки. В самой базовой конфигурации вычислительное устройство 600 обычно включает в себя, по меньшей мере, один процессор 602 и системное запоминающее устройство 604. В зависимости от точной конфигурации и типа вычислительного устройства, системное запоминающее устройство 604 может быть энергозависимым (например, таким как ОЗУ), энергонезависимым (например, таким как ПЗУ, запоминающим устройством типа флэш и т.д.) или некоторой их комбинации. Системное запоминающее устройство 604 обычно включает в себя операционную систему 605, один или больше программных модулей 606, и может включать в себя программные данные 607. Операционная система 606 включает в себя инфраструктуру 620 на основе компонентов, которая поддерживает компоненты (включая свойства и события), объекты, наследование, полиморфизм, отражение и предоставляет объектно-ориентированный программный интерфейс приложений (ПИП, API), основанный на компонентах, например, такой как NETTM Framework, производства компании Microsoft Corporation, г. Редмонд, штат Вашингтон. Операционная система 605 также может включать в себя среду 200 командной строки, такую как описана выше. Эта базовая конфигурация представлена на фиг.6 в виде компонентов, изображенных внутри пунктирной линии 608.
Вычислительное устройство 600 может иметь дополнительные свойства или функциональные блоки. Например, вычислительное устройство 600 также может включать в себя дополнительные устройства хранения данных (съемные и/или несъемные), такие как, например, магнитные диски, оптические диски или ленту. Такие дополнительные устройства представлены на фиг.6 в виде съемного запоминающего устройства 609 и несъемного запоминающего устройства 610. Компьютерные носители информации могут включать в себя энергозависимые и энергонезависимые, съемные и несъемные носители, выполненные с использованием любого способа или технологии и предназначенные для хранения информации, такой как считываемых компьютером инструкций, структур данных, программных модулей или других данных. Системное запоминающее устройство 604, съемный накопитель 609 и несъемный накопитель 610 представляют собой примеры компьютерных носителей информации. Компьютерные носители информации включают в себя, без ограничений, ОЗУ, ПЗУ, СППЗУ, запоминающие устройства типа флэш или запоминающих устройства, построенные с использованием других технологий, CD-ROM, универсальные цифровые диски (DVD) или другие оптические накопители, магнитные кассеты, магнитную ленту, накопители на магнитных дисках или другие магнитные запоминающие устройства, или любые другие носители, которые можно использовать для сохранения требуемой информации, доступ к которым может быть обеспечен с помощью вычислительного устройства 600. Любой такой компьютерный носитель информации может представлять собой часть устройства 600. Компьютерное устройство 600 также может иметь входное устройство(а) 612, такие как клавиатура, мышь, перо, устройство голосового ввода информации, сенсорное устройство ввода информации и т.д. Выходное устройство(а) 614, такие как дисплей, громкоговорители, принтер и т.д., также могут присутствовать. Такие устройства хорошо известны в данной области техники, и здесь не требуется их подробное описание.
Компьютерное устройство 600 также может содержать соединения 616 передачи данных, которые позволяют устройству обеспечивать связь с другими вычислительными устройствами 618, например, по сети. Соединения 616 передачи данных представляют собой один из примеров среды передачи данных. Среда передачи данных обычно может быть воплощена в виде считываемых компьютером инструкций, структур данных, программных модулей или других данных в сигнале, модулированном данными, таком как колебания несущей частоты, или с использованием другого транспортного механизма, и включает любую среду передачи информации. Термин "сигнал, модулированный данными", означает сигнал, одну или несколько характеристик которого изменяют или устанавливают таким образом, чтобы обеспечивалась возможность кодирования информации в сигнале. В качестве примера, и без ограничений, среда передачи данных включает кабельную среду, такую как кабельная сеть, или непосредственное кабельное соединение, и беспроводные среды, такие как акустическая, радиочастотная, инфракрасная и другие беспроводные среды. Используемый здесь термин носитель, считываемый компьютером, включает как носители для хранения информации, так и носители для передачи данных.
Хотя выше приведено подробное описание конкретных вариантов выполнения и воплощения, такое подробное описание предназначено для удовлетворения предписанных правил описания, а не для ограничения приведенной ниже формулы изобретения. Таким образом, настоящее изобретение, в том виде, как оно определено формулой изобретения, не ограничивается конкретными признаками, описанными выше. Вместо этого, настоящее изобретение заявлено в любой из его форм или модификаций, которые находятся в соответствующем объеме приложенной формулы изобретения, соответствующим образом интерпретированной в соответствии с доктриной эквивалентов.
Класс G06F21/22 путем ограничения доступа к программам или процессам
Класс G06F15/16 сочетание двух или более вычислительных машин, каждая из которых снабжена по меньшей мере арифметическим устройством, программным устройством и регистром, например для одновременной обработки нескольких программ
Класс G06F9/04 с применением носителей информации, содержащих только программные команды