powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Помогите организовать архитектуру распределенного приложения (.net)
25 сообщений из 25, страница 1 из 1
Помогите организовать архитектуру распределенного приложения (.net)
    #35339270
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется распределенная система "клиент(веб-сервер) - веб-сервис(бизтолк) - различные БД". Работает система по следующей схеме:
1. Оператор ищет запись, соответствующую некоторым критериям.
2. Если запись находит, то изменяет в ней поле П, если не находит, то добавляет новую, значение поля П по умолчанию. Эти записи хранятся во внешнем ресурсе.

Веб сервис по требованиям ТЗ работает "безотказно", но ресурсы, к которым он обращается, могут временно быть недоступны. Работа оператора должна быть непрерывной, и не зависеть от этих внешних ресурсов. Веб-сервис, следовательно, должен уметь сохранять у себя данные, которые добавляются или обновляются на время отсутствия доступа к внешним БД.

Схема взаимодействия приведена в прикрепленном файле.

Подскажите, как правильно организовать транзакцию "поск - изменение/добавление"
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35339299
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- лучше рисунок сюда, а не в архиве.
- транзакции атомарны, т.е. не надо в неё одну всё пихать (поиск, просмотр и т.д.).
Старт надо на "Изменение чего-либо".
- задача была в изменении, а у вас " добавление записи"
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35339327
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запихал в транзакцию все, потому что на каждом этапе может обрубиться доступ к БД. Напрмер:

запрос на поиск - вернул результат (БД отрубилась) - закрыл браузер, открыл, аналогичный запрос - ничего не найдено

а эти все действия для пользователя - единое целое
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35339391
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawзапихал в транзакцию все, потому что на каждом этапе может обрубиться доступ к БД. Напрмер:

не то.
в транзакции только то, чему надо делать откат.
Как будем откатывать операцию "запрос на поиск?"
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35339398
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
надеюсь пользователь у тебя не входит в транзакцию?
:)
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35339403
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запрос на поиск - это начало транзакции, первая точка с которой она начиналась. для неё откат - это возврат в неё же саму
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35339532
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawзапрос на поиск - это начало транзакции, первая точка с которой она начиналась. для неё откат - это возврат в неё же саму
запрос - это действие. Начало транзакции - это точка на схеме или квадрат, который запоминает все действия для отката (упростим).
Поэтому нельзя несколько действий и фразу begintran пихать в один квадрат.

С транзакциями работает сервис, а не клиент (он только даёт ему команду). У вас сервис ничего не делает, а только 6 копий одного действия "обработка запроса".
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35339555
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmaw
Веб сервис по требованиям ТЗ работает "безотказно", но ресурсы, к которым он обращается, могут временно быть недоступны.

==== это как? Как он делает запрос к недоступной БД?

Работа оператора должна быть непрерывной, и не зависеть от этих внешних ресурсов. Веб-сервис, следовательно, должен уметь сохранять у себя данные, которые добавляются или обновляются на время отсутствия доступа к внешним БД.

======== это невозможно без рапликации. (безотказная работа с рессурсами, которые недоступны)
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35339627
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может я не совсем понятно объяснил суть проблемы, но меня интересует не философия по поводу что считать транзакцией, что в неё включать или не включать; технические вопросы по поводу репликации БД и хранилища на сервисе тоже пока не интересуют. Интересует решение вопроса, связанного с тем, как на веб-сервисе организовать временное хранение данных, которые там могут появиться в следующих случаях:
1. клиент дал запрос на поиск, ему вернулся результат, после чего БД недоступна
2. клиен дал запрос на добавление, но в этот момент БД недоступна
3. клиент дал запрос на изменение, но в этот момент БД недоступна

Возможно, этот список не исчерпывающий и требует уточнения, но суть мне кажется (если смотреть на схему взаимодействия) ясна
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35339741
Фотография shelsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawИнтересует решение вопроса, связанного с тем, как на веб-сервисе организовать временное хранение данных

1) По сабжу

а) В машинной памяти
б) В базе данных
Я так полагаю, что следующим вопросом будет как организовать хранение данных веб-сервиса, который содержит запросы к базе которая недоступна, если веб-сервис в данный момент почемуто-то не доступен и так далее. далее, далее
-------------------------
Идиотека

2) Для решения вопроса, я бы советовал поместить невыполненные запросы к недоступной базе на клиенте, который обращается к Web-сервису.



______________________________________________________
Задолбали вихри яростных атак ...
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35339814
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawможет я не совсем понятно объяснил суть проблемы, но меня интересует не философия по поводу что считать транзакцией, что в неё включать или не включать; технические вопросы по поводу репликации БД и хранилища на сервисе тоже пока не интересуют. Интересует решение вопроса, связанного с тем, как на веб-сервисе организовать временное хранение данных, которые там могут появиться в следующих случаях:
1. клиент дал запрос на поиск, ему вернулся результат, после чего БД недоступна
2. клиен дал запрос на добавление, но в этот момент БД недоступна
3. клиент дал запрос на изменение, но в этот момент БД недоступна

Возможно, этот список не исчерпывающий и требует уточнения, но суть мне кажется (если смотреть на схему взаимодействия) ясна

А скажите, зачем вам нужен BizTalk в вышеприведенной схеме?
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35339828
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диез kmawможет я не совсем понятно объяснил суть проблемы, но меня интересует не философия по поводу что считать транзакцией, что в неё включать или не включать; технические вопросы по поводу репликации БД и хранилища на сервисе тоже пока не интересуют. Интересует решение вопроса, связанного с тем, как на веб-сервисе организовать временное хранение данных, которые там могут появиться в следующих случаях:
1. клиент дал запрос на поиск, ему вернулся результат, после чего БД недоступна
2. клиен дал запрос на добавление, но в этот момент БД недоступна
3. клиент дал запрос на изменение, но в этот момент БД недоступна

Возможно, этот список не исчерпывающий и требует уточнения, но суть мне кажется (если смотреть на схему взаимодействия) ясна

А скажите, зачем вам нужен BizTalk в вышеприведенной схеме?
делать оркестровку бизнес-процессов. Т.е. загрузит схему выше в word и получит работающую Информ-Систему.
:)
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35339872
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на клиенте не канает: есть xml-спецификация, на основе которой работает взаимодействие клиент-сервис. Должны отрабатываться стуации типа

Оператор 1 дал запрос на посик Петрова А.Д.1977. Бд не работает. Результат поиска отрицательный. Добавляем.
Оператор 2 дал запрос на поиск Иванова А.Д.1977. Бд не работает. Результат поиска отрицательный. Добавляем.

Оператор 3 дал запрос на поиск Семенова А.Д.1977. Бд работает. Результат поиска положительный. Бд снова отваливается. Вносим изменения и сохраняем на сервисе.

когда БД заработала - закачиваем результаты в БД помечая их как недостоверные.

что-то типа того, то есть клиент не зависит от того, работают БД или нет, ему важно что работает только сервис
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35339884
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БД много, и они в разных ведомствах, он консолидирует данные из них, если БД доступны на момент запроса, для этого бизтолк
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35339900
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 Диез

А скажите, зачем вам нужен BizTalk в вышеприведенной схеме?
делать оркестровку бизнес-процессов. Т.е. загрузит схему выше в word и получит работающую Информ-Систему.
:)

Я тоже хочу такой бизток...
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35339905
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawБД много, и они в разных ведомствах, он консолидирует данные из них, если БД доступны на момент запроса, для этого бизтолк

А разве нельзя было обойтись обычным вебсервисом на ASP.NET, который консолидировал бы данные их разных БД ?
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35339932
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно вообще обойтись без-веб сервиса, и обходились. это уже работающая система - проблема в том, что каналы до внешних БД иногда падают, а оператор должен работать, потому что КЛИЕНТЫ, ОЧЕРЕДЬ. И надо оптимизировать работу оператора с одной стороны, чтобы он не ждал, пока появится связь, и с другой стороны минимизировать избыточность, которая неизбежна, если данные хранить на промежуточном слое.
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35340041
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawможно вообще обойтись без-веб сервиса, и обходились. это уже работающая система - проблема в том, что каналы до внешних БД иногда падают, а оператор должен работать, потому что КЛИЕНТЫ, ОЧЕРЕДЬ. И надо оптимизировать работу оператора с одной стороны, чтобы он не ждал, пока появится связь, и с другой стороны минимизировать избыточность, которая неизбежна, если данные хранить на промежуточном слое.

Вот и делайте обработку ошибок на бизтоке, зачем еще промежуточное хранилище на вашем собственном вебсервисе?
Если что, ключевые слова: "long-running transactions", "send ports, transport options", "compensations".
Только схему поправьте потом, а то впечатление, что бизток у вас занимается исключительно маппингом запросов :)
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35340052
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmaw
проблема в том, что каналы до внешних БД иногда падают, а оператор должен работать, потому что КЛИЕНТЫ, ОЧЕРЕДЬ. И надо оптимизировать работу оператора с одной стороны, чтобы он не ждал, пока появится связь, и с другой стороны минимизировать избыточность, которая неизбежна, если данные хранить на промежуточном слое.
вы читали про "репликацию"? Она как раз решает эту проблему.
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35340085
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawОператор 1 дал запрос на посик Петрова А.Д.1977. Бд не работает. Результат поиска отрицательный. Добавляем.
Оператор 2 дал запрос на поиск Иванова А.Д.1977. Бд не работает. Результат поиска отрицательный. Добавляем.

- если два клиента добавляют одно и то-же лицо?
- если 2 клиента правят одно и то же лицо?

При репликации сервер сам не оканчивает транзакцию, пока не восстановится связь и не будут разрешены коллизии и противоречия.

Можно конечно и ручками писать вместо сервера.
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35340184
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диез kmawможно вообще обойтись без-веб сервиса, и обходились. это уже работающая система - проблема в том, что каналы до внешних БД иногда падают, а оператор должен работать, потому что КЛИЕНТЫ, ОЧЕРЕДЬ. И надо оптимизировать работу оператора с одной стороны, чтобы он не ждал, пока появится связь, и с другой стороны минимизировать избыточность, которая неизбежна, если данные хранить на промежуточном слое.

Вот и делайте обработку ошибок на бизтоке, зачем еще промежуточное хранилище на вашем собственном вебсервисе?
Если что, ключевые слова: "long-running transactions", "send ports, transport options", "compensations".
Только схему поправьте потом, а то впечатление, что бизток у вас занимается исключительно маппингом запросов :)

Бизтолк - это и есть веб-сервис. Вопрос как делать подобную обработку ошибок. Можно поподробнее, или ссылку где почитать?
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35340335
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmaw
...
Бизтолк - это и есть веб-сервис. Вопрос как делать подобную обработку ошибок. Можно поподробнее, или ссылку где почитать?

Аа, ну так бы и говорили. :)

На русском вменяемых книг я не видел, Могу порекомендовать:

- Sams.Microsoft.BizTalk.Server.2004.Unleashed - для начального ознакомления
- Apress.BizTalk.2006.Recipes.A.Problem.Solution.Approach - для поиска конкретных примеров
- Ну и BizTalk Server Documentation все время :)

Пара ссылок, если совсем не работали с бизтоком:
http://dev.net.ua/blogs/oldnick/pages/2353.aspx
http://dev.net.ua/blogs/oldnick/pages/2268.aspx

И все же попробуйте рассмотреть альтернативные варианты решения проблемы, без Бизтока. А то в вашем случае получается из пушки по воробьям, ИМХО.
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35341034
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри Offline Application Block
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35341873
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>kmaw
>Имеется распределенная система ...
Откажитесь от WEB-схемы - перейдите к "толстому" клиенту и храните промежуточный ввод в информационных структурах на клиенте (локальная база данных, DataSet или что-то подобное). В гриде оставте поле под метку. Пометте записи и отсылайте помеченное на сервер приложения. Если запись обработано штатно - пометку снимете.

С уважением, Владимир.
...
Рейтинг: 0 / 0
Помогите организовать архитектуру распределенного приложения (.net)
    #35343977
WJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmaw1. клиент дал запрос на поиск, ему вернулся результат, после чего БД недоступна
2. клиен дал запрос на добавление, но в этот момент БД недоступна
3. клиент дал запрос на изменение, но в этот момент БД недоступнаСлышали, что такое ESB (Enterprise service bus)? Почитайте. Думаю, поможет:)
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Помогите организовать архитектуру распределенного приложения (.net)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]