Шина данных metadata

Шина данных (ESB) Платформа Metadata.js, опирается на отказоустойчивую шину данных.
Мы разделяем идеи и ценности Apache CouchDB. Эта технология сочетает в себе простоту и непревзойдённую масштабируемость: от витрины web-магазина, до хранилищ корпоративных данных и распределенных систем, объединяющих работу разнородных приложений.

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

Вспомним об основных заблуждениях распределенных вычислений:

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

Erlang

Почему многопоточное ПО трудно программировать на Java или C#? Проблема фундаментальная и существует во всех императивных языках. Программируя на них, вы не можете быть уверены, что содержимое памяти, куда ссылаются переменные текущего потока, не изменил какой-то другой поток. Приходится прибегать к разнообразным трюкам — блокировки, семафоры. И делать это трудно.

Erlang — специализированный язык, главной особенностью которого является программирование на уровне отдельных процессов. Он создавался для написания ПО для телекоммутаторов в 1980-х годах. Сегодня он используется при разработке серверов видеостриминга и распределенных вычислений. Erlang идеален там, где есть много клиентов и жесткие требования к отказоустойчивости. На Erlang'е, работает серверная часть WhatsApp, Facebook написал на нем серверную часть чата, Amazon применяет его в EC2. Erlang начал применяться для разработки облачных систем ещё до того, как сформировалось само понятие облачных вычислений. CouchDB так же, написан на Erlang'е, что позволяет использовать всю мощь многоядерных и/или многоузловых систем.

Строго говоря, проблема общего доступа к памяти, в Erlang'е не решена. Она опущена на уровень ниже самого языка. Каждый процесс изолирован и не имеет доступа к памяти других процессов. А еще, потоки Erlang управляются не операционной системой, а его виртуальной машиной (BEAM). За счет того, что операционная система не вмешивается в управление потоками, скорость работы с ними получается высокой, а самих потоков, может быть очень много.

Типизированные данные

Вторым источником, вдохновившим нас на разработку метадаты, стали бизнес-ориентированные объекты данных 1С (Перечисление, Документ, Справочник).
Используя SQL или ORM, программист оперирует низкоуровневыми сущностями - записями базы данных и вынужден писать много уникального кода, изобретать велосипеды, допускать и отлаживать ошибки. Мы поддерживаем ссылочную типизацию и подобно 1С, наши объекты имеют стандартное поведение, стандартный набор событий и методов. Приложение строится не из отдельных кирпичей, а из больших стеновых панелей с заранее рассчитанной арматурой, устойчивых к жаре и морозу.

Бесшовная интеграция

Наша шина поддерживает:

К шине можно подключить приложения, построенные на любой платформе и языке программирования, но полнее всего, преимущества метадаты, проявляются при интеграции с учётными системами 1С.
Для 1С, шина поставляет и принимает нативные, неотличимые от "внутриодинэсных" типы данных. Обеспечивает бесшовную интеграцию и консолидацию разных приложений (ERP, УНФ, Бухгалтерия, Логистика) и/или разных экземпляров одного приложения.