[Nsi-wg] ServiceException needs further details
Jerry Sobieski
jerry at nordu.net
Tue Jan 3 10:50:08 EST 2012
On 1/3/12 9:15 AM, John MacAuley wrote:
>
> On 2011-12-21, at 5:44 AM, Henrik Thostrup Jensen wrote:
>
> I think we also need a plan with the error codes and their
> classification. Do we provide the errors in order to tell a user went
> wrong (in which case a string will suffice), or do we provide error
> codes so a client can intelligently handle some cases, or both?
>
> The answer is probably the latter, with some semantics for errorId,
> which can enable the client to automatically classify and potentially
> recover from the error. The distinction between text and variables are
> somewhat artifial and only makes sense for missing of invalid
> parameters. If we assume that the error string is for humans only, the
> distincition between:
>
> text: Missing parameters: Start time, Dest STP.
>
> and
>
> text: Missing parameters
> variables: ["Start time", "Dest STP"]
>
> Is just unneeded complexity. If a client is missing a parameter, it
> probably won't be able to change the request and fill it out
> automatically by looking at the error response. It should just be
> fixed and send the parameter in the first place.
It seems there are some key "classes" of errors with some relation to
the stage at which it is generated:
a) primitive formatting errors (a request primitive is ill-formed),
b) protocol errors (confuses the state machine/flow chart),
c) service request processing errors (e.g. Aggregator issues
between NSAs)
d) service request resource errors (the uPA/NRM cannot fill the
request), and
e) service instance failure errors (an otherwise good service breaks).
Are there other classifications? (I don't recall the details of prior
discussions on this.) These classes are listed in order of detection
...(sort of I think..:-) So a "service request resource error"
implicitly means the request was well formed and conformed to protocol,
and the message was processed to reach an appropriate NSA, but the
resources required were incorrect or unavailable. (Note: the order
above loops - as each message flows from NSA to NSA the gantlet of
checks repeats)
The order for detecting more detailed error conditions may be less than
obvious: If a service resource request is rejected because available
resources were not available for that user...is this a resource
unavailable? or unauthorized? It depends on how you prioritize your
constraints. If you prune the constraint based search by authorization
policy first, and resources remain that are authorized for that user,
but then the resources needed to reach his particular destination are
already in use, then this is a "resource unavailable" error - regardless
of whether other [unauthorized] resources are available and would have
met the technical requirements for the connection. Likewise, if the
technical requirements are used to prune the resources first, and then
the user fails on authorization of the sole path to his destination,
then this would generate a "unauthorized" error. And in either case,
if the requested time window is blocked, but the path finder failed on
"resource unavailable" or "unauthorized" then the path finder will
terminate and the user will not know that his schedule was flawed as
well. The request actually had several problems. (And if you tell a
path finder to "continue searching" despite missed constraints, your
search space explodes, and the results (or errors) may not even be
relevant.) So we can re-order constraints, but we cannot ignore them.
In general - the universe of possible primitive formulations are
overwhelmingly "erroneous" in some fashion - only a very few
intelligently constructed primitives are actually going pass the
gauntlet to be successful. So our approach should not be to enumerate
all possible errors we may encounter, but to classify the errors in some
broad fashion and communicate that class only. We can refine some error
classes to define more specific classes where they may be (a)
[relatively] frequent/common errors, or (b) expose a key or "critical"
condition (for the RA or the PA).
just some thoughts...
Jerry
More information about the nsi-wg
mailing list