FileMaker: СУБД с человеческим лицом

Среда разработки FileMaker является сегодня одним из лидеров среди СУБД для небольших и средних рабочих групп, позволяя быстро разрабатывать готовые решения, полностью приспособленные к потребностям предприятия заказчика. Мощные возможности FileMaker, режим коллективной работы, поддержка большого числа целевых платформ, идеальный для быстрой разработки графический интерфейс – все это делает FileMaker незаменимым при решении задач, связанных со сбором данных и управлением людьми, интернет-проектами и менеджментом разнородной информации. Готовые к использованию встроенные шаблоны FileMaker помогут быстро создать собственное решение и ввести его в эксплуатацию. Благодаря своей способности обмениваться данными практически с любым приложением, FileMaker стирает границы в гетерогенных сетях, предлагая для любых сложных задач свои простые решения.

В последнее время на рынке СУБД традиционно доминируют гиганты рынка, это, в первую очередь, Oracle Database, Microsoft SQL Server и т.д. Если рассмотреть рынок подобных открытых решений с его многообразием, то здесь, опять же, представлены СУБД прежде всего для профессиональных разработчиков – MySQL, PostgreSQL и т.д.

Очевидно, что при использовании таких серьезных и мощных инструментов сама разработка и сопровождение баз данных становится уделом лишь опытных профессиональных разработчиков. С одной стороны, эта ниша чрезвычайно насыщена спектром различных очень гибких и мощных решений, но с другой стороны, нужно признать, и стоимость разработки под подобные платформы будет стоить весьма ощутимых денег, требуя к тому же времени и определенного опыта, даже на этапе правильной формулировки технического задания самим заказчиком, не говоря о времени создания и развертывания подобных решений. Если же в процессе эксплуатации уже готового решения окажется, как это часто случается в жизни, что продукт требует некоей доработки и очередной адаптации – своими силами, опять же, здесь вряд ли получится обойтись, а значит, снова придется привлекать специалистов со стороны.

Готовые же решения не всегда так гибки, как это требуется, жизнь неоднократно доказывала, что всегда лучше и надежнее создать персонализированное решение, что называется, “полностью под себя”, но и здесь мы сталкиваемся с проблемой сложности и длительности такой разработки.

Если только на секунду задуматься и помечтать: ах, если бы подобные БД можно было создавать полностью собственными силами, если бы для этого не нужно было быть специалистом сразу в нескольких смежных технических областях, если бы программы было так же просто не только создавать с нуля, но и исправлять, расширять и дорабатывать… И если для крупного, и отчасти среднего бизнеса дорогостоящие специализированные решения на базе серьезных и дорогих СУБД еще как-то оправданы и экономически целесообразны, то для малого бизнеса, представителей коих большинство, или для домашних нужд и вовсе - использование Oracle или даже бесплатного MySQL, пожалуй, избыточно и даже более того – абсурдно.

Столь длинное введение в тему задумано лишь для одной цели: рынок СУБД для малых предприятий и домашнего использования чрезвычайно востребован и он практически никак не представлен на отечественном пространстве. Если вам нужно быстро разработать специализированную систему складского учета под конкретную специфику или просто личную систему планирования дел или финансов, построенную на какой-то очередной приглянувшейся вам новомодной концепции тайм-менеджмента, - где искать помощи в таком случае? Какие инструменты для этого оптимально использовать – уж не популярную ли MySQL в связке с каким-то визуальным фронтендом, написанным на не менее популярной Visual Studio? Какие быстрые и простые варианты разработки для такой ситуации могли бы предложить вы, подходящие любому нетехническому специалисту так же, как и бухгалтеру или студенту- первокурснику?

И сегодня у нас есть хорошие новости: наш обзор будет посвящен подробному рассмотрению СУБД именно подобного класса, чрезвычайно известную и популярную на Западе, но пока еще не очень распространенную в России – FileMaker. Поскольку стало уже типичным сравнивать FileMaker с его нишевыми аналогами – Microsoft Access и FoxPro - мы для приличия также повторим эту заезженную аналогию, но для полноты картины и справедливости ради сразу же приведем и их главные отличия, из-за которых это сравнение, по нашему мнению, весьма натянуто.

Еще один MS Access?

Очень выраженная специфика СУБД FileMaker заключается в том, что она ориентирована не столько на программиста, сколько на конечного пользователя, на непрофессионала в области баз данных. Даже в описаниях своего продукта разработчики упорно избегают использовать громоздкий термин DBMS (database management system), хотя он и приводится в спецификации продукта, всюду заменяя его на database application.

Коренным же отличием является способ визуального проектирования, который выбран в этих двух похожих, но не аналогичных системах. В FileMaker этот подход иной и, по моему мнению, гораздо более удачный и масштабный. Правильно выбранные стратегии проектирования (например, наличие очень толково подобранного набора уже готовых шаблонов для всех типичных задач, которые всегда можно взять за основу) дополнительно упрощают быстрый старт вашего нового проекта на базе этой системы разработки. Например, здесь вы можете программировать на встроенном визуальном языке FileMaker Script, даже не имея представлений об основах программирования, или начать сразу проектировать свою БД, просто перетащив мышкой Excel-файл на пустую форму проекта.

Если в MS Access или FoxPro работа над проектом - это взгляд изнутри, и вам нужно иметь четкое представление о том, как функционирует база данных, то FileMaker – это, скорее, взгляд снаружи. FileMaker предлагает вам сосредоточиться на формировании внешнего представления базы данных, то есть на интерфейсе. Остальное FileMaker практически полностью берет на себя. Если вы не хотите даже разрабатывать интерфейс, вам сразу предоставляется стандартный, и вы получаете доступ к мощным инструментам отображения и поиска данных для начала немедленной работы с БД. С другой стороны, если вы желаете, то можно углубляться в суть процессов и наполнять ваш проект дополнительной функциональностью, самостоятельно определять приемлемые для вас уровни сложности взаимодействия с СУБД.

К многочисленным удачным деталям реализации FileMaker мы еще вернемся позже, здесь же хотелось бы поставить точку на этом стереотипном сравнении: по нашему мнению, FileMaker - система гораздо более доступная и дружественная обычному пользователю, нежели MS Access, при этом все ее возможности ни в коей мере не уступают MS Access, а во многом, и это мы покажем далее, существенно превосходят ее.

Что же касается FoxPro – это все-таки система для программистов, как ни крути. Конечно, при знакомстве с FileMaker вам не помешает наличие опыта программирования на “серьезных” языках – это позволит “врубиться” в систему и ее возможности буквально на ходу, максимум за сутки, сразу начав работать. Но, ставя задачу наоборот - быстро и сходу разобраться в FoxPro гуманитарию будет очень сложно, согласитесь, да и не нужно это делать вовсе! Как сегодня убедительно мы докажем – есть куда более простая, и прошу заметить при этом, гораздо более мощная система разработки в сравнении с MS Access и FoxPro – это СУБД FileMaker.

Определение и целевая ниша

FileMaker Pro – это кроссплатформенный десктопный конструктор табличных и иных информационных приложений, построенных на базе собственной реляционной базы данных. Вместе с собственно движком этой БД, как уже сказано выше, единым пакетом поставляется мощнейший визуальный конструктор, с развитым и интуитивно-понятным GUI-интерфейсом, позволяющий в визуальном режиме создавать любые приложения: с собственной логикой, внешним видом, формами и таблицами. Кроме хранения, оперирования и обработки пользовательских данных, эта среда предоставляет множество дополнительных функций и возможностей (о которых пойдет речь более подробно далее), которые во многом зависят от редакции этого продукта (смотрите вторую часть этой статьи). Короче говоря, если и существуют среды разработки RAD (Rapid application development), то это – своего рода “SuperRAD”, которая позволяет создавать полностью аналогичные приложения, но раз в 10 быстрее и проще!

Итак, дав очень сухое и отчасти казенное определение, подытожим для обывателя сулимой выгодой: освоив FileMaker, вы сможете легко и быстро создавать свои собственные проекты, основанные на базах данных, применение которых практически не ограничено. Вы сможете очень быстро, буквально “на коленке”, создать, например, большой каталог своей домашней библиотеки или фильмов, каталогизировать свою огромную музыкальную коллекцию, разработать собственную систему учета товаров на предприятии или учета расходных материалов и офисной техники, систему прохождения заказов в вашей фирме или системы персонализированной печати. Потратив буквально минуту, выставить свою БД в Интернет в виде автоматически сгенерированного php-сайта. И многое, многое другое...

Может кто-то возразит такому моему смелому сравнению FileMaker с настоящими RAD-системами, назвав его некорректным и апеллируя к качеству финального кода, который будет у аналогичного приложения, традиционно разработанного, например, в Visual Studio, как к несравненно более качественному и осмысленному. Но я, в ответ, считаю, что сегодня это не самый убедительный аргумент против “дескотопных фреймворков” (а FileMaker в некотором роде им и является), так как сегодня человеко-часы стоят намного дороже, чем железо, которое нужно единожды проапгрейдить для подобных решений, чтобы далее на нем “все летало”. Этим финальным замечанием я попытался заочно ответить на некоторые очевидные идеологические выпады в сторону FileMaker, которые имеют место быть. А теперь, покончив с ненужной риторикой, давайте перейдем непосредственно к рассмотрению его возможностей.

Основные возможности FileMaker

. Это мультиплатформенный продукт – поддерживаются следующие платформы: Windows (XP, Vista, 7); MacOS X, iOS.
. Плагинная архитектура – для подключения есть множество сторонних плагинов, которые еще больше расширяют функциональность основной системы. . Многоязычная поддержка – система переведена на более чем 12 языков, в том числе и на русский.
. Возможность автоматически генерировать продвинутые и привлекательные графики, отчеты и гистограммы.
. Поддержка своего собственного языка разметки FDML для генерирования веб-страничек с возможностью динамических вставок из базы данных FileMaker.
. И уж если мы заговорили о сайтах, в серверной версии FileMaker есть возможность быстро сгенерировать РНР-сайт автоматически - из структуры и наполнения уже имеющейся базы данных.
. Возможность шифровки всех используемых таблиц и структур данных.
. Огромное количество форматов для импорта данных в БД: Excel, Lotus 1-2-3, txt, cvs, dbf и др.; а также обилие форматов для обратной операции – экспорта.
. Близкий к визуальному редактор скриптов, который позволяет очень просто разобраться в программировании (если оно вам вообще здесь понадобится).

Существует встроенный отладчик скриптов, который позволяет решать все сложные ситуации. Вообще хочу сразу высказать свое субъективное мнение, что скриптовый язык у FileMaker свой собственный, и, вероятно, будет неудобен именно опытным программистам, и скорее более подходит как раз начинающим и продвинутым пользователям (что можно рассматривать одновременно как и плюс, так и минус этой системы). . FileMaker поддерживает многопользовательскую работу с базой данных, в разумных пределах, конечно (не нужно рассчитывать на одновременный доступ к БД толпы из 400 человек). Но, в защиту внутреннего хранилища данных хочется сказать, что в последних версиях оно было значительно расширено и дополнено, и теперь может вполне свободно оперировать с достаточно большими объемами данных (опять же, в разумных пределах - в рамках малого и среднего бизнеса, оно никогда не станет прямым конкурентом в этом плане для Oracle или для PostgreSQL).

Внешнее взаимодействие

Часто при использовании подобных продуктов, первый вопрос, который встает ребром: “А как я смогу связать их с какими-то своими внешними решениями?”. Что ж, этот вопрос закономерный. И если внутренние возможности по быстрому проектированию и чрезвычайно удобному созданию приложений на FileMaker я не ставлю даже под сомнение (потому что это так и есть – просто попробуйте), то вопрос исследования FileMaker на предмет его возможностей по взаимодействию с другими внешними продуктами требует дополнительного освещения, в силу особой важности этого параметра при создании современных и гибких гетерогенных систем.

Во-первых, следует осветить в этой сфере, что FileMaker очень широко поддерживает и активно использует универсальный стандарт XML для обмена самой различной информацией с внешними приложениями. В частности, поддерживается:

. XML Data Source Import – импорт внешних данных в СУБД в формате XML;
. Export Records и Export Records script step – разновидности экспорта ваших данных в формате XML;
. Custom Web Publishing with XML – механизм отправки XML-данных в ответ на интернет-запрос оных из внешнего сервиса.

Кроме поддержки XML для обмена данными с внешними источниками, также доступна полная поддержка ODBC/JDBC, которая еще больше расширяет возможности FileMaker.

Ну и, наконец, самое интересное с точки зрения прикладного программиста – язык SQL.

Как я уже писал выше, FileMaker использует свои собственные квазивизуальные средства для создания выборок, но кроме этого, присутствует почти в полной мере поддержка возможностей и SQL, поэтому давайте максимально кратко перечислим основные моменты в этом вопросе:

. External SQL Data Source – штатный инструмент для создания “живого” двустороннего коннекта между FileMaker и ведущими мировыми СУБД (Oracle, MS SQL Server, MySQL);

. ODBC/JDBC – альтернативный способ подключения, если вам не требуется постоянного “живого” подключения к внешним источникам данных. У этого подхода есть как плюс, так и минус: плюс – это гораздо большая универсальность и широта доступных источников данных, фактически вам нужно просто найти и установить стандартный ODBC-драйвер для вашей БД в систему с FileMaker. Минус – немного меньшая скорость взаимодействия; . Execute SQL – доступность динамических SQL-запросов на уровне скриптового языка FileMaker через данную команду, что создает своего рода дополнительное измерение для успешного, и я бы даже сказал, изощренного применения SQL в рамках экосистемы FileMaker;

. MySQL partnership – особенно хочется выделить поддержку в качестве внешнего источника данных популярный бесплатный сервер баз данных MySQL. Нужно отметить, что уровень интеграции с этим источником в режиме External SQL Data Source чрезвычайно качественен. Сам производитель FileMaker описывает множество удачных примеров крупных внедрений, где использование такого симбиоза этих двух СУБД был поставлен во главу угла всей информационной инфраструктуры. Официальное партнерство компаний FileMaker, Inc и MySQL AB еще более упрочняет эти связи, не только на техническом, но уже и на юридическом уровне поддержки.

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

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

Продолжение следует.

Игорь Савчук


Компьютерная газета. Статья была опубликована в номере 34 за 2011 год в рубрике soft

©1997-2024 Компьютерная газета