Можно ли «встроить» бэкэнд Python в приложение AIR? - PullRequest
0 голосов
/ 21 сентября 2009

Я пытаюсь выяснить, есть ли способ встроить серверную часть Python в приложение AIR? Я собираюсь использовать подход, аналогичный описанному здесь , для реализации бизнес-логики для моего приложения, но, кроме того, я хотел бы предоставить пользователю один двоичный файл, который он может загрузить. Я не хочу, чтобы пользователь запускал отдельный серверный процесс, чтобы эта работа работала. Это возможно каким-то образом или мне не повезло?

Ответы [ 3 ]

1 голос
/ 21 сентября 2009

Вы не можете встроить свой сервер Python в приложение AIR. В общем, вам не повезло.

Самым простым решением, вероятно, является запуск сервера в центральном месте, к которому все ваши пользователи могут подключаться из своих приложений AIR. Это означает, что все / большая часть данных будет на вашем сервере, а не на компьютере пользователя, я не знаю, является ли это большой проблемой, но я предполагаю, что это так.

Также, в зависимости от ваших целевых систем, вы можете создать нужную вам программу без (полностью) в зависимости от AIR. Вы можете сгенерировать исполняемые файлы для Windows и OSX из Flash CS3 / 4, или вы можете использовать специальный (коммерческий) исполняемый файл-производитель, который предоставляет некоторые дополнительные функции. Обернуть этот exe-файл и вашу программу на python в мета-исполняемый файл, который запускает оба, можно с некоторой работой. Конечно, в этом случае у вас не будет никаких преимуществ, если вы установщик AIR и т. Д.

1 голос
/ 22 сентября 2009

Хорошо, так как казалось невозможным обойти это, я нашел альтернативу, которая, кажется, работает для того, что я хочу.

Вместо того, чтобы пытаться встроить Python в AIR, я пошел другим путем: я собираю свой код Python в автономный исполняемый файл с использованием PyInstaller и объединяю приложение AIR в качестве ресурса. Затем код Python запускает свой веб-сервер и запускает приложение AIR, которое может при необходимости подключаться к (локальным) удаленным службам.

1 голос
/ 21 сентября 2009

Возможно. Мы используем серверную часть J2EE, которая использует веб-сервисы SOAP для связи с нашим приложением AIR на внешнем интерфейсе. Вы должны быть в состоянии сделать то же самое, потому что мыло не заботится о том, какая технология находится по обе стороны от него.

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

Чтобы настроить сторону Python для SOAP-веб-сервисов, вот полезная ссылка на статью diveintopython . Затем, если ваш сервер работает с wsdl, FlexBuilder может сгенерировать для вас сторону AIR веб-сервисов .

...