Как бы вы передавали информацию о сеансе между Java / Servlet и .NET? - PullRequest
1 голос
/ 09 мая 2009

У меня есть веб-приложение, построенное на технологии Java Servlet. Я думаю о переходе на новую платформу, возможно, переход на стек .NET с C # и ASP MVC. Я не хочу снимать текущее приложение, пока я разрабатываю новое. Цель состоит в том, чтобы запустить старую систему и просто разработать новые модули в новой архитектуре.

Если я останусь со стеком Java, я думаю, что это просто вопрос отображения сервлета. Однако, если я переключусь на стек .NET, мне придется передавать сеансы между двумя системами. Это выполнимо простым способом? Должен ли я использовать что-то вроде SOAP?

Есть ли у кого-нибудь опыт такого рода действий?

Спасибо

Ответы [ 3 ]

3 голосов
/ 09 мая 2009

Нет мыла. Это просто:

1) убедитесь, что ваше веб-приложение на Java использует клиентский (браузерный) механизм для отслеживания сеансов. (Файлы cookie, URL-кодирование и т. Д.)

2) Если вы помещаете сложные java-объекты в ваши текущие сеансы, внесите необходимые изменения, чтобы он был сведен (эффективно) к словарю ключ / значение.

3) Настройка внешней системы (например, БД) для хранения данных сеанса ключ / значение на основе идентификатора сеанса из (1)

4) Вы больше не будете использовать механизм сеанса сервлета. Вместо этого вам нужно написать базовый менеджер сеансов, который возвращает Map для данного идентификатора сеанса.

- на стороне .NET / Python / Woof

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

6) Вам потребуется продублировать менеджер сессий (4) для вашего контейнера .NET. Вы выбрали RDBM для (3)? Тогда это не что иное, как запрос к той же базе данных с использованием того же сеансового ключа

7) вы теперь обслуживаете разные страницы для одного и того же приложения, используя 2 разных контейнера.

2 голосов
/ 09 мая 2009

Они используют одну и ту же БД? Просто сохраните информацию записи сеанса в записи таблицы БД и передайте идентификатор записи между двумя системами.

1 голос
/ 09 мая 2009

Я думаю, что наилучшим способом было бы реализовать настраиваемые поставщики сеансов в обеих системах, чтобы хранить данные сеансов в общей базе данных. Это возможно в .NET, и я предполагаю, что это возможно и в Java ...

Вы должны взглянуть на эту страницу, которая объясняет, как реализовать пользовательский поставщик хранилища состояний сеансов в .NET: http://msdn.microsoft.com/en-us/library/ms178587.aspx В VB.NET есть пример реализации (см. Ссылку внизу страницы)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...