|October 9, 2000|
Editor: Karyl Scott (email@example.com)
A technology called R++, developed by AT&T's Bell Labs, should help bridge the gap between object-oriented and rules-based programming. Developers are increasingly focused on implementing business rules in software, and applications written to incorporate business rules can more appropriately respond to situations in which multiple conditions are necessary to trigger a particular action or set of actions. For example, a loan-analysis application could apply rules to determine whether a particular loan request should be granted or rejected.
R++ was developed in the mid-1990s but has languished during the past couple of years because of an ownership dispute between AT&T and its former Bell Labs unit, which is now part of Lucent Technologies Inc. That dispute has been resolved, and it looks like R++ could soon be licensed for noncommercial distribution.
R++ is an extension to C++ and supports the integration of data-driven rules with C++ objects. A rule acts in much the same way as an "if-then" statement that's triggered wherever a particular set of data is changed. The benefits of R++ include the ability to write more kinds or more complex business applications that separate procedural logic from data that's most appropriately expressed as rules. Its creators also say R++ should shorten the time involved in identifying application requirements and design because policies can be expressed as rules.
The syntax and semantics of R++ conform to C++ conventions, and rule-containing files are translated into C++, allowing familiar software development tools to be used. R++ rules can operate directly on C++ objects. There are already quite a few commercial rules systems for C++ and Java that are more or less integrated with the C++ object model. Some of those systems create their own set of objects that aren't really C++ objects. This situation is less than desirable.
The idea behind R++ wasn't just to implement a rules system in an object-oriented language, but to make sure the object lives and breathes like a C++ object. With R++, the Bell Labs team tried hard to make the rules part of the object model.
The rules are essentially just new elements that are a part of the object. They are inherited and can be overridden. To effectively implement data rules in C++, three issues must be addressed, according to Peter Patel-Schneider, a member of the technical staff at Bell Labs. One is to implement rules in such a way that application developers don't have to check on them too often.
The second issue is that most applications need to run as fast as possible. There's definitely a performance penalty with the application of rules. The R++ team tried to make the performance penalty as small as possible, but R++ does add overhead. Bell Labs tried to make reasonable trade-offs there, Patel-Schneider says.
The third issue is the desirability of having an integrated development environment. When programming in a language such as C++, a debugging environment and many other things are necessary to be able to see what's happening. "We couldn't do much along those lines because we didn't have control of any C++ environment," Patel-Schneider says.
It's important to note that R++ is not a commercial piece of software, so a fair amount of hands-on work will still be required.
Illustration by Jim Edmon
Who's Running The Web Site
Too often, the job of running a business Web site falls to the graphics department. But Equilibrium Technologies Inc. hopes to put an end to that with its upcoming MediaRich Publishing Platform, a database application or hosted service that automates media publishing on the Web.
"Artists create compelling content, but what needs to be generated on the Web site is a business decision," says Rocky Offner, Equilibrium's VP of engineering. These days, business managers may have to wait days or weeks before the art department can do all the graphics prep work needed to make content changes on an image-rich Web site.
The MediaRich platform will make controlling Web-site content trivial. And Web artists, who spend as much as 80% of their time on post-production work, will be able to spend all their time on creative pursuits.
Rather than process each image individually, MediaRich uses the MediaScript language to modify images that are stored on the server using the standards and templates that have been created by the production department. "You create a media-rich site that's dynamically driven from any database," Offner says. This enables thousands of images to be generated and deployed automatically. The software integrates with existing content-creation applications, HTML authoring tools, content-management systems, and content-delivery networks. It's available in standalone and enterprise editions.
NextOffice.com Inc., a business furniture sales site and beta customer, uses the technology to let customers look at furnishings online and view a variety of product options in real time. The software also supports zooming and panning of images. NextOffice.com had the system up and running in two days.
An automobile buying site did something similar but spent more than $1 million and took three months to custom-develop the capabilities; it created every possible combination of images in advance rather than use a template that makes instantaneous changes to images.
- The Language of UX: Beyond Buzzwords -
- I Can See Clearly Now - E2 Conference Boston
- Learn how to enage customers through mobility - Mobile Commerce World - Mobile Commerce World
- The E2 Social Business Leaders - E2 Conference Boston - E2 Conference Boston
- The A-to-Z of Building Your Big Data Initiative - E2 Conference Boston - E2 Conference Boston
- Building a Hybrid Cloud in Government: It's not that Complicated
- The Best Mobile Apps are Connected
- The Critical Importance of High Performance Data Integration for Big Data Analytics
- Mobile DevOps: Achieving continuous delivery with multiple front ends and complex backends in Banking, Financial Services, and Insurance
- Get Actionable Insight with Security Intelligence for Mainframe Environments