2009-10-31 4 views
2

OK. Поэтому у меня есть CMS, написанная на Java, которая удовлетворяет потребностям нескольких сотен клиентов. Но периодически клиенту потребуется специализированное приложение: например, приложение базы данных регистрации классов.Java Framework - Использование скрипинга экрана для создания гетерогенных серверных сред

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

Как я могу это достичь? Могу ли я использовать какой-либо экран-скребок/прокси-сервер, который перехватывает клиентские запросы на моем сайте, передает их на внешний сервер, который отображает HTML, а затем интегрирую его/ее HTML обратно в свой шаблон? Как я буду обрабатывать последующие запросы туда и обратно в действительно интерактивном приложении?

Так вот что я хочу делать (я думаю). Есть ли у кого-нибудь понимание или опыт такого рода вещей? Каковы подводные камни? Есть ли продукты, которые делают это легко?

+0

После проведения большего исследования, я думаю, мне нужно реализовать обратный прокси. Кто-нибудь имеет опыт внедрения обратного прокси-сервера? –

ответ

1

Напишите Filter, который вы бы установили в своем web.xml, который перехватывает запросы, соответствующие конкретному типу, который вы хотите передать на аутсорсинг. Затем этот фильтр может использовать Commons HttpClient, чтобы выполнить фактический запрос к внешним системам. Затем вы просто передаете ответ прямо пользователю. В основном вы создаете собственный HTTP-прокси. Вы могли бы даже добавить материал, например, украшение контента (возможно, общий заголовок, проверить SiteMesh), безопасность, переписывание URL и т. Д. Возможно, вы захотите поддержать кеширование, чтобы компенсировать штраф за выполнение прокси-запросов.

Если вам нужно поддерживать сеансы, это становится сложнее, но вы можете использовать , передавая значение JSESSIONID вместе со своими партнерами + добавив механизм репликации сеанса. Например, вы можете предоставить веб-службу, которая принимает sessionId и возвращает сериализованный объект сеанса для использования вашими партнерами.

0

Создайте iframe, чтобы показать это приложение на своей веб-странице.

+0

Нет, это не сработает. Во-первых, это вопросы удобства использования. Но что более важно, мне нужно сохранить состояние/идентификацию с помощью механизма cookie или проверки подлинности. –

0

Вы можете посмотреть Open Social, что позволяет Google добавлять приложения на свои платформы (Orkut, iGoogle и с некоторыми расширениями, Wave). Shindig - это реализация Java-контейнера Open Social, который вы можете использовать в качестве бокового бита вашей CMS Open Social.

1

Один из вариантов заключается в объединении страниц с использованием WSRP. Это в основном веб-сервис, который включает в себя пользовательский интерфейс потребляемой услуги (портлет).

Он рассмотрит многие проблемы, с которыми вам придется столкнуться (переписывание URL-адресов и т. Д.), Поэтому, вероятно, стоит посмотреть исключительно с образовательной точки зрения. Я не уверен, что такое положение дел в отношении WSRP и не-Java/.Net стеков, хотя поиск в Google предполагает, что есть какая-то работа.

Смежные вопросы