ОБРАБОТКА ФОРМАТИРОВАННЫХ СООБЩЕНИЙ С ИСПОЛЬЗОВАНИЕМ КАРТЫ СООБЩЕНИЯ
PROCESSING FORMATTED MESSAGES USING MESSAGE MAPS

Эта область техники относится, в основном, к вычислительным системам и, более конкретно к обработке MIME форматированных сообщений электронной почты.
УРОВЕНЬ ТЕХНИКИ
Популярный формат для сообщений электронной почты определен стандартом универсальных расширений электронной почты Интернета (MIME). Стандарт MIME дает возможность электронной почте содержать составные сообщения. Совместимые с MIME сообщения электронной почты обычно содержат раздел заголовка и раздел тела. Заголовок включает в себя информацию относительно отправителя, получателя, строку темы или резюме, время и дату, когда это сообщение было исходно послано, и другую информацию об этом сообщении электронной почты. Тело содержит один или несколько объектов, таких как текст сообщения и вложения файлов различных типов.
В распределенных системах электронные сообщения передаются от процессора к процессору с промежуточным накоплением для доставки сообщения электронной почты. Обычно сообщения электронной почты подвергаются нескольким этапам обработки во время процесса доставки. Обычно во время каждого этапа обработки MIME сообщение (т.е. совместимое с MIME сообщение электронной почты) модифицируется во время этого процесса, MIME сообщение синтаксически анализируется, модифицируется, реконструируется, MIME форматируется и передается к следующей стадии обработки. Процесс синтаксического анализа, модификации, реконструкции и форматирования может происходить несколько раз во время процесса доставки на единственном процессоре. Например, сообщение может быть просканировано для поиска вирусов, преобразовано из одной формы в другую, могут быть добавлены поля заголовка, и к тексту сообщения может быть приложено текстовое заявление об отказе от ответственности. Также сообщение может быть задержано, если следующий процессор не готов взять на себя ответственность за доставку сообщения. В этом случае это сообщение сохраняется и повторно загружается позже. Процесс синтаксического анализа, модификации, реконструкции и форматирования может быть долгим и неэффективным.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Эта «Сущность изобретения» обеспечена для введения набора понятий в упрощенной форме, которые дополнительно описываются ниже в «Подробном описании иллюстративных вариантов осуществления». Эта «Сущность изобретения» не предназначена для идентификации ключевых особенностей или существенных особенностей заявленного предмета рассмотрения, а также она не предназначена для использования в качестве ограничения объема заявленного предмета рассмотрения.
Генерируется MIME карта, которая представляет структуру заголовка и тела MIME форматированных сообщений электронной почты (MIME сообщений). MIME карта указывает содержимое тела MIME сообщения. В примерной конфигурации MIME карта значительно меньше по размеру (например, занимает меньшее количество байтов), чем исходное MIME сообщение. Исходное MIME сообщение сохраняется в соответствующем месте, а MIME карта обрабатывается вместо MIME сообщения, пока не будет нужным осуществить доступ к части, или частям, содержимого тела MIME сообщения. MIME карта содержит теги, которые сопоставлены частям содержимого тела MIME сообщения или указывают на них. При осуществлении доступа к некоторой части содержимого тела MIME сообщения, ассоциированные теги в MIME карте обрабатываются для определения местоположения ассоциированной части MIME сообщения, и к ассоциированной части MIME сообщения осуществляется доступ в этом местоположении. В примерном варианте осуществления формат MIME сообщения сохраняется таким образом, что целостность MIME сообщения поддерживается для возможности осуществления точной дешифровки подписанных MIME сообщений. В примерном варианте осуществления сообщение является XML форматированным сообщением, а карта является представлением XML сообщения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Предыдущий раздел «Сущность изобретения», также как и следующее подробное описание, будут лучше поняты при чтении совместно с прилагаемыми чертежами. С целью иллюстрации обработки сообщений с использованием карты сообщения на чертежах показаны ее примерные конструкции; однако обработка сообщений с использованием карты сообщения не ограничена описанными конкретными способами и инструментами.
Фиг.1 является изображением таблицы, перечисляющей примерные типы тегов MIME карты.
Фиг.2 является изображением примерной MIME карты.
Фиг.3 является иллюстрацией примерных тегов MIME карты.
Фиг.4 является блок-схемой примерного процесса обработки MIME сообщения с использованием MIME карты.
Фиг.5 является схемой примерного процессора для реализации обработки MIME сообщений с использованием MIME карты.
Фиг.6 является изображением примерной вычислительной среды, в которой может быть реализована MIME карта.
ПОДРОБНОЕ ОПИСАНИЕ ИЛЛЮСТРАТИВНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Карта сообщения, описываемая здесь, применима к сообщению, имеющему различные форматы. Например, карта сообщения применима к XML форматированным сообщениям и сообщениям, форматированным в соответствии со стандартом универсальных расширений электронной почты Интернета (MIME). Данное описание направлено на MIME карты, применимые к MIME сообщениям. Следует понимать, однако, что карта сообщения не должна ограничиваться MIME картой, применимой к MIME сообщению, но также применима к сообщениям, имеющим другие форматы, такие как, например, XML.
MIME карта, которая представляет MIME форматированное сообщение электронной почты, называемое MIME сообщением, обрабатывается вместо MIME сообщения. MIME сообщение сохраняется в исходной форме, и MIME карта генерируется для включения заголовков сообщения. MIME карта включает в себя дополнительную информацию, называемую тегами, ассоциированными с соответствующими частями хранимого MIME сообщения. Каждый тег обеспечивает указание местоположения (сопоставляется) ассоциированной части MIME сообщения. В некотором примерном варианте осуществления используются смещения от начала исходного MIME сообщения для отображения тегов MIME карты на ассоциированные части MIME сообщения. Нет явного указателя в карте на хранимое MIME сообщение, которое хранится в отдельном файле или поле базы данных. В примерном варианте осуществления при обработке MIME сообщения процессор определяет местоположение MIME карты, а также местоположение хранимого MIME сообщения. MIME карта обрабатывается вместо MIME сообщения. Использование MIME карты обеспечивает механизм повторной реализации объектной модели в памяти, которая представляет сохраненное MIME сообщение в базе данных и т.п., без синтаксического анализа и загрузки данных всего MIME сообщения. Поскольку MIME карта обрабатывается вместо MIME сообщения, обработка ввода/вывода (I/O) базой данных уменьшается по сравнению с обработкой хранимого MIME сообщения. Поскольку MIME карта меньше, чем MIME сообщение, передача MIME карты вместо MIME сообщения может привести к более эффективной системной обработке и более быстрой доставке. Далее, поскольку MIME сообщение не анализируется синтаксически повторно и повторно не форматируется, использование MIME карты обеспечивает уменьшенное использование ресурсов.
При модификации представления в оперативной памяти MIME сообщения генерируется новая MIME карта, и любые модифицированные части содержимого тела MIME сообщения сохраняются в подходящих местоположениях, и на них имеется ссылка из новой MIME карты. В некотором примерном варианте осуществления модифицированные части содержимого тела прилагаются к исходному MIME сообщению. Если, однако, модификация относится только к заголовку MIME сообщения, то в некотором примерном варианте осуществления обновляется только MIME карта. Поскольку MIME карта значительно меньше, чем соответствующее MIME сообщение, она экономит обработку и ресурсы ввода/вывода, необходимые для сохранения модифицированного MIME сообщения.
MIME карта может использоваться для реконструкции модифицированного MIME сообщения без перезагрузки объектной модели MIME в оперативной памяти посредством объединения MIME карты с исходным MIME сообщением. Во время процесса объединения теги в MIME карте удаляются и, при необходимости, заменяются на соответствующие части исходного MIME сообщения.
MIME карта обеспечивает компактное представление MIME сообщения. MIME карта форматируется для обеспечения структурного вида содержимого хранимого MIME сообщения. MIME карта генерируется посредством замены частей MIME сообщения тегами. Любая соответствующая часть MIME сообщения может быть заменена некоторым тегом. В примерном варианте осуществления части содержимого тела MIME сообщения заменяются тегами. Каждый тег обеспечивает информацию, позволяющую обеспечить доступ (например, извлечение) к ассоциированной части MIME сообщения. MIME сообщение может храниться в отдельном от MIME карты местоположении, и теги позволяют осуществить доступ к MIME сообщению в этом отдельном местоположении.
Формат MIME карты содержит комбинацию MIME форматированной информации и двоичной форматированной информации. В некотором примерном варианте осуществления MIME карта содержит MIME сообщение с содержимым листовых частей тела, вырезанным и замененным двоичными записями (т.е. тегами), вставленными в соответствующие точки вставки. Теги используются для загрузки и реконструкции MIME сообщения. Теги также используются для обновления MIME карты для отражения модификаций, сделанных с MIME сообщением. Таким образом, MIME карта может обновляться без необходимости синтаксического анализа MIME сообщения.
Фиг.1 показывает таблицу 12, перечисляющую примерные типы тегов MIME карты и информацию, ассоциированную с ними. В примерном варианте осуществления MIME карта может содержать до 6 типов тегов, как показано в таблице 12. Именами 6 типов тегов, изображенных в таблице 12, являются HeaderStart, LeafBodyStartEnd, ChildrenStart, ChildrenEnd, Continuation и Version. Подчеркнем, что количество типов тегов и назначение идентификаторов и имен тегов, показанные в таблице 12, являются примерами, и что может использоваться любое подходящее количество типов тегов, идентификаторов и имен тегов.
Фиг.2 является изображением примерной MIME карты 13. MIME карта 13 обеспечивает представление структуры и содержимого MIME сообщения 15. В примерном варианте осуществления MIME карта 13 содержит заголовок MIME сообщения и теги, ассоциированные с различными частями структурированного тела MIME сообщения 15. А именно, MIME карта 13 содержит теги, указывающие начало и конец листьев структурированного содержимого MIME сообщения 15, и теги, указывающие начало и конец потомков в структурированном содержимом MIME сообщения 15. В некотором примерном варианте осуществления первым тегом в MIME карте является тип 17 тега Version (версия). Тег 17 версии указывает версию MIME карты 13 и то, что MIME карта 13 является представлением MIME сообщения 15, а не самим MIME сообщением 15. А именно, тег 17 Version указывает, что MIME карта 13 является MIME картой и указывает версию MIME карты 13. Предполагается, что будут генерироваться различные версии MIME карты 13, и тег 17 Version реализован для отражения версии MIME карты 13. Тег 17 Version облегчает определение совместимости MIME карты 13 с другим программным обеспечением. В некотором примерном варианте осуществления, поскольку обработка некоторого документа может зависеть от версии формата этого документа, тег 17 Version находится в начале MIME карты 13 перед потенциально изменчивыми элементами формата файла и для сохранения гибкости изменения элемента формата в будущем.
Тег Continuation (продолжение) может быть расположен в любом месте в MIME карте 13 (тег Continuation не показан на фиг.2). Тег Continuation указывает, что нет других тегов в пределах определенного количества байтов от этого тега. Тег Continuation используется для того, чтобы избежать необходимости буферизации значительного объема MIME данных при обработке MIME карты. Каждому разделу 21 заголовка MIME карты 13 предшествует тег 19 HeaderStart (начало заголовка). Тег 19 HeaderStart указывает начало ассоциированного заголовка MIME сообщения 15. Тег LeafBodyStartEnd расположен в MIME карте 13 вместо тела листовой части MIME сообщения 15. Например, как изображено на фиг.2, тег 23 LeafBodyStartEnd расположен в MIME карте 13 вместо тела 27 листовой части MIME сообщения 15, и тег 31 LeafBodyStartEnd расположен в MIME карте 13 вместо содержимого 29 вложения MIME сообщения 15. Тег 23, 31 LeafBodyStartEnd указывает ассоциированное начало и конец листа структурированного содержимого MIME сообщения 15.
Тег 33 ChildrenStart указывает начало, или открытие, ассоциированной границы структурированного содержимого MIME сообщения 15. Как известно в данной области техники, границей является последовательность байтов, которая служит в качестве разделителя частей тела в MIME формате. За тегом 33 ChildrenStart следует (необязательно следом) тег 35 ChildrenEnd. Тег 35 ChildrenEnd указывает конец, или закрытие, границы. В некотором примерном варианте осуществления тег 19 HeaderStart имеет совпадающие теги 33, 35 закрытия потомка или листа, которые появляются позже в MIME карте 13. Например, для составного MIME сообщения MIME карта имеет оба совпадающих тега ChildrenStart и ChildrenEnd, и для листовой части MIME сообщения MIME карта содержит соответствующий тег LeafBodyStartEnd. Следует понимать, что помещение тегов в MIME карте 13, изображенное здесь, является примерным и не должно ограничиваться этим. Например, первый тег тела может ссылаться на часть в конце хранимого MIME сообщения, а второй тег может ссылаться на часть, более близкую к началу хранимого MIME сообщения.
Фиг.3 является иллюстрацией примерных тегов MIME карты. В некоторой примерной конфигурации MIME карта содержит несколько тегов, как описано выше. Каждый тег начинается с 1-байтовой части 16 идентификатора тега. За 1-байтовой частью 16 идентификатора тега следует 2-байтовый указатель 18 размера данных, содержащихся в теге. За указателем 18 размера тега следуют сами данные 20 тега, которые определяются индивидуально для каждого типа тега, как описано выше относительно таблицы 12. За частью 20 данных тега следует 4-байтовая часть 22, содержащая размер части MIME сообщения, ассоциированной с тегом. Этот формат повторяется для любых дополнительных тегов в MIME карте 13.
Фиг.4 является блок-схемой примерного процесса для обработки MIME сообщения с использованием MIME карты. MIME сообщение принимается на этапе 24. MIME сообщение сохраняется на этапе 26. MIME сообщение может быть сохранено в любых подходящих местах, таких как база данных, сервер, в локальной памяти или в их комбинации, например. MIME карта генерируется на этапе 28. MIME карта представляет MIME сообщение. Как описано выше, MIME карта содержит заголовки MIME сообщения и указание содержимого и структуры MIME сообщения. MIME карта содержит теги, указывающие на ассоциированные части MIME сообщения. После генерации MIME карта обеспечивается и обрабатывается вместо MIME сообщения. Объектная модель MIME в памяти обрабатывается на этапе 30. Любые модификации содержимого тела объектной модели MIME в памяти сохраняются на этапе 32. Если были сделаны модификации, то новая MIME карта генерируется на этапе 34. Объектная модель MIME в памяти перезагружается новой MIME картой на этапе 36. Этапы 30, 32, 34 и 36, если необходимо, повторяются. Если MIME сообщение обновляется/модифицируется, то MIME карта, соответственно, обновляется/модифицируется для отражения обновления/модификации в MIME сообщении. Во время обновления MIME сообщения, измененное содержимое тела прилагается к хранимому MIME сообщению, и дополнительные теги и/или обновленные смещения добавляются к MIME карте. Если содержимое MIME сообщения не изменялось, то сгенерированная MIME карта используется вместо MIME сообщения. Например, если к MIME сообщению добавляется некоторое вложение, то MIME карта модифицируется для включения тега и/или обновления значения смещения, указывающего на добавленное вложение. При осуществлении доступа к MIME сообщению MIME карта используется для доступа к MIME сообщению. Например, после доставки MIME карты к заданному получателю MIME сообщения обрабатывается тег Version, указывающий, что принятый объект является MIME картой. MIME карта обрабатывается, и теги и ассоциированные значения смещений используются для осуществления доступа (например, извлечения) к соответствующим частям MIME сообщения.
Известно, что для гарантии безопасности MIME сообщения подписываются. MIME сообщения также могут быть защищены через криптографические способы, такие как шифрование MIME сообщения и/или шифрование хэша MIME сообщения. Цель заключается в том, чтобы дать знать получателю о попытках изменения MIME сообщения. В некоторой примерной реализации MIME карты формат MIME сообщения сохраняется, при сохранении MIME сообщения, для гарантии целостности MIME сообщения. Поддержание формата MIME сообщения позволяет обеспечить сохранение достоверности подписанного MIME сообщения. При генерации MIME карты теги генерируются для точного отражения структуры MIME сообщения. При осуществлении доступа к MIME сообщению через MIME карту доступ к MIME сообщению осуществляется таким образом, что части тела MIME сообщения, защищенные подписью, не модифицируются каким-либо способом, который повлиял бы на интерпретацию подписанного MIME сообщения.
Обработка MIME сообщения с использованием MIME карты обеспечивает способность воссоздавать MIME сообщение без вредного брака в работе, связанного с повторным синтаксическим анализом исходного MIME сообщения. Например, это применимо к сценарию, в котором пользователь EXCHANGE OUTLOOK WEB ACCESS не желает загружать вложение, пока оно не запрошено. В этом примере обеспечивается только MIME карта, пока не запрошено вложение. Другим примерным сценарием, в котором вредный брак в работе подавляется посредством обработки MIME сообщения с использованием MIME карты, является сценарий, содержащий транспортный конвейер, в котором транспортные агенты модифицируют MIME сообщение, и MIME сообщение сохраняется в базе данных или повторно загружается из нее в случайные моменты его существования в пределах системы. В этом примере MIME сообщение сохраняется, и MIME карта обрабатывается вместо MIME сообщения. Поскольку MIME сообщение модифицируется в месте его хранения, MIME карта модифицируется через добавление и/или модификацию тегов и/или значений смещения для отражения модификаций MIME сообщения.
Фиг.5 является схемой примерного процессора 40 для реализации обработки MIME сообщения с использованием MIME карты. Процессор 40 содержит обрабатывающую часть 42, часть 44 памяти и часть 50 ввода/вывода. Обрабатывающая часть 42, часть памяти 44 и часть 50 ввода/вывода подключены друг к другу (подключения не показаны на фиг.5) для осуществления возможности связи между ними. Часть 50 ввода/вывода способна обеспечивать и/или принимать компоненты, используемые для реализации обработки MIME сообщения с использованием MIME карты, как описано выше. Часть 50 ввода/вывода способна обеспечивать и/или принимать MIME сообщение. Часть 50 ввода/вывода способна обеспечивать и/или принимать MIME карту.
Обрабатывающая часть 42 способна реализовать обработку MIME сообщения с использованием MIME карты, как описано выше. Обрабатывающая часть 42 также способна синтаксически анализировать MIME сообщение для генерации MIME карты. Обрабатывающая часть 42 также способна генерировать MIME карту, которая должна указывать на содержимое и структуру MIME сообщения. Обрабатывающая часть 42 способна генерировать теги, ассоциированные с соответствующими частями MIME сообщения. Обрабатывающая часть 42 способна форматировать MIME карту таким образом, что может быть точно осуществлен доступ к MIME сообщению. Обрабатывающая часть 42 способна форматировать MIME карту таким образом, что MIME сообщение может быть точно реконструировано, если MIME сообщение хранится в распределенной базе данных и т.п. Обрабатывающая часть 42 способна сохранять MIME сообщение таким образом, что поддерживается целостность MIME сообщения для осуществления возможности точной дешифровки подписанных MIME сообщений.
Процессор 40 может быть реализован как процессор клиента и/или процессор сервера. В базовой конфигурации процессор 40 может включать в себя по меньшей мере одну обрабатывающую часть 42 и часть 44 памяти. В зависимости от точной конфигурации и типа процессора часть 44 памяти может быть энергозависимой (такой как RAM) 46, энергонезависимой (такой как ROM, флэш-память и т.д.) 48 или их комбинацией. Процессор 40 может иметь дополнительные особенности/функциональность. Например, процессор 40 может включать в себя дополнительную память (съемную память 52 и/или несъемную память 54), включающую в себя, но не ограниченную этим, магнитные или оптические диски, ленту, флэш-память, смарт-карты или их комбинацию. Компьютерные носители хранения, такие как части 44, 46, 48, 52 и 54 памяти, включают в себя энергозависимые и энергонезависимые носители, реализованные любым способом или технологией для хранения информации, такой как считываемые компьютером команды, структуры данных, программные модули или другие данные. Компьютерные носители хранения включают в себя, но не ограничены этим, RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CD-ROM, цифровые универсальные диски (DVD) или другое оптическое хранилище, магнитные кассеты, магнитную ленту, память на магнитных дисках или другие магнитные устройства хранения, память, совместимую с универсальной последовательной шиной (USB), смарт-карты или любой другой носитель, который может использоваться для хранения желаемой информации и к которому может быть осуществлен доступ процессором 40. Любой такой компьютерный носитель хранения может быть частью процессора 40.
Процессор 40 может также содержать соединения 60 связи, которые позволяют процессору 40 осуществлять связь с другими устройствами. Соединения 60 связи являются примером среды передачи данных. Среды передачи данных обычно воплощают считываемые компьютером команды, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущая волна или другой транспортный механизм, и включают в себя любую среду доставки информации. Термин «модулированный сигнал данных» означает сигнал, который имеет одну или несколько своих характеристик, установленных или измененных таким образом, чтобы закодировать информацию в этом сигнале. В качестве примера, а не ограничения, среда передачи данных включает в себя проводную среду, такую как проводная сеть или прямое проводное соединение, и беспроводную среду, такую как звуковая, радиочастотная, инфракрасная или другая беспроводная среда. Термин «считываемый компьютером носитель», как используется здесь, включает в себя как носитель хранения, так и среду передачи данных. Процессор 40 может также иметь устройство (устройства) 58 ввода, такое как клавиатура, мышь, перо, устройство ввода голоса, устройство контактного ввода и т.д. Устройство (устройства) 56 вывода, такие как дисплей, громкоговорители, принтер и т.д., также могут быть включены.
Различные варианты осуществления обработки MIME сообщения с использованием MIME карты являются выполняемыми на вычислительном устройстве. Фиг.6 и следующее обсуждение обеспечивают краткое общее описание подходящей вычислительной среды, в которой такое вычислительное устройство может быть реализовано. Хотя это и не требуется, различные аспекты обработки MIME сообщения с использованием MIME карты могут быть описаны в общем контексте исполняемых компьютером команд, таких как программные модули, исполняемые компьютером, таким как рабочая станция клиента или сервер. Обычно программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.п., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Кроме того, реализация обработки MIME сообщения с использованием MIME карты может практиковаться с другими конфигурациями компьютерной системы, включающими в себя карманные устройства, многопроцессорные системы, основанную на микропроцессоре или программируемую потребительскую электронику, сетевые ПК, миникомпьютеры, мэйнфреймы и т.п. Далее, обработка MIME сообщения с использованием MIME карты может также практиковаться в распределенных вычислительных средах, при этом задачи выполняются удаленными обрабатывающими устройствами, которые связаны через сеть связи. В распределенной вычислительной среде программные модули могут быть расположены как в локальных, так и в удаленных ЗУ.
Компьютерная система может быть приближенно разделена на три группы компонентов: компонент аппаратного обеспечения, компонент интерфейсной системы «аппаратное обеспечение/программное обеспечение» и компонент прикладных программ (также называемый «пользовательский компонент» или «компонент программного обеспечения»). В различных вариантах осуществления компьютерной системы компонент аппаратного обеспечения может содержать центральный процессор (CPU) 521, память (как ROM 564, так и RAM 525), базовую систему ввода/вывода (BIOS) 566 и различные устройства ввода/вывода (I/O), такие как клавиатура 540, мышь 542, монитор 547 и/или принтер (не показан), среди других устройств. Компонент аппаратного обеспечения содержит базовую физическую инфраструктуру для компьютерной системы.
Компонент прикладных программ содержит различные программы программного обеспечения, включающие в себя, но не ограниченные этим, компиляторы, системы баз данных, текстовые процессоры, программы для бизнеса, видеоигры и т.д. Прикладные программы обеспечивают средства, посредством которых компьютерные ресурсы используются для решения задач, обеспечения решений и обработки данных для различных пользователей (машин, других компьютерных систем и/или конечных пользователей). В примерном варианте осуществления прикладные программы выполняют функции, связанные с обработкой MIME сообщения с использованием MIME карты, как описано выше.
Компонент интерфейсной системы «аппаратное обеспечение/программное обеспечение» содержит (и в некоторых вариантах осуществления может состоять исключительно из операционной системы) операционную систему, которая сама содержит, в большинстве случаев, оболочку и ядро. Операционная система (OS) - это специальная программа, которая действует как посредник между прикладными программами и компьютерным аппаратным обеспечением. Компонент интерфейсной системы «аппаратное обеспечение/программное обеспечение» может также содержать диспетчер виртуальных машин (VMM), рабочую среду общего языка (CLR) или ее функциональный эквивалент, виртуальную машину Java или ее функциональный эквивалент, или другие такие компоненты программного обеспечения вместо операционной системы или в дополнение к ней в компьютерной системе. Задачей интерфейсной системы «аппаратное обеспечение/программное обеспечение» является обеспечение среды, в которой пользователь может выполнять прикладные программы.
Интерфейсная система «аппаратное обеспечение/программное обеспечение» обычно загружается в компьютерную систему при запуске и после этого управляет всеми прикладными программами в компьютерной системе. Прикладные программы взаимодействуют с интерфейсной системой «аппаратное обеспечение/программное обеспечение» посредством запроса служб через интерфейс прикладных программ (API). Некоторые прикладные программы дают возможность конечным пользователям взаимодействовать с интерфейсной системой «аппаратное обеспечение/программное обеспечение» через пользовательский интерфейс, такой как язык команд или графический пользовательский интерфейс (GUI).
Интерфейсная система «аппаратное обеспечение/программное обеспечение» традиционно выполняет разнообразие служб для приложений. В многозадачной интерфейсной системе «аппаратное обеспечение/программное обеспечение», при этом множественные программы могут прогоняться в одно и то же время, интерфейсная система «аппаратное обеспечение/программное обеспечение» определяет, какие приложения должны прогоняться и в каком порядке, и сколько времени должно быть уделено каждому приложению перед переключением на другое приложение для некоторого преобразования. Интерфейсная система «аппаратное обеспечение/программное обеспечение» также управляет разделением внутренней памяти среди множественных приложений и управляет вводом в подключенные устройства аппаратного обеспечения, такие как жесткие диски, принтеры и коммутируемые порты, и выводом из них. Интерфейсная система «аппаратное обеспечение/программное обеспечение» также посылает сообщения к каждому приложению (и в некоторых случаях к конечному пользователю), касающиеся состояния операций и любых ошибок, которые могли произойти. Интерфейсная система «аппаратное обеспечение/программное обеспечение» может также разгружать управление пакетными заданиями (например, печать) таким образом, что инициирующее приложение освобождается от этой работы и может продолжать другую обработку и/или операции. На компьютерах, которые могут обеспечивать параллельную обработку, интерфейсная система «аппаратное обеспечение/программное обеспечение» также управляет разделением программы таким образом, чтобы она прогонялась на более чем одном процессоре одновременно.
Оболочкой интерфейсной системы «аппаратное обеспечение/программное обеспечение» является интерактивный интерфейс конечного пользователя с интерфейсной системой «аппаратное обеспечение/программное обеспечение». (Оболочка может также называться «интерпретатором команд» (командным процессором) или, в операционной системе, «оболочкой операционной системы»). Оболочка является внешним уровнем интерфейсной системы «аппаратное обеспечение/программное обеспечение», который непосредственно доступен прикладным программам и/или конечным пользователям. В противоположность оболочке ядро является самым внутренним уровнем интерфейсной системы «аппаратное обеспечение/программное обеспечение», который взаимодействует непосредственно с компонентами аппаратного обеспечения.
Как показано на фиг.6, примерная универсальная вычислительная система включает в себя стандартное вычислительное устройство 560 и т.п., включающее в себя процессор 521, системную память 562 и системную шину 523, которая связывает различные системные компоненты, включая системную память, с процессором 521. Системной шиной 523 может быть любой из нескольких типов структур шин, включая шину памяти или контроллер памяти, периферийную шину и локальную шину с использованием любой из разнообразия архитектур шин. Системная память включает в себя ROM 564 и RAM 525. Базовая система ввода/вывода 566 (BIOS), содержащая базовые подпрограммы, которые помогают переносить информацию между элементами в пределах вычислительного устройства 560, например, во время запуска, хранится в ROM 564. Вычислительное устройство 560 может дополнительно включать в себя накопитель 527 на жестких дисках для считывания с жесткого диска и записи на него (жесткий диск не показан), накопитель 528 на магнитных дисках (например, накопитель на гибких дисках) для считывания со съемного магнитного диска 529 или записи на него (например, гибкий диск, съемное хранилище) и накопитель 530 на оптических дисках для считывания со съемного оптического диска 531 или записи на него, такого как CD-ROM или другой оптический носитель. Накопитель 527 на жестких дисках, накопитель 528 на магнитных дисках и накопитель 530 на оптических дисках соединены с системной шиной 523 посредством интерфейса 532 накопителя на жестких дисках, интерфейса 533 накопителя на магнитных дисках и интерфейса 534 накопителя на оптических дисках соответственно. Эти накопители и ассоциированные с ними считываемые компьютером носители обеспечивают энергонезависимое хранилище для считываемых компьютером команд, структур данных, программных модулей и других данных для вычислительного устройства 560. Хотя примерная среда, описанная здесь, использует жесткий диск, съемный магнитный диск 529 и съемный оптический диск 531, специалистам в данной области техники будет ясно, что и другие типы считываемых компьютером носителей, которые могут хранить данные, доступные компьютеру, такие как магнитные кассеты, карты флэш-памяти, цифровые видеодиски, картриджи Бернулли, RAM, ROM и т.п. могут также использоваться в примерной рабочей среде. Подобным же образом примерная среда может также включать в себя много типов устройств мониторинга, таких как датчики температуры, системы безопасности или аварийной сигнализации, и другие источники информации.
Некоторое количество программных модулей может храниться на жестком диске, магнитном диске 529, оптическом диске 531, ROM 564 или RAM 525, включая операционную систему 535, одну или несколько прикладных программ 536, другие программные модули 537 и программные данные 538. Пользователь может вводить команды и информацию в вычислительное устройство 560 через устройства ввода, такие как клавиатура 540 и указательное устройство 542 (например, мышь). Другие устройства ввода (не показано) могут включать в себя микрофон, джойстик, игровую клавиатуру, спутниковую тарелку, сканер и т.п. Эти и другие устройства ввода часто подключены к процессору 521 через интерфейс 546 последовательного порта, который связан с системной шиной, но могут быть подключены посредством других интерфейсов, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 547 и другой тип устройства отображения также подключен к системной шине 523 через некоторый интерфейс, такой как видеоадаптер 548. Кроме монитора 547 вычислительные устройства обычно включают в себя и другие периферийные устройства вывода (не показано), такие как громкоговорители и принтеры. Примерная среда фиг.6 также включает в себя хост-адаптер 555, шину 556 интерфейса для малых вычислительных машин (SCSI) и внешнее устройство 562 хранения, подключенное к шине 556 SCSI.
Вычислительное устройство 560 может работать в сетевой среде, использующей логические соединения к одному или нескольким удаленным компьютерам, таким как удаленный компьютер 549. Удаленный компьютер 549 может быть другим вычислительным устройством (например, персональным компьютером), сервером, маршрутизатором, сетевым ПК, одноранговым устройством или другим обычным узлом сети и обычно включает в себя многие или все элементы, описанные выше относительно вычислительного устройства 560, хотя на фиг.6 было показано только запоминающее устройство 550 (накопитель на гибких дисках). Логические соединения, изображенные на фиг.6, включают в себя локальную вычислительную сеть (LAN) 551 и глобальную сеть (WAN) 552. Такие сетевые среды являются обычными в офисах, компьютерных сетях предприятий, интранет и Интернет.
При использовании в сетевой среде LAN вычислительное устройство 560 соединено с LAN 551 через сетевой интерфейс или адаптер 553. При использовании в сетевой среде WAN, вычислительное устройство 560 может включать в себя модем 554 или другое средство для установления связи по глобальной сети 552, такой как Интернет. Модем 554, который может быть внутренним или внешним, соединен с системной шиной 523 через интерфейс 546 последовательного порта. В сетевой среде программные модули, изображенные относительно вычислительного устройства 560, или их части, могут храниться в удаленном запоминающем устройстве. Будет ясно, что показанные сетевые подключения являются примерными, и что могут использоваться и другие средства установления линии связи между компьютерами.
Хотя предполагается, что многочисленные варианты осуществления обработки MIME сообщений с использованием MIME карты особенно хорошо подходят для компьютеризированных систем, предполагается, что ничего в этом документе не ограничивает изобретение такими вариантами осуществления. Напротив, используемый здесь термин «компьютерная система» предназначен охватывать любое устройство или все устройства, способные хранить и обрабатывать информацию и/или способные использовать хранимую информацию для управления поведением или работой самого этого устройства, независимо от того, являются ли такие устройства электронными, механическими, логическими или виртуальными по своей природе.
Различные способы, описанные здесь, могут быть реализованы в соединении с аппаратным или программным обеспечением или, когда это уместно, с их комбинацией. Таким образом, способы и устройства для реализации обработки MIME сообщений с использованием MIME карты или некоторые их аспекты или части, могут принимать форму программного кода (т.е. команд), воплощенного в материальных носителях, таких как дискеты, компакт-диски, жесткие диски или любые другие считываемые машиной носители данных, при этом при загрузке и исполнении программного кода машиной, такой как компьютер, машина становится устройством для реализации обработки MIME сообщений с использованием MIME карты.
Программа (программы) может быть реализована на языке ассемблера, или машинном языке, если это желательно. В любом случае, этот язык может быть компилируемым или интерпретируемым языком и комбинируется с реализациями аппаратного обеспечения. Способы и устройства для реализации обработки MIME сообщений с использованием MIME карты могут также практиковаться через связи, воплощенные в форме программного кода, который передается по некоторой среде передачи данных, например, по электрическим проводам или кабелям, через волоконно-оптический кабель или через любую другую форму передачи, при этом при приеме, загрузке и исполнении программного кода машиной, такой как EPROM, логическая матрица, программируемое логическое устройство (PLD), компьютер клиента и т.п., машина становится устройством для обработки MIME сообщений с использованием MIME карты. При реализации на универсальном процессоре программный код комбинируется с этим процессором для обеспечения уникального устройства, которое работает для запуска функциональности обработки MIME сообщений с использованием MIME карты. Кроме того, любой способ хранения, используемый в соединении с обработкой MIME сообщений с использованием MIME карты, может постоянно быть комбинацией аппаратного и программного обеспечения.
Хотя обработка MIME сообщений с использованием MIME карты была описана в соединении с примерными вариантами осуществления различных чертежей, будет ясно, что могут использоваться и другие подобные варианты осуществления или могут быть осуществлены модификации и дополнения для описанных вариантов осуществления для выполнения тех же самых функций обработки MIME сообщений с использованием MIME карты, не выходя за их рамки. Например, концепция MIME карты может быть применена к другим форматам, таким как XML. Соответственно, XML карта может быть обработана вместо XML сообщения. Как описано выше относительно MIME карты, XML карта может обеспечить компактное представление XML сообщения, и XML карта может содержать теги, которые отображаются и указывают на части XML сообщения. Следовательно, обработка MIME сообщений с использованием MIME карты, описанная здесь, не должна быть ограничена каким-либо одним вариантом осуществления, а скорее должна толковаться в широте и объеме в соответствии с прилагаемой формулой изобретения.