[
Lists Home |
Date Index |
Thread Index
]
Roger,
Good summary.
CAM however is dastardly - in that it allows extensible function calls - to
procedural code blocks - exactly for that backend integration. Of course both
parties (sender / receiver) may need access to that - but CAM has a web service
pluggable interface - that allows that. Having the declarative world call the
procedural world imposes of course a constrained interaction model - so that
the declarative model is not broken. Such calls are essential for answer
realworld rule needs like - 'is quantity_ordered =< stock_on_hand' where the
web service call to the ERP warehouse management system can answer this.
Cheers, DW.
=================================================================
Quoting "Roger L. Costello" <costello@mitre.org>:
> Hi Folks,
>
> An excellent, important discussion! Below I have summarized what I perceive
> as the key issues. Comments are very welcome.
>
> Here are the two problems that we have been considering:
>
> Problem #1
>
> A company has employees. The current company policy is that the minimum age
> of employees is 16. What happens when a 15 year old whiz kid is hired?
> Validation by the IT department of the data file for this new employee will
> result in sending up error flags. Should the IT department run the
> business, or should the business run the IT department?
>
> Problem #2
>
> A person from the UK makes an online purchase from a US supplier. The online
> supplier requires entry of a two-letter code in the "State" box and a
> numeric value in the "postal code" box, despite the fact that the person
> entered UK as the country. So, the person entered "ZZ" as the state and
> 12345 as the postal code. Does validation result in forcing people to
> supply incorrect information?
>
> In discussing these problems, two categories of validation were identified:
>
> 1. "Syntactical" or "structural" validation
> 2. "Semantic" or "business rule" validation
>
> "Syntactical" or "structural" validation is useful in eliminating a certain
> number of mechanical data entry errors, such as leaving out required items
> or putting strings in fields that require numbers (e.g. phone numbers,
> dates, etc.)
>
> "Semantic" or "business rule" validation captures some aspect of a business'
> requirements. An example is validating that a credit card is acceptable.
>
> There are two categories of tools for doing validation:
>
> 1. Declarative-based tools
> 2. Procedural-based tools
>
> The declarative-based tools include XML Schemas, XForms, CAM. The advantage
> of these tools is that the constraints they express are easily changed. The
> disadvantage is limited expressiveness (consequently, it may be very
> difficult to express semantic/business rule constraints using these tools).
> The declarative-based tools are typically client-side tools.
>
> The procedural-based tools include Javascript, Java, C#, etc. The advantage
> of these tools is that they have rich expressiveness. The disadvantage is
> that changes are not as easily made. The procedural-based tools are
> typically back-end tools.
>
> The declarative-based tools are better suited for "Syntactical" or
> "structural" validation.
>
> The procedural-based tools are better suited for "Semantic" or "business
> rule" validation.
>
> Other Issues
>
> In a highly distributed system there is no definable "back-end" where all
> business rules may be validated. In such a case, it may be beneficial to
> push semantic/business rule validation out to the client-side.
>
> XML Schemas, XForms, CAM, Javascript - these are all a "means to an end".
>
> If you are going to validate, then validate! In Problem #2 the user was
> forced to enter a 2-character state code, despite being from the UK.
> Several people noted that the problem was not with too much validation, but
> with not enough validation. If the system had been doing a good job
> validating then "ZZ" would not have been allowed for the state code.
> Further, full validation would have determined that if the country code is
> UK then no value is required for the state code.
>
> /Roger
>
>
>
> -----------------------------------------------------------------
> The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
> initiative of OASIS <http://www.oasis-open.org>
>
> The list archives are at http://lists.xml.org/archives/xml-dev/
>
> To subscribe or unsubscribe from this list use the subscription
> manager: <http://www.oasis-open.org/mlmanage/index.php>
>
>
|