Форум Сообщества Аналитиков

Общий раздел => Теория моделирования и нотации => UML SysML и пр. => Тема начата: Константин Никовский от 26 Декабря 2011, 15:59:06

Название: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Константин Никовский от 26 Декабря 2011, 15:59:06
С наступающем новым годом, дамы и господа.

Прошу помощи экспертов, не могу понять какими средствами/диаграммами описать протокол общение между клиентом-серврером.

Например у нас есть soap сервис и к нему идет обращение из браузера клиента. Есть определенный формат в виде XML,
Но как его расписать средствами UML? А не добавить файлик в виде артефакта.
Прошу не разводить воды, или уход в сторону от темы.
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Thyestes от 26 Декабря 2011, 16:35:16
Думаю что через   диаграммы взаимодействия (http://library.mnwhost.ru/doc/UML_HTM/gl_18.htm)
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Galogen от 26 Декабря 2011, 16:49:37
Поддержу предыдущего оратора. Диаграммы взаимодействия. В частности диаграмма последовательности, которую часто называют диаграммой сценария, а сценарий суть протокола взамиодействия, т.е. линейная последовательность обмена сообщений (которая может быть определена как циклическая и ветвление впрочем).

На общем уровне это могут быть просто Клиент и Сервер. Можно детализировать при желании стурктуру клиента и сервера
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Thyestes от 26 Декабря 2011, 16:55:05
Во вложении примеры, может пригодятся.
Еще можно посмотреть Построение клиента Web-сервисов  (http://www.ibm.com/developerworks/ru/library/ws-wsajax/)
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Константин Никовский от 26 Декабря 2011, 17:55:50
Большое спасибо за оперативную помощь, но я так и не понял как расписать протокол которой передается от сервера клиенту, под протоколом я подразумеваю XML в следующем формате 

<?xml version="1.0" encoding="UTF-8"?>
<data name="хлеб" preptime="5" cooktime="180">
  <title>price</title>
  <tovar id="3">Мука</ingredient>
  <tovar id="4">Хлеб</ingredient>
</data>
 в какую диаграмму вставить этот протокол, и как его описать в виде чего описывать. Простите за легкие вопросы но меня данная задача в тупик поставила.
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Thyestes от 26 Декабря 2011, 18:09:48
Ну Вы и детализируйте  ???. А так Вам надо ???

Тогда используете программные продукты, которые поддерживают диаграммы для XML-схем.
Это что-то будет наподобие диаграммы классов.

Почитайте   Проектирование XML-словарей (http://www.interface.ru/fset.asp?Url=/rational/xmluml.htm) и аналогично что-нибудь
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Константин Никовский от 26 Декабря 2011, 18:14:43
Ну Вы и детализируйте  ???. А так Вам надо ???

Тогда используете программные продукты, которые поддерживают диаграммы для XML-схем.
Это что-то будет наподобие диаграммы классов.

Почитайте   Проектирование XML-словарей (http://www.interface.ru/fset.asp?Url=/rational/xmluml.htm) и аналогично что-нибудь

Безусловно, детализирую со всех сторон, иначе данная документация будет уже не актуально через 2 недели. Я использую EA, вот затронул описание архитектуры и логики с вебом и сел в лужу, хочется чтоб было в одном редакторе а не раскидано где попало.
По поводу протокола он может быть в некоторых местах и json-ом.

По поводу статьи что вы посоветовали это относиться к TSL а он мне не нужен, вопрос все еще открыт.
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: div от 26 Декабря 2011, 21:02:47
не могу понять какими средствами/диаграммами описать протокол общение между клиентом-серврером.
Например у нас есть soap сервис и к нему идет обращение из браузера клиента. Есть определенный формат в виде XML,
Но как его расписать средствами UML?
Что вы хотите сказать, когда просите "расписать формат XML средствами UML"?
UML - это язык построения моделей. Модели применяются для решения проблем. Разные модели UML помогают решать разные проблемы.
Выбор модели зависит от того, какую проблему Вы хотите решить.
Уточните в чем ваша проблема, и вам подскажут, какое средство UML оптимально для ее решения.
Или подскажут, что UML вам в этой задаче не нужен.
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Денис Иванов от 26 Декабря 2011, 21:24:33
Прошу помощи экспертов, не могу понять какими средствами/диаграммами описать протокол общение между клиентом-серврером.

Например у нас есть soap сервис и к нему идет обращение из браузера клиента. Есть определенный формат в виде XML,
Но как его расписать средствами UML? А не добавить файлик в виде артефакта.

Протокол - это поведение. Можно описать диаграммой последовательности.

Формат данных, которые передаются во время общения сервиса и клиента - это структурная составляющая вашей системы. Описывается диаграммой классов. Конкретные примеры таких файлов можно описать диаграммой объектов.

Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Константин Никовский от 27 Декабря 2011, 15:04:17
Что вы хотите сказать, когда просите "расписать формат XML средствами UML"?
UML - это язык построения моделей. Модели применяются для решения проблем. Разные модели UML помогают решать разные проблемы.
Выбор модели зависит от того, какую проблему Вы хотите решить.
Уточните в чем ваша проблема, и вам подскажут, какое средство UML оптимально для ее решения.
Или подскажут, что UML вам в этой задаче не нужен.


Проблема заключается  в следующем, как средствами UML расписать формат передачи данных, пример формата данных я проводил с XML
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Константин Никовский от 27 Декабря 2011, 15:05:55
Протокол - это поведение. Можно описать диаграммой последовательности.

Формат данных, которые передаются во время общения сервиса и клиента - это структурная составляющая вашей системы. Описывается диаграммой классов. Конкретные примеры таких файлов можно описать диаграммой объектов.


Прошу прощение за неправильное  иносказание, в данном тексте я имел ввиду как расписать формат передающих данных от клиента ке серверу, а не работа самого протокола, тут проблем нет
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: SALar от 27 Декабря 2011, 15:34:25
Клиент сервер - слишком простая модель, чтобы вообще использовать UML. Для более сложных случаев, да, обычно применяется диаграмма последовательностей.

Что же касается описания XML- это важнейшая часть работы. Здесь есть несколько хитростей.
1. Будучи однажды опубликованным протокол не может быть изменен. Протокол наиболее неизменная часть системы. Собственно описание протокола и есть архитектура. Вы можете поменять структуру хранения данных, можете даже перейти на другую платформу (с перла на джаву), протокол должен оставаться неизменным. Но можно опубликовать новую версию. Поэтому сразу ведите версионность протокола и расписывайте очень тщательно.

2. существует множество способов описания структуры XML сообщения. Из машиночитаемых, пожалуй наиболее популярны xsd и dtd. Некоторыми нотациями я пользовался, но мне больше нравится человекочитаемые.
В конце концов, я остановился на варианте нотации из трех частей. Сначала структура без значений, потом таблица с описанием элементов, потом пример с комментариями.

Нужен пример... Я попробую найти что-нибудь.

Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Константин Никовский от 27 Декабря 2011, 16:21:11
Клиент сервер - слишком простая модель, чтобы вообще использовать UML. Для более сложных случаев, да, обычно применяется диаграмма последовательностей.

Что же касается описания XML- это важнейшая часть работы. Здесь есть несколько хитростей.
1. Будучи однажды опубликованным протокол не может быть изменен. Протокол наиболее неизменная часть системы. Собственно описание протокола и есть архитектура. Вы можете поменять структуру хранения данных, можете даже перейти на другую платформу (с перла на джаву), протокол должен оставаться неизменным. Но можно опубликовать новую версию. Поэтому сразу ведите версионность протокола и расписывайте очень тщательно.

2. существует множество способов описания структуры XML сообщения. Из машиночитаемых, пожалуй наиболее популярны xsd и dtd. Некоторыми нотациями я пользовался, но мне больше нравится человекочитаемые.
В конце концов, я остановился на варианте нотации из трех частей. Сначала структура без значений, потом таблица с описанием элементов, потом пример с комментариями.

Нужен пример... Я попробую найти что-нибудь.


Буду очень признателен за пример.
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Денис Иванов от 28 Декабря 2011, 11:41:07
Прошу прощение за неправильное  иносказание, в данном тексте я имел ввиду как расписать формат передающих данных от клиента ке серверу, а не работа самого протокола, тут проблем нет

Диаграмма классов + диаграмма объектов (для примеров)
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Константин Никовский от 28 Декабря 2011, 11:57:52
Диаграмма классов + диаграмма объектов (для примеров)

Это не то: нужен пример который отображал формат передачи данных. А не интерфейс между классами.
Во вторых как ты в диаграмме объектов сделаешь вложенность данных например 3-х уровненною?
 
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Thyestes от 28 Декабря 2011, 12:18:54
Тогда ответ следующий : EA не полностью удовлетворяет всем Вашим желаниям.

Формат передачи данных - это Описание структуры XML-документа?
Исторически первым таким описанием был DTD (Document Type Definition). Однако как сказано в той же Википедии, в настоящее время вместо DTD рекомендовано другое описание - XML Schema. Но есть и еще один вариант описания XML - это RELAX NG.
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Денис Иванов от 28 Декабря 2011, 12:19:43
тут (http://blog.modelware.ru/?p=722)
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: SALar от 28 Декабря 2011, 16:16:54
Пока суть да дело погуглите описания:
* Tactical Situation ObjectMartine http://www.tacticalsituationobject.org/docs/Shared-Situation-Awareness-the%20TSO-15Dec2008.pdf и http://www.tacticalsituationobject.org/docs/CWA_15931-2.pdf
* Common Alert Protocol
* EDXL

Если есть досту к Organization for the Advancement of Structured Information Standards (http://www.oasis-open.org/org), то будет легче.

----------
Эти штуки в один присест не курятся, так что предлагаю вернутся к вопросу в следующем году
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Виктор Малышко от 28 Декабря 2011, 20:17:21
Это не то: нужен пример который отображал формат передачи данных.
На диаграмме деятельности Вы можете нарисовать две области ответственности (клиент/сервис) и указать поток объектов между ними. Структуру класса этих объектов представить на диаграмме классов.
Пример:
(http://www.ibm.com/developerworks/rational/library/content/04June/3072/3072_fig2.jpg)
Нарисовать дерево объектов или классов, изображающее дерево XML-данны[ на соответствующей структурной диаграмме -- задача чисто техническая.
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Константин Никовский от 29 Декабря 2011, 12:29:52
На диаграмме деятельности Вы можете нарисовать две области ответственности (клиент/сервис) и указать поток объектов между ними. Структуру класса этих объектов представить на диаграмме классов.
Пример:
(http://www.ibm.com/developerworks/rational/library/content/04June/3072/3072_fig2.jpg)
Нарисовать дерево объектов или классов, изображающее дерево XML-данны[ на соответствующей структурной диаграмме -- задача чисто техническая.


Большое спасибо, а пример в студию можно?  Один уже есть спасибо Денису Иванову.
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Виктор Малышко от 30 Декабря 2011, 00:27:00
Вот старенькая статья Буча с примером, дополняющим пример Дениса, в том смысле, что диаграмма классов может быть построена по XML Schema: http://xml.coverpages.org/fuchs-uml_xmlschema33.pdf (http://xml.coverpages.org/fuchs-uml_xmlschema33.pdf) (стр. 6-7)
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Константин Никовский от 24 Января 2012, 18:42:41
Большое спасибо за помощь,  но возник вопрос, при  данной диаграмме http://blog.modelware.ru/?p=722 (http://blog.modelware.ru/?p=722) можно средствами ЕА генерировать xml файл?
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Виктор Малышко от 27 Января 2012, 20:04:20
Я с ним не работал. На сайте продукта приведены примеры:
http://www.sparxsystems.com/resources/mda/xsd_transformation.html
http://www.sparxsystems.com/resources/xml_schema_generation.html
Название: Re: Как средствами UML описать протокол общение между сервером и клиентом
Отправлено: Виктор Малышко от 17 Июня 2013, 00:39:54
[не в ту тему приклеил]