OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

regrep-notification message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: Use cases for Registry Notification - With modeling scenarios



Registry Notification sublist,

I support a very limited facility for notifying users of Registry events. I 
believe the facility must be limited, almost pre-defined to a select number 
of events, because arbitrary user-defined events could be a severe drain on 
system resources.

My experience with notifications is based on "SQL Triggers" as specified in 
the Database Language SQL standard (ISO/IEC 9075:1999). SQL Triggers are at 
too low a level to be the model for notifications, since they are specified 
over UPDATE, INSERT, and DELETE actions on individual tables. However, what 
I suggest below is strongly influenced by that model.

Use Case #1: There must be a way for "notification users" to declare 
themselves to the Registry.

Discussion #1

The term "notification user" here is not the same as the User class in our 
model. Those User instances are folks or roles who act on behalf of some 
submitting organization (SO). They are authenticated by the Registry and 
are then allowed to act as an alias for the SO to take whatever actions 
that SO is allowed to take.

The term "notification user" is also not the same as the Contact class that 
existed in an earlier version of our model. Those Contact instances were 
also acting on behalf of an SO to answer questions about repository items 
submitted by that SO.

The term "notification user" as far as Registry notification is concerned 
is just some member of the public, possibly not related to any organization 
known to the Registry, who wants to be sent an email message (or other 
notification!) when some specific "event" happens. There is no reason that 
the email recipient can't be a piece of software that takes certain 
action's at the recipient's site based on the content of the email message. 
Those user actions are outside of the scope of the Registry model. However, 
the content of the message is not outside our scope and should be specified 
by Registry Services.

I believe we need a new class in our model, call it NotificationTarget, 
that captures the name and email address of people (or processes) who want 
to be notified when something happens. We need additional Registry Services 
for members of the public to declare themselves as notification targets, to 
identify new events that they want to be notified about, and to delete 
previous notification requests. I believe that NotificationTarget instances 
can be represented by an email address and a name string, e.g. Len 
Gallagher <LGallagher@nist.gov>. The email address can serve as a unique 
identifier for the name, so there is no need to require an additional 128 
bit GUID, although an implementation could assign one if they want to. 
There is no reason to require that Registry Services depend on a 128 bit 
GUID for NotificationTarget instances; if a user wishes to modify its 
notifications it need only supply the email address (and possibly a PIN!) 
in order to make the modifications. The PIN could be an additional 
attribute (optional?) of the NotificationTarget class.

Use Case #2: A minimum number of pre-defined events must be offered by the 
Registry so that public users can request that they be notified when such 
an event happens.

Discussion #2

I think that at least the following events should be supported as 
"notifiable events" by all Registries:

1) A specific repository item being "superceded" by some other repository item.

2) A specific repository item being "replaced" by some other repository item.

3) Registration of a new repository item of a specific objectType, e.g. 
ServiceInterface, cf RIM Section 7.3.2, that satisfies a specific 
classification.

4) The owner of a specific repository item being notified (if they request 
such notification) whenever any other SO creates an Association instance 
that references it as a targetObject. Or creates an Association instance to 
it of a specific associationType, e.g. "Uses" cf. RIM Section 10.1.1.

NOTE 1: Since we don't necessarily have ID's for repository items, the 
above events will have to be expressed in terms of actions on RegistryEntry 
instances.

I think it is possible that all of the notifiable events listed above can 
be represented by a new class in our Model, call it NotificationEvent! All 
4 of the above events are special cases of actions either on the 
Classification class or the Association class, sometimes combined with an 
attribute of the RegistryEntry class, e.g. objectType in 3. Thus the 
NotificationClass may have subtypes as follows: AssociationNotification and 
ClassificationNotification.

An AssociationNotification instance could be represented by the following 
attributes: sourceId, targetId, associationType. For example, the events 
1,2,4 above could be represented as follows:

    1)  (GUID, null, SupercededBy)  -- triggered by new Association 
instance fitting the template
    2)  (GUID, null, ReplacedBy)
    4)  (null, GUID, Uses)

A ClassificationNotification instance could be represented by the following 
attributes: objectType, classificationschemeId, path. Then event 3 above 
could be represented as follows:

    3)  (ServiceInterface, GUIDtoUNSPSC, pathValue)


Use Case #3: A user (i.e. a NotificationTarget instance) must be able to 
modify (i.e. Add and Delete) their notification events.

Discussion #3

All notification requests could be modeled in UML as a new many-to-many 
association between NotificationEvent and NotificationTarget. A user could 
give their email address and PIN and be accepted as a NotificationTarget 
instance. Then they'd be allowed to add or delete instances of this new 
association that link a NotificationEvent instance with a 
NotificationTarget instance.


IMPLEMENTATION SCENARIO

Assuming that instances of the Association and Classification classes are 
treated as rows in SQL tables, say ASSOCIATION_TBL and CLASSIFICATION_TBL, 
then all of the above could be implemented by defining an SQL AFTER INSERT 
trigger on each of these tables.

The Association AFTER INSERT trigger would look at each new creation of an 
Association instance, match it against one or more of the template 
instances of AssociationNotification, and then send a message to the set of 
NotificationTarget instances associated with any one of the selected 
templates. The content of the message would be the set of selected templates.

Similarly, the Classification AFTER INSERT trigger would look at each new 
creation of a Classification instance, get the objectType attribute from 
its parent RegistryEntry instance, then match that information against one 
or more of the template instances of ClassificationNotification, and then 
send a message to the set of NotificationTarget instances associated with 
any one of the selected templates. The content of the message would be the 
set of selected templates.

CONCLUSION

I see implementation of the above scenario being a relatively 
straight-forward process that could be implemented by most Registry 
implementations with little additional effort. Even this limited 
notification facility would be very valuable to Registry users.



**************************************************************
Len Gallagher                             LGallagher@nist.gov
NIST                                      Work: 301-975-3251
Bldg 820  Room 562                        Home: 301-424-1928
Gaithersburg, MD 20899-8970 USA           Fax: 301-948-6213
**************************************************************



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Powered by eList eXpress LLC