Предложения по стилю архитектуры программного обеспечения для использования между Java и Windows - PullRequest
2 голосов
/ 22 мая 2009

Вот интересная комбинация, мне нужно передать данные между «устройством» под управлением Windows XP Home и удаленным сервером Linux в Интернете. Позвольте мне перечислить, что должно произойти:

  1. Система "xp home" должна передавать данные или файлы каждые 30 минут или около того. (SFTP?)
  2. Сервер Linux должен связаться с системой «XP Home» для запроса данных.

Кажется, достаточно просто, а? Я думал об использовании веб-сервисов на стороне Linux и подумал, что было бы неплохо сделать то же самое в системе XP Home. Но некоторые из моих исследований говорят, что в XP Home не будет работать для ответа на входящие вызовы веб-службы. Может быть, это не так? Так что с сервисами RESTful это поможет?

Кстати: так как это новое приложение, я могу заниматься разработкой на обоих концах. C # на стороне Windows и Java на стороне Linux.

Идеи приветствуются!

Ответы [ 8 ]

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

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

Любое решение веб-сервисов слишком сложное. Используйте одну и ту же технологию на обеих машинах, и вы сможете использовать языковые функции выбранного вами языка.

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

Установите Cygwin на сервер Windows, установите сервер SSH и убедитесь, что rsync установлен. На стороне Linux вызовите rsync через задание cron. Программирование / дизайн не требуется.

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

Если вам действительно не нужно в реальном времени.

Низкотехнологичное решение может состоять в том, чтобы устройство Windows регулярно опрашивало коробку Linux. Он может отправлять данные и спрашивать окно Linux, есть ли что-то, что ему нужно.

Это избавит от необходимости открывать входящие порты на стороне окон (что может быть нежелательно или невозможно).

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

XP Home не включает IIS, но вы можете установить другой веб-сервер и использовать его на стороне Windows. Другим вариантом было бы сделать несколько простых программ сокетов на обоих концах, чтобы облегчить запросы от блока Linux к блоку XP. Такой подход не очень хорошо масштабируется, но если вы хотите быстро что-то собрать, он сработает.

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

почему бы не использовать Java и на стороне Windows? Tomcat должен работать на любой XP ... это также позаботится о вашем другом вопросе.

0 голосов
/ 23 мая 2009

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

Если вам нужен запрос на стороне java, просто прослушайте порт, чтобы получить информацию о том, что данные необходимо отправить, а затем отправьте данные сервлету. Это был бы простой сервер на стороне XP, поскольку он не передает никаких данных, просто получает крошечное сообщение («отправить»).

0 голосов
/ 23 мая 2009

Другое решение будет использовать что-то на основе сообщений, например, JMS или XMPP. Так как это через Интернет, XMPP может быть лучше.

Сообщения чата XMPP могут использоваться для рукопожатия, и у него есть расширения для общего доступа к файлам для двоичной передачи.

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

Редактировать: Предположительно, Tivo теперь использует его для отправки обновлений в коробки Tivo со своих серверов.

0 голосов
/ 22 мая 2009

Хорошо, так что протокол для всех это

  1. Система Linux связывается с системой Windows для запроса данных
  2. Система Windows отвечает с данными.

Сколько данных и какого типа?

Казалось бы, сначала подумалось, что вы просто запускаете веб-сервер на коробке Windows и отвечаете данными. Я не создал ни одного, но есть много веб-серверов, которые поддерживают Windows.

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