grant(Service,U1,U2) :
license(Service,Clic,Blic1),
-> license(Service,Clic,Blic1’),
license(Service,Clic,Blic2)
<= Clic |- cangrant(Blic1,Blic1’,Blic2,U1,U2)
This rule generates a new license(·) for the
user.
Finally we present the rule permit, with which
the packager generates a license for some service to
be run on the residential gateway:
permit(Service,P,S) :
demands(Service,Cdem,Bdem),
characteristics(Service,nil,Bcha)
-> demands(Service,Cdem,Bdem’)
characteristics(Service,nil,Bcha’),
license(Service,Clic,Blic)
<= Cdem |- canpermit(Bdem,Bdem’,Blic,Clic,P),
Cdem |- cancomply(Bdem,Bdem’,Bcha,Bcha’)
The object demands(Service,Cdem,Bdem)
indicates that a user has requested Service; Cdem
and Bdem are respectively a set of clauses and a set
of bindings that – combined – specify extra side con-
ditions such as the maximum bandwidth, the price the
user is willing to pay, etc. By calling canpermit,
the packager checks if permission can be granted.
canpermitalso returns the clauses that will be used
in the new license. On the other hand, cancomply
validates the service request (See below).
3.1 Service Requirements Validation
We now define how the packager validates a ser-
vice request, first using a simplified version of the
cancomply(·) clause:
cancomply(Bdem,Bdem’,Bcha,Bcha’) :-
get_value(Bdem,bandwidth,X1),
get_value(Bcha,bandwidth,X2),
get_value(Bdem,quality,Y1),
get_value(Bcha,quality,Y2),
get_value(Bdem,billing,Z1),
get_value(Bcha,billing,Z2),
X1 >= X2, Z1 = Z2, Y1 =< Y2.
The last line shows the use of constraints to en-
sure that the maximum bandwidth of the user’s de-
vice meets the minimum bandwidth required for the
service; that the billing status of the user meets the re-
quirement of the service provider; and that the quality
measure required by the user does not exceed the of-
fered quality.
Alternatively, one can use a parametric approach,
in which the list of requirements to be complied with
is stored in the license:
cancomply(Bdem,Bdem’,Bcha,Bcha’) :-
get_value(Bcha,requirements,Reqs),
meets_requirements(Reqs).
meets_requirements([]).
meets_requirements([[Reqn,Reqv]|Reqs]):-
check_requirement(Reqn,Reqv),
meets_requirements(Reqs).
Recall that (see rule permit above) the
query cancomply is fired in the set of
clauses Cdem specified in the user’s demand
demands(Service,Cdem,Bdem). Therefore
cancomply can check that the service specification
meets the the constraints set out in the user’s demand.
4 CONCLUSIONS AND FUTURE
WORK
We present one of the central concepts of the
LicenseScript-RGE demonstrator, i.e. the packager,
which acts as a service broker. We derive its im-
plementation in our Prolog based LicenseScript lan-
guage, using a systematic derivation from a semi-
formal specification (the CC-model).
The combination of Prolog and multiset rewriting
proves to be a very suitable platform for implement-
ing a complex broker such as the one we have pre-
sented, in particular: (1) To represent complex ser-
vices in a flexible and efficient manner one needs to
employ executable (mobile) code of some kind. (2)
To manipulate services it is therefore necessary to em-
ploy a second-order system. Prolog is perfect for this.
REFERENCES
Chong, C. N., Corin, R., Etalle, S., Hartel, P. H., Jonker,
W., and Law, Y. W. (2003). LicenseScript: A novel
digital rights language and its semantics. In Ng, K.,
Busch, C., and Nesi, P., editors, 3rd International
Conference on Web Delivering of Music (WEDEL-
MUSIC), pages 122–129, Los Alamitos, California,
United States. IEEE Computer Society Press.
den Hartog, F. T. H., Baken, N. H. G., Keyson, D. V.,
Kwaaitaal, J. J. B., and Snijders, W. A. M. (2004).
Tackling the complexity of Residential Gateway in an
unbundling value chain. In Proceedings of XVth In-
ternational Symposium on Services and Local AccesS
(ISSLS 2004), page Published Electronically. IEE.
Dijkman, R. M., Pires, L. F., and Joosten, S. M. M. (2001).
Calculating with Concepts: a technique for the de-
velopment of business process support. In Evans,
A., France, R., Moreira, A., and Rumpe, B., editors,
Proceedings of the UML 2001 Workshop on Practi-
cal UML-Based Rigorous Development Methods, vol-
ume 7 of Lecture Notes in Informatics, pages 87–98.
GI-Edition.
Joosten, R., Knobbe, J.-W., Lenoir, P., Schaafsma, H., and
Kleinhuis, G. (2003). Specifications for the rge secu-
rity architecture. Technical Report Deliverable D5.2
Project TSIT 1021, TNO Telecom and Philips Re-
search, The Netherlands.
ICEIS 2005 - INFORMATION SYSTEMS ANALYSIS AND SPECIFICATION
412