zabika.ru 1 2 ... 9 10


Санкт-Петербургский государственный университет

Математико-механический факультет

Кафедра системного программирования

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


Дипломная работа студента 544 группы

Сеппеля Евгения Вальтеровича

Научный руководитель ………………. А.Н. Терехов

д.ф.-м.н., профессор
Рецензент ………………. В.В. Соколов

к.ф.-м.н.
«Допустить к защите»

заведующий кафедрой, ………………. А.Н. Терехов

д.ф.-м.н., профессор

Санкт-Петербург,

2008

Содержание


Содержание 2

Введение 4


Постановка задачи 8

Архитектура решения 9

CASE пакет QReal 9

Требования к объектной модели системы 10

API кодогенераторов и редакторов 12

ZeroC ICE 14

Создание требований к редактору 15

BPEL 16

Соглашения о структуре хранимых в репозитарии данных 20

Реализация кодогенератора 22

Заключение 25

Список сокращений 26

Список литературы 27

Приложение 1: Описание используемого подмножества языка BPEL. 29

Перечисление элементов 29

Контейнеры 31

Язык описания условий 31

Рёбра 32

Переменные и параметры 33

Приложение 2. API кодогенераторов и редакторов 34

Приложение 3. Описание сетевого ICE API 38

Приложение 4. Интерфейсы и классы кодогенератора 41

Приложение 5. Таблица типов данных 43

Введение

Задача кодогенерации веб-сервисов возникла в рамках проекта «К700». «К700» — это проект создания рабочих мест оператора и инженера технического обслуживания для телефонной станции КСН-Ц (Коммутатор Специального Назначения), выполняемый в ГУП «Терком».


Прежде чем переходить непосредственно к постановке задачи кодогенерации, будет приведено краткое описание архитектуры проекта «К700», которая поставила перед разработчиками необходимость автоматической генерации кода.

«К700» — это система с ручным управлением АТС (ручной коммутацией абонентов). Обслуживает примерно 1500 абонентов. Перед разрабатываемой системой ставятся повышенные требования по надёжности. Система разрабатывается с целью облегчения и оптимизации работы оператора и модернизации системы в целом.

В рамках проекта разрабатываются рабочие места для телефонистов и инженеров обслуживания

Проект разрабатывается как веб-решение согласно трёхуровневой модели (клиентская часть, бизнес-логика, база данных) и следует паттерну проектирования MVС (Model View Controller) который подробно описан в [8], [9]

Используемые при разработке программные средства:


  • C#.net на платформе Microsoft.NET 2.0 (реализация бизнес-логики, веб-сервера, роутера),

  • MySQL 5.0 с использованием транзакций, триггеров и хранимых процедур (СУБД),

  • Ajax и XSL-преобразования (клиентская часть)‏

Общую архитектуру системы можно увидеть на рисунке 1. (стрелки указывают направление запросов)

Рисунок 1. Архитектура системы «К700»

Взаимодействие между роутером и бизнес-логикой, бизнес-логикой и веб-сервером осуществляется посредством веб-сервисов [12] по протоколу SOAP.

Взаимодействие базы данных с другими компонентами системы происходит по сетевому протоколу MySQL поверх TCP/IP с использованием MySQL Connector.net.

Взаимодействие с АТС происходит посредством специального протокола, работающего поверх UDP.


Инициаторами возникающих в системе событий могут служить либо операторы/инженеры, либо АТС. События от АТС обрабатываются роутером и через БЛ отображаются в БД, события же от пользователя обрабатываются веб-сервером и через БЛ тоже отображаются в БД. Клиентский интерфейс посредством pooling’а через веб-сервер получает у базы данных текущее состояние интерфейса.

Логика процессов приложения находится в компоненте бизнес-логики. Логика работы с данными реализована в качестве хранимых процедур, триггеров и функций базы данных MySQL 5.

На рисунке 2 можно увидеть типичный интерфейс работающей системы

Рисунок 2. Вид интерфейса системы

Веб-сервисы, работающие по протоколу SOAP, как было сказано выше, реализованы на языке C# платформы Microsoft.NET 2.0. В связи с наличием открытой реализации GNU Mono платформы .NET достигается кроссплатформенность решения.

Каждый веб-сервис — это специальным образом оформленный класс на C#, некоторые public методы которого доступны для вызова по сети. Суть работы каждого веб-сервиса в системе сводится к вызову других веб-сервисов бизнес-логики и роутера, а также вызову хранимых процедур БД с целью записи в БД или чтения информации из неё.

Таким образом, в бизнес-логике сосредоточена вся логика РМО, кроме логики непосредственной работы с данными.

В рамках реализации проекта и взаимодействия с заказчиком НИИ «Красная Заря» выяснилось, что логику приложения приходится часто изменять и переписывать в связи с новыми требованиями заказчика или новым толкованием старых требований. Процесс написания логики на языке высокого уровня — C# — представляется достаточно рутинной и однотипной задачей, не требующей высокой квалификации. Поэтому было принято решение производить автоматическую генерацию C# кода веб-сервисов посредством CASE пакета QReal, разработанного на кафедре системного программирования математико-механического факультета Санкт-Петербургского государственного университета.

Задача же кодогенерации логики работы с данными — хранимых процедур MySQL — рассматривается в дипломной работе [7].


следующая страница >>