Обмен данными — это процесс получения данных, структурированных в соответствии с исходной схемой , и преобразования их в целевую схему, чтобы целевые данные были точным представлением исходных данных. [1] Обмен данными позволяет обмениваться данными между различными компьютерными программами.
Это похоже на соответствующую концепцию интеграции данных, за исключением того, что данные фактически реструктурируются (с возможной потерей содержания) при обмене данными. Возможно, не существует способа преобразовать экземпляр с учетом всех ограничений. И наоборот, может существовать множество способов преобразования экземпляра (возможно, бесконечное количество), и в этом случае необходимо определить и обосновать «лучший» выбор решений.
В некоторых доменах может существовать несколько десятков различных исходных и целевых схем (собственных форматов данных). «Обмен» или «формат обмена» часто разрабатывается для одного домена, а затем записываются необходимые процедуры (отображения) для (косвенного) преобразования/перевода каждой исходной схемы в каждую целевую схему с использованием формата обмена как промежуточный шаг. [2] Это требует гораздо меньше работы, чем написание и отладка сотен различных процедур, которые потребуются для прямой трансляции каждой исходной схемы непосредственно в каждую целевую схему.
Примеры таких преобразующих форматов обмена включают в себя:
Существует два типа обмена данными: широковещательный обмен данными и одноранговый (одноадресный) обмен данными. [9]
В широковещательной сети данные передаются одновременно всем участникам. Как и в случае с конференц-звонком, все участники одновременно получают одну и ту же информацию от говорящего. [10]
В одноранговой (одноадресной) модели обмена данными данные отправляются только целевому получателю, определенному конкретным адресом. Так же, как телефонный звонок или электронное письмо, информация передается только между двумя участниками сети. [11]
Язык/формат обмена данными (или обмена) — это язык, который не зависит от предметной области и может использоваться для данных из любой дисциплины. [12] Они «превратились из разметки и ориентированных на отображение в дополнительную поддержку кодирования метаданных, описывающих структурные атрибуты информации». [13]
Практика показала, что некоторые типы формальных языков лучше подходят для этой задачи, чем другие, поскольку их спецификация обусловлена формальным процессом, а не конкретными потребностями реализации программного обеспечения. Например, XML — это язык разметки , который был разработан для создания диалектов (определения подъязыков, специфичных для предметной области). [14] Однако он не содержит предметно-ориентированных словарей или типов фактов. Полезным для надежного обмена данными является наличие стандартных словарей-таксономий и библиотек инструментов, таких как парсеры , валидаторы схем и инструменты преобразования. [ нужна цитата ]
Ниже приводится неполный список популярных универсальных языков, используемых для обмена данными в нескольких доменах.
Номенклатура
Примечания:
Популярность XML для обмена данными во Всемирной паутине имеет несколько причин. Прежде всего, он тесно связан с ранее существовавшими стандартами Standard Generalized Markup Language (SGML) и Hypertext Markup Language (HTML), и поэтому синтаксический анализатор, написанный для поддержки этих двух языков, может быть легко расширен для поддержки XML. Например, XHTML был определен как формат, который является формальным XML, но правильно понимается большинством (если не всеми) анализаторами HTML. [14]
YAML — это язык, который был разработан так, чтобы его можно было читать человеком (и, следовательно, его можно было легко редактировать в любом стандартном текстовом редакторе). Его понятие часто похоже на синтаксис reStructuredText или Wiki, которые также стараются быть читабельными как для людей, так и для компьютеров. YAML 1.2 также включает сокращение, совместимое с JSON, и поэтому любой документ JSON также является действительным YAML; Однако это не имеет обратного значения. [16]
REBOL — это язык, который был разработан так, чтобы его можно было читать и легко редактировать с помощью любого стандартного текстового редактора. Для этого он использует простой синтаксис свободной формы с минимальным количеством знаков препинания и богатым набором типов данных. Типы данных REBOL, такие как URL-адреса, электронные письма, значения даты и времени, кортежи, строки, теги и т. д., соответствуют общим стандартам. REBOL спроектирован таким образом, чтобы не нуждаться в каком-либо дополнительном метаязыке, и был разработан метациклическим способом. Метацикличность языка является причиной того, что, например, диалект парсе, используемый (не исключительно) для определений и преобразований диалектов REBOL, сам по себе также является диалектом REBOL. [17] REBOL использовался в качестве источника вдохновения для JSON. [18]
Геллишский английский — это формализованное подмножество естественного английского языка, которое включает в себя простую грамматику и большой расширяемый словарь-таксономию английского языка , определяющую общую и предметную терминологию (термины для понятий), тогда как понятия организованы в иерархию подтипов-супертипов ( таксономия), которая поддерживает наследование знаний и требований. Словарь-Таксономия также включает стандартизированные типы фактов (также называемые типами отношений). Термины и типы отношений вместе могут использоваться для создания и интерпретации выражений фактов, знаний, требований и другой информации. Gellish можно использовать в сочетании с SQL , RDF/XML , OWL и другими метаязыками. Стандарт Геллиша представляет собой комбинацию ISO 10303-221 (AP221) и ISO 15926. [19]
Процедуры преобразования будут составлять язык и синтаксис, которые должны быть независимыми от дисциплины и машины.