SlideShare a Scribd company logo
Web Abstractions 1I
          access control policies, data validation, workflow, ajax, search



                                   Lecture 4



                                                           Course IN4308
       Eelco Visser
                                                Master Computer Science
  http://eelcovisser.org                    Delft University of Technology
Wednesday, March 10, 2010
Modeling
                                        Modeling IDEs
                  Software Systems



                      Modeling           Transforming
                     Web Programs      Software Models



                      Implementing    Software Language
                       Web Models    Engineering Strategies



                   Modeling             Make your own
              Software Languages      Software Languages

Wednesday, March 10, 2010
Web Abstractions

                                     from a declarative point of view
                            (we’ll investigate underlying mechanisms later)
Wednesday, March 10, 2010
More Web Abstractions

               -      Access control policies
                      ★ constraints over objects
                      ★ role-based AC, discretionary AC

               -      Data validation
                      ★ form validation
                      ★ data integrity

               -      Workflow
               -      Search
               -      AJAX: accessing page fragments (templates)

Wednesday, March 10, 2010
Access Control

          Danny M. Groenewegen, Eelco Visser. Declarative Access Control for WebDSL:
          Combining Language Integration and Separation of Concerns. ICWE 2008: 175-188

Wednesday, March 10, 2010
Case 2: Access Control Policy for Conference
               Papers
                      ★ has authors

               Authors
                      ★ submit papers, read reviews

               Reviewers
                      ★ write review for paper & discuss papers
                      ★ are anonymous (for authors)

               Conflicts
                      ★ author cannot be reviewer
                      ★ reviewer not related to authors

Wednesday, March 10, 2010
Access Control
                             Mechanisms


Wednesday, March 10, 2010
WebDSL Access Control

               Constraints over data model
               -      boolean expression over properties of objects


               Rules restrict access to resources
               -      page, template, action


               Infer restriction of navigation
               -      don’t show link to inaccessible page or forbidden
                      action

Wednesday, March 10, 2010
Principal




                                  representation of principal




  turn on access control

Wednesday, March 10, 2010
Access Control Rules

                                              ‘may access page f with
                                               argument x if boolean
                                                expression e is true’




Wednesday, March 10, 2010
Wiki Access Control Rules




                                                                     ‘anyone can view
                                                                    existing pages, only
                                                                    logged in users can
                                                                       create pages’


                            ‘only logged in users may edit pages’


Wednesday, March 10, 2010
Wiki Access Control Rules




Wednesday, March 10, 2010
Wiki Access Control Rules




Wednesday, March 10, 2010
Wiki Access Control Rules




Wednesday, March 10, 2010
Wiki Access Control Rules




Wednesday, March 10, 2010
Access Control Policies



Wednesday, March 10, 2010
Access Control Policies

               Standard Policies
               -      Mandatory access control
               -      Discretionary access control
               -      Role-based access control
               Mixing policies
               -      Role-based + discretionary access control
               WebDSL
               -      No restrictions on access control policies

Wednesday, March 10, 2010
Encoding Access Control Policies

               Rules
               -      Who may access which resources?
               -      Who can apply which actions?
               Representation
               -      How are permissions stored?
               Administration
               -      How can permissions be changed?
               -      Who can change permissions?

Wednesday, March 10, 2010
Wiki: Data Model




Wednesday, March 10, 2010
Wiki: User Interface Templates




                                         (abbreviated to navigation structure)
Wednesday, March 10, 2010
Wiki: Generic Access Control Rules




Wednesday, March 10, 2010
Mandatory Access Control


               Security Labels
                      ★ Classification label protects object

                            •   Top Secret, Secret, Confidential, Unclassified
                      ★ Clearance indicates access of subject

               Confidentiality rules
                      ★ Read-down: clearance should be higher than or
                            equal to classification document to read
                      ★ Write-up: clearance is lower than or equal to
                            classification of document to write


Wednesday, March 10, 2010
MAC: representation




Wednesday, March 10, 2010
MAC: predicates




Wednesday, March 10, 2010
Discretionary Access Control



               Access control lists
               -      objects have owner
               -      owner grants, revokes users access to object
               Example: Unix file permissions
               -      read, write, execute permissions for
               -      owner, group, anyone



Wednesday, March 10, 2010
DAC: representation




Wednesday, March 10, 2010
DAC: predicates




Wednesday, March 10, 2010
DAC: administration




Wednesday, March 10, 2010
Role-Based Access Control

               Role: group of activities
               -      authorization assigned to roles
               -      users assigned to roles
               -      robust to organizational changes
               Hierarchical roles
               -      least privilege: use minimal permissions for task
               Separation of duties
               -      critical actions require coordination

Wednesday, March 10, 2010
RBAC: representation




Wednesday, March 10, 2010
RBAC: predicates




Wednesday, March 10, 2010
RBAC: administration




Wednesday, March 10, 2010
Mixing Access Control Policies



               Real policies
               -      Mix of DAC & RBAC
               -      AC rules are constraints over object graph


               WebDSL
               -      No policies built-in



Wednesday, March 10, 2010
Case 2: Access Control Policy for Conference
               Papers
                      ★ has authors

               Authors
                      ★ submit papers, read reviews

               Reviewers
                      ★ write review for paper & discuss papers
                      ★ are anonymous (for authors)

               Conflicts
                      ★ author cannot be reviewer
                      ★ reviewer not related to authors

Wednesday, March 10, 2010
Data Validation


                  Danny M. Groenewegen, Eelco Visser. Integration of Data Validation
                  and User Interface Concerns in a DSL for Web Applications. SLE 2010
Wednesday, March 10, 2010
Data Validation
               Check input & maintain data integrity


               Types of validation
               -      Value well-formedness
               -      Data invariants
               -      Input assertions
               -      Action assertions
               User interface integration
               -      Display errors

Wednesday, March 10, 2010
Validation Rules


                                            data validation



                                                              form validation




                        action assertions                     messages


Wednesday, March 10, 2010
Value Well-Formedness




Wednesday, March 10, 2010
Customizing Value Well-Formedness Rules




Wednesday, March 10, 2010
Data Invariants




Wednesday, March 10, 2010
Data Invariants




Wednesday, March 10, 2010
Data Invariants




Wednesday, March 10, 2010
Data Invariants




Wednesday, March 10, 2010
Input Assertions




Wednesday, March 10, 2010
Action Assertions




Wednesday, March 10, 2010
Customizing Error Messages




Wednesday, March 10, 2010
Workflow

            Zef Hemel, Ruben Verhaaf, Eelco Visser. WebWorkFlow: An Object-Oriented
            Workflow Modeling Language for Web Applications. MoDELS 2008: 113-127

                            Note: WebWorkFlow is not supported by current version of WebDSL
Wednesday, March 10, 2010
Workflow

               Coordinating activities by participants
               WebWorkFlow
               -      object-oriented workflow definition
               -      integrate all aspects of workflow
                      ★ data
                      ★ user interface
                      ★ access control
                      ★ control-flow

               -      abstractions on top of base WebDSL

Wednesday, March 10, 2010
WebWorkFlow by Example: Progress Meeting




Wednesday, March 10, 2010
Wednesday, March 10, 2010
workflow procedure
                                             workflow object




                            procedure call
  process definition


Wednesday, March 10, 2010
parallel




                                       enable next step

       iterate




Wednesday, March 10, 2010
access control




    access control
Wednesday, March 10, 2010
Wednesday, March 10, 2010
Wednesday, March 10, 2010
action




Wednesday, March 10, 2010
no user interface




Wednesday, March 10, 2010
condition




Wednesday, March 10, 2010
Workflow Remarks

               Recursive workflows (see paper)


               Issue: user interface patterns for workflow


               Is workflow an anti-pattern?
               -      is workflow good interaction design?
               -      determine order of user actions
               -      what are alternatives?

Wednesday, March 10, 2010
Search



Wednesday, March 10, 2010
search annotations




                            search queries

Wednesday, March 10, 2010
AJAX

                        Michel Weststrate. Abstractions for Asynchronous
                        User Interfaces in Web Applications.Master's thesis,
                        Delft University of Technology, 2009.

Wednesday, March 10, 2010
AJAX




               Deliver page fragments, not just full pages
               -      Replace page elements by new fragments
               -      Templates are unit of replacement




Wednesday, March 10, 2010
placeholder




                            default view


Wednesday, March 10, 2010
replace




Wednesday, March 10, 2010
Summary

               Access control policies
                      ★ constraints over objects
                      ★ encoding of standard policies (DAC, RBAC)

               Data validation
                      ★ form validation & data integrity

               Workflow
                      ★ coordinating activities of multiple participants

               Search based on data model annotations
               AJAX: accessing page fragments (templates)

Wednesday, March 10, 2010
Schedule
               Lab this week
                      ★ WebDSL application

               Cases
                      ★ Case 2: web abstractions
                      ★ Read: Declarative Access Control for WebDSL
                      ★ Read: Integration of Data Validation and User
                            Interface Concerns
                      ★ Read: WebWorkFlow

               Next
                      ★ Lecture 5: WebDSL implementation strategies
                      ★ Lecture 6 & 7: modeling languages
Wednesday, March 10, 2010

More Related Content

PDF
Comm@baruch
PPTX
Functional programming
PDF
Composing Domain-Specific Languages
PDF
Investment Banking Book (3rd edition)
PPTX
Why Is Excel VBA So Important For Banks ?
PPT
Domain Specific Languages
PDF
Python for Financial Data Analysis with pandas
PPT
Investment Banking presentation
Comm@baruch
Functional programming
Composing Domain-Specific Languages
Investment Banking Book (3rd edition)
Why Is Excel VBA So Important For Banks ?
Domain Specific Languages
Python for Financial Data Analysis with pandas
Investment Banking presentation

Similar to Model-Driven Software Development - Web Abstractions 2 (20)

PDF
Model-Driven Software Development - Web Abstractions 1
PDF
Vertically Challenged
PDF
Portfolio 2007-2009
PDF
Mobile Development with uPortal and Infusion
PDF
Introduction to Web Terminology
PDF
Service Integration - A Web of Things Perspective
PDF
Please Don't Touch the Slow Parts
PPT
An On-line Collaborative Data Management System
PDF
Jung 2010
PDF
Symfony in the Cloud
PPT
Linked Data and the Semantic Web - Mimas Seminar
PDF
The Revolution Of Cloud Computing
PDF
Persistence Smoothie
PDF
Introduction to the Semantic Web
PDF
Web 3.0: The Upcoming Revolution
PDF
Data and Information Extraction on the Web
PPT
Semantic Technologies: Which Way Now? – UKOLN Response
PDF
eLearning2.0
PDF
OvertheAir 2010 html5 impact on application programming
PDF
HTML5 impact on application programming
Model-Driven Software Development - Web Abstractions 1
Vertically Challenged
Portfolio 2007-2009
Mobile Development with uPortal and Infusion
Introduction to Web Terminology
Service Integration - A Web of Things Perspective
Please Don't Touch the Slow Parts
An On-line Collaborative Data Management System
Jung 2010
Symfony in the Cloud
Linked Data and the Semantic Web - Mimas Seminar
The Revolution Of Cloud Computing
Persistence Smoothie
Introduction to the Semantic Web
Web 3.0: The Upcoming Revolution
Data and Information Extraction on the Web
Semantic Technologies: Which Way Now? – UKOLN Response
eLearning2.0
OvertheAir 2010 html5 impact on application programming
HTML5 impact on application programming
Ad

More from Eelco Visser (20)

PDF
CS4200 2019 | Lecture 5 | Transformation by Term Rewriting
PDF
CS4200 2019 | Lecture 4 | Syntactic Services
PDF
CS4200 2019 | Lecture 3 | Parsing
PDF
CS4200 2019 | Lecture 2 | syntax-definition
PDF
CS4200 2019 Lecture 1: Introduction
PDF
A Direct Semantics of Declarative Disambiguation Rules
PDF
Declarative Type System Specification with Statix
PDF
Compiler Construction | Lecture 17 | Beyond Compiler Construction
PDF
Domain Specific Languages for Parallel Graph AnalytiX (PGX)
PDF
Compiler Construction | Lecture 15 | Memory Management
PDF
Compiler Construction | Lecture 14 | Interpreters
PDF
Compiler Construction | Lecture 13 | Code Generation
PDF
Compiler Construction | Lecture 12 | Virtual Machines
PDF
Compiler Construction | Lecture 11 | Monotone Frameworks
PDF
Compiler Construction | Lecture 10 | Data-Flow Analysis
PDF
Compiler Construction | Lecture 9 | Constraint Resolution
PDF
Compiler Construction | Lecture 8 | Type Constraints
PDF
Compiler Construction | Lecture 7 | Type Checking
PDF
Compiler Construction | Lecture 6 | Introduction to Static Analysis
PDF
Compiler Construction | Lecture 5 | Transformation by Term Rewriting
CS4200 2019 | Lecture 5 | Transformation by Term Rewriting
CS4200 2019 | Lecture 4 | Syntactic Services
CS4200 2019 | Lecture 3 | Parsing
CS4200 2019 | Lecture 2 | syntax-definition
CS4200 2019 Lecture 1: Introduction
A Direct Semantics of Declarative Disambiguation Rules
Declarative Type System Specification with Statix
Compiler Construction | Lecture 17 | Beyond Compiler Construction
Domain Specific Languages for Parallel Graph AnalytiX (PGX)
Compiler Construction | Lecture 15 | Memory Management
Compiler Construction | Lecture 14 | Interpreters
Compiler Construction | Lecture 13 | Code Generation
Compiler Construction | Lecture 12 | Virtual Machines
Compiler Construction | Lecture 11 | Monotone Frameworks
Compiler Construction | Lecture 10 | Data-Flow Analysis
Compiler Construction | Lecture 9 | Constraint Resolution
Compiler Construction | Lecture 8 | Type Constraints
Compiler Construction | Lecture 7 | Type Checking
Compiler Construction | Lecture 6 | Introduction to Static Analysis
Compiler Construction | Lecture 5 | Transformation by Term Rewriting
Ad

Recently uploaded (20)

PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PPTX
Institutional Correction lecture only . . .
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PDF
Complications of Minimal Access Surgery at WLH
PDF
Insiders guide to clinical Medicine.pdf
PDF
Pre independence Education in Inndia.pdf
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
VCE English Exam - Section C Student Revision Booklet
PPTX
Cell Types and Its function , kingdom of life
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
102 student loan defaulters named and shamed – Is someone you know on the list?
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
2.FourierTransform-ShortQuestionswithAnswers.pdf
STATICS OF THE RIGID BODIES Hibbelers.pdf
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Module 4: Burden of Disease Tutorial Slides S2 2025
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
Institutional Correction lecture only . . .
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
human mycosis Human fungal infections are called human mycosis..pptx
Complications of Minimal Access Surgery at WLH
Insiders guide to clinical Medicine.pdf
Pre independence Education in Inndia.pdf
Final Presentation General Medicine 03-08-2024.pptx
VCE English Exam - Section C Student Revision Booklet
Cell Types and Its function , kingdom of life
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...

Model-Driven Software Development - Web Abstractions 2

  • 1. Web Abstractions 1I access control policies, data validation, workflow, ajax, search Lecture 4 Course IN4308 Eelco Visser Master Computer Science http://eelcovisser.org Delft University of Technology Wednesday, March 10, 2010
  • 2. Modeling Modeling IDEs Software Systems Modeling Transforming Web Programs Software Models Implementing Software Language Web Models Engineering Strategies Modeling Make your own Software Languages Software Languages Wednesday, March 10, 2010
  • 3. Web Abstractions from a declarative point of view (we’ll investigate underlying mechanisms later) Wednesday, March 10, 2010
  • 4. More Web Abstractions - Access control policies ★ constraints over objects ★ role-based AC, discretionary AC - Data validation ★ form validation ★ data integrity - Workflow - Search - AJAX: accessing page fragments (templates) Wednesday, March 10, 2010
  • 5. Access Control Danny M. Groenewegen, Eelco Visser. Declarative Access Control for WebDSL: Combining Language Integration and Separation of Concerns. ICWE 2008: 175-188 Wednesday, March 10, 2010
  • 6. Case 2: Access Control Policy for Conference Papers ★ has authors Authors ★ submit papers, read reviews Reviewers ★ write review for paper & discuss papers ★ are anonymous (for authors) Conflicts ★ author cannot be reviewer ★ reviewer not related to authors Wednesday, March 10, 2010
  • 7. Access Control Mechanisms Wednesday, March 10, 2010
  • 8. WebDSL Access Control Constraints over data model - boolean expression over properties of objects Rules restrict access to resources - page, template, action Infer restriction of navigation - don’t show link to inaccessible page or forbidden action Wednesday, March 10, 2010
  • 9. Principal representation of principal turn on access control Wednesday, March 10, 2010
  • 10. Access Control Rules ‘may access page f with argument x if boolean expression e is true’ Wednesday, March 10, 2010
  • 11. Wiki Access Control Rules ‘anyone can view existing pages, only logged in users can create pages’ ‘only logged in users may edit pages’ Wednesday, March 10, 2010
  • 12. Wiki Access Control Rules Wednesday, March 10, 2010
  • 13. Wiki Access Control Rules Wednesday, March 10, 2010
  • 14. Wiki Access Control Rules Wednesday, March 10, 2010
  • 15. Wiki Access Control Rules Wednesday, March 10, 2010
  • 17. Access Control Policies Standard Policies - Mandatory access control - Discretionary access control - Role-based access control Mixing policies - Role-based + discretionary access control WebDSL - No restrictions on access control policies Wednesday, March 10, 2010
  • 18. Encoding Access Control Policies Rules - Who may access which resources? - Who can apply which actions? Representation - How are permissions stored? Administration - How can permissions be changed? - Who can change permissions? Wednesday, March 10, 2010
  • 19. Wiki: Data Model Wednesday, March 10, 2010
  • 20. Wiki: User Interface Templates (abbreviated to navigation structure) Wednesday, March 10, 2010
  • 21. Wiki: Generic Access Control Rules Wednesday, March 10, 2010
  • 22. Mandatory Access Control Security Labels ★ Classification label protects object • Top Secret, Secret, Confidential, Unclassified ★ Clearance indicates access of subject Confidentiality rules ★ Read-down: clearance should be higher than or equal to classification document to read ★ Write-up: clearance is lower than or equal to classification of document to write Wednesday, March 10, 2010
  • 25. Discretionary Access Control Access control lists - objects have owner - owner grants, revokes users access to object Example: Unix file permissions - read, write, execute permissions for - owner, group, anyone Wednesday, March 10, 2010
  • 29. Role-Based Access Control Role: group of activities - authorization assigned to roles - users assigned to roles - robust to organizational changes Hierarchical roles - least privilege: use minimal permissions for task Separation of duties - critical actions require coordination Wednesday, March 10, 2010
  • 33. Mixing Access Control Policies Real policies - Mix of DAC & RBAC - AC rules are constraints over object graph WebDSL - No policies built-in Wednesday, March 10, 2010
  • 34. Case 2: Access Control Policy for Conference Papers ★ has authors Authors ★ submit papers, read reviews Reviewers ★ write review for paper & discuss papers ★ are anonymous (for authors) Conflicts ★ author cannot be reviewer ★ reviewer not related to authors Wednesday, March 10, 2010
  • 35. Data Validation Danny M. Groenewegen, Eelco Visser. Integration of Data Validation and User Interface Concerns in a DSL for Web Applications. SLE 2010 Wednesday, March 10, 2010
  • 36. Data Validation Check input & maintain data integrity Types of validation - Value well-formedness - Data invariants - Input assertions - Action assertions User interface integration - Display errors Wednesday, March 10, 2010
  • 37. Validation Rules data validation form validation action assertions messages Wednesday, March 10, 2010
  • 39. Customizing Value Well-Formedness Rules Wednesday, March 10, 2010
  • 47. Workflow Zef Hemel, Ruben Verhaaf, Eelco Visser. WebWorkFlow: An Object-Oriented Workflow Modeling Language for Web Applications. MoDELS 2008: 113-127 Note: WebWorkFlow is not supported by current version of WebDSL Wednesday, March 10, 2010
  • 48. Workflow Coordinating activities by participants WebWorkFlow - object-oriented workflow definition - integrate all aspects of workflow ★ data ★ user interface ★ access control ★ control-flow - abstractions on top of base WebDSL Wednesday, March 10, 2010
  • 49. WebWorkFlow by Example: Progress Meeting Wednesday, March 10, 2010
  • 51. workflow procedure workflow object procedure call process definition Wednesday, March 10, 2010
  • 52. parallel enable next step iterate Wednesday, March 10, 2010
  • 53. access control access control Wednesday, March 10, 2010
  • 59. Workflow Remarks Recursive workflows (see paper) Issue: user interface patterns for workflow Is workflow an anti-pattern? - is workflow good interaction design? - determine order of user actions - what are alternatives? Wednesday, March 10, 2010
  • 61. search annotations search queries Wednesday, March 10, 2010
  • 62. AJAX Michel Weststrate. Abstractions for Asynchronous User Interfaces in Web Applications.Master's thesis, Delft University of Technology, 2009. Wednesday, March 10, 2010
  • 63. AJAX Deliver page fragments, not just full pages - Replace page elements by new fragments - Templates are unit of replacement Wednesday, March 10, 2010
  • 64. placeholder default view Wednesday, March 10, 2010
  • 66. Summary Access control policies ★ constraints over objects ★ encoding of standard policies (DAC, RBAC) Data validation ★ form validation & data integrity Workflow ★ coordinating activities of multiple participants Search based on data model annotations AJAX: accessing page fragments (templates) Wednesday, March 10, 2010
  • 67. Schedule Lab this week ★ WebDSL application Cases ★ Case 2: web abstractions ★ Read: Declarative Access Control for WebDSL ★ Read: Integration of Data Validation and User Interface Concerns ★ Read: WebWorkFlow Next ★ Lecture 5: WebDSL implementation strategies ★ Lecture 6 & 7: modeling languages Wednesday, March 10, 2010