Как подружить iOS приложение и FileMaker Pro?

Здравствуйте!


Есть моё приложение под iOS (Enterprise Developer Program) которое собирает некую статитстику, которую время от времени нужно скидывать на сервер.


Есть сервер на OS X Lion Server, на котором стоит СУБД Filemaker Pro Advanced 12 (последний). Есть база данных статистики.


До последнего времени было так:

1) iOS формирует статистику в виде XML (property list), и отправляет его по FTP в расшаренную папку на десктоп (не сервер).

2) Самописный AppleScript парсит отчеты из этой папки и на их основе заполняет базу данных, добавляя новые записи через GUI.


Понимая, что текущее решение является грязным извратом небезопасным, медленным, негибким и лишено аутентификации которую очень бы хотелось сделать (хорошо бы знать, кто скинул отчет в базу), про помощи у хабралюдей, посоветуйте, как лучше сделать?


Конкретные вопросы:

1) Как передавать информацию из iOS? WebDav, HTTP, AFP, SFTP или просто FTP, может вообще что-то другое?

2) Какие есть средства у FileMaker'a для общения с внешним миром?

3) Насколько я понял, FileMaker — довольно закрытая система, но к нему можно подключить внешнюю базу данных. Есть ли смысл во второй СУБД? Если да, то какой?
  • Вопрос задан
  • 3649 просмотров
Решения вопроса 1
@MikhailEdoshin
У FileMaker есть мобильная версия FileMaker Go. Работает на iPhone и iPad. Формат файлов тот же, поддерживается большая часть функций и команд. Может открывать с устройства и с FM сервера. Есть решения для синхронизации (за отдельные деньги). Первый вариант — переписать ваше приложение на FileMaker, поставить на телефоны Go, передать файл FileMaker, настроить синхронизацию.

Go еще умеет выполнять скрипт с заданными параметрами и переменными по URL (протокол fmp://) — подобные URL, насколько я понимаю, на iOS достаточно широко используются. Скрипт, соответсвенно, может добавлять новую запись. Может быть, можно поставить Go, написать для него простое FM-приложение чисто для статистики, ваше приложение будет слать ему данные через эти URL, Go будет их принимать. Не знаю, правда, как это работает — скорее всего, не в фоновом режиме.

Еще вариант — если у вас Mac OS X Server, может быть, там и FileMaker тоже Server? У них для десктопа четыре продукта — FileMaker Pro, FileMaker Pro Advanced, FileMaker Server, FileMaker Server Advanced. Если это сервер (любой из двух), то у него есть HTTP(S) интерфейс, принимающий GET и POST, с помощью которых можно получать записи, добавлять, удалять, править, запускать скрипты или все это в комбинации. Не помню, можно ли настроить basic-аутентификацию, но можно настроить собственную аутентификацию FM (то есть сделать специальную учетную запись для вашего приложения и ограничить ее работу строго заданной песочницей).

Если не сервер, то бывают плагины для FM, которые запускают собственный веб-сервер и могут принимать данные, запускать скрипты и т.п. Хотя, по-моему, в лицензии FM есть оговорка, что нельзя таким образом разрешать доступ нескольких пользователей к одной базе (для этого есть сервер) — если у вас этого нет, то тоже вариант.

Еще можно, как вы и пишете, подключить MS SQL, Oracle, или MySQL непосредственно к FM — они будут доступны как и внутренние таблицы FM. Соответственно, если будете добавлять данные в MySQL, FM будет их тут же получать. (Не совсем тут же, там у него свой кэш, но практически тут же.)

Кроме того, FM может работать через ODBC с любым ODBC-источником импортируя оттуда данные и, если нужно, выполняя произвольные SQL команды (INSERT, DELETE и т.п.). Это требует больше движений (нужен будет скрипт), но достаточно просто.

Собственный ODBC-драйвер у FM (то есть дающий доступ к FM через ODBC) тоже есть, но он не особенно выдающийся.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
deleted-mifki
@deleted-mifki
Не зная, как у вас всё это используется, сложно точно сказать.
Я бы имел отдельную базу и простенький скрипт на пхп, который будет статистику принимать. Но вам, наверное, именно в файлмейкере она нужна, а с ним я только слегка знаком, про связь его с внешним миром не в курсе.
Через гуй записи, конечно, добавлять не дело, надо в первую очередь смотреть, с чем можно файлмейкер связать (если именно он вам нужен), а уж аутентификацию можно к чему угодно приделать.
Ответ написан
Комментировать
@ArcadyP
Наткнулся на вопрос:
FileMaker Server можно заставить запустить скрипт используя http-запрос, при этом передов скрипту нужные параметры.
Вот здесь статья с общим описанием метода: fmteam.ru/vypolnenie-skriptov-na-servere-v-filemak...

Еще FileMaker Server может исполнять php код, там же на сайте посмотрите статьи с тегом php
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы