TMCnet - World's Largest Communications and Technology Community
New Coverage :  Asterisk  |  Call Recording  |  SIP Trunking  |  Fax Software  |  Load Balancer  |  PBX  |  SIP Phones  |  Small Cells
 
| More

May 1998


Caveat App Gen: Let The Developer Beware

BY PETER VARHOL

Application generators are what make sophisticated uses of CTI accessible to even the smallest enterprise. Rather than a team of dedicated programmers working for months on a customized application, an application generator, or app gen, makes it possible for a small team, or even a single developer, to design, build, field, and maintain a useful application.

Telecom applications that work with modern hardware are becoming commonplace. Customized voice mail, multiple mailboxes, call monitoring, automated call routing, and group faxing are ubiquitous in the enterprise. With an increasing number of telephony applications controlled by PC, companies and even individual departments are developing their own CTI applications to serve specific or unique requirements.

App gens have been available for general-purpose development of these applications for several years, and many have been developed specifically for telecom applications. These telecom and other CTI app gens, which typically work on Windows-based PCs, have textual or graphical constructs that ease the building of CTI-specific applications.

But just because an app gen can rapidly produce a simple CTI application doesn’t mean that you’re home free. Sometimes, telecom app gens don’t have the power or the features you’ll need to produce complex, multiple- use applications.

Several of the available products produce high-quality, focused applications that are of value — but in a very narrow range of uses. An application produced by most app gens can’t easily be modified or maintained in response to changing telecom needs or changing equipment. Often, when changes are required, the application has to be rebuilt almost entirely from scratch.

ROBUST APP GEN REQUIREMENTS
All of these caveats mean it may be time to look for alternatives to existing app gens for serious CTI application development. With underlying hardware, telephony application programming interfaces (API), and application requirements changing rapidly, an app gen needs a combination of structure and flexibility. With both the advantages and limitations in mind, a next-generation app gen for CTI applications should support several characteristics.

Graphical And Object-Oriented

App gens should be both graphical and object-oriented. Today, it’s understandable why an app gen should be graphical. Graphical interfaces have advanced to the point where they are as fast and powerful as text interfaces, without the corresponding need to memorize commands and imagine program sequences from lists of instructions.Advances in software design mean that it’s possible for a graphical app gen to be as fully featured as a script-based one.

The need for a fully object-oriented system is less obvious, but just as real. Objects provide a model to real life that enables a seamless translation from program requirements to completed application. They also provide an organization to the application that is enforced through adherence to the object model. A programmatic object can be functionally associated with a corresponding graphical object on the display. Objects assist in adding features to graphical systems that make them comparable to script-based packages. And, objects lend themselves to a design methodology such as the Unified Modeling Language that is practically a necessity in the development of complex programs today.

Application Assumptions
The app gen you choose should make few or no assumptions on the type of application to be developed. Many programs make underlying assumptions, which are often subtle and invisible, about how the application is going to be used. While some of these assumptions are necessary, most prevent the application from being used in the way preferred by the users. The result is a long learning curve, mistakes, and often the inability to use the application effectively.

Traditional Coding
Graphical app gens should require little or no traditional coding. While there’s nothing inherently wrong with coding, when combined with a visual approach it represents a mixed development environment. Hand-coding should be limited to the end of the application development process, to customize your finished application for a particular use or port it to another platform. Coding also requires a more detailed developer skill set, which means that the application is either less likely to be developed, or it will cost more to develop.

Source Codes And Executable Apps
The ability to generate source code as well as an executable application is also important. There are many advantages to full source code generation — the most important is portability. Source code can be re-compiled to run on different platforms, even if some code modification is required to take advantage of a specific programming interface or platform features.The availability of source code also means that the application can be modified in response to changing needs, and maintained using the same techniques as any traditional application.

Consistent Models
It should support an understandable and consistent model of the application. Many programmers, and practically all users, don’t think about the underlying model of an application as they build or use it. A model, however, is what makes an application familiar to users, and speeds their understanding and use of the software. It also provides a conceptual framework for developers, which encourages both a consistent interface and application architecture.

ACHIEVING THE ROBUST APP GEN
One way of achieving all these goals is through using an app gen that produces a customized language for specific development, rather than a final application. In other words, imagine an app gen that generates a graphical application builder, simple enough for non-technical users to manipulate, but robust enough for serious users. These app gens are referred to as visual language builders. Different "languages" can be built for specific types of CTI applications, leaving it to nonprogrammers or even end users to build into unique configurations.

Macro Builders
Think of visual language builders as macro builders. It’s an environment where you can create structures that can then be assembled into a unique application. The macro isn’t the completed application, but rather a higher-level building block for other applications that are frequently very specific. A macro can consist of several lower-level, more detailed instructions all bundled into a single construct.

Macros are useful in two types of scenarios. First, they make it easier for anyone to build unique applications that have a specific purpose. They enable users to work at a higher conceptual level, where they can concentrate more on what the application is supposed to do, rather than how it does it. Second, macros make writing unique applications more accessible to nonprogrammers. It’s often not possible to wait for a programmer to write a new CTI application, or modify an existing one. Authorized end users may have to change a configuration, or add a feature to an existing application. In a traditional programming language, or even in a CTI app gen, this may not be feasible. There are some differences between a visual language builder and a macro builder, however. A macro is a collection of textual instructions — the macro collects them together into a single program call. A visual object is a collection of functions, or higher-level operations, along with the data that is associated with those operations. There is more substance to a visual object, giving it greater power and flexibility in dealing with a particular application.

So what a visual language builder delivers is the ability to create visual macro libraries. Extending the macro analogy, consider spreadsheet macros, popular in any enterprise that uses spreadsheets extensively. The development of specific spreadsheets is faster and easier for those who have written general-purpose macros (such as complex formulas or detailed formatting) in advance. If the enterprise maintains a macro library, it is possible for anyone to build complex spreadsheets, without worrying about whether they get the equations and operations correct.

LANGUAGE BUILDER OR APP GEN?
Just how broadly useful is a language builder, especially when compared to a traditional app gen? It really depends on just how easy it is to generate the language. Most of the time, users write customized applications using traditional languages, which are general-purpose but difficult to use. Or, developers use telecom-specific app gens, which are easy to use but produce specific and limited results.

Alternatively, a language builder can be used to build a language that the end user can easily customize to a specific use. This puts a more flexible tool into the hands of the implementers and users of the application.

There’s a further use for a graphical language builder — creating a graphical configuration environment for manipulating parameters and characteristics of existing applications. Many legacy applications require detailed setups and have difficult interfaces for setting up and maintaining operating data. A visual language builder can be used to provide telecom administrators with an easy-to-learn and largely error-free way of interfacing with older applications.

Why should you consider using a language builder when there are app gens available that are specific to telecom applications? Because the end result of an app gen can limit your code generation and configurability in the generated application. A more general, but flexible app gen such as a language generator requires a greater investment to create telecom languages, but pays off down the road when visual applications are easily created, modified, and maintained.

Peter Varhol is a technology writer and consultant in Nashua, New Hampshire. His e-mail address is peterv@mv.mv.com.  DataViews Corp. is committed to providing leading edge software development tools and components to improve development of customized dynamic and interactive graphical applications. DataViews offers C and C++ tools for rapid development of graphical business applications, network and process monitoring applications, and interactive configuration management applications across multiple platforms including MS Windows, Web browsers, Unix, and VMS. For more information, contact the company at 413-586- 4144 or visit their Web site at www.dvcorp.com.


Upcoming Events

October 2- 5, 2012
The Austin Convention Center
Austin, Texas
October 3- 5, 2012
The Austin Convention Center
Austin, Texas
October 3- 5, 2012
The Austin Convention Center
Austin, Texas

DevCon5 provides you with the information and tools you need to exploit the capabilities of revolutionary HTML5 technology
View all >>

Subscribe FREE to all of TMC's monthly magazines. Click here now.