Jacob Feldman
|
There is a well-known difference between a domain-specific language (DSL) and a general-purpose language (GPL): while DSL is a programming language specialized to a particular application domain, any GPL is applicable across domains and lacks specialized features for a particular domain.
The modern Business Rules and Decision Management Systems (BRDMS) help users to move business logic from a code to business rules controlled by subject matter experts (not developers). In a way, such systems replace a GPL for business users (not programmers). However, the majority of these systems remain general-purpose systems that force their users to build specialized business rules for a particular domain from scratch. Alternatively, there are business rules products that work only in certain problem domains. This presentation will share a real-world experience of building various domain-specific decisions and business rules using a general-purpose BRDMS “OpenRules”. While you may usually find solid Java libraries that support a domain-specific Java API, you cannot offer the proper API to your business users – they need some kind of a “business DSL”. Actually, from a business perspective there should be no DSL (or any other “language”) at all. Instead, you need to offer a much more business friendlier interface such as specialized decision tables and other business constructs that are usually used by modern decision modeling techniques. Our approach to such a “business DSL” is based on development of domain-specific templates for decisions and business rules that utilize business concepts and decision variables for a particular domain (business glossary). We will demonstrate how to convert domain-specific Java APIs to business-oriented decision modeling constructs using real-world use cases. In particular, we will present “business DSLs” for business decisions in the geospatial and job/resource scheduling domains. |