Generic Object Access Layer Decoupling Business Logic from GUI
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing large-scale software packages face challenges in decoupling business logic from proprietary graphical user interfaces (GUIs), leading to inconsistent results and poor performance when using new UI technologies or web services, as current APIs lack stateful access and fail to reuse existing user-exits and business logic.
Innovation Solution
A generic object access layer is introduced, allowing stateful access to business logic through object-specific access classes that replace PBO and PAI processes, enabling decoupling of business logic from GUIs and reusing existing logic, while providing input-state information and meta-data for UI development.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If business logic is directly coupled to proprietary GUI, then ease of operation is improved, but adaptability deteriorates
Solution Approach 1:
The system segments the software architecture into distinct layers: a presentation layer (GUI) and a business logic layer. The access class acts as an intermediary that separates GUI-specific code from business logic, allowing the business logic to be reused across different GUI technologies without direct coupling.
Solution Approach 2:
The access class serves as an intermediary component between the GUI and business logic. It provides a standardized interface that decouples the presentation layer from the business logic layer, enabling the business logic to remain independent while still being accessible by various GUI technologies.
2Device complexity
If existing APIs are used without stateful access, then device complexity is reduced, but reliability deteriorates
Solution Approach 1:
The access class performs preliminary actions by maintaining state information about the business object and the current interaction context. This stateful access allows the API to make informed decisions about data retrieval and manipulation, improving reliability without significantly increasing complexity.
Solution Approach 2:
The system implements feedback mechanisms where the access class maintains state information about previous interactions and uses this information to improve subsequent operations. This feedback loop ensures consistent behavior and reliable data access across multiple API calls.
3Adaptability or versatility
If business logic is decoupled from GUI, then adaptability is improved, but device complexity increases
Solution Approach 1:
The access class is designed as a universal component that can work with multiple different GUI technologies. It provides a standardized interface for accessing business logic that is independent of any specific presentation layer, allowing the same business logic to serve multiple UI frameworks.
Solution Approach 2:
The system creates an abstract representation of the business object through the access class, which copies the essential interface and behavior needed for GUI interaction without duplicating the entire business logic. This allows different GUIs to interact with business logic through a standardized copy of the interface.
4Productivity
If data traffic is reduced for performance improvement, then productivity is improved, but loss of information increases
Solution Approach 1:
The access class implements local quality by maintaining state information locally within the access class itself rather than requiring constant data retrieval from the business object. This local caching of relevant state information reduces data traffic while ensuring that necessary information is available for accurate operations.
Data Source
AI summary
An object access interface is described that effectively decouples a functional layer from a user interface (UI) layer. In the context of pre-existing functional objects that are specifically tailored to a pre-existing UI, a single entry point access-interface may define generic and object-specific functions. The function may be used to collect input routed to the associated function object, compile an input set in a form similar to how the pre-existing UI provided input sets, and process the compiled input and any resulting outputs from the function object.


