21
From ODRL-S to Low-level DSL: A Case Study Based on License Compliance in Service Oriented Systems Soudip Roy Chowdhury 1 G.R. Gangadharan 2 , Patrcia Silveira 1 , Vincenzo D’Andrea 1 1 University Of Trento, Italy 2 Politecnico Di Milano, Italy Virtual Goods 2010,Namur , Belgium 1 st October,2010

License DSL translation in COMPAS framework

Embed Size (px)

DESCRIPTION

This presentation was presented in Virtual goods conference 2010 against the paper submitted by the authors. In the paper author presented a case study in the framework of COMPAS(http://www.compas-ict.eu/), a research project focused on supporting compliance monitoring and verification in service based systems. In the paper, authors also illustrated how we translate high-level service licenses (specified in Open Digital Rights Language for Services (ODRL-S)) to low-level rules for verifying the compliance requirements at runtime. Authors have validated their approach by architecting a compliance driven service oriented system, where at runtime business processes are monitored for compliance.

Citation preview

Page 1: License DSL translation in COMPAS framework

From ODRL-S to Low-level DSL: A Case Study Based on License Compliance in Service

Oriented Systems

Soudip Roy Chowdhury1

G.R. Gangadharan2, Patrcia Silveira1, Vincenzo D’Andrea1

1 University Of Trento, Italy 2 Politecnico Di Milano, Italy

Virtual Goods 2010,Namur , Belgium 1st October,2010

Page 2: License DSL translation in COMPAS framework

2

License

Page 3: License DSL translation in COMPAS framework

3

Service License

http://odrl.net/Profiles/Services/

Page 4: License DSL translation in COMPAS framework

4

Service License• Defines Terms and conditions for usage of service.• Limit the liability of service provider in case of failure.

Page 5: License DSL translation in COMPAS framework

5

Compliance Requirement - COMPAS

http://www.compas-ict.eu/

Page 6: License DSL translation in COMPAS framework

6

Compliance Governance Runtime Architecture

Page 7: License DSL translation in COMPAS framework

7

License requirements in COMPASName of the Compliance

Requirements Control Additional Descriptions

Pay-per-view plan The user ID subscribed for the plan can acquire only n possible streams at price p.

We check whether we comply with the max number of video playbacks allowed, which means max number of service invocations. We do not check (for now) whether the payment has been made.

Time-based plan The user ID subscribed for the plan can acquire any number of times any possible streams from StartDate till EndDate of the plan.

We do check whether we comply with the subscription period.We do not check (for now) whether the payment has been made.

Composition permission Only pre-defined combinations of video and audio providers are allowed due to the licenses specified by the video provider (V1 with A1 or A2, V2 with A2).

If V1 and V2 are provided by two different "content providers", then each should only mention its own content streams not the other ones.

Page 8: License DSL translation in COMPAS framework

8

Conceptual model for compliance management

Page 9: License DSL translation in COMPAS framework

9

Runtime License verification framework

Page 10: License DSL translation in COMPAS framework

10

Challenges

1. How to associate high-level license concerns(constraints) with the low-level events ( actions)-

2. Which low level rules can address the license concerns in Watch-me scenario -

3. What is the best strategy for translating ODRL-S license to ESPER rules-

Bringing IT-Experts into the loop

Creating ESPER rule template

Patterns based translation strategy

Page 11: License DSL translation in COMPAS framework

11

ODRL-S to ESPER rules

Domain ExpertsIT Experts

Write license in ODRL-S format

Provide low-level process/event information with which license would be attached to, also writes the translation template

License Translator

Low-level rules (e,g ESPER rule)

Business Process Engine

Sends Event Information

Event Processing Engine (e.g ESPER CEP Server)

Design Time

Run Time

Event Processing engine checks the license concern against events,infers about the compliance of the system

CEP online monitor/ Event

log

Notifies violation

Research challenge 1& 2

Research challenge 3

Page 12: License DSL translation in COMPAS framework

12

License Translator

License Translator

Esper Rule TemplateLicense Pattern

Esper Rule

Page 13: License DSL translation in COMPAS framework

13

License Translator contd..

ODRL-S Pattern

<o-ex:permission> <o-dd:play>...... </o-dd:play></o-ex:permission> .

Domain Experts

Writes ODRL-S based license

IT Experts

<wm:event name="WatchMeGetVideoStreamEvent">... </wm:event>

Provides low level information

Page 14: License DSL translation in COMPAS framework

14

License Translator contd..

Esper Rule Template

IT Experts

Providescreate window PayPerViewWindow.win..from WatchMeGetVideoStreamEvent

Low level rules in the intermediate format

• License Translator looks for specific ODRL-S license pattern, finds the corresponding low -level rule from the rule template.

• Associates them together and produce low-level rule which are consumed by ESPER Event processing engine for runtime compliance checking.

Page 15: License DSL translation in COMPAS framework

15

Pay Per View plan in WatchMe scenario

.

.

.<o-ex:permission> <o-dd:play>

<wm:event name="WatchMeGetVideoStreamEvent"> <o-ex:requirement> <wm:plan> <wm:type>Pay-per-view plan</wm:type> </wm:plan> <o-dd:prepay> <o-dd:payment> <o-dd:amount o-dd:currency="EUR">29.90</o-dd:amount> </o-dd:payment> </o-dd:prepay> </o-ex:requirement> <o-ex:constraint> <o-dd:unit o-ex:type="watchMe:NumberOfStreams" /> <o-dd:count>300</o-dd:count> </o-ex:constraint> </wm:event> </o-dd:play> </o-ex:permission> . . .

Page 16: License DSL translation in COMPAS framework

16

License Translator generated Esper rule for Pay-per-view plan

<?xml version="1.0" encoding="UTF-8" ?><license><ServiceUID> urn: watchMe:service: watchMe-Provider1-PerUse_service</ServiceUID><PlanType>Pay-per-view plan</PlanType><amount>29.90</amount><unit>watchMe:NumberOfStreams</unit><count>300</count><esper>

<rule1>create window PayPerViewWindow.win:keepall().std:unique(SessionID) as select SessionID, RequesterID from WatchMeGetVideoStreamEvent</rule1><rule2>select count(*) from PayPerViewWindow</rule2></esper>

</license>

Low level rules intermediate form

Page 17: License DSL translation in COMPAS framework

17

Conclusion and Future work

• Currently translation is pattern-based mapping – This is not efficient for more generic translation

• In future we will also explore on the possibility of semantic based mapping ( semantic mapping between event concepts and license concepts).

Page 18: License DSL translation in COMPAS framework

18

References1. Classen, W.: Fundamentals of Software Licensing. IDEA: The Journal of Law and

Technology 37(1) (1996)2. Papazoglou, M.P.: Web Services: Principles and Technology. Pearson, Prentice Hall

(2008)3. Gangadharan, G.R., D’Andrea, V.: Licensing Services: Formal Analysis and Im-

plementation. In: Proceedings of the Fourth International Conference on Service Oriented Computing (ICSOC’06), Chicago, USA. (2006) 365–377

4. Gangadharan, G.R., D’Andrea, V., Iannella, R., Weiss, M.: ODRL Service Licensing Profile (ODRL-S). In: Virtual Goods: Technology, Economy, and Legal Aspects. Nova Publishers, USA (2008)

5. Bellamy, R.K.E., Erickson, T., Fuller, B., Kellogg, W.A., Rosenbaum, R., Thomas, J.C., Wolf, T.V.: Seeing is believing: designing visualizations for managing risk and compliance. IBM Syst. J. 46(2) (2007) 205–218

6. Silveira,P.,Rodrguez,C.,Casati,F.,Daniel,F.,D’Andrea,V.,Worledge,C.,Taheri, Z.: On the Design of Compliance Governance Dashboards for Effective Compliance and Audit Management. In: Proceedings of NFPSLAM-SOC’09. (2009)

Page 19: License DSL translation in COMPAS framework

19

Thank you

Page 20: License DSL translation in COMPAS framework

20

Licensing clause-pay-per view plan

Page 21: License DSL translation in COMPAS framework

21

Translation Templates• compositionTemplate =<rule1> create window

CompositionWindow$.win:keepall().std:unique(SessionID) as select SessionID,properties.property[1] from pattern [ every (Event (name= $event1_name AND properties.property[2].value= $video_ProviderID ) AND Event (name=$event2_name AND properties.property[2].value =$audio_ProviderID))] </rule1>

• timeTemplate = <rule1> create window TimebasedWindow$.win:keepall().std:unique(SessionID) as select SessionID, properties.property[1] from $event_name where($start_Time > current_timestamp()) or (current_timestamp() >$end_Time) </rule1>

• countTemplate = <rule1>create window PayPerViewWindow$.win:keepall().std:unique(SessionID) as select SessionID, properties.property[1] from $event_name </rule1><rule2>select count(*) from PayPerViewWindow$ where count(*) > $count </rule2>