Мониторы транзакции

Для управления как нагрузкой, так и распределением данных такого рода СУБД нужны специальные программные компоненты, называемые мониторами обработки транзакции – transaction processing monitors.

Одна из главных характеристик, которая требуется для такого рода программных систем – это масштабируемость, т.е. так, чтобы эти системы могли поддерживать, с одной стороны, максимальную производительность, а с другой стороны, могли управлять количеством подключённых серверов.

Как правило, такого рода системы строятся по трёхзвенке, т.е. клиент-сервер-приложение, т.н. AS, application-server, это сервер БД. Как ни странно, одна из первых таких систем построена была порядка 30 с лишним лет назад, система резервирования авиабилетов, собственно, они поставили это дело первыми, поскольку оттуда пошло, так сказать, вот желание сделать распределённую БД.

Ппервая система резервирования авиабилетов авиакомпании, как PanAmerican и т.п., её давно уже не существует. Так вот, было порядка 300 000 устройств: по всему миру заказывали билеты. И она справлялась с нагрузкой до 4 000 транзакций в секунду, и это в распределённой среде. Конечно, сервер, скорее всего, локализованный, обрабатывает гораздо больше транзакций, а это распределённый. И это в те годы, когда никакого оптоволокна и т.д. не было, тем не менее, он обрабатывал до 4 000 транзакций в секунду.

Вот эти вот мониторы транзакций характеризуются таким вот показателем, как баланс загрузки. Суть этой идеи заключается в том, чтобы запускать и останавливать серверы приложений, не БД, а серверы приложений в зависимости от количества подключённых клиентов. Ну а количество подключённых клиентов в разных местах меняется. В той же системе заказов авиабилетов, естественно, что есть дневное время, ночное время, и это дневное и ночное время в разных странах света оно различное, естественно, в разное время приходят. Поэтому в одних местах серверы можно, как говорится, отключать, а в других – активизировать. Вот, так сказать, баланс этой загрузки и производит монитор транзакции. Это надстроечная программная система, которая, вот, управляет этим делом. Фактически, что она делает, она запускает фактически копию сервера, перезагружается до сервера приложений другого программного обеспечения и запускает, заставляет их работать в пиковые часы нагрузки.

Одна из основных функций таких вот мониторов транзакций – это обеспечение быстрой обработки запросов от множества клиентов. Здесь используются различные механизмы мультиплексирования запросов на обслуживание.

Значит, стандарт на такого рода системы, т.е. на мониторы транзакции, был принят ещё в 1992 г. Этот стандарт оговаривает форматы, протоколы для обмена данными. Ну, прежде всего, там речь идёт о т.н. двухфазной фиксации. Есть специальный API. На сегодня эти вещи решаются достаточно другими вообще средствами, и несколько таких надстроечных систем разработано.

Microsoft сделал, которая в рамках Windows, в принципе, с каким-то объёмом нагрузки достаточно хорошо справляется, организует вот такого рода трёхзвенные распределённые системы.

Есть такая система для языка Java, так сказать, Java-2 Enterprise Edition. Там есть свои протоколы RMI, так называемые, которые обеспечивают распределённые приложения, если они сделаны в среде Java.

Есть независимая от операционной системы, так называемая CORVA. Это тоже трёхмерная архитектура, основанная на интерфейсах, назначение которых – организовать взаимодействие клиентов и серверов в распределённой среде.

Ну, некоторые из компаний, ну, прежде всего, ориентируются и поддерживают CORVA. Microsoft, естественно. поддерживает свой любимый … так называемый, и т.д. Ну, Java и фирма Sun своё детище поддерживают, конечно, они без конкуренции не обходится, но каждая из них находит свою нишу и, так сказать, ввиду различной массовости применения тех или иных средств, всё происходит по-разному.

Т.е., ну, среда CORVA – фактически, стандарт, который поддерживают на сегодня, наверное, формально, около 900 фирм. По крайней мере, участвуют в этих вот конференциях по выработке новых и новых стандартов, протоколов и т.д. Беда заключается в том, что, в отличие от Microsoft, которая тянет своё дитя, и Sun, которая тянет своё дитя – Java, здесь нет единоличного ответственного. Когда нет единоличного ответственного, возникают проблемы. Каждый из фирм берёт что-то, какой-то кусок, делает его, возможно, делает неплохо и т.д., но, тем не менее, некоторые куски не проработаны.

Та же фирма Borland, которая, как говорится, на ладан дышит, тем не менее, вот, брокер, который сюда вот входит, брокер запросов, который обрабатывает запросы от разных клиентов и перенаправляет их к серверам, вот там есть фирмы Borland. Она сделала хороший такой брокер, и он всегда поставляется. Это dll на 3,3 Мб служит для этих целей.

Есть ещё там фирма такая, что-то типа Nova, так как-то она звучит (наподобие этого), которая тоже, вот, некий, так сказать, брокер сделала, который, вот, занимается распределением запросов между серверами.

Т.е. это лакомый кусок, можно сказать, центральный кусок в этой системе, вот его стараются сделать многие, чтобы поиметь на этом, естественно, доход, распространяя свою программную часть, а другие куски менее проработанные, никто браться не хочет, потому что они стоят дешевле и т.д. и т.д., поэтому, вот, среда, так сказать, пока, вроде, потенциально лучше всех, но реально, фактически, вот, есть хорошие решения отдельные, но, вот, общего, так сказать, фирмы, которая сказала бы: “Для этого куска у меня есть это, это и это”. Как Microsoft: “У меня есть Windows, в которой работает всё”, так сказать, и нет проблем.

Вот здесь этого нет, и это вот проблема. Кто делает ещё мониторы транзакции? Есть такая фирма BIA System. Называется её программа Система “М-3 от BIA System”.


Оставить комментарий





Статистика

Рейтинг@Mail.ru