return to first page linux journal archive
keywordscontents

Product Review

Magic Enterprises Edition 8.3 for Linux

So, your company has a web page and a corporate inventory/product/sales database, and you are the one who makes it go. You're the wizard, the head web-technology guru, the person everyone turns to when something has to work. And your boss just came into your office asking why on-line orders from your web site are being e-mailed to salespeople for manual processing rather than interfacing directly to your existing sales database. And, why you've got customers ordering products that your inventory system says you don't have; why customers can't search for products on your web page; why you've got customers calling customer support to find order status information that is easily available from, you guessed it, the database. And on top of all that, your manager wonders why a web designer is manually building web pages for each new product that goes on the web page, even though (you guessed it) the database has all the information the web page needs.

Or maybe you are the boss, and you are doing the asking. Either way, money is being spent to duplicate information from your database on your web page, and jobs you've got software to handle are being done manually. The result is subpar service and a subpar web page, at extra cost.

Worse, potential customers see your web page every day. If it isn't the slickest page around, and if your prices aren't the lowest, those customers will go elsewhere to spend their money. Slick and cheap wins in the e-commerce world. If you can't get your costs down and your service up, now, your customer base will go elsewhere. You don't have time to wait for a C programmer to develop a custom database module for your web page--you need a solution that works today.

Or maybe you are really starting from zero, and you don't have a database system at all. You don't know what your inventory is until you look, or what an order's status is until you find the paperwork on someone's desk.

That is where data access middleware and on-line application development systems come in. Simply put, data access middleware provides a bridge between your user-level applications and your database. On-line application development systems allow you to rapidly develop web or client/server front-ends for your existing database, or custom databases to match your front-end needs.

Magic Software Enterprises, or Magic, for short, has been developing multi-platform data access middleware and on-line application development tools for UNIX, AS/400, OpenVMS and Windows users for years. Now, Magic's software, Magic Enterprise 8.3 and Magic Toolkit 8.3, are available for Linux, recognizing Linux's growing impact in the e-business and e-commerce market. Magic Enterprise 8.3 provides the back end, and Magic Tool Kit 8.3 provides the rapid development environment for e-commerce and other database-intensive applications. Between the two, you'll have everything you need to make your boss happy, at least about your database/web site integration.

Installation

Installing Magic Enterprise v8.3 and Magic Toolkit on my Red Hat 6.1 test system started out easy. There isn't much to it. Magic supports Red Hat 6.0, 6.1, and SuSE 6.2 systems, distributing their software in RPM package format. To install, you run rpm with a few options, like the package file name, and most of the work is done for you.

Not all of it, though. After the installation, you must expand the user files into your user directory, and manually start the server d<\#230>mons that make everything go. The instructions detail the process well, but lack troubleshooting information. If anything goes wrong, you are stuck with either figuring it out yourself, contacting customer service or going to Magic's on-line forum and asking other users.

Though the software is supplied as RPMs, it installs into the /usr/local directory on your system as though it were manually installed. That is a little odd, but causes no problems when using the software.

The folks at Magic are seriously into the idea of making money from their software. There is nothing wrong with that, but preventing unauthorized use on the Internet is a trick. Magic's solution to unlicensed users is a license server installed along with their software to keep people honest, or at least harass them if they aren't. It works; the license server gave me nothing but trouble--a testament to its honesty-detection algorithm, but rather frustrating if you are me.

The trouble continued until I gave up and started to e-mail Magic's technical support people. Then, in a perfect example of computer perversity, I ran the troublesome software one final time to copy the exact error message into my e-mail, and it worked! I have no idea what made it work, and I have no idea if it will work for anyone else, but I was happy. (Being serious, if your system host name has any periods in it, e.g., is a fully qualified domain name, the license server will fail with a totally unhelpful error message.)

The Development Environment

Magic provides an X-based integrated development environment with a lot of handy features such as a concurrent version control system, a WYSIYWYG user interface builder and a project management system to make it easy to switch your development focus.

The interface is very database-like in feel; applications, database tables, user-interface elements, everything is viewed as a table. This makes sense, considering that Magic's primary focus is working with databases, but it will seem unfamiliar to people used to more conventional programming environments. Of course, Magic isn't really a programming environment. It is an application-generation environment, so a lot of things will seem odd if you are expecting to start coding.

Everything is a table, including the list of applications themselves. When you go to create a new application, you start in the Settings menu, and configure the application you want. Once it is configured, you go to the File menu and open your new application.

The development environment is totally separate from traditional UNIX/Linux development tools. The version control system is specific to Magic, the debugger is a Magic debugger, everything is Magic. This allows Magic developers to seamlessly cross platform boundaries. When you develop Magic applications, it doesn't matter if you are working on Linux, Windows or an AS/400: the application and the environment are the same.

Writing Applications

When it comes to writing applications, the language paradigm is everything. If your language paradigm doesn't match the problems you face, everything is harder. Magic deals in databases; Magic's tools act like database tools. Magic's paradigm is the database. For solving database problems, Magic works very well, but programmers should be prepared to shift world views while learning the system. It is not like programming in Perl.

Magic provides a web tutorial to guide you through developing your first on-line application. If you don't go through the tutorial, you will be lost from minute one. It isn't that Magic is complicated or hard to use. Magic is not intuitive. It isn't hard, either, but the user interface and application development paradigm are unique enough that you can't count on experience to let you fake knowledge of the system.

In Magic, you create a database, define the queries and then design the user interfaces. Magic's intelligence shows because it encourages you to design your database before you worry about the trivial stuff like how the web page is going to look. It is also handy because by the time you get to the user interface, almost everything is done; and since Magic automatically generates and publishes the HTML, by the time you finish the interface, everything is done. Following the tutorial takes about an hour, and when you are done, you will have the start of an e-commerce site that would be an improvement for many on-line retailers. With Magic, a demo and a working program may be just a link apart.

Putting Your Work to Work

Magic's strength is in getting real-world web and client/server applications up and running quickly, and running fast. Calling Magic ``Data Access Middleware'', or an ``Application Development System'', or any other simple one-line name risks losing sight of what Magic is for: to make database interfacing easy and scalable. Even that risks oversimplifying things. Perhaps it is: to put the thousand-order-per-minute e-commerce site within reach of the three college students and a venture capitalist that are going to revolutionize on-line sales. Or, to make the ten-thousand-billion-product on-line catalog a one-month project, rather than a life's work. Maybe even to make securely incorporating on-line ordering to your existing database system a seamless extension of what you are already doing, rather than a redesign of your entire business model.

The question you should ask yourself is whether the cost of a super-slick, do-everything database/application generator system will pay for itself the way you plan to use it.

The Magic Enterprise 8.3 server allows you to expand your existing capabilities or add new capabilities, keeping the process as seamless as possible. From interfacing to multiple database systems to load balancing across servers to dynamically partitioning client/server applications, Magic makes the real-world job of keeping a big system running a manageable task. Magic knows this, too, and they know the value of rapid development and scalable deployment. The Magic development kit for Linux is available for an introductory price of $299 US, and single-user licenses for Magic Enterprise 8.3 are free, but licenses for additional users will cost you. When evaluating application development environments and run-time systems, you've got to look at what you will save and what new abilities you will have. If your project would take six months using conventional and free tools like PHP3, or a month using Magic, the extra licensing expense may be more than offset by the savings in development costs.

And if getting big database access jobs done fast is important to your bottom line, Magic may be just what you need.

The Good, The Bad

Born at the beginning of the microcomputer age, Jon Valesh (jon@valesh.com) has pushed and been pushed by computers his entire life. Having run the gamut from games programmer to ISP system/network administrator, he now occupies himself by providing technical assistance to ISPs and small businesses whenever his day job doesn't get in the way.