Генерация веб-сервисов C#.net на основе BPEL

advertisement
Генерация веб-сервисов C#.net
на основе BPEL
Сеппель Евгений гр. 544
Научный руководитель: д.ф.-м.н. Терехов А.Н.
Рецензент: к.ф.-м.н. Соколов В.В.
Коммутатор нового поколения с ручным
обслуживанием абонентов
 Коммутатор с ручным управлением, соединённый с АТС
Обслуживает ~1500 абонентов
 Повышенные требования по надёжности
 Создаётся с целью облегчения и оптимизации работы
оператора и модернизации системы в целом
 Разрабатываются рабочие места для телефонистов и
инженеров обслуживания
 Проект разрабатывается как веб-решение согласно
трехуровневой модели (клиентская часть, бизнес-логика,
база данных) и следует паттерну MVС
 Программные средства: C#.net (БЛ), MySQL 5 (СуБД), Ajax
и XSLT (клиентская часть)
Графическая схема
АТС
Роутер
БЛ
Web-сервер
Клиентская часть
Инициаторами возникающих событий могут
служить либо пользователи, либо АТС
События от АТС обрабатываются роутером и
через БЛ отображаются в БД
События от пользователя обрабатываются вебсервером и через БЛ отображаются в БД
Клиентский интерфейс посредством pooling’а
через веб-сервер получает из базы данных текущее
состояние
Логика процессов приложения находится в
компоненте бизнес-логики. Логика работы с
данными реализована в качестве хранимых
процедур и функций базы данных MySQL
Постановка задачи
 В бизнес-логике и БД сосредоточена логика РМО
 Логику приходится часто изменять в зависимости от
требований заказчика
 Процесс написания логики на ЯВУ представляется
достаточно рутинной и однотипной задачей
Принято решение автоматизировать генерацию кода с
использованием CASE пакета QReal, разрабатываемого
на кафедре системного программирования
 QReal разработан как кроссплатформенное сетевое
развитие REAL, также созданного на кафедре и
нашедшего многочисленные применения в
промышленных разработках
рис
Использованные технологии
 Реализация веб-сервисов на платформе
Microsoft.NET 2.0 на языке C#
 Кроссплатформенное ПО
 Веб-сервисы представляют собой специальным
образом оформленные методы класса на языке C#
 Действия веб-сервиса сводятся к вызову других вебсервисов БЛ и роутера, чтению из БД и вызова
хранимых процедур БД
 Взаимодействие с БД через MySQL Connector.Net
Решаемые задачи
Разработка архитектуры API репозитория для
кодогенераторов и редакторов
Тестирование реализованного API
Разработка объектной структуры репозитория
для конкретного решения
Создание кроссплатформенной сетевой ООП
прослойки для работы с API при помощи ZeroC
ICE RPC
Использование языка BPEL для описания логики
Разработка требований к редактору BPEL
Написание кодогенератора из BPEL в C#
Используемые технологии
BPEL – язык моделирования бизнес-процессов
Разработан консорциумом IBM, Microsoft, SAP ..
Используется подмножество WS-BPEL 2.0 с
некоторыми расширениями
ZeroC ICE – кроссплатформенный RPC
Создавался как замена CORBA
Поддержка множества языков, включая C++ и С#
Поддержка множества платформ
Двойное лицензирование
Сгенерированный по диаграмме код
// блоки usings опущены
namespace Generated{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Test1 : System.Web.Services.WebService {
[WebMethod]
public int myProcess (int inputVariable) {
int outputVariable;
if ( inputVariable > 0 ) {
for (int j = 0; j < 10; j++);
}
else if ( inputVariable == 0 ) {
outputVariable = otherProcess (inputVariable);
}
else {
throw new Exception ("Exception");
}
outputVariable = inputVariable * 2 - 1;
if ( outputVariable > 100 ) {
return outputVariable;
}
else if ( outputVariable <= 100 ) {
outputVariable = 0;
while ( inputVariable <1000 ) {
inputVariable = inputVariable*2 + 7;
continue;
}
return outputVariable;
}
else {
throw new Exception ("No way for this condition found");
}
}
}
}
Заключение
В данной работе были получены следующие
результаты:
 Архитектура API кодогенераторов для
взаимодействия с редакторами (совместно с
Г.Мерабишвили)
 Кроссплатформенный ООП API кодогенераторов и
редакторов с использованием ZeroC ICE
 Разработана архитектура и действующий
кодогенератор в C#
 Осуществлена генерация наиболее часто
используемых веб-сервисов
Download