540 likes | 677 Views
Designing Multi-Role, Collaborative Web Sites with WebML The Conference Management System Case Study. S. Ceri, P. Fraternali, M. Matera, A. Maurino DEI - Politecnico di Milano [ceri, fraterna, matera, maurino]@elet.polimi.it. Presentation outline. Overview of the WebML model
E N D
Designing Multi-Role, Collaborative Web Sites with WebML The Conference Management System Case Study S. Ceri, P. Fraternali, M. Matera, A. Maurino DEI - Politecnico di Milano [ceri, fraterna, matera, maurino]@elet.polimi.it
Presentation outline • Overview of the WebML model • Case study solution & demo
Requirements for Web modeling • Expressiveness • Real-life cases should be expressible • Frequently used design patterns should be captured • Ease of use • Intuitive notation • Clear semantics • Consistency checks • Implementability • Efficient mapping to physical data structures • Flexible code generation from behavioral specifications
The WebML layers • WebML: a conceptual language for high-level design of data-intensive web sites • WebML Layers: • Structure: data organization • Derivation: redundant data definition • Composition: definition of pages as sets of elementary publishing units • Navigation: definition of links between units and between pages • Presentation: positioning of the units in the page and definition of graphical appearance
Preview of WebML concepts Site = Structure + Composition + Navigation + Presentation entities,relationships units, pages,links site views styles navigation + composition structure user models presentation
Structure model • A simplified Entity-Relationship model • Only binary relationships • No attributes on relationships • IS-A hierarchies • Typed attributes in entities
Derivation • Derivation queries allows designers: • To augment the content of an entity by adding extra attributes, either imported or calculated from existing information • To define the population of entities or of relationships, based on some property of the involved objects • Derivation queries are expressed through WebML OQL (Object Query Language) • automatically transformed into SQL views installed in the database • A wizard is available in WebML CC - users are not required to write WebML OQL queries
Derived entities • The population of sub-entities in ISA hierarchies • Example: “All the ‘accepted’ papers” is expressed in WebML OQL as “Paper(as SuperEntity) where SuperEntity.FinalStatus= 'accepted‘ “
FinalGrade AvgGrade Derived attributes • Extra attributes can be added to an entity, by defining a query that computes them • Four types of derivation: • Constant attributes • Imported attributes • Aggregated attributes • Calculated attributes • Example: The attribute AvgGrade in Paper is calculated as “avg(Self.Paper2Review.FinalGrade)”
Track2Paper Track2AcceptedPaper Derived relationships • Relationships can be derived in two ways: • by subsetting and/or concatenating existing relationships • by matching pairs of objects by means of a condition • Example: “Self.Track2Paper(as Var1) where Var1.FinalStatus = 'accepted’ “ • Variable Self denotes the instance of the source entity of the relationship
Hypertext model • Content units: atomic units that specify how to publish information described in the structural schema • Pages: abstractions of the pages actually delivered to the user (e.g. an HTML page) - structured containers of units and links • Links: connects units and pages, so that to define the hypertext
Index of Papers All Papers Paper Title:XXX Abstract:xxxyyyxx xxxxxxxxx • paper1 • paper2 • paper3 Search Papers Browse Papers • Title 1/12 5/12: go to Content units DATA UNIT INDEX UNIT MULTIDATA UNIT FILTER UNIT SCROLLER UNIT • Each unit has a master object • an entity or a relationship role
Track Track2Paper Index of Subjects Index of Tracks Navigation - Links • Semantics of a link: • Moving from one place to another • Carrying information from one place to another (navigation context) • Activating a computation (side effect) • Contextual links • Between units • Context transported • Non-contextual links • Between pages • No context transported
Which papers in a track? What about a paper? Example of contextual link Track Paper Track2Paper Track Title: XXX Description:YYY Paper Title: Paper1 Abstract: xxxxxxxx xxxxxyyyxxxyyxxx Papers in YYY • Paper1 • Paper2 • Paper3
Site Views • Site view = Set of pages forming a global view of the site • One site view per user group, access device, etc. • A page marked as “Home” • Landmark pages: globally visible page within a site view (NC-link implicitly defined from every other page in the site view) • Consistency checks: criteria for validity of hypertext (e.g., topology constraints, computability of nodes) PageX H L
The Write Access Problem • From read-only navigation to content management operations (e.g., e-commerce trolley, personal profile creation and updating, ecc.) • WebML offers: • A data entryunit • A set of operation units for: • Built-in content management operations (creation, update, and deletion of new entities and relationships) • Genericexternal operations
From other units for preloading some fields To other units for subsequent use • Outgoing link, for shipping content to other units • Incoming link, for receiving the context from other units - preloading some fields (OPTIONAL) DataEntry Unit • Specifies data input by user • It contains fields to insert data (in, out, inout) • It can be translated into HTML using the <form> tag and the associated submit button
Operation Units • Invoke built-in database operations or generic external operations implemented in un-modelled server side code • Input from one or more incoming links (one is declared as operation-activating) • Two types of output links: • OK link: followed if the operation is successful • KO link: followed if the operation fails
Built-in Operations • A set of frequently used built-in operations to manage the Web site content • Traditional database operations, predefined in the WebML tool suite: • create, delete, and modify entities • create and drop relationships
field1 attribute1 Identifier of the new object field2 attribute2 field1 attribute1 Identifier of the modified object field2 attribute2 Identifier of the object to modify Nothing Identifier of the object to delete In/out flow: create, modify, delete
In/out flow: connect Identifier of first object to connect Identifier of the first object Identifier of second object to connect The master object is a relationship role: e.g., Paper2Track
In/out flow: disconnect Identifier of first object to disconnect Identifier of the first object Identifier of second object to disconnect The master object is a relationship role: e.g., Paper2Track
field1 username field2 password Generic Operation: Login • It is a particular case of “entry unit + operation” pattern • The entry unit typically feeds the user credentials to the subsequent operation (username, password) • Operation failure leads automatically to the home page of the everyone site view • Operation success leads to the home page of the unique enabled site view
Personalization • Personalization has three facets: • Access control: login/logout operations for user identification • Site view assignement: based on the group(s) a user belongs to, some site views are accessible (1 site view per group) • Page personalization: user or group dependent content
User/Group metaphor • Each User can belong to one or more Groups (predefined entities in the structural model) • In a given time, each group can have one associated site-views (attribute of the Group entity) • Each site view can be associated to more groups siteview
Site view access • One group is predefined (everyone) • Users belonging to this group are not required to login – they access only one site view, including unprotected content (the “everyone” site view) • Other site views can be accessed only after login (“secured” site views) • These site views obviously include Login and Logout operations
After login the data unit on user is bound to “my” identity, thus the index shows “my” papers Page personalization • Personalization can be achieved as a result of appropriate structure design submission • Hypertext can reflect structure, thus providing personalization
Presentation Design • An elementary unit positioning mechanism • Gallery of default presentation styles applicable to site views or single pages • each presentation style is an XSL stylesheet
data schema meta data Pagetemplates Previewof architecture Legacy content Site and Presentation Design Conceptualize Site Mapping WebML schemas Map content content Generateapplication deploy Commercial engine Templategenerator run
Design Patterns, Skeletons and Frameworks Refined Structure Model Refined Site View WebML core design process Structure Model Skeleton Structure Model Skeleton Refined Structure Model Mockup and Textual Specs Mockup and textual specs Running Prototype Running Prototype Site View Skeleton Site View Skeleton Refined Site View Population & Presentation default Population & Presentation default
The Conference Management System The project Structure schema Derivation Site view schema A demo
Identifying users’ roles (1) • PC chair • Creates the conference • Creates the PC members • Assigns papers for review • Decides the final paper evaluation • Modifies the conference status • PC Members • Express their preference about subjects and tracks • Express their preference about papers • Indicate conflicts of interest • Create new reviewers and assign papers • Enter paper reviews • Discuss with the PC Chair about the final evaluation
Identifying users’ roles (2) • Authors • Submit papers • Create coauthors • Reviewers • Enter paper reviews • Non registered users • Access the preliminary program, at the end of the conference life cycle
Step2:Paper submission Step3:Paper bidding Step4:Assignement Step6:Final discussion Step5:Review Step7:Acceptance notification The conference lifecycle Step1:Set up • Authors submit papers • PC Memeber express preferences • PC chair and PC members discuss about reviews; • PC chair assigns the final evaluation PC chair (the only authorized user) creates the conference and the PC members • All users see the preliminary Program; • Authors see the review results PC members express preferences about papers PC chair assigns papers to PC members PC members create reviewers and enter reviews
Basic structure schema User_Group User_Preference User_Review User_Subject User_Track User_Submits_Paper User_Reviews_Papers Explicit_Conflict Paper_Track Paper_Preference Paper_Coauthor Paper_Subject
Basic structure schema NoOfSubmittedReviews MaxGrade MinGrade AvgGrade
Hypertext • Basic idea • 5 user’s groups • 7 conference status • 11 site views, obtained by associating user groups to some conference status • Change in the conference status Change in the association between site views and groups
Conference phase/user role PC chair PC Member Author Reviewer (non PC member) Non registered user 1.Conference set-up PC chair SV -- -- -- Everyone - login 2.Paper submission PC chair SV PCM subjects & tracks Author-submission open -- Everyone - register 3.Bidding PC chair SV PCM-bid Everyone- login suspended -- Everyone – login 4.Paper assignment PC chair SV Login suspended Login suspended -- Everyone – login 5.Paper Review PC chair SV PCM-insert review Author-submission close Reviewer-insert review Everyone – login Site views
Final discussion Conference phase/user role PC chair SV PC chair PCM-final discussion PC Member Author-submission close Author Reviewer (non PC member) Login suspended Non registered user Everyone – login 2.Acceptance notification PC chair SV Login suspended Login suspended Login suspended Everyone-conference program Site views (cont.)
Review assignment (1) To the Assign reviewer page To the Assign paper page
Evolution of status • A ralational trigger changes the access right • It is activated when conference satus attribute changes • A number of update instructions change the association between siteviews and groups • When the conference status is in the bidding phase the trigger assigns to PC members a list of papers • papers are assigned to a track, or to a set of subjects preferred by the PC member. • the grade of interest for these papers is initally 0 • PC member can modify this grade or s/he can raise an explicit conflict of interest about a specified paper
Derivation • Example of derived relationship • PcMember_NoConflicutalPaper (it shows for a given PC member the list of all the papers so that: • The PC member doesn’t work in the same organization of the paper author; • The PC member doesn’t work in the same organization of any of the paper co-authors; • The PC member does not show any explicit conflict with the paper; • The PC member has not been already designated as a reviewer for the paper. • Self to Paper (as M2U) WHERESelf.affiliation <> M2U.User_Submits_Paper.affiliation ANDSelf.affiliation NOT IN ( M2U.Paper_Coauthor.Affiliation ) ANDSelf.Oid NOT IN (M2U.Explicit_Conflict.UserOid) ANDSelf.Oid NOT IN (Self.M2U.User_Reviewer_Papers.UserOid)
A few data about implementation • Number of site views:11 • Number of JSP pages:148 • Number of relational tables:16 • Dimension of the generated JSP code (Kbytes):~ 950 • Number of relational views for derived data:56 • Number of JSP page templates manually retouched: 2 • Number of SQL views manually retouched:6