|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
Имеется распределенная система "клиент(веб-сервер) - веб-сервис(бизтолк) - различные БД". Работает система по следующей схеме: 1. Оператор ищет запись, соответствующую некоторым критериям. 2. Если запись находит, то изменяет в ней поле П, если не находит, то добавляет новую, значение поля П по умолчанию. Эти записи хранятся во внешнем ресурсе. Веб сервис по требованиям ТЗ работает "безотказно", но ресурсы, к которым он обращается, могут временно быть недоступны. Работа оператора должна быть непрерывной, и не зависеть от этих внешних ресурсов. Веб-сервис, следовательно, должен уметь сохранять у себя данные, которые добавляются или обновляются на время отсутствия доступа к внешним БД. Схема взаимодействия приведена в прикрепленном файле. Подскажите, как правильно организовать транзакцию "поск - изменение/добавление" ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 10:08 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
- лучше рисунок сюда, а не в архиве. - транзакции атомарны, т.е. не надо в неё одну всё пихать (поиск, просмотр и т.д.). Старт надо на "Изменение чего-либо". - задача была в изменении, а у вас " добавление записи" ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 10:17 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
запихал в транзакцию все, потому что на каждом этапе может обрубиться доступ к БД. Напрмер: запрос на поиск - вернул результат (БД отрубилась) - закрыл браузер, открыл, аналогичный запрос - ничего не найдено а эти все действия для пользователя - единое целое ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 10:28 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
kmawзапихал в транзакцию все, потому что на каждом этапе может обрубиться доступ к БД. Напрмер: не то. в транзакции только то, чему надо делать откат. Как будем откатывать операцию "запрос на поиск?" ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 10:51 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
надеюсь пользователь у тебя не входит в транзакцию? :) ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 10:52 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
запрос на поиск - это начало транзакции, первая точка с которой она начиналась. для неё откат - это возврат в неё же саму ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 10:53 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
kmawзапрос на поиск - это начало транзакции, первая точка с которой она начиналась. для неё откат - это возврат в неё же саму запрос - это действие. Начало транзакции - это точка на схеме или квадрат, который запоминает все действия для отката (упростим). Поэтому нельзя несколько действий и фразу begintran пихать в один квадрат. С транзакциями работает сервис, а не клиент (он только даёт ему команду). У вас сервис ничего не делает, а только 6 копий одного действия "обработка запроса". ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 11:32 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
kmaw Веб сервис по требованиям ТЗ работает "безотказно", но ресурсы, к которым он обращается, могут временно быть недоступны. ==== это как? Как он делает запрос к недоступной БД? Работа оператора должна быть непрерывной, и не зависеть от этих внешних ресурсов. Веб-сервис, следовательно, должен уметь сохранять у себя данные, которые добавляются или обновляются на время отсутствия доступа к внешним БД. ======== это невозможно без рапликации. (безотказная работа с рессурсами, которые недоступны) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 11:39 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
может я не совсем понятно объяснил суть проблемы, но меня интересует не философия по поводу что считать транзакцией, что в неё включать или не включать; технические вопросы по поводу репликации БД и хранилища на сервисе тоже пока не интересуют. Интересует решение вопроса, связанного с тем, как на веб-сервисе организовать временное хранение данных, которые там могут появиться в следующих случаях: 1. клиент дал запрос на поиск, ему вернулся результат, после чего БД недоступна 2. клиен дал запрос на добавление, но в этот момент БД недоступна 3. клиент дал запрос на изменение, но в этот момент БД недоступна Возможно, этот список не исчерпывающий и требует уточнения, но суть мне кажется (если смотреть на схему взаимодействия) ясна ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 11:59 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
kmawИнтересует решение вопроса, связанного с тем, как на веб-сервисе организовать временное хранение данных 1) По сабжу а) В машинной памяти б) В базе данных Я так полагаю, что следующим вопросом будет как организовать хранение данных веб-сервиса, который содержит запросы к базе которая недоступна, если веб-сервис в данный момент почемуто-то не доступен и так далее. далее, далее ------------------------- Идиотека 2) Для решения вопроса, я бы советовал поместить невыполненные запросы к недоступной базе на клиенте, который обращается к Web-сервису. ______________________________________________________ Задолбали вихри яростных атак ... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 12:26 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
kmawможет я не совсем понятно объяснил суть проблемы, но меня интересует не философия по поводу что считать транзакцией, что в неё включать или не включать; технические вопросы по поводу репликации БД и хранилища на сервисе тоже пока не интересуют. Интересует решение вопроса, связанного с тем, как на веб-сервисе организовать временное хранение данных, которые там могут появиться в следующих случаях: 1. клиент дал запрос на поиск, ему вернулся результат, после чего БД недоступна 2. клиен дал запрос на добавление, но в этот момент БД недоступна 3. клиент дал запрос на изменение, но в этот момент БД недоступна Возможно, этот список не исчерпывающий и требует уточнения, но суть мне кажется (если смотреть на схему взаимодействия) ясна А скажите, зачем вам нужен BizTalk в вышеприведенной схеме? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 12:45 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
Диез kmawможет я не совсем понятно объяснил суть проблемы, но меня интересует не философия по поводу что считать транзакцией, что в неё включать или не включать; технические вопросы по поводу репликации БД и хранилища на сервисе тоже пока не интересуют. Интересует решение вопроса, связанного с тем, как на веб-сервисе организовать временное хранение данных, которые там могут появиться в следующих случаях: 1. клиент дал запрос на поиск, ему вернулся результат, после чего БД недоступна 2. клиен дал запрос на добавление, но в этот момент БД недоступна 3. клиент дал запрос на изменение, но в этот момент БД недоступна Возможно, этот список не исчерпывающий и требует уточнения, но суть мне кажется (если смотреть на схему взаимодействия) ясна А скажите, зачем вам нужен BizTalk в вышеприведенной схеме? делать оркестровку бизнес-процессов. Т.е. загрузит схему выше в word и получит работающую Информ-Систему. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 12:49 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
на клиенте не канает: есть xml-спецификация, на основе которой работает взаимодействие клиент-сервис. Должны отрабатываться стуации типа Оператор 1 дал запрос на посик Петрова А.Д.1977. Бд не работает. Результат поиска отрицательный. Добавляем. Оператор 2 дал запрос на поиск Иванова А.Д.1977. Бд не работает. Результат поиска отрицательный. Добавляем. Оператор 3 дал запрос на поиск Семенова А.Д.1977. Бд работает. Результат поиска положительный. Бд снова отваливается. Вносим изменения и сохраняем на сервисе. когда БД заработала - закачиваем результаты в БД помечая их как недостоверные. что-то типа того, то есть клиент не зависит от того, работают БД или нет, ему важно что работает только сервис ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 12:58 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
БД много, и они в разных ведомствах, он консолидирует данные из них, если БД доступны на момент запроса, для этого бизтолк ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 13:00 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
Petro123 Диез А скажите, зачем вам нужен BizTalk в вышеприведенной схеме? делать оркестровку бизнес-процессов. Т.е. загрузит схему выше в word и получит работающую Информ-Систему. :) Я тоже хочу такой бизток... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 13:02 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
kmawБД много, и они в разных ведомствах, он консолидирует данные из них, если БД доступны на момент запроса, для этого бизтолк А разве нельзя было обойтись обычным вебсервисом на ASP.NET, который консолидировал бы данные их разных БД ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 13:03 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
можно вообще обойтись без-веб сервиса, и обходились. это уже работающая система - проблема в том, что каналы до внешних БД иногда падают, а оператор должен работать, потому что КЛИЕНТЫ, ОЧЕРЕДЬ. И надо оптимизировать работу оператора с одной стороны, чтобы он не ждал, пока появится связь, и с другой стороны минимизировать избыточность, которая неизбежна, если данные хранить на промежуточном слое. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 13:09 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
kmawможно вообще обойтись без-веб сервиса, и обходились. это уже работающая система - проблема в том, что каналы до внешних БД иногда падают, а оператор должен работать, потому что КЛИЕНТЫ, ОЧЕРЕДЬ. И надо оптимизировать работу оператора с одной стороны, чтобы он не ждал, пока появится связь, и с другой стороны минимизировать избыточность, которая неизбежна, если данные хранить на промежуточном слое. Вот и делайте обработку ошибок на бизтоке, зачем еще промежуточное хранилище на вашем собственном вебсервисе? Если что, ключевые слова: "long-running transactions", "send ports, transport options", "compensations". Только схему поправьте потом, а то впечатление, что бизток у вас занимается исключительно маппингом запросов :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 13:34 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
kmaw проблема в том, что каналы до внешних БД иногда падают, а оператор должен работать, потому что КЛИЕНТЫ, ОЧЕРЕДЬ. И надо оптимизировать работу оператора с одной стороны, чтобы он не ждал, пока появится связь, и с другой стороны минимизировать избыточность, которая неизбежна, если данные хранить на промежуточном слое. вы читали про "репликацию"? Она как раз решает эту проблему. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 13:36 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
kmawОператор 1 дал запрос на посик Петрова А.Д.1977. Бд не работает. Результат поиска отрицательный. Добавляем. Оператор 2 дал запрос на поиск Иванова А.Д.1977. Бд не работает. Результат поиска отрицательный. Добавляем. - если два клиента добавляют одно и то-же лицо? - если 2 клиента правят одно и то же лицо? При репликации сервер сам не оканчивает транзакцию, пока не восстановится связь и не будут разрешены коллизии и противоречия. Можно конечно и ручками писать вместо сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 13:42 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
Диез kmawможно вообще обойтись без-веб сервиса, и обходились. это уже работающая система - проблема в том, что каналы до внешних БД иногда падают, а оператор должен работать, потому что КЛИЕНТЫ, ОЧЕРЕДЬ. И надо оптимизировать работу оператора с одной стороны, чтобы он не ждал, пока появится связь, и с другой стороны минимизировать избыточность, которая неизбежна, если данные хранить на промежуточном слое. Вот и делайте обработку ошибок на бизтоке, зачем еще промежуточное хранилище на вашем собственном вебсервисе? Если что, ключевые слова: "long-running transactions", "send ports, transport options", "compensations". Только схему поправьте потом, а то впечатление, что бизток у вас занимается исключительно маппингом запросов :) Бизтолк - это и есть веб-сервис. Вопрос как делать подобную обработку ошибок. Можно поподробнее, или ссылку где почитать? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 14:07 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
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 И все же попробуйте рассмотреть альтернативные варианты решения проблемы, без Бизтока. А то в вашем случае получается из пушки по воробьям, ИМХО. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 14:46 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
Посмотри Offline Application Block ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2008, 17:54 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
>kmaw >Имеется распределенная система ... Откажитесь от WEB-схемы - перейдите к "толстому" клиенту и храните промежуточный ввод в информационных структурах на клиенте (локальная база данных, DataSet или что-то подобное). В гриде оставте поле под метку. Пометте записи и отсылайте помеченное на сервер приложения. Если запись обработано штатно - пометку снимете. С уважением, Владимир. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2008, 08:43 |
|
Помогите организовать архитектуру распределенного приложения (.net)
|
|||
---|---|---|---|
#18+
kmaw1. клиент дал запрос на поиск, ему вернулся результат, после чего БД недоступна 2. клиен дал запрос на добавление, но в этот момент БД недоступна 3. клиент дал запрос на изменение, но в этот момент БД недоступнаСлышали, что такое ESB (Enterprise service bus)? Почитайте. Думаю, поможет:) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2008, 17:36 |
|
|
start [/forum/topic.php?fid=33&fpage=44&tid=1548774]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 448ms |
total: | 584ms |
0 / 0 |