Your SlideShare is downloading. ×
WebML and WebRatio
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

WebML and WebRatio


Published on

Seminar given at Politecnico di Bari, November 2010

Seminar given at Politecnico di Bari, November 2010

Published in: Technology
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. WebML Designing data-, service- and process-intensive applications with WebML Bari, November 24, 2010 Marco Brambilla Politecnico di Milano and Web Models Srl
  • 2. 2 WebML Agenda  WebML models and concepts  Advanced topics: Web services, BPM, Ajax  WebRatio 6 BPM  Industrial cases
  • 3. WebML WebML models and concepts Marco Brambilla marcobrambi marcobrambi
  • 4. 4 WebML Advantages of Modeling approach A rigorous modeling approach:  Can reduce development efforts (cost and time)  Allows a more structured development process  Produces more usable and coherent final results  Design models are self-documenting and always up-to-date projects Immediate prototyping can be achieved
  • 5. 5 WebML Target of WebML  Target: data intensive Web sites • large amount of data • interfaces directed to general public  exploratory  browsing-oriented  personalized (1 to 1) • volatile content, structure, navigation, presentation  WebML is not the right approach for: • Small Web sites (Homepages, …) • Static Web sites
  • 6. 6 WebML The WebML models  WebML: a conceptual language for high-level design of data- intensive web sites  Models: • Content: data organization • Derivation: redundant data definition • Composition: definition of site pages as set of subpages and elementary publishing units • Navigation: definition of links between pages and between units • Presentation: positioning of the units in the page and definition of graphical appearance
  • 7. 7 WebML Preview of WebML concepts  Site = Content + Composition + Navigation + Presentation content navigation + composition presentationuser models entities, relationships units, pages, links site views styles
  • 9. 9 WebML Data Model  Simplified Entity-Relationship model • Binary relationships between entities • IS-A hierarchies • Simple typed attributes in entities • Derivation model can be applied for redundant data Book Author Genre BestSeller
  • 10. 10 WebML WebML OCL  Derivation consist of writing expressions called “derivation queries”  Queries can be expressed using WebML OCL  Derivable concepts: • Entities, relationships, attributes  Derivation queries can be automatically transformed into SQl views installed in the database
  • 11. 11 WebML Example: derived attributes  Attributes of an entity can be derived by associating to them a query.  Four types of derived attributes: • Constant attribute: affiliation: “Politecnico di Milano” • Imported attributes: maritalName: Self.husband.lastname • Aggregate attributes: reservation#: count(Self.reservation) • Calculated attributes: lastPrice: Self.price*discount  The Self keyword identifies the current entity in which the attribute is defined
  • 12. 12 WebML Hypertext Model • Q1: what information is published in the hypertext nodes? • Q2: how are the hypertext nodes connected? • Q3: how is the hypertext divided into pages served to the user? • A1: content units (Composition) • A2: links (Navigation) • A3: pages (Composition)
  • 13. 13 WebML Composition: examples of Content Units DATAUNIT INDEXUNIT content content To publish information about A SINGLE object (e.g. AuthorDetail) To publish a list of objects (e.g. IndexOfAuthors)
  • 14. 14 WebML Composition: examples of Unit rendering DATAUNIT INDEXUNIT Author first name:XXX last name:YYY photo: Index of Authors •S. Ceri •P. Fraternali •O.Versand Author Author
  • 15. 15 WebML DATAUNIT INDEXUNIT MULTIDATAUNIT ENTRYUNIT SCROLLERUNIT entity [Selector] Content: • instances of an entity Basic Content Units entity [Selector] entity [Selector] entity [Selector] MULTICHOICE entity [Selector] Selector: • set of conditions HIERARCHICAL entity [Selector]
  • 16. 16 WebML DATAUNIT INDEXUNIT MULTIDATAUNIT ENTRYUNIT SCROLLERUNIT Meaning of Content Units Author first name:XXX last name:YYY photo: Index of Authors •S. Ceri •P. Fraternali •O.Versand All Authors Browse Authors 5/12: go to    1/12 Insert Your Data •Fname •Lname MULTICHOICE Choose Authors Ceri Fraternali Versand HIERARCHICAL Books&Authors 1. Web Applicat. Ceri Fraternali 2. Systems Tannenbaum
  • 17. 17 WebML Content Units  A WebML unit is the atomic information publishing element  It is a “view” defined upon a container of objects: • All the instances of an entity • Instances of an Entity that meet a selection condition called selector unitX container
  • 18. 18 WebML Unit input and output  A unit may need some “context” to be computed  Each unit exposes input and output parameters  Input is required to compute the unit itself • Parameters pre-defined for the unit + • Other parameters required by the selector of the unit  Output can be used to compute other unit(s) depending on the current unit unitX entity [selector (par 1, .., parN)] IN OUT
  • 19. 19 WebML Navigation: contextual links • A contextual link is an oriented connection between two units (source unit and target unit), normally rendered by means of anchors or submit buttons • Purpose of a contextual link: •Allowing the user to move from one place to another •Transporting information from one place to another •Activating a computation (side effect) AuthorAuthor source unit target unit
  • 20. 20 WebML Author first name:James last name:Joyce photo: Author [OID=p1] Book [author2book(p2)] Book [OID=p3] Book Title:Ulysses Price:23$ Cover: Which author’s books? Which book? Books of YYY •Ulysses •The Dubliners •Portrait... Example of links p1 p2 p3
  • 21. 21 WebML Automatic Links •An automatic link passes some default context to the destination unit immediately after the display of the source unit, without the user intervention •Subsequently, the user can change the passed context by choosing a different object, using the anchor(s) representing the link AuthorAuthor source unit target unitA
  • 22. 22 WebML Transport Links Author Book [Author2Book] •A transport link has a default context that is passed to the target unit immediately after the display of the source unit, without the user intervention •The user cannot change the default context and therefore the link is not rendered with an anchor source unit target unit
  • 23. 23 WebML Pages  A page is a container of one or more pieces of information shown to the user at the same time  Nesting of pages is allowed: a page can have sub-pages  The user navigates a site made of pages LoginBook Index Catalog
  • 24. 24 WebML Non contextual links  A non contextual link is a link between pages  No context (information) is transported  The user can browse from a page to another one via an anchor (e.g., >>Books) HomePage Book Index
  • 25. 25 WebML Home Page  The Home Page is the main page of a site  It is the first page of the site that the user should see  Each siteview must contain a page marked as “Home” HomePage H Book Index
  • 26. 26 WebML Landmark pages  Landmark pages: globally visible pages. The user can jump to them from everywhere in the site view  It is equivalent to a non contextual link implicitly defined from every other page in the site view to the landmark page Authors Books L Book Details Store Page Authors Books Book Details Store Page
  • 27. 27 WebML Areas /Modules  An area/module is a set of logically homogeneous pages  Examples of areas: • Sections of a portal: Sport, Music, Technology, … • Elements of a data-management system: Products management, News management, …  Areas can be nested, so that sub-areas can be defined inside areas  Each area should have a DEFAULT PAGE or a DEFAULT SUB- AREA, to give a meaning to landmark areas and non- contextual links pointing to areas Area
  • 28. 28 WebML Site Views  A siteview is a set of pages and/or areas forming a coherent view of the site  Multiple site views can be defined on the same data model  Different site views can be published for different types of users and for different types of output devices  Site views can be • Public: everyone can enter • Private: access control with password protection is enforced
  • 29. 29 WebML Operation Unit  Models a generic external operation, or a built-in content manipulation operation  Input from one or more incoming links (at least one is declared as normal link, the others as transport links)  Two kinds of output links • OK link if the operation completes correctly • KO link if the operation fails  The predefined WebML units can be enriched by adding custom external operations (e.g. SendMail, …)
  • 30. 30 WebML Built-in Operations Delete Unit Entity Create Unit Entity Modify Unit Entity CREATE DELETE MODIFY Disconnect Unit relationship Connect Unit relationship CONNECT DISCONNECT
  • 31. 31 WebML In/out flows Create Unit Entity value1 attribute1 value2  attribute2 OID of the new object KO OK Nothing Value2  attribute1 value1  attribute2 Identifier(s) of the modified object(s) Modify Unit Entity KO OK Identifier(s) of the object(s) to modify OIDs of objects to modify
  • 32. 32 WebML In/out flow: delete Nothing OIDs of the object(s) to delete Delete Unit Entity KO OK OIDs of the object(s) to delete Albums DeleteAlbum Album DeletionError OK KO NotDeleted Album DeletionError NOT DELETED All the way 1999 Let's talk... 1997 Sing-a-long 1998 Albums DELETE ALBUMS OK KO All the way Born in the USA Imagine Let's talk ... Sing-a-long Anthology Bridges to Babylon Del AlbumIndex Album Albums DELETE ALBUMS Imagine Anthology Bridges to Babylon Del Example:
  • 33. 33 WebML Example ReviewPage ° Beatles * Dion ° Prince One of the most romantic and expressive artists of the nineties. Result First name: Celine Last name: Dion OK KO ARTISTSNEW REVIEW ARTIST ReviewPage Rev iew NewReview AllArtists Artist AssignReview ArtistToRev iew [Artist.OID = Art ] [Rev iew.OID = Rev ] Rev : OID Art:OID Result Artist [OID = Art] ArtistDetails Art: Artist.OID OK Rev : Rev iew.OID KO Rev iew [OID=Rev ] ReviewDetails Rev : Rev iew.OID Select an artist to assign the review: Review : One of the most romantic and expressive artists of the nineties. REVIEW
  • 34. 34 WebML Context Parameters  WebML Context Parameters allow to achieve this goal in a simple way  Designer defines one or more Context parameters.  A context parameter is defined by: • Name • ID • Duration (User session or Application) • Value type: can be either:  A Printable value (integer, string, …)  An Entity (thus, the parameter can assume an OID value of that entity) • Starting value [optional]
  • 35. 35 WebML Set unit  Unit that allows to SET the value of a parameter  It is always placed outside a Page  It has only an incoming link (carrying the value to be assigned to the parameter)  It has not outgoing links Value/OID ParamName
  • 36. 36 WebML Get unit  Unit that allows to RETRIEVE the value of a parameter  It is always placed inside a Page  It has only an outgoing link (carrying the value retrieved from the parameter)  It has not incoming links  The retrieved value can be used in any compatible unit Value/OID ParamName
  • 37. 37 WebML Example NewsPage[L] CountrySelectionPage [L] CountryIndex Country Country CountryData LocalNews News [Country2News] SetCountry CurrCountry Country CountryData GetCountry CurrCountry ProductPage [L] Country CountryData LocalProducts Product [Country2Product]
  • 38. 38 WebML Personalization  Personalization has three facets: • Access control: login/logout operations for user recognition • Site view assignement: based on the group a user belong, some site views are accessible (1 or more site view per Group) • Page personalization: user or group dependent content
  • 39. 39 WebML User / Group model  Each User can belong to one or more Groups (predefined entities in the structural model)  Each user has one default Group  Each group has one associated Siteview User Group1:N 1:N 1:1 1:N Module 1:N 1:1 user2group user2defaultGroup
  • 40. 40 WebML Login/ Logout  A site-view may contain a page allowing users to login  Each secured site-view should allow users to logout  Dynamic Role Changing (i.e. group) allowed Entry Unit Login Logout ChangeGroup
  • 41. 41 WebML Page personalization (User)  Personalization can be achieved as a result of appropriate structure design reservation userslot •Hypertext can reflect structure, and thus provide personalization After login UserCtxParam is bound to “my” identity, thus the index shows “my” reservationsentity:user rel:reservation Personal Reservations UserCtxParam
  • 42. 42 WebML Presentation  Presentation dealt with along two lines: • Gallery of default presentation styles applicable to site views or single pages (with elementary unit positioning on a grid)  each presentation style is an XSL stylesheet • Compatibility with best selling tools for presentation editing, for advanced page design
  • 43. 43 WebML 1.2.e Style guidelines specification Page grid: Content positioning:Content positioning:Graphical guidelines:
  • 44. WebML Web Services Marco Brambilla marcobrambi marcobrambi
  • 45. 45 WebML Web services architecture Service Integration Service Discovery Service Publication Service Description XML -based Messaging Transport BPEL4WS IBM, Microsoft & BEA WCSI Sun BPML WSFL IBM XLANG Microsoft UDDI UDDI WSDL W3C SOAP W3C XML W3C HTTP W3C
  • 46. 46 WebML WebML support for web services  Goal: modeling the interaction between the Web application, the human users, and the remote systems  New modeling primitives are required: • primitives for handling the various classes of service operations  Run-time support for Web services • Ability of exchanging messages • Integration of application data and Web services XML messages • Support for conversations
  • 47. 47 WebML Actual implementation within the tool  Web Service invocations  Web service publishing
  • 48. 48 WebML DEMO: the mediator at work  Receive PO  Obtain CustomerId  Create Order  Send Lines  Close Order
  • 49. WebML BPM Marco Brambilla marcobrambi marcobrambi
  • 50. 50 WebML Model-driven Development Process  Manual specification of (extended) BPMN process model  Automatic transformation of BPMN to WebML  Possible manual refinement of WebML models  Automatic running code generation on J2EE platform 50
  • 51. 51 WebML What is BPM?  Business Process Modeling aims at defining enterprise businesses in a (semi)formal way • More to come in future courses  BPMN is flow-chart based notation for defining Business Processes  The current version is 1.2, with a major revision process for 2.0 in progress  Covers three different levels of process modeling: • Process Maps – simple flow charts of the activities • Process Descriptions – flow charts extended with additional information, but not enough to fully define actual performance • Process Models – flow charts extended with enough information so that the process can be analyzed, simulated, and/or executed
  • 52. 52 WebML Basic concepts  Small set of graphical elements to make it easy for business users as well as developers to understand the flow and the process.  Four basic categories of elements compose a business process diagram (BPD): • Flow Objects  Events, Activities, Gateways • Connecting Objects  Sequence Flow, Message Flow, Association • Swimlanes  Pool, Lane • Artifacts (Artefacts)  Data Object, Group, Annotation • It is also allowed to make a custom type of a Flow Object or an Artifact to make the diagram more understandable.
  • 53. 53 WebML Pool and lanes  A Pool: • represents a Participant in the Process. A Participant can be a specific business entity (e.g., a company) or can be a more general business role (e.g., a buyer, seller, or manufacturer)  A Lane: • Is a sub-partition within a Pool • Is used to organize and categorize activities within a Pool. • Is often used for such things as internal roles (e.g., Manager, Associate), systems (e.g., an enterprise application), an internal department (e.g., shipping, finance)
  • 54. 54 WebML Sequence flow  A Sequence Flow is used to show the order that activities will be performed in a Process  The source and target must be one of the following objects: • Events • Activities • Gateways  A Sequence Flow cannot cross a Sub-Process boundary or a Pool boundary
  • 55. 55 WebML BPMN  WebML transformation  Transformation rules • finer-grained Application Model, needing few refinements by the designer  typed activities enables reusable application models  data dependencies are specified at a higher level • less errors in Application Model design • Faster development 55 (1) One control siteview per pool: Human interaction(2) One control serviceview per pool: WS Choreography(3) One site view per lane: user navigation(4) One site view per lane: business logics of activities and gateways(4) One site view per lane: business logics of activities and gateways(5) Orchestration view: a controller component invokes the activities
  • 56. 56 WebML Process Metadata Run-Time Log Actors Data Model
  • 57. 57 WebML The NEXT unit • The Next unit encapsulates the process control logic • It exploits the information stored in the Process Metadata • It calculates the current process status and the enabled state transitions • It needs the following input parameters: – caseID (the currently executed process instance ID) – activityInstanceID (the current activity instance ID) – conditionParameters (the values to evaluate the conditions) 57 NEXT
  • 58. 58 WebML Next Unit
  • 59. WebML AJAX support Marco Brambilla marcobrambi marcobrambi
  • 60. 60 WebML Conceptual modeling of AJAX features  WebML currently covers a limited set of AJAX features • Major revision foreseen  Partial page refresh  Popup windows
  • 61. 61 WebML Conceptual modeling of AJAX features  Dynamic tooltips  Drag and drop
  • 62. WebML WebRatio 6 BPM Marco Brambilla marcobrambi marcobrambi
  • 63. 63 WebML WebRatio 6 BPM  WebRatio 6 BPM permits you to: • Model and Document your processes • Execute and Validate your processes by instantly prototyping • Developing, Improving and Refining your processes and create a complete Web application
  • 64. 64 WebML Automatic Generation of the Appl.  Starting from the models and rules defined in the previous steps, WebRatio is able to automatically generate the final application. The result is: • standard and open Java Web application, no proprietary runtime • deployable on any Java Application Server IBM WebSphere Caucho Resin Apache Tomcat Oracle Application Server JBoss Application Server Process layer Service layer Presentation layer Data layer Integration layer Standard Java Web application Visual identity Business layer
  • 65. 65 WebML When to use WebRatio  1. Business Process Automation “stand-alone”  2. Especially: custom Web application with integrated BPM describing the core company functions, such as: • Web Front-End for a legacy information system (ERP) • Other enterprise IS such as CRM, Ticketing, HR, ... • Web portal with CMS • E-Business solutions in B2C or B2B scenarios 65
  • 66. 66 WebML WebRatio functionalities  Content model design  Business proces model design  Data derivation (Derivation Wizard)  Hypertext model design (siteviews)  Consistency checks (warnings)  Mapping onto a datasource  Units positioning in the pages  Automatic web site generation  Integration of advanced features (BPM, Web services, AJAX)
  • 67. WebML Industrial cases Marco Brambilla Politecnico di Milano and Web Models Srl
  • 68. 68 WebML Acer Euro CMS  B2C + CMS Web applications initially for 14 EU countries (year 2000)  Corporate news, Product technical & commercial data, Service & Partner area, Where to Buy…  Multilingual, multi-actor, distributed workflows for local and central PMs, local and central MarCom managers  ... and a: very limited Time to Market (7 weeks!!)
  • 69. 69 WebML Size & effort DEGREE OF AUTOMATION Number of manually written SQL statements 17(SQL constraints) Percentage of automatically generated SQL code 96% Number of manually written/adapted Java classes /JSP templates 10% JSP templates manually adapted Percentage of automatically generated Java and JSP code 90% JSP templates, 100% Java classes COST AND ROI Total cost of software development of first version 75.000 € HW, SW licenses, and connectivity cost of first version 70.000 € (db server license) Return on investment of first version 12-15 months Average effort of extension to one additional country 0,5 staff-months Average cost of extension to one additional country 7.500 € Average ROI of extension to one additional country 2 months PRODUCTIVITY Number of function points 177 (B2C web site) + 612 (CMS) = 789 Average number of function points delivered per staff-month 131,5
  • 70. 70 WebML Critical Considerations (continued)  On the negative side.. • Acer estimates that it took from 4 to 6 months to have fully productive developers with MDD, WebML, and WebRatio.  ..but.. • The initial investment in human capital required by MDD pays off in the mid term  MDD benefits testing, maintenance, and evolution (which account for over 60% of the total lifecycle cost)  reasoning on the system is far more effective at the conceptual level Served Contries and Applications 4 4 4 5 5 17 24 32 41 56 17 21 24 28 31 0 10 20 30 40 50 60 2001 2002 2003 2004 2005 Year Units Number of developers Number of maintained applications Number of served countries
  • 71. 71 WebML Major European bank – large BPM case  The pilot application for the first country (planned to be extended to 10 more) covers • 52 business processes • 1,100 activities • 30 user roles. • Application load of 300 registered users, with 100,000 cases / 2 MLN activities per month  The development team comprised • 14 staff members from three organizations • total effort amounting to 2551 man days, spent in 375 elapsed days
  • 72. 72 WebML Major European bank – large BPM case  Distribution of effort: • 12% for business process analysis and re-engineering, • 6% for BP modeling according to BPMN, • 12% for wrapping existing legacy procedures as services accessible through SOA and BP orchestration, • 5% for designing the support interfaces for the BPM • 55% for the design and refinement of the application models that implement the logic of the activities • 10% for the design of collateral application for increasing usability and employee productivity (data look-ups, etc).  Central role played by the detailed application design  Main benefits were • Rapid prototyping, thanks to which 4 major prototypes and 35 minor releases • Support of teamwork, which allowed 14 contributors from 3 different organization to work together
  • 73. 73 WebML References and useful links  WebML Site (  Audio lessons  Teaching materials (slides)  Solved exercises and examples  Research papers  WebRatio Site (  Download of the tool  WebRatio GoogleGroup (  WebRatio Official Wiki (  Getting started  Specific technical articles • BPMN Official Site ( • My research blog (
  • 74. 74 WebML Thanks  For comments or questions: Marco Brambilla Politecnico di Milano Dipartimento di Elettronica e Informazione