Генерация хранимых процедур MySQL на основе BPEL Мерабишвили Георгий гр. 544 Научный руководитель: Терехов А.Н. Рецензент: Тимохин Д.В.
Коммутатор нового поколения с ручным обслуживанием абонентов Система с повышенными требованиями по надежности Система с повышенными требованиями по надежности Дополняет АТС и обслуживает ~1500 абонентов Дополняет АТС и обслуживает ~1500 абонентов Вводится в эксплуатации с целью облегчения работы Вводится в эксплуатации с целью облегчения работы оператора (модернизации системы в целом) оператора (модернизации системы в целом) В пределах системы имеются роли: инженер и телефонист В пределах системы имеются роли: инженер и телефонист Разрабатываются рабочие места для этих ролей Разрабатываются рабочие места для этих ролей Проект разрабатывается по известной трехуровневой модели (Клиентская часть, БЛ, БД) Проект разрабатывается по известной трехуровневой модели (Клиентская часть, БЛ, БД) Программные средства: C#.net (БЛ), MySQL (СУБД)… Программные средства: C#.net (БЛ), MySQL (СУБД)…
Графическая схема Роутер БЛ Клиентская часть WEB-server
Все события в системе можно разделить на 2 группы: идущие снизу и сверху Все события в системе можно разделить на 2 группы: идущие снизу и сверху Для первых точкой входа является действие клиента (например, клик на экране) Для первых точкой входа является действие клиента (например, клик на экране) Для других точка входа - это сообщение от станции (входящий звонок, к примеру). Для других точка входа - это сообщение от станции (входящий звонок, к примеру). По соглашению между участниками проекта По соглашению между участниками проекта все изменения в базе данных и выборка из нее осуществляются через хранимые процедуры, для соответствующего действия БЛ всего лишь вызывает нужную процедуру из БД с необходимыми параметрами. все изменения в базе данных и выборка из нее осуществляются через хранимые процедуры, для соответствующего действия БЛ всего лишь вызывает нужную процедуру из БД с необходимыми параметрами.
Введение CASE пакет REAL Разработан на кафедре системного программирования мат.- мех. факультета Разработан на кафедре системного программирования мат.- мех. факультета Включает в себя графические редакторы и репозиторий для хранения логической модели Включает в себя графические редакторы и репозиторий для хранения логической модели MySQL MySQL Двойное лицензирование Двойное лицензирование Поддержка на многих платформ и языков программирования. Поддержка на многих платформ и языков программирования.BPEL Business Process Execution Language Язык описания бизнес-процессов Язык описания бизнес-процессов
Хранимые процедуры и функции Во многом ведут себя как процедуры языков высокого уровня Во многом ведут себя как процедуры языков высокого уровня Входные и выходные параметры Входные и выходные параметры Локальные переменные Локальные переменные Циклы, ветвления Циклы, ветвления Соответственно, задача генерации хранимых процедур MySQL сводится к задаче генерации кода на языках высокого уровня Постановка задачи
Архитектура решения Требования к объектной модели системы Требования к объектной модели системы Требование к архитектуре редакторов Требование к архитектуре редакторов Требования к API кодогенераторов Требования к API кодогенераторов
Сгенерированный по диаграмме код на MySQL delimiter // drop procedure if exists logoff// create procedure logoff(session_id int, session_key varchar(10)) create procedure logoff(session_id int, session_key varchar(10)) begin select session_key from session where session_id = session.session_id; = (session_key if = 1) and (not(session_id = 1)) then delete from session where session_id = session.session_id; end if; end// delimiter ;
Заключение В данной работе были получены следующие результаты: Разработан API редакторов для взаимодействия с репозиторием (совместно с Е.Сеппелем) Разработан API редакторов для взаимодействия с репозиторием (совместно с Е.Сеппелем) Разработан API кодогенераторов для взаимодействия с редакторами (совместно с Е.Сеппелем) Разработан API кодогенераторов для взаимодействия с редакторами (совместно с Е.Сеппелем) Разработаны архитектура и действующий кодогенератор в MySQL Разработаны архитектура и действующий кодогенератор в MySQL Осуществлена генерация наиболее часто используемых MySQL конструкции Осуществлена генерация наиболее часто используемых MySQL конструкции