by Kane Scarlett

ILOG JViews: Backed by programming experience

news
Apr 1, 199819 mins

This ILOG profile demonstrates why the new JViews Java class library should gain easy acceptance as a component-based 2D GUI repository

ILOG SA is a Gentilly, France-based company with its U.S. headquarters in the heart of Silicon Valley — Mountain View. It has offices and subsidiaries all over the world (30 countries at last count).

ILOG SA is also a company with years of experience creating C++ tool libraries. Tools to help developers build applications designed to ease the workload when it comes to resource allocation, planning, and scheduling, regardless of whether the resource in question is people, manufacturing equipment, satellite time, or portfolio management. Tools to help developers fashion software (rules engines, object servers, SQL and database links, for example) designed to facilitate data distribution and data filtering (primarily in network-management and process-management apps). And tools to help developers craft 2D and 3D interfaces that deliver consistent access across various corporate data systems.

And now the company has moved into the Java arena with its 2D GUI builder product JViews, a Java class library of components that work well with existing Java GUI products, as well as with existing ILOG C++ tools, creating an easy migration path for existing ILOG customers.

But before we move on to the Java centerpiece of the ILOG tool family, let’s look at the ideas behind ILOG and JViews and some of the company’s other products.

Built on programming experience

First,

JavaWorld

spoke with Ed Kiraly, ILOG product manager, about the company’s view of Java computing today, the future of Java computing, and ILOG’s place in that future.

JavaWorld: What do you see as the state of Java computing today?

Ed Kiraly: We believe that Java is almost “ready for prime time.” In the past year, development tools have matured enough so that companies with mission-critical applications can now create Web-enabled versions of their user interfaces. In fact, it has become absolutely necessary that they do so, or they will be perceived as being behind their competitors. Java solves a huge problem for them: The porting of these interfaces to umpteen different platforms.

On the other hand, we haven’t really seen too many of these same customers using Java on the server side. That will be the next hurdle for companies deploying Java apps.

JW: What is ILOG’s strategy to make the most of the existing Java computing market?

EK: Our focus has always been on providing high-value software libraries to developers so that they can deploy their apps faster, with more features, and with low maintenance costs. We’ve written these kinds of libraries in C++ and are now migrating them to Java.

You see, for us, the essence of these libraries lies in the algorithms they implement, and not necessarily the language they are written in.

Our graphics library, ILOG JViews, for example, takes an optimized structured graphics algorithm, called a “Dynamic Quadtree,” and implements it in Java. Now you have same fast, tailorable graphics in a Java library that you also have in its C++ “cousin” library.

The same goes for our Rules for Java product. It takes a “Rete IV” algorithm and creates a Java version of it. With this, you have a proven inference engine algorithm capable of working in a whole new dimension.

In both cases, the power is in the algorithms and in how we implemented them — the language comes second.

But, of course, there’s a bit more to this story. These products can take advantage of some Java features, notably introspection, to deliver additional capabilities that would be difficult to do with other languages. We can easily adapt these algorithms where it makes sense to our users.

JW: Where do you see the Java computing market going in five, ten years?

EK: Isn’t this like asking where the Dow will close in five years? Well, I can guess at a few things like any other fortune teller, I suppose.

I see that developers really like Java. More so than C or C++, or any other language that I’ve ever worked with. This really helps push the whole technology at the grass roots level. (Did any programmer ever tell you they were excited about their upcoming Ada class? Nah…) This grass-roots push will continue to grow, and with universities producing new legions of Java-savvy developers, the talent will be there.

Now add to this mix the equally fast growth in the technology: The firming of the language definition, the speed of the virtual machines, and the like. By 2000, we’ll have all of the tools we have learned to love (or hate) for C or C++, but now they [will] support our Java development.

For me, there will come two interesting pivot points:

  • Will Java really provide a common infrastructure for large multi-tier apps?
  • Will Java really be on every platform?

The first issue refers to all of the work that companies like IBM are doing with their San Francisco project. Will the hope of a set of pre-defined business objects actually work as advertised and be accepted?

The second issue refers to whether or not we will really see Java on every device, on every machine, and on every network. It’s exciting to think that systems can be built in one language from client to server to network element devices. But will this happen?

But even if neither of these two things happens and Java just remains a way to build cross-platform apps, it will have achieved a terrific success.

JW: Where would ILOG like the Java computing market to go in five, 1ten years?

EK: In five years, it would be quite cool for us to see Java apps permeate the Telecom and Finance high-end spaces. This is where ILOG has the most experience and where we can help our customers the most.

But ILOG is also very strong in a different area: The solving of resource-allocation problems, like machine or personnel scheduling. The nature of these problems is that they require intense computational power — currently C++ has definite speed advantages over Java and it doesn’t make sense for us to move to a “slower platform.” But as we all know, Sun is working very hard on making Java “faster” (albeit not as successfully as Microsoft, it seems!).

JW: Since ILOG has such a presence in Europe, Asia, and North America, could you elaborate on the adoption rate (and the resulting products) differences among the regions?

EK: Most of the interest that we see in Java is here in the U.S., but this has been changing rapidly over the past few months.

In Europe, ILOG’s name is synonymous with object-oriented technology, so we are one of the players introducing Java to that market. We can advise our customers who are still wary about taking the jump to another language, and in many cases, the performance, maturity, and overall development environment that C++ offers still makes it the obvious choice. But we do see many of them starting to roll out Web interfaces to their existing products and its encouraging.

In Asia, where ILOG has another two subsidiaries, the interest is slightly lower. But our first Defense C3I application sales did originate in Asia, so you never can tell who’s experimenting with Java!

JW: What products and companies do you consider to be close competitors to ILOG Java products?

EK: We currently have two Java products: ILOG JViews, for adding advanced graphics to user interfaces, and ILOG Rules for Java, a fast inference engine for rules-based processing. As I mentioned above, they implement some very fast algorithms that we’ve had now for many years in our C++ product line.

The JViews product has some competition on the low end, most notably from the former Smalltalk company ParcPlace, now called ObjectShare. We win out when performance and scalability are an issue.

But it should be noted that JViews does not compete against any of the GUI builders or JavaBean products — we complement these technologies. ILOG JViews can be used to encapsulate a custom JavaBean on any IDE and used like any other chart, button, or table object. “Mix and match” to create your Java GUI…but use JViews for the high-performance graphics!

The Rules for Java product traditionally competes against Neuron Data’s Elements/J product. I don’t know of any other players here.

JW: Any comments on the Java wars between Sun, IBM, Oracle, et al., and Microsoft? Do you see any benefits coming from this?

EK: Well, it makes for great press, but I guess it’s getting a bit tiresome. For the developer, it’s a real pain, because they are never sure if there is going to be one standard or many. The other fear is that Microsoft will no longer play in the Java space and, effectively, kill Java.

The right tools for the job

ILOG manufactures three types of products: optimization tools, infrastructure tools, and visualization tools.

Optimization tools

ILOG offers the ILOG Optimization Suite, a range of C++ class libraries designed to help developers build optimization applications, a fancy name for characterizing applications designed to facilitate the following tasks:

  • Resource allocation, planning, and scheduling
  • Constraint and linear programming
  • Manufacturing/production planning and scheduling
  • Personnel scheduling
  • Telecommunications network optimization
  • Satellite mission scheduling
  • Portfolio optimization

The suite contains the following components:

  • ILOG Solver — A constraint programming engine that can quickly find solutions for complex, multiple-variable problems by object-modeling the potentially huge relationship variables of the situation as defined by developer-issued constraints.

  • ILOG Planner — An add-on module for Solver that adds a Simplex-based optimizers designed to ease production planning, staff scheduling, telecom network design, and procurement planning.

  • ILOG Scheduler — Another Solver add-on with modeling objects that allows developers to model resources, activities, and time-based constraints using algorithms fashioned specifically for many-variable scheduling.

  • ILOG Dispatcher — A third Solver add-on module designed for truck/technician routing.

  • ILOG Numerica — An optimization modeling language and a standalone component designed to solve complex nonlinear equations. With Numerica (through its high-level language), users can solve constrained and unconstrained optimization problems, some of which defy traditional methods, by using natural language problem descriptions. In short, Numerica:

    • Reports information on each variable and constraint
    • Tracks each search path (with constraint status) in real time
    • Allows users to fine-tune the search by adjusting sensitivity and performance parameters on the fly
    • Accepts data at runtime and displays the results in the GUI
    • Accepts problem descriptions at runtime from ASCII files
  • ILOG CPLEX — A library of linear programming optimizers that handle primal Simplex, dual Simplex, network Simplex, barrier, and mixed-integer solvers.

Infrastructure tools

The ILOG Infrastructure Suite consists of four tools, C++ and Java components designed for structured data distribution and filtering and used primarily in applications for network management, process monitoring, and fraud detection. The products include:

  • ILOG Rules — A business rules engine for C++ and Java that can quickly craft business rules into easy-maintenance intelligent agents, agents that allow for easier data processing and filtering from within a browser or the server.

  • ILOG Server — A large object engine that combines business objects with realtime business event notification, including a C++ library that makes it easier to develop multi-tier, client/server business-app servers.

  • ILOG Broker — A tool to extend C++ to make it transparent to support distributed object computing.

  • ILOG DB Link — A module that automatically transfers standard SQL requests from C++ apps to relational database management systems. It supports transaction management and access to the data dictionary.

Visualization tools

Finally, ILOG provides a suite of 2D and 3D visualization tool components designed to deliver easy access to corporate data, as well as a consistent display across various applications. ILOG’s visualization tools include:

  • ILOG Views — The company’s set of C++ classes, designed to help developers craft application user interfaces that graphically display what’s going on underneath. Views comes with a Windows (3.x, 95, and NT) and Motif look and feel. It also comes packed with business-familiar graphic formats, such as dynamic realtime charts, spreadsheets, Gantt charts, map images, and network tree editors, plus a hypertext navigator. Using time-based changing variables, Views generates dynamic animations without the need for the developer to generate any code. And with the Views Studio editor, Views generates the C++ code for your interfaces.

    In Views Studio, the developer draws panels, then drops in controls, graphic objects, and manager objects. When the developer decides the interface is ready to go, Views Studio generates the application resource and C++ code necessary, and Studio supports multilingual messages.

  • ILOG InForm — A Views add-on that offers SQL data source objects, which are used to automatically bind interface objects to remote data, delivering visual access to relational databases such as Oracle, Informix, Sybase, Ingres (through native drivers), and others (through ODBC). The InForm data source objects also let developers attach the interface to all sorts of non-traditional data, such as proprietary databases, flat files, and realtime data analogs. InForm spreadsheets, charts, and some controls are automatically updated by data sources, and InForm generates the necessary SQL code to access databases.

    The InForm Studio editor is an extension of the Views Studio editor.

  • ILOG Vision — Vision takes the Views product and ports it to the world of 3D. With Vision, Unix or Windows developers get the additional visual cues that 3D provides to help them more easily visualize complex network management, remote control, or terrain data. Vision comes with simple predefined shapes and the ability to deform quad- and triangular-divided mesh objects, and to revolve (sweep) and extrude 2D objects. Developers can define several cameras per view (each with its own user-defined lighting system), and the projections can be either orthographic or perspective. Because memory is shared between geometric objects and graphic objects, the memory footprint is small; the memory for resources (such as color, fonts, textures, etc.) is also shared. Vision even comes with a sample VRML (Virtual Reality Markup Language) reader.

    The Vision Studio is a multi-buffer 3D editor used to change all graphical aspect of an object.

JViews, the centerpiece

From a JavaWorld perspective, ILOG JViews is the Java centerpiece of the ILOG product family. It is a Java class library of graphical objects, object behaviors, and data structures designed for developing high-performance and intuitive 2D graphic displays, interfaces such as network topologies, maps, and customized editors. It runs on any JDK 1.1-supported platform.

And for clarification purposes, JViews really cannot be described as a competitor to GUI-building products — the library components work with existing Java GUI technology components (created by other builders).

The open JViews library components work with all AWT (Abstract Windowing Toolkit) components, Java Foundation Classes (JFC), and JavaBeans components. It supports a mix of interface controls.

Developers can use such Java GUI builders as Symantec’s Visual Café or Sun’s Java WorkShop by encapsulating the JViews classes as JavaBeans, then porting them over to the individual software’s component palette and using them just like any other component. With the JViews graphics engine, developers can manipulate any Java widget to create topologies with graphic objects from other vendors. It can also store (and rapidly retrieve) tens of thousands of graphics objects.

Other JViews features include:

  • Browser support — JViews can be used in standalone Java applications or as a part of an applet running inside a Web browser. JViews applets can run on any browser that supports the latest JDK.

  • External format support — JViews is distributed with file reformatters that help developers import existing 2D graphics data files. The DXF (CAD’s Data eXchange Format) file reader lets developers import AutoCad files, and the VPF (Vector Product Format) file reader reformats cartographic data files from Vectaport’s Digital Chart of the World database of digital world maps.

  • Ease of migration from C++ Views — Developers currently using Views, the C++ graphics package, are seemingly finding it easy to make the transition to JViews. The structure of the libraries is similar (with most of the classes sporting similar names and functions), and a file reader is included in JViews that allows developers to read Views datafiles. (For more information on migration, see the “JViews adoption in the real world” section below.)

JViews offers special support for applications designed to display network nodes and links. In JViews, any graphic object can be redefined to act as a node, then be connected to other nodes by links. (Many types of links can also be defined.) When developers combine this support feature with JViews’ layout algorithms, it makes it easier for them to lay out standard networks and design telecommunications networks.

The following set of images demonstrates how a JViews-created Java application interface (for an application that allows users to discern a worldwide network’s topology) works. The viewer zooms in through the automatically linked network nodes, displaying more detailed views of the network topology. Each layer can be represented by very different, but well-integrated types of graphics (drawings, satellite images, and flowcharts, for example).

…delivers a different, preselected type of graphic — a bitmapped image of the city superimposed with the local network nodes and their links. Picking the desired hub…

Prices for the JViews library, which has been certified 100% Pure Java by KeyLabs, start at ,500 for a single developer’s license.

JViews adoption in the real world

JViews is still relatively young, especially compared with some of the other ILOG tools available, so there’s not a plethora of full-blown, real-life cases to examine. But early returns from customers that have integrated other ILOG tools into their products (and have started to use JViews) seem to be favorable.

ISR Global Telecom is one such company. ISR makes Orbit MASK — out-of-the-box network-application fault and tolerance management software products — and the company has previous experience with ILOG products. According to product manager Edward Draiss, “We’ve embedded ILOG’s C++ graphics library and ILOG Views [the C++ interface builder] in our most strategic applications. Views helps by presenting complex information in a meaningful way.”

Previous experience with ILOG Views prompted ISR to try JViews when the company moved to meet the customer demand for a Web-based front end. Draiss said, “When we recently decided to add a Web-based front end, we naturally investigated JViews.” He added that it had the “same power and flexibility the ILOG Views product has. Our decision to use it will help Orbit.”

Hewlett-Packard (HP) is another company that has experience with ILOG interface tools. Its SoftBench software development environment provides a graphical interface and a framework for Unix tools that makes it easier for C++ developers to use objects and class libraries. SoftBench’s enhanced visualization interface uses ILOG Views to present program structure information, giving developers a consistent behavior and appearance for the various Unix tools.

HP’s OpenView Software Division is another enterprise to adopt JViews. HP developers needed to add a Java front end for the OpenView products to offer, in the words of HP Network/Systems Management GM Olivier Helleboid, “continual enhancements that meets our customers’ needs.” He added that “JViews will allow us to build very intuitive interfaces rapidly for our end users in pure Java, while maintaining outstanding performance and reliability, as well as reducing maintenance costs.”

For OpenView network node manager Paul Van Farowe, the easy portability of Java and its ability to quickly create Java interfaces for the division’s products mean reduction of costs (installation, maintenance, reuse) and fast time to market for new products and upgrades. He said, “JViews gives us the ability to rapidly create Java-based user interfaces for HP OpenView network- and systems-management software. We can take advantage of the benefits of Java while reducing overall development time.”

Van Farowe noted that part of the question of adopting JViews was answered by the performance of ILOG’s other, more established tools. “ILOG has proven it can deliver quality products with its C++ tools, and JViews delivers the same dependability in a Java development environment.”

Other companies use ILOG products for various purposes, from C3I (command, control, communications, and intelligence) systems to customer relations, from design to documentation, from analysis to altitude determination (GIS), not to mention documentation services, training, network management, scheduling, process control, simulations, testing, monitoring, and commercial trading systems.

Some of the more well-known companies that use ILOG products include:

  • Bear Stearns (Views, DB Link; securities trading)
  • Chrysler (Views, Solver, DB Link; vehicle occupant packaging)
  • Cisco Systems (Views, DB Link; network monitoring)
  • Ford (Views, Rules, DB Link; electronic card diagnosis)
  • Fuji Photo (Views, DB Link; ordering system)
  • GE (Views; power plant monitoring)
  • IBM (Views; data mining)
  • Kodak (Views; health imaging systems)
  • Matsushita (Views; internal CAD tools)
  • NTT (Views; network configuration)
  • Procter & Gamble (Views, Solver, Scheduler; truck scheduling)
  • Ricoh (Views; measurement systems)
  • Sandia National Labs (Views; logistics mapping)
  • Shell (Views; petrochemical process alarm management)
  • Societe Generale (Views, DB Link; swap trading)
  • SunSoft (Views; debugging tools)
  • Thomson-CSF (Views; a C3I system)
  • Unisys (Views, Solver, Scheduler; airline flight scheduling)
  • UPS (Views; parcel tracking system)

As the above anecdotes suggest, companies using the C++-based Views find it easy to add a Java element (JViews) to their systems as the demand for Java by customers increases.

Experience counts

As the anecdotal evidence of ILOG and its customers attests, the successful method for a company to deal with transitions in technology is quite like that of companies in any industry — leverage your existing products and knowledge (don’t redesign the wheel) and move at a cautious pace.

But there’s more to it than that. Choosing the right technology (and market) direction is important. A product that is trying to be everything is so diluted that it has less worth than a product that does a few things well and can easily integrate/access other products (to do more things).

How you choose to migrate or update your product is also important. You can go the Microsoft route — take your base product and continue to layer on new feature after new feature, whether or not the base product is up to the strain or not. Or you can follow ILOG’s path and truly adapt your product to the new technology (situation or market), making sure that the quality remains high and is not mistakenly replaced by quantity.

Of course, it didn’t hurt that JViews’ ancestors were already heading in the component/object direction in the first place.

Kane Scarlett is a contributor to JavaWorld and NC World magazines, as well as the executive editor of NC World.