Переводческий сервис на базе электронного сообщества
Иллюстрации
Показать всеИзобретение относится к переводу текста и, в частности, к электронной инфраструктуре, которая лежит в основе сообщества пользователей, осуществляющих электронный доступ к переводам слов и фраз и добавляющих переводы слов и фраз. Техническим результатом является обеспечение возможности пользователям просматривать переводы и обращаться к переводам, а также осуществлять поиск переводов и добавлять переводы. Система для реализации переводческого сервиса на базе электронного сообщества включает центр обработки данных, в который входит одна или более компьютерных систем. Компьютерные системы осуществляют электронный обмен данными с удаленными пользовательскими устройствами, получают запросы от пользовательских устройств и передают на пользовательские устройства ответы на запросы, реализуя интерактивный пользовательский интерфейс. В центре обработки данных размещаются посты-запросы на перевод, посты-переводы и посты на свободные темы для их дальнейшего распространения и отображения на пользовательских устройствах в качестве постов сообщества. В центр обработки данных передается информация о рейтинге постов для соотнесения с постами и информация о членах сообщества. 3 н. и 17 з.п. ф-лы, 38 ил.
Реферат
ОБЛАСТЬ ТЕХНИКИ
Настоящий документ относится к переводу с и на естественные языки и, в частности, к электронной инфраструктуре, которая лежит в основе сообщества пользователей, осуществляющих электронный доступ к переводам слов и фраз и добавляющих переводы слов и фраз.
УРОВЕНЬ ТЕХНИКИ
По мере развития электронных коммуникаций и компьютерных технологий за последние 60 лет появилось множество работающих через сеть Интернет коммуникационных систем и сервисов по распространению информации, способствующих общению и обмену информацией между большим числом географически рассредоточенных пользователей. К данным сервисам относятся многочисленные онлайн-ресурсы, такие как Wikipedia и YouTube, а также множество различных социальных сетей, в том числе Facebook.
С появлением глобальных электронных коммуникаций растет интерес к языковому переводу и сервисам для языкового перевода. Разработано множество онлайн-словарей и переводческих сервисов, оказывающих помощь в переводе электронных писем, документов, электронных сообщений, а также передаваемых в электронном виде аудиофайлов, содержащих слова и фразы разговорной речи. При том что многие из данных сервисов предусматривают перевод слов и фраз с одного языка на другой, им недостает таких функций, которые позволили бы некому сообществу пользователей в процессе сотрудничества его членов друг с другом формировать и вносить вклад в развитие переводческого сервиса на базе электронного сообщества. Среди изучающих языки, преподавателей, переводчиков и тех, кто использует несколько языков в своей личной или деловой жизни, сохраняется потребность в простых в использовании, верифицируемых и универсальных переводческих сервисах, в развитии которых они могут участвовать.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Настоящий документ относится к переводческому сервису на базе электронного сообщества, в который входят распределенная компьютерная система, средства и инфраструктура электронной коммуникации, несколько пользовательских устройств с процессорным управлением, а также элементы системы управления распределенной компьютерной системой, коммуникационной инфраструктурой и пользовательскими устройствами с процессорным управлением и который, таким образом, реализует электронное сообщество, где пользователи могут просматривать и добавлять переводы, а также осуществлять их поиск и обращаться к ним. Так как в основе данного переводческого сервиса лежит сообщество пользователей, пользователи, обращающиеся к переводам, могут определять различные характеристики, соотнесенные с размещенными в сообществе переводами и теми, кто их разместил. Кроме того, пользователи могут следить за использованием тех или иных переводов в сообществе, в том числе получать информацию о том, кто использовал те или иные размещенные в сообществе переводы, кто ими делился и кто их оценивал. Переводческий сервис на базе электронного сообщества позволяет пользователям добавлять комментарии к переводам, а также добавлять собственные переводы. Во многих вариантах реализации модераторы-люди и (или) автоматизированные подсистемы верификации совместно удостоверяют и верифицируют пользователей, их статусы, уровни владения языками и другие характеристики и параметры. В определенных вариантах реализации переводческий сервис на базе электронного сообщества не только обеспечивает возможность размещения сообщений подобно тому, как это осуществляется в социальных сетях, но и обеспечивает возможность поиска переводов.
Заявленное изобретение направлено на достижение технического результата, заключающегося в обеспечении возможности пользователям просматривать переводы и обращаться к переводам, а также осуществлять поиск переводов и добавлять переводы.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
На Фиг. 1 представлена общая архитектурная схема различных типов компьютеров.
На Фиг. 2 иллюстрируется подключенная к сети Интернет распределенная компьютерная система.
На Фиг. 3 иллюстрируется облачная вычислительная среда.
На Фиг. 4 иллюстрируется обобщенное аппаратное и программное обеспечение компьютерной системы общего назначения, такой как компьютерная система общего назначения, аналогичная по своей архитектуре системе, показанной на Фиг. 1.
На Фиг. 5А-В иллюстрируются два типа виртуальных машин и сред выполнения виртуальных машин.
На Фиг. 6 иллюстрируются процессы электронной коммуникации между клиентом и серверным компьютером.
На Фиг. 7 иллюстрируется роль ресурсов в RESTful API.
На Фиг. 8A-D иллюстрируются четыре основные команды, или операции, предлагаемые HTTP-протоколом прикладного уровня, который используется в приложениях RESTful.
На Фиг. 9A-G иллюстрируется главная страница согласно одному варианту реализации переводческого сервиса на базе электронного сообщества, отображенная в веб-браузере, работающем на пользовательском устройстве с процессорным управлением, а также многочисленные функции, предоставляемые главной страницей.
На Фиг. 10 иллюстрируется общая архитектура на аппаратном уровне и на уровне коммуникационной инфраструктуры согласно одному варианту реализации переводческого сервиса на базе электронного сообщества.
На Фиг. 11А-С иллюстрируется общий вариант реализации подсистем управления в составе переводческого сервиса на базе электронного сообщества.
На Фиг. 12 иллюстрируется процесс управления приложением браузера на пользовательском устройстве с процессорным управлением переводческим сервисом на базе электронного сообщества для обеспечения интерактивного пользовательского интерфейса, с помощью которого пользователи размещают запросы на перевод, переводы и сообщения на свободную тему в сообществе пользователей переводческого сервиса на базе электронного сообщества.
На Фиг. 13 иллюстрируется компонента данных клиентской и серверной части переводческого сервиса на базе электронного сообщества.
На Фиг. 14A-J с помощью блок-схем иллюстрируется один вариант реализации переводческого сервиса на базе электронного сообщества, к которому относится настоящий документ.
На Фиг. 15А иллюстрируется процесс вычисления начального рейтинга размещенного перевода, осуществляемого путем вызова функции «присвоить начальный рейтинг» на этапе 1488, который показан на Фиг. 14I.
На Фиг. 15В-С иллюстрируются примеры таблиц реляционной базы данных, которые могут использоваться в определенных вариантах реализации для хранения данных в распределенной компьютерной системе, в которую, в том числе, входят веб-серверы, предоставляющие хостинг для вебсайта переводческого сервиса на базе электронного сообщества.
ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ РЕАЛИЗАЦИИ
Настоящий документ относится к переводческому сервису на базе электронного сообщества. В одном варианте реализации переводческий сервис на базе электронного сообщества включает распределенную компьютерную систему, несколько пользовательских устройств с процессорным управлением, коммуникационную инфраструктуру, обеспечивающую обмен электронными данными между пользовательскими устройствами с процессорным управлением и распределенной компьютерной системой, и элементы системы управления, которые управляют переводческим сервисом на базе электронного сообщества и которые вместе обеспечивают возможности для добавления переводов слов и фраз с одного языка на другой, обращения к ним, а также их оценки и комментирования. Переводческий сервис на базе электронного сообщества - это сложная комбинация компьютеров, устройств с процессорным управлением, средств связи и элементов управления, многие из которых отчасти реализованы с помощью хранящихся на электронных устройствах машинных команд, выполняемых на одном или более процессорах пользовательских устройств с процессорным управлением и распределенной компьютерной системе. Переводческий сервис на базе электронного сообщества - это физическая система, которая состоит из физических устройств с процессорным управлением, физических компьютерных систем и физических элементов системы управления. Ниже, в первом подразделе, приводится краткий обзор компьютеров, операционных систем, слоев виртуализации и протоколов электронных коммуникаций. Во втором подразделе приводится подробное описание многих функций, а также пользовательского интерфейса согласно одному варианту реализации переводческого сервиса на базе электронного сообщества. В третьем подразделе приводится подробное описание одного варианта реализации переводческого сервиса на базе электронного сообщества.
Краткий обзор компьютеров и электронных коммуникаций
На Фиг. 1 представлена общая архитектурная схема различных типов компьютеров. Веб-сервисы и пользовательские компьютеры, которые поддерживают работу приложения браузера, можно описать, например, с помощью общей архитектурной схемы, показанной на Фиг. 1. Компьютерная система содержит один или несколько центральных процессоров (ЦП) 102-105, один или более электронных модулей памяти 108, взаимосвязанных с ЦП через шину подсистемы ЦП/память 110 или несколько шин, первый мост 112, который соединяет шину подсистемы ЦП/память 110 с дополнительными шинами 114 и 116, либо другие виды средств высокоскоростного соединения, в том числе множественные высокоскоростные последовательные линии. Эти шины или последовательные линии, в свою очередь, соединяют ЦП и память со специализированными процессорами, такими как графический процессор 118, а также с одним или более дополнительными мостами 120, взаимосвязанными с высокоскоростными последовательными линиями или несколькими контроллерами 122-127, например с контроллером 127, которые предоставляют доступ к различным типам запоминающих устройств большой емкости 128, электронным дисплеям, устройствам ввода и другим подобным компонентам, подкомпонентам и вычислительным ресурсам. Следует отметить, что к машиночитаемым запоминающим устройствам относятся оптические и электромагнитные диски, модули электронной памяти и прочие физические запоминающие устройства. Те, кто знаком с современной наукой и технологиями, понимают, что электромагнитное излучение и распространяющиеся сигналы не хранят данные для последующего обращения и могут обеспечить лишь кратковременное «хранение» информации размером в байт или менее на милю расстояния, что намного меньше того, что необходимо для шифрования даже самых простых подпрограмм.
Конечно, существует множество различных типов архитектур компьютерных систем, отличающихся друг от друга числом различных модулей памяти, в том числе различных видов модулей иерархической кэш-памяти, числом процессоров и возможностью подключения процессоров к другим компонентам системы, числом внутренних коммуникационных шин и последовательных линий и по многим другим параметрам. Тем не менее, компьютерные системы, как правило, выполняют хранящиеся программы, выбирая инструкции из памяти и выполняя их на одном или более процессорах. К компьютерным системам относятся компьютерные системы общего назначения, такие как персональные компьютеры (ПК), различные виды серверов и рабочих станций, более совершенные мейнфреймы, а также целый ряд различных видов вычислительных устройств специального назначения, в том числе системы хранения данных, устройства маршрутизации связей, сетевые узлы, планшетные компьютеры и мобильные телефоны.
На Фиг. 2 иллюстрируется подключенная к сети Интернет распределенная компьютерная система. По мере роста производительности и доступности коммуникаций и сетевых технологий, а также стремительного устойчивого увеличения диапазонов вычислительных возможностей, емкости запоминающих устройств и других возможностей и способностей различных видов компьютерных систем, в настоящее время к основным современным направлениям развития вычислительной техники относятся крупные распределенные системы и компьютеры, объединенные локальными сетями, крупномасштабными сетями, беспроводными коммуникациями и Интернетом. На Фиг. 2 показана типичная распределенная система, в которой большое число ПК 202-205, усовершенствованная распределенная система мейнфреймов 210 с большой системой хранения данных 212 и крупный вычислительный центр 214 с большим числом монтируемых на стойке или платных серверов объединены с помощью различных коммуникационных и сетевых систем, которые вместе взятые образуют Интернет 216. Такие распределенные компьютерные системы предоставляют различные наборы функциональных возможностей. Так, пользователь ПК, находящийся в домашнем офисе, может получить доступ к миллионам различных веб-сайтов, находящихся на сотнях тысяч различных веб-серверов по всему миру, а также получать доступ к вычислительным сервисам с большими вычислительными возможностями на базе удаленных вычислительных центров для выполнения сложных вычислительных задач. До настоящего времени вычислительные услуги в основном предоставлялись компьютерными системами и центрами обработки данных, которые приобретались, настраивались, управлялись и обслуживались организациями-поставщиками услуг. Например, предприятия розничной электронной торговли для предоставления веб-страниц для удаленных заказчиков, получения заказов через интерфейс веб-страниц, обработки заказов, отслеживания выполненных заказов и бесчисленного множества других задач, связанных с деятельностью предприятия электронной торговли, обычно приобретали, настраивали, управляли и обслуживали центр обработки данных, включающий многочисленные веб-серверы, компьютерные системы для работы с базами данных и системы хранения данных.
На Фиг. 3 иллюстрируется облачная вычислительная среда. Согласно недавно разработанной парадигме облачной обработки данных теперь вычислительные циклы и средства хранения данных предоставляются организациям и физическим лицам поставщиками облачных вычислительных услуг. Кроме того, помимо подписки на вычислительные услуги, предоставляемые публичными поставщиками облачных вычислительных услуг, или вместо такой подписки крупные организации могут создать частные облачные вычислительные центры. На Фиг. 3 системный администратор организации с помощью ПК 302 осуществляет доступ к частному облаку 304 организации через локальную сеть 306, используя интерфейс 308 частного облака, а также осуществляет доступ через Интернет 310 к публичному облаку 312, используя интерфейс 314 публичного облака. Как с частым облаком 304, так и с публичным облаком 312 администратор может конфигурировать виртуальные компьютерные системы и даже целые виртуальные центры обработки данных и запускать выполнение прикладных программ на виртуальных компьютерных системах и виртуальных центрах обработки данных для выполнения любых из множества различных видов вычислительных задач. Например, небольшая организация может конфигурировать и исполнять находящийся в публичном облаке виртуальный центр обработки данных, который выполняет веб-серверы, предоставляющие через публичное облако доступ к интерфейсу Интернет-магазина удаленным заказчикам данной организации, подобно тому, когда пользователь осуществляет навигацию по Интернет-магазину данной организации через удаленную пользовательскую систему 316.
На Фиг. 4 иллюстрируется обобщенное аппаратное и программное обеспечение компьютерной системы общего назначения, такой как компьютерная система общего назначения, аналогичная по своей архитектуре системе, показанной на Фиг. 1. Обычно считается, что компьютерная система 400 состоит из трех фундаментальных уровней: (1) аппаратный слой или уровень 402; (2) слой или уровень операционной системы 404; и (3) слой или уровень прикладных программ 406. К аппаратному уровню 402 относится один или более процессоров 408, системная память 410, различные виды устройств ввода-вывода 410 и 412, а также запоминающие устройства большой емкости 414. Конечно, уровень аппаратного обеспечения также включает многие другие компоненты, в том числе источники питания, внутренние линии связи и шины, специализированные интегральные схемы, множество различных видов периферийных устройств и контроллеров с процессорным или микропроцессорным управлением и прочие компоненты. Операционная система 404 взаимодействует с уровнем аппаратного обеспечения 402 через низкоуровневый интерфейс 416 операционной системы и аппаратного обеспечения, который, как правило, включает набор непривилегированных машинных команд 418, набор привилегированных машинных команд 420, набор непривилегированных регистров и адресов областей памяти 422 и набор привилегированных регистров и адресов областей памяти 424. В общем, операционная система предоставляет непривилегированные команды, непривилегированные регистры и непривилегированные адреса областей памяти 426, а также интерфейс системных вызовов 428 прикладным программам 432-436, которые выполняются в рамках среды выполнения, предоставленной прикладным программам операционной системой, в качестве интерфейса операционной системы 430. Только операционная система имеет доступ к привилегированным командам, привилегированным регистрам и привилегированным адресам областей памяти. Резервируя за собой доступ к привилегированным командам, привилегированным регистрам и привилегированным адресам областей памяти, операционная система может предотвращать ситуации, когда прикладные программы и прочие высокоуровневые вычислительные сущности препятствуют выполнению друг друга и изменяют общее состояние компьютерной системы таким образом, что это оказывает негативное влияние на работу системы. Операционная система состоит из множества внутренних компонентов и модулей, включая планировщика 442, систему управления памятью 444, файловую систему 446, драйверы устройств 448 и многие другие компоненты и модули. В определенной степени современные операционные системы обеспечивают большое множество уровней абстракции над уровнем аппаратного обеспечения, в том числе виртуальную память, которая предоставляет каждой прикладной программе и другим вычислительным сущностям отдельное большое линейное адресное пространство памяти, привязанное операционной системой к различным видам электронной памяти и запоминающих устройств большой емкости. Планировщик организует попеременное выполнение различных прикладных программ и высокоуровневых вычислительных сущностей, предоставляя каждой прикладной программе виртуальную автономную систему, которая всецело предназначена для обеспечения работы данной прикладной программы. С точки зрения прикладной программы сама прикладная программа выполняется непрерывно, не заботясь о необходимости делить ресурсы процессоров и другие системные ресурсы с другими прикладными программами и высокоуровневыми вычислительными сущностями. Драйверы устройства абстрагируют сведения о работе компонентов аппаратного обеспечения, позволяя прикладным программам использовать интерфейс системных вызовов для передачи и получения данных на и от коммуникационных сетей, запоминающих устройств большой емкости и других устройств и подсистем ввода-вывода. Файловая система 436 способствует абстрагированию ресурсов запоминающего устройства и памяти в качестве высокоуровневого легкодоступного интерфейса файловой системы. Таким образом, разработка и развитие операционной системы привели к созданию некого вида многосторонней виртуальной среды выполнения прикладных программ и прочих высокоуровневых вычислительных сущностей.
Несмотря на то что оказалось, что предоставляемые операционными системами среды выполнения программ обеспечивают очень эффективный уровень абстракции в рамках компьютерных систем, такой уровень абстракции тем не менее связан с рядом сложностей и проблем, с которыми сталкиваются разработчики и пользователи прикладных программ и других высокоуровневых вычислительных сущностей. Одна из сложностей заключается в том, что существует множество различных операционных систем, которые работают на различных видах компьютерного аппаратного обеспечения. Во многих случаях популярные прикладные программы и вычислительные системы разрабатываются для работы лишь на определенном подмножестве доступных операционных систем и, таким образом, могут выполняться только на некотором подмножестве различных видов компьютерных систем, для работы на которых предназначены такие операционные системы. Зачастую, даже если некая прикладная программа или другая вычислительная система переносится на дополнительные операционные системы, данная прикладная программа или вычислительная система тем не менее более эффективно работает на операционных системах, для которых она была изначально предназначена. Другая сложность обусловлена все более распределенным характером компьютерных систем. Несмотря на то, что ведется большое количество исследований и разработок по созданию распределенных операционных систем, множество популярных операционных систем в настоящее время предназначено в основном для выполнения на одной компьютерной системе. Зачастую переместить прикладные программы в режиме реального времени с одной компьютерной системы на другую в рамках одной распределенной компьютерной системы в целях обеспечения бесперебойности, отказоустойчивости и распределения нагрузки оказывается трудной задачей. Еще более серьезные проблемы возникают при работе с гетерогенными распределенными компьютерными системами, в которые входят различные виды аппаратного обеспечения и устройств, работающими на различных видах операционных систем. Эволюция операционных систем продолжается, в результате чего некоторые прежние версии прикладных программ и прочих вычислительных сущностей могут быть несовместимы с более современными версиями операционных систем, для которых они предназначены, что обуславливает проблемы совместимости, которые особенно плохо поддаются решению в крупных распределенных системах.
По всем этим причинам и был разработан более высокий уровень абстракции, именуемый «виртуальной машиной», который постоянно развивается для дальнейшего абстрагирования компьютерного аппаратного обеспечения, что позволит преодолеть множество сложностей и проблем, связанных с традиционными компьютерными системами, в том числе описанные выше проблемы совместимости. На Фиг. 5А-В иллюстрируются два типа виртуальных машин и сред выполнения виртуальных машин. На Фиг. 5А-В использованы те же условные обозначения, что и на Фиг. 4. На Фиг. 5А показан первый тип виртуализации. Аппаратный уровень 502 компьютерной системы 500 на Фиг. 5А аналогичен аппаратному уровню 402, показанному на Фиг. 4. Однако в отличие от Фиг. 4, где операционная система находится непосредственно над аппаратным уровнем, изображенная на Фиг. 5А виртуализированная вычислительная среда имеет слой виртуализации 504, который взаимодействует с аппаратным обеспечением через интерфейс слой виртуализации/слой аппаратного обеспечения 506, эквивалентный интерфейсу 416 на Фиг. 4. Слой виртуализации обеспечивает псевдоаппаратный интерфейс 508 для целого ряда машин, таких как виртуальная машина 510, выполняемых на уровне виртуальной машины 512 над уровнем виртуализации. Каждая виртуальная машина включает одну или более прикладных программ или других высокоуровневых вычислительных сущностей, запакованных вместе с операционной системой, именуемой «гостевой операционной системой», таких как приложение 514 и гостевая операционная система 516, запакованные в виртуальной машине 510. Каждая виртуальная машина, таким образом, эквивалентна слою операционной системы 404 и слою прикладной программы 406 в компьютерной системе общего назначения, показанной на Фиг. 4. Каждая гостевая операционная система в составе виртуальной машины взаимодействует с интерфейсом 508 слоя виртуализации, а не с фактическим аппаратным интерфейсом 506. Слой виртуализации разделяет аппаратные ресурсы на абстрактные слои виртуального аппаратного обеспечения, с которыми взаимодействует каждая гостевая операционная система в составе виртуальной машины. Гостевые операционные системы в составе виртуальных машин не знают о наличии слоя виртуализации и работают, словно они осуществляют доступ к истинному аппаратному интерфейсу напрямую. Благодаря слою виртуализации каждая из виртуальных машин, в данный момент выполняемых в виртуальной среде, получает должную долю аппаратных ресурсов, и все виртуальные машины получают достаточно ресурсов для обеспечения непрерывности их выполнения. Интерфейс 508 слоя виртуализации для разных гостевых операционных систем может быть разным. Так, слой виртуализации, как правило, может предоставлять виртуальные аппаратные интерфейсы для целого ряда различных видов компьютерного аппаратного обеспечения. Это позволяет, например, виртуальной машине, в которую входит гостевая операционная система, предназначенная для определенной компьютерной архитектуры, работать на аппаратном обеспечении с другой архитектурой. Число виртуальных машин не обязательно должно равняться числу физических процессоров или даже быть кратным числу процессоров.
Слой виртуализации включает модуль монитора виртуальной машины 518 (МВМ), который виртуализирует физические процессоры на аппаратном уровне для создания виртуальных процессоров, на которых будет выполняться каждая из виртуальных машин. В целях обеспечения эффективности выполнения уровень виртуализации пытается позволить виртуальным машинам напрямую выполнять непривилегированные команды и напрямую осуществлять доступ к непривилегированным регистрам и памяти. Однако когда гостевая операционная система в составе виртуальной машины осуществляет доступ к виртуальным привилегированным командам, виртуальным привилегированным регистрам и виртуальной привилегированной памяти через интерфейс 508 слоя виртуализации, операции доступа ведут к выполнению кода слоя виртуализации для моделирования или имитации привилегированных ресурсов. В слой виртуализации дополнительно входит модуль ядра 520, который управляет памятью, коммуникациями и ресурсами машины хранения данных от лица выполняемых виртуальных машин (ядро ВМ). Ядро ВМ, например, обеспечивает на каждой виртуальной машине таблицы теневых страниц, что позволяет использовать средства виртуальной памяти аппаратного уровня для обработки операций доступа к памяти. В ядро ВМ также входят подпрограммы, которые реализуют виртуальные коммуникации и запоминающие устройства, а также драйверы устройств, непосредственно управляющие работой базовых аппаратных коммуникаций и запоминающих устройств. Аналогичным образом ядро ВМ виртуализирует другие различные виды устройств ввода-вывода, в том числе клавиатуры, приводы оптических дисков и прочих подобных устройств. Ключевой задачей слоя виртуализации является планирование выполнения виртуальных машин наподобие тому, как операционная система планирует выполнение прикладных программ так, чтобы каждая виртуальная машина выполнялась на полноценном и полностью работоспособном виртуальном аппаратном слое.
На Фиг. 5В иллюстрируется второй тип виртуализации. На Фиг. 5В в компьютерную систему 540 входит тот же аппаратный уровень 542 и программный уровень 544, что и аппаратный уровень 402, показанный на Фиг. 4. Как показано, в предоставленной операционной системой среде выполнения работают прикладные программы 546 и 548. Кроме того, на компьютере 540 также имеется слой виртуализации 550, который, в отличие от слоя виртуализации 504, описанного в контексте Фиг. 5А, расположен выше слоя операционной системы 544, именуемой «гостевой ОС», и использует интерфейс операционной системы для доступа к обеспечиваемым операционной системой функциональным возможностям, а также аппаратному обеспечению. Слой виртуализации 550 содержит в основном МВМ и псевдоаппаратный интерфейс 552, аналогичный псевдоаппаратному интерфейсу 508 на Фиг. 5А. Интерфейс слой виртуализации/аппаратный слой 552, эквивалентный интерфейсу 416 на Фиг. 4, обеспечивает среду выполнения для целого ряда виртуальных машин 556-558, каждая из которых включает одну или более прикладных программ или других высокоуровневых вычислительных сущностей, запакованных вместе с гостевой операционной системой.
На Фиг. 5А-В для ясности иллюстрации уровни представлены в несколько упрощенном виде. Так, части слоя виртуализации 550 могут находиться в ядре гостевой операционной системы, как, например, специализированный драйвер, включенный в гостевую операционную систему для обеспечения доступа к аппаратному обеспечению для слоя виртуализации.
Электронные коммуникации между компьютерными системами обычно включают пакеты информации, именуемые дейтаграммами, которые передаются от клиентских компьютеров на серверные компьютеры и от серверных компьютеров на клиентские компьютеры. В ряде случаев коммуникацию между компьютерными системами обычно рассматривают с относительно высокого уровня прикладной программы, которая для передачи информации использует протокол прикладного уровня. Однако протокол прикладного уровня реализуется поверх дополнительных уровней, в том числе транспортного уровня, сетевого уровня и канального уровня. Данные уровни часто реализуются на различных уровнях в составе компьютерных систем. Каждый уровень соотнесен с протоколом для передачи данных между соответствующими слоями компьютерных систем. Данные уровни протоколов часто называются «пакетом протоколов». На Фиг. 6 под взаимосвязанными серверным и клиентским компьютерами (604 и 602) приведено представление общего пакета протоколов 630. Уровни соотнесены с номерами уровней, как, например, уровень номер «1» 632, соотнесенный с прикладным уровнем 634. Те же номера уровней используются при изображении взаимосвязанности между клиентским компьютером 602 и серверным компьютером 604, как, например, номер уровня «1» 632, соотнесенный с горизонтальной пунктирной линией 636, которая представляет взаимосвязанность между слоем прикладных программ 612 клиентского компьютера и слоем прикладных программ/служб 614 серверного компьютера через протокол прикладного уровня. Пунктирная линия 636 представляет собой взаимосвязанность через протокол прикладного слоя на Фиг. 6, так как данная взаимосвязанность является, скорее, логической, чем физической. Пунктирная линия 638 представляет собой логическую взаимосвязанность между слоями операционной системы клиентских и серверных компьютеров через транспортный уровень. Пунктирная линия 640 представляет собой логическую взаимосвязанность между операционными системами двух компьютерных систем через протокол сетевого уровня. Наконец, линии 606 и 608 и облако 610 вместе представляют собой физические средства коммуникации и компоненты, которые физически передают данные от клиентского компьютера на серверный компьютер и с серверного компьютера на клиентский компьютер. Данные физические коммуникационные компоненты и средства передают данные по протоколу канального уровня. На Фиг. 6 вторая таблица 642, приведенная в соответствие с таблицей 630, иллюстрирующей пакет протоколов, содержит типовые протоколы, которые могут использоваться для каждого из различных протокольных уровней. Протокол передачи гипертекста (HTTP) 644 может использоваться в качестве протокола прикладного уровня, протокол управления передачей (TCP) 646 может использоваться в качестве протокола транспортного уровня, Интернет-протокол 648 (IP) может использоваться в качестве протокола сетевого уровня, а в случае компьютерной системы, подключенной к Интернету через локальную сеть Ethernet, протокол Ethernet/IEEE 802.3u 650 может использоваться для передачи и получения информации от компьютерной системы на комплексные коммуникационные компоненты Интернета. В рамках облака 610, которое представляет Интернет, для обмена данными между клиентским компьютером и серверным компьютером могут использоваться многие дополнительные виды протоколов.
Рассмотрим отправку сообщения от клиентского компьютера на серверный через протокол HTTP. Прикладная программа обычно осуществляет системный вызов операционной системе и включает в системный вызов указание на получателя, которому должны быть отправлены данные, а также ссылку на буфер, содержащий эти данные. Данные и прочая информация вместе запаковываются в одну или более HTTP-дейтаграмм, таких как дейтаграмма 652. Дейтаграмма обычно включает заголовок 654, а также данные 656, закодированные в виде последовательности байтов в рамках блока памяти. Заголовок 654 обычно является записью, состоящей из нескольких закодированных в виде байтов полей. Вызов от прикладной программы к системе прикладного слоя представлен на Фиг. 6 сплошной вертикальной стрелкой 658. Операционная система для передачи одной или более дейтаграмм прикладного уровня, которые вместе представляют сообщение прикладного уровня, применяет протокол транспортного уровня, такой как TCP. В общем, если сообщение прикладного уровня превышает некоторое пороговое число байтов, данное сообщение отправляется в виде двух или более сообщений транспортного уровня. Каждое из сообщений транспортного уровня 660 включает заголовок сообщения транспортного уровня 662 и дейтаграмму прикладного уровня 652. Заголовок транспортного уровня включает, среди прочего, порядковые номера, которые обеспечивают повторную компоновку последовательности дейтаграмм прикладного уровня в одиночное сообщение прикладного уровня. Протокол транспортного уровня отвечает за сквозную передачу сообщений независимо от базовой сети и других коммуникационных подсистем, а также контроль ошибок, сегментацию, как описано выше, управление потоками данных, контроль перегрузок, адресацию приложений и другие аспекты обеспечения надежной сквозной передачи сообщений. Дейтаграммы транспортного уровня затем через системные вызовы в рамках операционной системы направляются в сетевой уровень и встраиваются в дейтаграммы сетевого уровня, каждая из которых содержит заголовок сетевого уровня 666 и дейтаграмму транспортного уровня, сетевой уровень пакета протоколов отвечает за отправку дейтаграмм по различным потенциально многочисленным средствам коммуникации и коммуникационным подсистемам, которые вместе взятые образуют Интернет. Это предполагает маршрутизацию сообщений к нужной точке назначения через сложные коммуникационные системы. Сетевой слой отвечает за присвоение уникальных адресов, известных как IP-адреса, как компьютеру-отправителю, так и конечному компьютеру для сообщения и маршрутизации сообщения через Интернет к конечному компьютеру. Дейтаграммы сетевого уровня, в конце концов, передаются операционной системой на коммуникационное аппаратное обеспечение, такое как контроллер сетевого интерфейса, которое встраивает дейтаграмму 664 сетевого уровня в дейтаграмму 670 канального уровня, включающую заголовок 672 канального уровня, и обычно включает число дополнительных байтов 674, прилагаемое в конце дейтаграммы сетевого уровня. Заголовок канального уровня включает сведения о контроле коллизий и контроле ошибок, а также адреса локальных сетей. Пакет или дейтаграмма 670 канального уровня - это последовательность байтов, включающая информацию, внесенную каждым из уровней пакета протоколов, а также фактические данные, которые передаются от исходного компьютера на конечный компьютер по протоколу прикладного уровня.
Далее, начиная с Фиг. 7, приводится описание подхода RESTful к API веб-сервисов. На Фиг. 7 иллюстрируется роль ресурсов в RESTful API. На Фиг. 7 и на последующих фигурах иллюстрируется удаленный клиент 702, который должен быть взаимосвязан и обмениваться данными с сервисом, предоставляемым одним или более серверными компьютерами 704 через HTTP-протокол 706. Многие интерфейсы RESTful API основаны на HTTP-протоколе. В этой связи основное внимание в рамках нижеследующего описания уделяется прикладному уровню. Однако, как было описано выше в контексте Фиг. 7, удаленный клиент 702 и сервис, предоставляемый одним или более серверными компьютерами 704, фактически являются физическими системами со слоем прикладных программ, слоем операционной системы и аппаратным слоем, которые взаимосвязаны с различными