Notes
Slide Show
Outline
1
 
2
 
3
 
4
Agenda
  • The Goal, The Problem, and The Solution
  • Business Rule Analysis
  • Business Rule Design
  • CDM RuleFrame Architecture
  • Business Rule Generation
  • Client Experiences with CDM RuleFrame
5
The Goal
6
 
7
The Problem
  • Designer has no tools for modeling the Business Logic Layer
    • Business Rules are often ‘hidden’ in function or entity descriptions
  • Designer does not promote a structured business rule architecture
    • Rules are everywhere:  in Form logic, check constraints, database triggers
8
The Problem, 2
  • It has become normal to add HTML or JAVA front end to existing Forms application
    • some rules not enforced in all front ends
    • some rules enforced differently in each front end
  • Maintenance is even more difficult than initial development
    • business logic is not explicitly modeled in Designer
    • developers who built and understand the business logic structure have often left the team
9
 
10
The Solution
  • CDM RuleFrame provides
    • structured business rule modeling during requirements analysis phase
    • transformer to automate transition to design phase
    • structured business rule design
    • generator to automate creation of runtime objects
    • implementation architecture to provide consistent rule implementation
11
Business Rule Analysis Activities
12
Example Rule
  • Rule Identification
    • Employee Salary must be a multiple of 100
  • Rule Classification
    • Static Data Constraint, Attribute rule
  • Triggering Events
    • Create Employee
    • Update Employee Salary
13
Business Rule Hierarchy
14
Business Rule Design Activities
15
CDM RuleFrame Architecture
16
The Table API (TAPI)
  • stored pl/sql package
  • generated by Designer
  • 1 TAPI per table
    • DML services (ins, upd, del, lock)
    • Number of Business Rules
      • sequences journaling
      • audit columns uppercase
      • defaults derivations
      • dynamic domains
17
Custom API (CAPI)
  • stored pl/sql package
  • generated by CDM RuleFrame
  • 1 CAPI per table
    • code to trigger and enforce Business Rules
    • standard services
      • get_…_values (char, num, date)
      • aggregate_value (sum, count, etc)
      • exists_row
    • custom services
    • code to interact with Transaction Management
18
Accessing the Rule Layer
  • Typically one of two setups:
    • 1.   Forms perform DML directly on tables.
      • TAPI triggers execute business logic
    • 2.   Forms perform DML against views (VAPI)
      • view ‘Instead of’ trigger calls TAPI which executes business logic
19
Transaction Management
  • What happens when the user presses Save?
  • form opens a transaction
    • post record(s)
      • trigger => tapi => capi
      • loop over all rules for that table
        • add rules to rule stack as needed
  • form closes transaction
    • loop over all rules on rule stack
      • call capi to perform the rule
      • if error, add to message stack
  • if no errors, form commits else, form shows all errors on the stack
20
Transaction Management Implications
  • All rules enforced at commit time
  • Enables database enforcement of transaction level rules
    • mandatory master/detail rules
    • only one row may have value ‘X’
    • sum of rows must = 100%
  • No mutating table problems
  • All errors reported at once
21
Business Rule Generation Tasks
  • 1 - Generate the CAPI Definitions
  • 2 - Generate CAPI ddl scripts
  • 3 - Generate TAPI ddl scripts
22
Client Experiences with CDM RuleFrame
  • Used by more than 20 clients since its introduction last year
    • BC Ministry of Advanced Education, Canada
    • Bosch und Siemens Hausgerate, Germany
    • ING Bank, Netherlands
    • OraVision, Netherlands
    • Skattedirektoratet, Norway
    • Churchill Insurance, UK
    • …and many more...
23
Case Study:  OraVision BV
  • IT consulting company in The Netherlands, Belgium, Luxembourg and Germany
  • Work with the latest Oracle tools:  Designer, Headstart, CDM, Portal, Jdeveloper, iAS
  • Use Headstart, CDM, CDM RuleFrame in all Oracle Designer projects
24
OraVision’s impression of CDM RuleFrame
  • Analysis
    • “In the analysis phase, business rules can be related to the ERD.  This makes the business rules an important part of the functional design and can be used in communications with the client.”
  • Implementation
    • “Analysis information can be transformed easliy to the implementation phase.  The implementation phase means only coding the rule.”
25
What OraVision employees think about CDM RuleFrame
  • “Easy and quick analysis and implementation of the business logic”
  • “Transaction Management”
  • “No Mutating-Table problem”
  • “Everybody can make business rules; both inexperienced and experienced developers”
  • “No project without CDM RuleFrame”
  • “Magic”
26
General Client Feedback on CDM RuleFrame
  • Using CDM RuleFrame leads to better documentation, less programming effort, fewer errors
  • CDM RuleFrame allows clients to assign their best pl/sql programmers to the Business Layer while keeping their best forms programmers working on the Presentation Layer.  Parallel work => higher productivity
27
General Client Feedback on CDM RuleFrame, cont.
  • Transaction Management feature provides ability to implement rules formerly impossible to enforce in the database, e.g. Mandatory Master/Detail
  • Separation of business logic from presentation layer is important as clients consider migrating away from forms
28
Conclusion
  • CDM RuleFrame provides a stable and highly productive environment for creating an independent Business Logic Layer
29