ISO FileMaker Magazine: FileMaker Video Tutorials, Templates, Help & More

Video Browser

Scriptology Video Browser

Tools & Resources

Servoy: A FileMaker Pro Killer Or Another Killer App?

Posted by: Editor / Monday, May 26, 2003 – 4:10pm

Servoy: A FileMaker Pro killer or another killer app?
by Matt Petrowsky

The holy grail of database systems

After a recent meeting with a few of the core staff from Servoy BV based out of The Netherlands, http://www.servoy.com/ I was provided with a tour of their flagship product aptly named Servoy. My enlightenment to their new development tool led down the trail towards the holy grail of database development tools. Actually, I should call it a front-end client development tool rather than a database development tool. Since most database developers know that a database is simply a collection of small, medium or super large spreadsheets all joined together by a system of keys, the process of developing a database is more a process of thought than a process based in using a tool.

It's the tool that communicates the information behind the scenes to the operator in front of the computer screen. To say that this tool directly competes with FileMaker Pro isn't quite an accurate picture. Although I do predict that with increased adoption of Servoy there will be some heated debates about whether FileMaker will fit in certain situations. Don't get me wrong, I'm not abandoning FileMaker and both environments will have their place in many businesses. Read the full article for the whole story.

In many ways a developer will see a number of similarities between the two, but these similarities end at a few shared words found in the interface and are nothing that any one company owns a copyright too - unless the words Find and Body can be defended in court. The environments are quite different in terms of what you can and can't do and this article is an introduction to the application you may be hearing more about.

It's all about where the data comes from

The core difference between Servoy and FileMaker is this. Unlike FileMaker Pro, which accesses its own proprietary database, both when used on a local machine and when used in shared environments, Servoy is an application development tool that accesses data from a variety of disparate data sources. This is where that holy grail comes in. It has long been the goal of developers to tie data sources from more than one location, both physically and conceptually, into the same interface - and with Servoy this can be done - today!

An example of why you might want to pull information from more than one data source can be seen in the simple example of pulling order information from an accounting system in Oracle, where customer and financial information is stored, and cross referencing that information against a marketing database, created in MySQL, which has information about how customers were contacted over the past year. With these two sources tied together, information can be derived and assimilated in a single fluid environment. Knowing which marketing campaigns contributed to the most sales with a certain type of customer is valuable business knowledge. This type of data integration makes it easier to make determinations about correlations between two or more data sources. This is what Servoy does.

In the world of SQL databases, something less known by the exclusive FileMaker developer, it is well known that if you need raw power and you're expecting more than a couple million record rows, then a SQL database is your answer. The reason for this is quite simply, overhead. FileMaker Pro brings a lot of overhead to the database picture because all of the elements for the whole database solution are lumped into one file or multiple files. This includes schema, also known as the table and relational structure, the business logic, commonly known as scripts and ScriptMaker in FileMaker, and presentation, known as Layout mode to you and me.

However, with Servoy, the business logic and presentation, the later two elements of a database system, are provided within a Java environment and the schema and relational structure is left up to the standards that enterprises are used to. These include Oracle, MS SQL, DB2, Informix, Sybase, and MySQL and Postgres within your Open Source options. These high power database systems provide a whole host of features including their own set of functions and security models. Servoy leverages these features as well as providing a large set of its own.

    Note: In the March issue of PC Magazine you'll find a comparative review of SQL database systems and while MySQL came in at a lower rating overall, the level of performance that MySQL could handle was just about equal to Oracle 9i. The deciding factors for why MySQL was not rated higher was because of a lack of support infrastructure and admin tools. http://www.pcmag.com/article2/0,4149,7279,00.asp I mention this because running your own SQL database is no longer a high cost proposition. You can develop high-end SQL systems on your Macintosh or Windows computer for a low cost. Visit the MySQL web site for more information. http://www.mysql.com

So how are the two different?

Before we get into the guts of how Servoy differentiates itself, lets take a look at how software companies work in the world of software. There are few concepts that are revolutionary and most companies "borrow" ideas from other environments. I can already hear the whispers saying that Servoy "copied" FileMaker Pro.

While there will be a few similarities here and there, the two are quite different in how they function. Not to mention that the implementation of the Java client, using JavaScript and the Servoy event model are nothing like FileMaker at all. Although some staunch FileMaker Pro developers may claim that FileMaker invented the page flipper widget in the area that FileMaker calls the Status Area, there have been many other applications that preceded FileMaker to use the same metaphor. Instead of a Status Area, Servoy provides a Controller Area where you can build whatever type of common controls you wish. Backwards, forwards, first, last, record by number, etc. Want Servoy to look like FileMaker? Fine, build a controller that looks like the standard FileMaker Status Area. However, if you want to build a status area how you think it should "look and work" then you build whatever type of Controller you want. And how about functionality?

Because the actual data management for Servoy is handled by a SQL backend, be it Oracle, MS SQL or one of the others, Servoy is able to focus on the presentation and business logic so well that it wouldn't be fair to compare Servoy directly to FileMaker Pro - although, being the FileMaker developer that I am, I'll endeavor to draw a few comparisons in feature sets. To Servoy's credit they have accomplished most all of the tasks that FileMaker Pro developers have been asking for many years over. Servoy boasts a full object oriented element model with event-based controls and a true user interface experience including anchor points for form elements and a host of element properties. Now, if that last sentence has you lost already then the concept of methods and writing code in JavaScript may not appeal to the low end FileMaker developer, but will inspire those who have banged their head more than once when hitting a certain FileMaker limitation.

All this talk about Methods, Properties, Functions, Java classes, JavaScript, real Variables and Event models is where the distinction between the two apps makes itself apparent. FileMaker Pro, while the application will grow over time, makes little attempt to be a hard-core developer tool. And even though Servoy has a more robust feature set the ability to develop in both is quite easy. The object orientation used by JavaScript, the business logic used by Servoy, essentially what ScriptMaker is to FileMaker, may be a bit elusive when compared to the simplicity of the point and click offered by ScriptMaker. However, the power that comes with a more robust language, such as JavaScript, or even Java, should you choose to use it within Servoy, lends itself to a much more empowering environment. Oh, and by the way, there are thousands of examples of JavaScript code on the Internet - so a lot of your work may already be done.

Servoy does draw a few limitations in the areas of user interface because it's based in Java. It is well known that Java hasn't always provided the same perfect interface that Macintosh users have grown accustomed to, but this will be solved as new versions of Java are released. On the Windows side of things the interface may not be as crisp as the Macintosh OS but it's nothing less than what Windows users have always been accustomed to. In terms of user feedback FileMaker may seem a bit more "snappy" given that Servoy may be accessing data from a variety of sources where the link to any one of those sources may be a bit slow over the WAN (the Internet). Of course, FileMaker Pro will also suffer delays when used over the Internet but the interface just seems a bit faster in FileMaker. One key advantage that Servoy has is that it only loads data into its interface based on what is being viewed. So, unlike FileMaker it will only retrieve ten records if only ten records are being shown in the interface.

Servoy also seems limited in the sense that making changes to the data structure behind the scenes isn't as easy as in FileMaker. This feature, of changing field names on the fly, however, is found in very few environments. FileMaker Pro is one of the few applications that allow you to change the name of a field in one place and have that change be pervasive throughout the whole application. Because Servoy is integrating an environment on top of so many different potential SQL data sources, this type of feature won't be something expected by SQL database developers. With proper planning before creating the actual data structure the need for changing field names should be minimal.

Upon opening Servoy for the first time the initial impression is that it's nothing like FileMaker Pro. It's only after spending some time with the application that the comfort level sets in. The form designer, ala Layout mode, that Servoy uses is like any other form designer that you would find in Real Basic, Visual Basic, FileMaker or even an Act database for that matter. You add elements to a Form, Servoy lingo for a layout, and drag them to the positions desired. The biggest difference is the property inspector just to the right of the form being designed. This is where you can set all the different options for each element. For example, with a button selected, you can choose the onAction property and specify which Method (similar to a script) that you want to happen when the button is clicked. One nice feature is the toolTipText property if you need to give a user that small hint about what a button does.

The powers of an event model

I felt it was important to point out the extent of what type of events you have control over when working in Servoy. Not only can you make things happen when you enter and exit a field but you can make things happen pretty much any time any type of action is taken. When the mouse passes over an object such as a button or when a change is made to the contents of a field, even each form can trigger a method when a record is created, deleted, omitted or duplicated. You can even trigger an event when the user goes into a search mode. The event model is truly a thing of beauty.

What makes Servoy revolutionary?

One of the key features that Servoy offers is the fact that it masks all of the complex SQL language required to talk to SQL data sources. This level of abstraction allows the FileMaker developer wishing to grow into a more scalable solution, the functionality they've become accustomed too without having to spend a few days, or weeks, with a SQL manual. Performing a find is as easy as it is in FileMaker Pro. The query by form method of searching is used by a wide range of products and has always proven to be the most user friendly.

Servoy also provides a "skinable" interface so you can even customize the look and feel of your development environment. This approach can be used within your developed interface as well. Servoy is able to both reference graphic elements and store them within either an internal database called the Repository or an external database in what are known as Blob fields.

As with FileMaker Pro, a developer can work on the application while the solution is being served. In fact, Servoy has a very powerful method of controlling and releasing new versions of the application thereby making deployment painless for large installations. The ability to rollback (not the database kind) to a previous version of an interface is simply a process of clicking a few buttons.

The advantages of standards

Because Servoy is based in Java it flexes its muscles behind the power of a very robust programming language. The cool thing is that you don't have to learn Java to use Servoy. You do need to learn JavaScript if you want to get things done in the interface, but this is quite easy to pick up if you've spent any amount of time with any formal language or scripting language such as Active X, VB or AppleScript. Servoy also comes preinstalled with a number of methods you can use to learn from. Add on the SQL database of your choice, use the flexible JavaScripting environment for coding and you have a very powerful app that receives the benefits of the standards it supports. When MySQL is updated or Sun comes out with a faster version of Java guess what happens to Servoy, things get better as a natural and beneficial side effect!

Personally, when it comes to standards, I have always longed for the use of Regular Expressions, also known as regex, regexp or Grep, within FileMaker. With JavaScript you get this feature by default. Hint: Regular Expressions are a set of rules for specifying search criteria when searching within strings of text.

The differences in a nutshell

Here are the key differences between Servoy and FileMaker.

- Servoy pulls data in from different SQL databases. It includes and installs the Firebird SQL Open Source database. It creates SQL commands on the fly and behind the scenes. It is a "true front end".
- FileMaker uses its own internal database that can be shared in a multi-user environment or distributed for local use. FileMaker's SQL implementation "replicates" backend SQL data.

- Servoy requires Java to run both the developer and client applications.
- FileMaker Pro requires a client executable to run FileMaker database files.
(Unless FileMaker is "bound" to make a run-time solution - which limits multi-user use)

- Servoy uses Methods
- FileMaker uses Scripts

- Servoy uses JavaScript (open standard)
- FileMaker uses ScriptMaker scripts (proprietary)

- Servoy supports a plug-in architecture taking advantage of Java classes
- FileMaker uses plug-ins developed by C/C++ programmers

- Servoy creates Forms for viewing database content
- FileMaker creates Layouts for viewing database content

- Servoy views related data in a Portal
- FileMaker views related data in a Portal

- Servoy offers tabbed panels
- FileMaker doesn't have tabbed panels

- Servoy uses parts within Forms
- FileMaker uses parts within Layouts
(Title Header, Header, Leading Grand Summary, Leading Subsummary, Trailing Subsummary, Trailing Grand Summary, Footer, Title Footer)

- Servoy provides a property list with inspector for all elements
- FileMaker elements are fixed and not object oriented

- Servoy uses Javabeans to increase/extend user interface functionality
- FileMaker does not have an extensible user interface framework

- Servoy is "skinable" (allowing for user preferred appearances)
- FileMaker interfaces are fixed

Conclusion

So the question is, "Should I throw out FileMaker Pro and start using Servoy today?" I would have to say No.
But downloading the latest release will expose you to increased options.

Have "I" personally dumped FileMaker in favor of the marvel that is this new technology? Again, the answer is No.

Whether you use FileMaker or Servoy all depends on the specifics and future of what you are developing. What are the future plans and what other types of data sources are you using? Will there be more than one data source? Will the solution need to scale to a level of high-end enterprise demands? If you answered yes to those two questions then Servoy is a perfect fit.

Can I get by with FileMaker Pro for most workgroup needs? That all depends on what the workgroup is doing and how much use the database will experience. In my case I'll likely be using both applications. They both fit in somewhere to what I am doing. Servoy is a better tool to connect to my backend CMS (content management solution) that is based in MySQL. FileMaker is a better tool for creating distributable solutions and resources and tools (note, I didn't say networked solutions - both Servoy and FileMaker have advantages and disadvantages when working in a multi-user environment)

Overall, competition is good - in this case it's great! It both motivates and inspires innovation. If you're the only player in town you can become complacent. If someone comes along and starts taking some of your market share then you start to listen to the winds of change and innovation comes quicker. This is the benefit to us as developers.

Servoy, in my opinion, is definitely a strong consideration when it comes to accessing the raw power that comes from a SQL database. Of course, with power you'll always have more responsibility and the requirement for more knowledge. Servoy is not excluded from this. Learning JavaScript and managing a SQL database includes an increased level of knowledge when compared to FileMaker Pro. Each of the SQL database systems have their own compliment of tools to become familiar with.

Do I think Servoy will replace FileMaker Pro, in short, no. One advantage is that both applications have similar environments that facilitate the creative side of application development. If I was going to develop a solution that would likely only require a few hundred thousand records then I'll likely do it in FileMaker Pro. If I need a solution I can distribute to a hundred customers so they can each maintain their own data set then I'll use FileMaker Pro. If I'm going to integrate data from different sources or manage a solution that uses a SQL backend then I'll likely choose Servoy.

So in conclusion, Servoy will fit nicely in my bag of tools right alongside with FileMaker Pro. I've always tried choosing the right tool for the job and adding one more makes me that much more versatile as a developer.

About author

Matt Petrowsky is the Senior Editor for ISO FileMaker Magazine. Matt has been involved with FileMaker Pro since the early '90s. Having authored many articles, a popular book, spoken at conferences and seminars, as well as provided private training, Matt is continuously updating his knowledge and skill about the powerful FileMaker platform. You can contact Matt by sending email to editor@filemakermagazine.com.

Filed under:
-