Solutions
Different solutions are possible for implementing intelligent front-ends. Intelligent front-ends do have different characteristics compared with dumb front-ends. Despite the fact that this article is about intelligent front-ends, dumb front-ends are included.
The solution differ in the extend of decoupling between client and server side logic.
1Non-knowledge intensive front-end.
2Knowledge intensive front-end.
Strong decoupled front-end
A strong decoupled intelligent front-end has different advantages and disadvantages. Hence, it is not advisible to use this solution for intelligent front-ends.
Properties | Strong decoupled front-end |
---|
Decision management | 1/2 |
Implementation properties | |
1Dumb front-end
2Intelligent front-end
The client side logic could be implemented by using custom code (HTML5/CSS?JS).
Server side logic could be implemented and exposed by using BaaS.
Weak decoupled front-end
A weak decoupled intelligent front-end has a few advantages compared to strong and integrated front-ends. This solution is advisable for implementing intelligent front-ends.
Properties | Weak decoupled front-end |
---|
Decision management | |
Implementation properties | |
The client side logic could be implemented by using custom code (HTML5/CSS?JS).
Server side logic could be implemented and exposed by using the UI REST API, Pre 10.2.
Integrated front-end
Standard implementation
An integrated intelligent front-end has a few advantages related to decision management but has a bad score on maintainability. Hence, this solution is not advisable for implementing intelligent front-ends.
Properties | Integrated front-end |
---|
Decision management | |
Implementation properties | 1/2 |
1Small application
2Large application
The client side and server logic is implemented with Blueriq and by stacking modules. See Decoupling Pattern 9: Stacking of modules for more information regarding this pattern. Styling and look and feel of the UI could be realised by custom code (CSS/JS).
Shared domain and support attributes
The maintainability of an integrated front-end could be improved by using support attributes and a shared domain model. By doing this the coupling will be decreased due to support attrbitutes while it is still possible to reuse business rules defined within an external library.
Issues and considerations
Implementing intelligent front-ends is complicated because of maintainability aspects (seperation of concerns and decoupling) and the integrated properties of definition and execution of business rules. This easily creates a contradiction. Decoupling is important for maintainable applications while intelligent dialogs (which contains complex and strongly dependent business rules) are easy to implement by integrating business rules (server-side) with dialog (front-end) components.
The offered solutions do have different properties. When an intelligent dialogs must be implemented solution 2 is highly recommended because it has good implementation and decision management properties.