You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Shawn McKinney (Jira)" <ji...@apache.org> on 2023/09/04 18:32:00 UTC

[jira] [Created] (FC-326) Collapse the P and D layers

Shawn McKinney created FC-326:
---------------------------------

             Summary: Collapse the P and D layers
                 Key: FC-326
                 URL: https://issues.apache.org/jira/browse/FC-326
             Project: FORTRESS
          Issue Type: Improvement
    Affects Versions: 3.0.0
            Reporter: Shawn McKinney


The original design of fortress has 4 layers:

1. Manager
2. Implementation
3. Process
4. Data

1. The manager is the outer interface. It communicates with the clients. Its job is to hide the implementation of fortress and any details about its data usages. (there should be no LDAP or SQL smell here) Also at this level are the exceptions and factories that are visible to users of the system.

2. The impl knows about the data, because it must handle the specificity of it. For example, it knows if its LDAP, REST (or eventually SQL). It's the target of instantiation during runtime (by the manager factory), and it handles all calls further down (into the process/data).

3. The process layer knows some details about the data. For example, fine-grained data validation is performed at this level.  It may have to handle some special use cases surrounding LDAP data management. This is also where any special business rules would be applied. Particular to what the use case is for adding, updating or deleting an entity. 

4. The Data level is where the DAO API does the work. Here would be something like an LDAP, JDBC toolkit employed. It won't know about any relationships. It never calls across entities. That is always done above (in the process layer).

****

In retrospect the 3 layer (process) has proven unnecessarily complex. There's not enough value in keeping it going forward.  

This is a proposal to collapse the stack by one, removing the process layer.  Any functions that are currently going on there can be moved either up or down.




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
For additional commands, e-mail: dev-help@directory.apache.org