Автоматическая генерация каркасов клиентских приложений для систем с сервисно-ориентированной архитектурой Дипломная работа студента 545 группы Аязяна Арама Арменовича Научный руководительН.И. Артамонов РецензентД.Г. Глиненко Санкт-Петербург 2007 год Санкт-Петербургский Государственный Университет Математико-Механический Факультет Кафедра Системного Программирования
Введение Новый виток в развитии технологии программирования – переход на Web- платформу SOA и стек Web-служб UDDI WSDL SOAP, REST AJAX – Asynchronous Javascript And XML
Предпосылки Значительные различия в реализации Web-служб Неприспособленность языка Javascript для создания сложных приложений Производственная необходимость
Постановка задачи Изучить различия спецификаций WSDL Изучить существующие инструментальные средства для кодогенерации по WSDL Создать генератор программного кода для языка Javascript
Требования к решению Простота добавления поддержки новых версий спецификации WSDL Поддержка сложных типов данных Полученный программный код должен быть: Структурированным Кросс-браузерным Удобным для адаптации в различных проектах, основанных на разных Javascript библиотеках
Предлагаемое решение Использует язык программирования Ruby Основывается на стандартной библиотеке WSDL4R Использует шаблоны ERB
Иллюстрация процесса кодогенерации Документ WSDL 1.1 Парсер WSDL 1.1 (WSDL4R) Шаблоны ERB Генератор программного кода Объектное представление WSDL 1.1 Объектное представление WSDL 2.0 Обобщенное объектное представление WSDL Документ WSDL 2.0 Парсер WSDL 2.0 Программный код на Javascript
Пример использования UDDI реестр Генератор Javascript по WSDL Web-служба Google Браузер Google.js var gp = new GoogleProxy(); gp.search(page, query, parm); GoogleProxy.prototype.search_ch = function (/*SearchResult[]*/ sr) { alert(sr.toString()); } search service? Google.wsdl SOAP
Результаты Проведен анализ различий спецификаций WSDL Изучены существующие инструментальные средства для кодогенерации по WSDL Успешно создан генератор программного кода для языка Javascript