Business Rules!: Difference between revisions

From BR Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 17: Line 17:
* Intermediary components to reduce latency, enforce security and encapsulate legacy systems
* Intermediary components to reduce latency, enforce security and encapsulate legacy systems


The strength of many programming languages lies in their ability to express immense amounts of processing control in relatively few statements. This is achieved in object oriented languages by the concepts of inheritance and overloading. If done right, objects can be designed that programs can use without full knowledge of the underlying supporting code for the object. A pervasive problem associated with this technique is that there is no restriction placed upon what can be inherited. Therefore it is necessary for users of objects to be aware of all aspects of the objects they utilize. This works extremely well for tool sets, and not so well where 1) large sets of programs are shared among many programmers, 2) where programs are part of a networked set of applications, and 3) where a large set of programs must be modified by someone who is not completely familiar with them.  
The strength of many programming languages lies in their ability to express immense amounts of processing control in relatively few statements. This is achieved in object oriented languages by the concepts of inheritance and overloading. If done right, objects can be designed that programs can use without full knowledge of the underlying supporting code for the object. A pervasive problem associated with this technique is that there is no restriction built into the rule set to insure that this is the case. Therefore it is necessary for users of objects to be aware of all aspects of the objects they utilize. This works extremely well for tool sets, and not so well where 1) large sets of programs are shared among many programmers, 2) where programs are part of a networked set of applications, and 3) where a large set of programs must be modified by someone who is not entirely familiar with them.  


Truly RESTful systems insulate nodes from the requirement of knowing processing details within other nodes.  
Truly RESTful systems insulate nodes from the requirement of knowing processing details within other nodes.  

Revision as of 13:47, 26 April 2013

General Introduction

Business Rules!, also known as BR is a derivative of the ANSI based Basic used on IBM mid-frame computers. It is a highly readable cross-platform programming language used by procedural programmers to build applications in a top-down building block structure.

In the modern world there are three general types of programming languages:

  • Procedural - Where program control flow is the primary focus while the code creates, processes and destroys representations of external reality.
  • Non-Procedural - Where various elements are defined with snippets of code attached to events which are triggered by either users or other programs.
  • Object Oriented - Which is a blend of the preceding types with predefined rules for creating and deleting representations of external reality, and program defined methods of accessing them. This language structure was introduced to the programming world as C++, and has become the predominate programming language model.

The advent of the World Wide Web introduced the widespread acceptance of the connectionless client/server model, with tunneled methods of achieving connection persistence. This technique was implemented by the Microsoft Dot Net programming languages. Another concept implemented by both Dot Net and Java was the use of a compiled pseudo-code executable which is made portable by providing execution engines for each platform.

RESTful Characteristics

Representational State Transfer (REST) is a style of software architecture for distributed systems such as the World Wide Web and loosely coupled application frameworks. Key goals of REST include:

  • Scalability of component interactions
  • Generality of interfaces
  • Independent deployment of components
  • Intermediary components to reduce latency, enforce security and encapsulate legacy systems

The strength of many programming languages lies in their ability to express immense amounts of processing control in relatively few statements. This is achieved in object oriented languages by the concepts of inheritance and overloading. If done right, objects can be designed that programs can use without full knowledge of the underlying supporting code for the object. A pervasive problem associated with this technique is that there is no restriction built into the rule set to insure that this is the case. Therefore it is necessary for users of objects to be aware of all aspects of the objects they utilize. This works extremely well for tool sets, and not so well where 1) large sets of programs are shared among many programmers, 2) where programs are part of a networked set of applications, and 3) where a large set of programs must be modified by someone who is not entirely familiar with them.

Truly RESTful systems insulate nodes from the requirement of knowing processing details within other nodes.

BR Characteristics

Business Rules! is a procedural language that conforms to REST principles. Its unique set of rules for utilizing libraries to create program building blocks, along with its general readability, position it well for both beginning programmers and large scale projects.

This language is being adopted by a growing number of young programmers due to it's ability to quickly develop procedural programs that include:

  • powerful string and array manipulation
  • character position oriented window, field and report specification
  • HTTP client emulation
  • serial communications for industrial applications
  • PDF printing with background forms
  • both flat file processing with multiple indexes and traditional database support
  • powerful built-in parsing functions for XML and CSV strings

and have it run in a framework with:

  • a client server architecture
  • a portable pseudo-code executable format
  • dynamic interactive debugging
  • uniquely readable building block programming ( libraries )
  • performance profiling
  • an HTTP server add-on with JSON compilation and manipulation

BR handles platform dependencies independently from code, so it is easy to maintain one set of programs for all supported platforms (Windows, Linux and MAC).

The BR Programming Language is comprised of Environmental Settings, Commands, Variables, Functions, Expression Logic and Program Statements. Programs are compiled into virtual code that is executed by a run-time executive. This supports a high degree of portability across platforms. The interactive nature of BR facilitates relatively easy debugging because you can change a program while it is running, as well as execute commands and statements from it's command console.

Business Rules! strong commitment to providing backward compatibility options ensures that any investment in BR programs will be protected nearly indefinitely. While some of Business Rules! syntax may seem too simplistic to someone versed in more complex object oriented programming, the language's inability to hide code enhances readability.

See also: BR Wiki:Community Portal

Getting Started

Categories

Most of this wiki is categorized. An individual article may belong to multiple categories. The Top Level Categories are a nice way to browse this wiki. In the table below are the most popular categories.