Question
Crestone Technology
MX
Last activity: 21 Jul 2019 17:23 EDT
In the LSA course: How does an app-layer Application rule "control" the content of an enterprise layer ruleset?
This question is in response to material in
- the LSA course
- Unit 6, Data Model Design
- Lesson 6.1, Designing the Data Model
- Page 4: How to extend a data class to higher layers
Question
How does an app-layer Application rule "control" the content of an enterprise layer ruleset?
Details
This page presents a design pattern in response to the question: how best to define Org-level data classes particular to the domain of a specific application?
For instance, suppose
- the Auto Loans department of ACME SuperCorp is working on a new AutoLoan application for processing auto loans
- in the enterprise layer (ACME-Data-) are several data classes useful to all departments and applications. E.G. Customer, Building, Person
- The Auto Loans division starts work. They decide to implement data classes:
Vehicle
Vehicle-Car
Vehicle-Motorcycle
Vehicle-Truck
They realize that the other departments at ACME, for instance the Insurance department, would benefit from their work. The Vehicle-related data classes would be helpful to other departments. However, other departments would NOT benefit from inheriting Auto loan Case types. Therefore it does not make sense to use AutoLoan as a built-on application for other department applications.
This question is in response to material in
- the LSA course
- Unit 6, Data Model Design
- Lesson 6.1, Designing the Data Model
- Page 4: How to extend a data class to higher layers
Question
How does an app-layer Application rule "control" the content of an enterprise layer ruleset?
Details
This page presents a design pattern in response to the question: how best to define Org-level data classes particular to the domain of a specific application?
For instance, suppose
- the Auto Loans department of ACME SuperCorp is working on a new AutoLoan application for processing auto loans
- in the enterprise layer (ACME-Data-) are several data classes useful to all departments and applications. E.G. Customer, Building, Person
- The Auto Loans division starts work. They decide to implement data classes:
Vehicle
Vehicle-Car
Vehicle-Motorcycle
Vehicle-Truck
They realize that the other departments at ACME, for instance the Insurance department, would benefit from their work. The Vehicle-related data classes would be helpful to other departments. However, other departments would NOT benefit from inheriting Auto loan Case types. Therefore it does not make sense to use AutoLoan as a built-on application for other department applications.
Plan B: add the Vehicle classes to the Enterprise layer ruleset ACME. However, the ACME ruleset is already large. Adding these classes to the ACME ruleset would tie the Auto Loans department to the release cycle for the ACME ruleset, which is quite involved because every application in ACME Supercorp depends on it.
Plan C: the lesson I'm asking about recommends creating a ruleset specific to the data classes developed for the app (in this case, the Vehicle classes) and placing that ruleset in the Enterprise layer:
"You could also create a new ruleset synonymous with the <App>, but where data classes are added to the <Org>-Data class. This approach allows for applications to introduce a new, generic data type that can be referenced by other applications."
In this case: the Auto Loans department would
- create an Auto ruleset
- define the classes under ACME-Data-Vehicle in the new Auto ruleset
- include the Auto ruleset in the Enterprise layer application (NOT in the application layer AutoLoan application)
- develop Case types in AutoLoan that use classes from Auto
I understand this so far.
Here's the bit that confuses me
"The case type-containing application would control the content of this enterprise-level Data ruleset."
The "case type-containing application" is the AutoLoan app. How would it "control the content" of the Enterprise-layer Auto ruleset?
The AutoLoan TEAM could control the Auto ruleset by setting passwords on it and not sharing them, or only sharing them with the COE. But this training topic specified that the "case type-containing application" has control, and I don't see any way to implement that. I'm not sure it's necessary, but I don't want to miss a feature that may be valuable, so I'm asking here.