WebML and WebRatio - Business process modeling (BPM) and web application modeling

Preview:

DESCRIPTION

Seminar on WebML and WebRatio BPM at Ecole des Mines de Nantes, 2010. Business process modeling and automatic web application generation with a commercial and free toolsuite that exploits SOA, Java, and web service orchestration. For more details see: http://www.webml.org http://dbgroup.como.polimi.it/mbrambil Find an audio-video tutorial on webml here: http://dbgroup.como.polimi.it/brambilla/webml See a demonstration video here: http://www.youtube.com/watch?v=jRS1LTazxFk

Citation preview

WebML

Designing data-, service- and process-intensive

applications with WebML

EMN, Nantes, May 12, 2010

Marco Brambilla

Politecnico di Milano and Web Models Srl

http://home.dei.polimi.it/mbrambil http://twitter.com/MarcoBrambi

http://www.slideshare.net/mbrambil

2marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Agenda

WebML models and concepts WebML development process Advanced topics: Web services, BPM, Ajax WebRatio 6 BPM Industrial cases

WebML

WebML models and concepts

Marco Brambilla

Politecnico di Milano and Web Models Srl

4marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Perceived Needs 1:

lack of model-driven development

Data-intensive Web site design today is founded on methodologies stolen from different sectors (DB, software eng., …)

Lack of model-driven support of data-intensive Web Sites• Navigation equal to database structure• Lot of hand-written code

Big efforts are requested even for prototyping

5marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Perceived Needs 2:

increase of sites complexity

Some factors increase complexity of modern Web sites:• Multi-device output (PC, PDA, WAP phones, 3rd gen phones, Digital TV,

videotext)• One-to-one delivery (myYahoo, myCDNOW,…)

These requirements impact on cost of:• site development • site evolution

6marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Perceived Needs 3:

shortage of IT & art personnel

Need to rise the level of abstraction Available skills can address analysis and high-level design

instead of huge time-wasting manual coding of ASP pages

IT technicians can focus on optimization and performance analysis

Art people can focus on “creation”

7marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Advantages of Modeling approachA 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

projectsImmediate prototyping can be achieved

8marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

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

9marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

WebML purpose WebML aims at providing a structured approach to the design

of Data-intensive Web sites A set of integrated Models should help designers in high-

quality Web sites production All the facets of Web design should be addressed Use of old or uncoherent methodologies becomes deprecated

10marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

11marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

12marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Preview of WebML concepts Site = Content + Composition + Navigation + Presentation

contentnavigation +composition

presentationuser models

entities,relationships

units, pages,links

site views styles

13marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Structure Model (1) Q: what are the objects published in the site and how they

are related?

A: • Entity: an object type in the application domain• Attribute: scalar property of an entity• Relationship: A connection between entities• IS-A hierarchy: classification and grouping

Compatible with Entity-Relationship and UML class diagrams

14marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Structure Model (2) Simplified Entity-Relationship model

• Binary relationships between entities• IS-A hierarchies• Simple typed

attributes in entities• Derivation model

can be applied forredundant data

Book

Author Genre

BestSeller

15marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Relationship cardinality Relationship Book_Review

– book2review minCard: 0 maxCard: N– review2book minCard: 1 maxCard: 1

ReviewBook 0..N

1..1

It reads: a book may have zero or more reviews, a review deals with one and only one book

16marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Cardinality: comment Cardinality constraints of relationships are important,

because• They make the structure schema more readable and expressive• They can influence the design of the phisical structure of the content

repository (e.g., the schema of the online database of the site)

17marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Multi-valued attribute A multi-value attribute is an attribute for which an object may

have a set of values (e.g., a person may have set of addresses) Multi-valued attributes are represented by means of an entity

plus a relationship Example: a person has a set of addresses

AddressValue:string

Person 1..N

1..1

NOTE: the “address” entity is a “weak” entity, it cannot exist independently of the associated “person” object

18marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Structured attributes A structured attribute is an attribute with an internal structure (e.g., an

address may consist of several fields, like civic number, street, city, province, state, etc..)

Structured attributes are represented by means of an entity plus a relationship

Example: a person has one or more addresses, each address consisting of number, street, city, province, state

Address

NumberStreetCityProvinceState

Person 1..N

1..1

NOTE: the “address” entity is a “weak” entity, it cannot exist independently of the associated “person” object

MODEL

19marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Relationship with attributes A relationship with attributes is a description of a property

that refers to a pairs (more generallly to sets) of objects (e.g., the grade taken by a student in a course)

Relationship with attributes are represented by an entity and two (more generally, several) relationships

GradeValue:integer

Student 0..N

1..1

Course1..1

0..N

NOTE: the “grade” entity is a “weak” entity, it cannot exist independently of the associate objects

MODEL

20marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

N-ary Relationship A N-ary relationship is a relationship involving more than two

entities (N>2) N-ary relationships are represented by an entity plus N binary

relationships Example: a supplier supplies a part to a department

Supplier 0..N

1..1

Department1..1

0..N

Part

1..10..N

Supply

MODEL

21marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Structure patterns Structure pattern: typical structure design solution, found

very frequently in real Web sites

Patterns can be combined and used together to achieve complete information access

TECHNIQUES

22marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Structure Patterns Network skeleton:

Star skeleton:

Entity2Entity1

Entity3

Entity2

Entity1

Entity3

Entity2Entity5

Entity4 Entity3

Entity1

• Hierarchy skeleton:

23marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

1. Hierarchy Pattern

A categorization hierarchy User can browse the hierarchy from top to bottom (and back) Often used in e-commerce applications

Entity2

Entity1

Entity3

SubCat

Category

ProductE

-cat

alog

24marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

2. Star Pattern

A main object can be recognized A set of informative elements are related to the object User can jump from main object to information pages and

back

Entity2Entity5

Entity4 Entity3

Entity1

StyleWarranty

BigImg TechData

Item

Acm

e ca

se

25marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

3. Network Pattern

A set of elements to be published All at the same level of importance Every object has detailed description User can browse from an object to the related ones

Entity2Entity1

Entity3

TechSolution

ProductTe

ch-s

uppo

rt

site

26marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Pattern combination Real web sites are much more complex Many problems

can be solvedusing patternscombinedtogether

TechSolution

SubCat

Category

Product

Brand

Country

SolCat TechCat

Object3Object2

SubCatA1

CatA1

Object1

SubCatB1

CatB1

Category2 Category3

Network pattern

Hierarchy pattern1

Hierarchy pattern2

Hierarchy pattern

Hierarchy pattern

27marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Derivation Objectives Derivation is a modelling phase that makes it possible:

• To augment the content of an entity by adding attributes, either imported or calculated from related objects.

• To define the population of entities or of relationships, based on some property of the involved objects.

28marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

29marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Derived entities Sub-Entities population in ISA hierarchies can be specified by

means of OQL queries “A free slot is a slot having 0 reservations” WebML OQL: “SuperEntity where count(reservation)=0”

freeSlot

slotISA

30marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

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

31marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Imported attribute Import a piece of external information into an entity

femalemalehusband

lastname maritalName

32marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Calculated attributes Total price of order as sum of price of order lines

Derivation rules:OL.TotalPrice = Self.Price * Self.QuantityOrder.TotalPrice = Sum (Self.Order2OL.TotalPrice)Order.NumLines = Count (Self.Order2OL)

OrderOLOL2Order

price, qty

33marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Derived relationships Relationships can be derived by a WebOQL query in two

ways: • by subsetting and/or concatenating existing relationships• by matching pairs of objects by means of a condition

Variable Self denotes the instance of the source entity of the relationship

34marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Derived relationships: subsetting Subsetting existing relationships:

AlbumArtist

Artist2Album

Artist2RecentAlbum

35marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Derived relationships: concatenation Concatenating existing relationship:

ArtistAlbum

CompilationArtistSongAlbum

Song SongArtist

36marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Derived relationships: matching pairs User2Favorites relates User to all the Articles whose category

appears in the set of the preferred categories in the user profile.

User2Favorites

Category

User2Preference

ArticleUser

User2Article

37marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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)

38marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Composition: examples of Content UnitsDATAUNIT

INDEXUNIT

content

content

To publish information about A SINGLE object(e.g. AuthorDetail)

To publish a list of objects (e.g. IndexOfAuthors)

39marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

40marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

• Q1: what is the experience of the site that the user can achieve?

• Q2: how is the hypertext divided into pages served to users?• Q3: what information is published in the hypertext nodes? • Q4: how are the hypertext nodes connected?

• A1: siteviews • A2: pages • A3: content units • A4: links

Hypertext Model: questions

41marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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]

42marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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 Fraternali2. Systems Tannenbaum

43marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

44marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

45marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

46marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

47marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Link Parameters

Book[Author2Book(param)]

• Context is transported through links using link parameters• A link parameter is defined by:

• Name• Source: one of the output parameters of the source unit• Target: one of the input parameters of the target unit

Author

param

48marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Default Link Parameters

AuthorBook[Author2Book]

• Whenever possible, link parameters are inferred from the diagram and need not be explicitly specified

• Diagrams become simpler and more readable• Example:

49marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Defaults for selectors

• Whenever possible, selectors and their parameters are inferred from the diagram and need not be explicitly specified

• Example:

Author Book[author2book]

Book

50marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

51marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Transport Links

AuthorBook[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

52marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Examples No input links and no

selector: wrong unit!

Input parameter: OID of a connected object: the related object is shown

EntityB[Relationship(A2B)]

A.oid B.oid

EntityB

EntityB[B.attr = param1]

param1 B.oidInput parameter: value to be used in the selector: the matching object is shown

p1

53marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Examples No input links: all objects

shown

Input parameter: OID of the source object of the relationship role, all related object are shownEntityB

[Relationship(A2B)]

sourceOID (A)

selOID (B)

EntityB

selOID(B)

EntityB[B.attr = Param1]

Param1 selOID (B)

Input parameter: value to be compared with the attribute, matching objects shown

54marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

MultiDataUnit

• Multidata units• Present multiple instances of an entity (SET OF OBJECTS)

• The container is an entity with (optional) selector• Input parameters requested for the computation of the selector:

• Values for attribute comparisons• OID of participants to relationships

• Output parameter:• The set of OIDs of the published objects

Entity[Selector(params)]

params {OIDs}

55marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

MultiData vs. Index MultiData or Indexes?

• Indexes can be used as access mechanism to shown detailed information about one object

• Multidata Units publish information about many objects at time The difference is in the output parameter:

• Indexes output the OID of one selected object• Multidata units output the OIDs of all the displayed objects

56marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Entry Unit Unit for describing input forms that allow information

submission by the user Content is shipped to other units via outgoing links (normally

one), using link parameters Typically translated into HTML using the <form> tag and the

associated submit button

params

57marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Entry Fields and Selection Fields Entry units contains two types of widgets for data entry:

• Fields to insert new value• Selection fields to select a value from a list

Fields have properties: • Preloading (of an existing value in the field)• Modifiability (Y/N)• Visibility (hidden/shown)• Data type (string, integer, text, etc..)• Input validation rules

58marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Preloaded Fields A field can be preloaded with value(s)

• Field slots allow the concatenation of multiple values in the same field• Slots can contain dynamic values taken from the database or static values

defined in the model

Selection fields need to be preloaded with a set of instances (possibly with multiple slots per instance)

The user chooses an instance among them

EntryUnitS1 S2 S3PersonField

AddrFieldArtist

FirstName PF.S1 LastName PF.S2 NickName PF.S3

Resulting field Bruce Springsteen “the boss”PersonField

59marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Multichoice Unit Multichoice units:

• Publish indexes of elements (SET OF OBJECTS) among which the user to select one or more elements (with checkboxes)

The container is an Entity (with optional selector & pre-selector)• Input parameters:

Those requested for the computation of the selectors (values for attribute comparisons and OID of participants to relationships)

• Output parameters: OIDs of the objects checked by the user

Preselector: allows one to define a sub-set of elements as pre-checked (before any user interaction)

Entity[Selector(params)][Preselector(params)]

params {selOIDs}

60marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Examples No input links: all objects shown, no pre-checked elements

Pre-selector: all objects shown, pre-checked elements related to A

EntityB[PRE:Relationship(A2B)]

sourceOID (A)

{selOIDs} (B)

EntityB

{selOIDs}(B)

EntityB[Relationship(A2B)]

sourceOID (A) {selOIDs} (B)

Selector: only elements related to A shown, no pre-checked elements

Atzeni Ceri Fraternali Versand

Ceri Fraternali

Atzeni Ceri Fraternali Versand

61marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Hierarchical Unit Hierarchical units:

• Publish an index of elements, with entries organized hierarchically using entities connected by relationships

• Allow the user to select one element from any level of the hierarchy The container is a set of entities and connecting relationships (with

optianl selectors at all levels)• Input param: requested for the computation of the selectors :

Values for attribute comparisons OID of partecipants to relationships

• Output parameter: OID of the object selected by the user

{ Entity (Relationship)

[Selector]}

params {selOIDs}

62marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Hierarchical Unit outgoing links

Each link is rendered as an anchor at the proper level of the hierarchy

The level where the link is placed depends on the type of the link parameter(s)

EntityA[selector1]EntityB (A2B)[selector2]EntityC (B2C)[selector3]

Param

AParamBParB,ParC

• Tables link a• Kitchen link b

• Korla KJD54 link c• Chairs link a

• Stools link b• Roy LKR34 link c• OddVar JSQ87 link c

• Office link b• Jess RLT45 link c

link a

link b

link c

CategorySubCategory(Cat2SubCat)Product(SubCat2Prod)

EntityA

EntityB

EntityC

63marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

ScrollerUnitScroller units: Add browsing capabilities to a set of objects

• Publish links to the first, previous, next, last object of the set• Used in conjunction with data, index and multidata units• Number of scrolled objects = block factor• Input: values for attribute comparisons, OID of participants to a

relationship• Output: the set of OIDs (possibly 1) of the current block of objects

Always placed in the same page as another content unit that publish the current (block of) object(s)

Entity[Selector(params)]

params {selOIDs}

64marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Scroller + data unit The entity is the same for the scroller and the data unit It is possible to access the data unit also from another page

and the scroller is automatically syncronized

ArtistArtist

65marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Scroller + index Paging the result of a search

AlbumAlbum [Title contains t]

[Year > y]

t,y

66marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

67marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

68marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

69marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

70marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Areas An area 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

71marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

72marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Acme site view modeling Two site views on the same data model

• Customer: public, for customers• Admin: private, for the administrators and content managers

73marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Acme customer site view Purpose: define the customer experience of the site Structure:

• Two main areas: products and combinations• Other landmark pages: home, stores

Customer

Product area

Store Page

Combination area

Home Page

L L

H,L L

74marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Combination areaProduct area

ACME page modeling Q: what “main” pages do I need in the site?

Home, Products, Combinations, Stores

AcmeHome

L

HProducts

LCombinations

L

Stores

L

Q: what other pages do I need?Product detail, Combination detail, ByPrice, BigImages,..

BigImages

Product Page

CombinationDetailBy price

75marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

ACME: HomePage

76marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

ACME product page

77marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

ACME combination page

78marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Navigation Model: Links

entity:author

Book[ author2book ]

• Semantics of a link: 1. Moving from one place to another2. Transporting information from one place to another

(navigation context)3. Activating a computation (side effect)

AuthorID is transported

79marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Composition: PagesA Page is a structured container of units and links

• Possibly structured in and/or sub-pages• Abstraction of screen, frame, card, deck...• Permits one to cluster related information for more efficient

communication

E.g.:

AuthorAuthor

The index of authors and the selected author are shown together in the same page

80marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Types of links Contextual links

• Between units• Context transported

Non-contextual links• Between pages• No context transported

Voyages Books

81marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Integrating backend business logic Example of web sites using back-end/remote services:

• Reservation Web site: create a reservation, undo a reservation, overwrite a reservation..

• Other examples: content management, e-commerce trolley management, update of personal profile ..

How can we model the invocation of back end operations, e.g., the update of content by the user?

Response:• Embedding operation calls into the hypertext

82marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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, …)

83marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Built-in Operations WebML predefines a set of frequently used built-in

operations to manage a site’s content They are the traditional database operations: create, delete,

modify, create relationship, delete relationship Users do not need to define the behaviour and the

implementation; they are provided off-the-shelf in the model

84marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Built-in Operations

Delete Unit

Entity

Create Unit

Entity

Modify Unit

Entity

CREATE DELETE MODIFY

Disconnect Unit

relationship

Connect Unit

relationship

CONNECT DISCONNECT

85marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

86marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

In/out flow: delete

NothingOIDs 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 way1999

Let's talk...1997

Sing-a-long

1998

Albums

DELETE ALBUMS

OK

KO

All the way

Born in the USA

ImagineLet's talk ...Sing-a-long

Anthology

Bridges to Babylon

Del

AlbumIndex

Album

Albums

DELETE ALBUMS

Imagine

AnthologyBridges to Babylon

Del

Example:

87marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

In/out flow: connect Note: if the any of the input parameters is a set of OIDs, the operation is

applied to each element of the set The disconnect operation is similar

Identifiers of theconnected objects

OIDs of source object(s)to connect

OIDs of destination object(s)to connect

KO

OK

Identifiers of theobjects to connect

Connect Unit

relationship role

88marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Example

Rev iewPage

° Beatles

* Dion

° Prince

One of the mostromantic andexpressive artistsof the nineties.

Result

First name:CelineLast 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.OIDKO

Rev iew[OID=Rev ]

ReviewDetails

Rev : Rev iew.OID

Select an artist toassign the review: Review :

One of the mostromantic andexpressive artistsof the nineties.

REVIEW

89marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Example/2Artist&AlbumsPage

Artist

ArtistDetails

PublishedAlbums

Album[ArtistToAlbum]

Album

AlbumDetails

AlbumDisconnect

AlbumToArtist

OK

KO

Artist&Albums

Celine Dion

° All the way

° Let's talk...

° Sing-a-long

° These are...

ALBUMS

Artist&Albums

Celine Dion

° All the way

° Let's talk...

* Sing-a-long

° These are...

ALBUMS DETAILS

Sing-a-long

1999

Press OK

to removeOK

Artist&Albums

Celine Dion

° All the way

° Let's talk...

° These are...

ALBUMS

OK

KO

90marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Siteviews A Siteview is a set of pages that the user can experience as a

whole Web site Different site views can be defined for different devices and

different groups of users Thus, access control and multi-devices delivery is achieved

91marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Using global information It is often necessary to:

• Set a parameter value (e.g. the country or language preferred by a user)

• Use this value globally in all the pages the site view, without carrying it explicitly along links

Solution• Use global parameters stored in the session• Provide means for setting/getting their value

92marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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]

93marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

94marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

95marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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]

96marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Personalization and access control In reserved Web sites commitment wants:

• One or more public pages readable from anyone• A set of private page accessed only after login, which contains personal

content and personal services• Personalization in terms of delivered pages (which pages user can

access) and delivered content (which content user needs/can see)

97marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

98marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

User / Group metaphor Each User can belong to one or more Groups (predefined

entities in the structural model) Each user has one default Group Each Group can contain one or more User and can be the

default Group for many Users

User Group1:N 1:N

1:1 1:N

user2group

user2defaultGroup

99marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

Module1:N1:1

user2group

user2defaultGroup

100marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Anonymous access One group is predefined (everyone) Users belonging to this group need not login, but access only

unprotected site views, which has unprotected content (the “everyone” site views)

Other site views can be accessed only after login (secured site views)

101marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

102marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Login for multi-role users If a user belongs to more than one group, at login time he is

considered as member of his defaultGroup

Thus, once the user is logged, the current values of User and Group are always identified

UsernamePassword

Login

johnlee

*********** User: johnleeGroup: johnleeDefaultGroup

Login

103marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

CurrentUser and CurrentGroup Each WebML project has two predefined

global parameters:• CurrentUser: the OID of the currently logged User• CurrentGroup: the OID of the Group of the

currently logged user Login and Logout operations automatically set

/ unset these two parameters

104marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Page personalization (user-level)Personalization can be achieved with appropriate data design

preferenceuserarticles

After login CurrentUser is identified, thus the index shows user’s preferred articles

• Hypertext can reflect structure, and thus provide personalization

user article[preference]

Recommendations

CurrentUser

105marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Trolley management

TrolleyPage

User

CurrentUser

Trolley[UserToTrolley]

TrolleyData

DeleteOrderLine

OrderLine

L

OrderLines

GetUser

CurrentUserOK

Album:Album.OID

Artist:Artist.OID

to Artist Page

to Album Page

OrderLine[TrolleyToOrderLine]

NEST Support[OrderLineToSupport]

NEST Album[SupportToAlbum]

NESTArtist[AlbumToArtist]

KO

106marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Page personalization (User) Personalization can be achieved as a result of appropriate

structure design

reservationuserslot

• 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

107marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Page personalization (Group) Personalization can be achieved also at group level (because a

siteview can serve more groups)

User Group

interesting

AuthorBook

Category

Category relation:c2aGroup relation:g2c

Preferred categories Authors

GroupCtxPar

108marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

WebML

WebML development process

Marco Brambilla

Politecnico di Milano and Web Models Srl

110marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Development process

Business Requirements

HYPERTEXT DESIGN

DATA DESIGN

ARCHITECTURE DESIGN

REQUIREMENTS SPECIFICATION

IMPLEMENTATIONTESTING & EVALUATION

MAINTAINANCE & EVOLUTION

111marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

1. Requirements specifications IN: business requirements OUT: user-oriented, easy-to-understand, precise specification Two main sucb-activities:

• 1. Requirements collection: general picture of the application domain and of the solution, by interviewing players and reviewing existing documentation

• 2. Requirements analysis: revision and formalization of the collected requirements

Output is useful for• Designers: understand what the application must do• Stakeholders: validate the adherence of the specifications to the

business requirements

112marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

1.1. Requirements collectionUnstructured activity of information gathering: Users identification: clustering of users in groups Functional requirements: identification of the processes that are

supported by the application (through use-cases or scenarios) Data req.: identification of the data that should be managed by the

application (core concepts) Personalization req.: formalization of need of different content and

services to different individuals, based on preferences and access rights Device-specific req.: for multi-device applications Non-functional req.: usability, performance, availability, scalability,

security, mantainability

113marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

1.1. Non-functional requirements Usability: ease of use of the application Performance: efficiency with which the application exploits

the available resources, in terms of throughput (the number of requests that can be served per unit of time) and response time

Availability: tolerated frequency of errors and failures Scalability: ability of increasing the performance of the

application in response to the increase of the volume of requests

Security: protection of integrity, confidentiality and privacy of information, authentication of the users, protection of the information flowing between the users and the application

Mantainability: ease of repairing application errors and adapting the Web application to changed or new requirements

114marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

1.2 Requirement analysis Revision and formalization of the collected requirements,

producing in output a set of semi-formal specifications, typically in terms of:

a. Group specificationb. Use-case specificationc. Data dictionary specificationd. Site view specificatione. Style guidelines specificationf. Acceptance tests specification

115marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

1.2.a Group specificationClustering of users into groups (formally described)

Corporate

SupervisorMar-Commanager

Admin

GroupsHierarchy:

Product News.Objects - content mgmt mode:

Product and Product News.Objects - read mode:

“Login”, “Add a news item”, “Modify a news item”, “Delete a news item”, “Add a news category”, “Modify a news category”, “Delete a news category”, "Modify profile data".

Relevant use cases:

None.Sub-groups:

Corporate.Super-group:

First name, last name, email, office address.Profile data are provided explicitly by the user.

Profile data:

marketing and communication personnel inserting, modifying, and deleting mkt materials.

Description:

Mar-Com ManagerGroup name:GroupDescription:

116marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

1.2.b Use-case specificationFormal description of units of interaction with the application by

users of a given group (e.g., thru tables or UML diagrams)

1. Use cases list for a user (use case diagram)

Mar-Com Manager

Add a newscategory

LoginAdd a newsitem

Modify a newsitem

Remove anews item

Remove anews category

Modify a newscategory

117marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

2. Single use case specification (table or activity diagram)

1.2.b Use-case specification

Initial Request Send Form

User Application Server Database

Input Credentials Accept Credentials Verify Credentials

Select Home Page Elaborate Page

Default Home Page ListIndex of Home Pages

Serve Request

Receive Home Page

The following steps must be performed:1. The user receives an input form asking for

username and password;2. The user inputs his credentials;3. If the credentials are correct, the user is

authenticated, the list of groups the user belongs to is determined, and the list of names and URLs of the home pages of the site view of such groups is displayed to user;

4. The user chooses one entry from the list, and enters into the selected site view.

Workflow

The user successfully logs into the application and accesses the site view corresponding to one of his groups.

Post-condition

A user that belongs to multiple groups is registered. For each group, the site view serving the requirements of the group members is defined.

Pre-condition

To express how users with more than one role access the functions of the applications.

Purpose

Login of user belonging to multiple groupsTitle

118marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

1.2.c Data dictionary specification List of the main information objects identified during data

requirements collection Each entry can be specified by:

• Name• Synonyms• Description• Sample instances• Properties• Relationships• Components• Super-concept• Sub-concepts

NewsItem

Piece of news

A corporate or product piece of news

TravelMate 610 launched, 20th June 01

Title, Body, Image, Date, …

NewsToProduct

None

None

Highlighted news

119marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

1.2.d Site view specification (site map) IN: list of user groups, list of use cases, data dictionary OUT: list of needed site views, specified by:

• Name• Description• Target User Groups• Implemented use cases• Site view map: a table illustrating the different areas that compose the

site view. Each area is specified by: Area Name Area Description Accessed/Managed Objects Priority level

120marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

1.2.d Site view specification example

HighNewsCategory NewsItem

In the default page, the user accesses the list of countries for which he is content manager and selects a country to administer. In the News Category page, the user accesses the list of news categories for the selected country. Here, the user can perform content management functions over news categories, according to the use cases “Add a news category”, “Edit a news category”, “Remove a news category”. Otherwise, he can select one category, and access the list of the available news items in the selected category. In the News page, the user can perform content management functions over a selected news item according to the use cases “Add a news item”, “Edit a news item”, “Remove a news item”.

News Content Management

PriorityObjectsArea DescriptionArea Name

Site View Map

“Login”, “Add a news category”, “Edit a news category”, “Remove a news category”, “Add a news item”, “Edit a news item”, “Remove a news item”.

Use Cases

Mar-Com ManagersUser Groups

Includes the pages through which the Mar-Com Managers will access content management functions, for inserting or updating content about news categories and news items.

Description

News Content ManagementSite View

121marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

1.2.e Style guidelines specificationRules for the presentation of pages: Specification of standard page grids: rows, columns and cells

arrangement Content positioning specification: banners, logo, menus

positioning Graphical guidelines: rules for graphic items like fonts, colors,

borders and margins Device-specific and browser-specific guidelines

Example: Mock-ups: sample representations of a few typical application pages (for a specific device and rendition language)

122marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

1.2.e Style guidelines specificationPage grid:

Content positioning:Content positioning:Graphical guidelines:

123marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

1.2.e Acceptance tests specificationFormalization into a plan of acceptance tests of non-functional requirements about:

performanceavailabilityscalabilitysecuritymaintainability

124marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

2. Data design 2.1. Core subschema 2.2. Access subschema 2.3. Interconnection subschema 2.4. Personalization subschema

125marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

2. Data Design IN: data dictionary, site map, functional requirements, user requirements OUT: formal Data model (E-R schema) Data design:

• clarifies application requirements • feedbacks hypertext design• can be influenced by pre-existing data schemas (possibly not designed

for hypertextual applications) Two different situations can be faced:

• data store does not exist and must be designed together with the Web application

• content managed by the Web application already exists (totally or in part) and is managed by some data repository

126marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

2. Data Design: entities classification (1)

Core objects: • the essential assets managed by the application• form the backbone of the Entity-Relationships schema• may require more than a single entity to be represented (due to

complex properties and components) • core sub-schemas are sets of entities correlated by relationships,

collectively representing one core concept Interconnection objects:

• the semantic associations between core concepts • are used to construct links and indexes for navigation• consist of E-R relationships

127marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

2. Data Design: entities classification (2)

Access objects: • are auxiliary objects used to classify or specialize the core objects, with

the purpose of facilitating access by means of: categorization over the core objects more precise keyword-based search mechanisms collections of most representative objects

• are mapped into entities, connected to the core entities. • access sub-schemas: the same core object may be categorized or

specialized in different ways Personalization objects:

• the properties of the user, needed for personalization • entities may be used to model user profile data and the

groups in which users are clustered• relationships (ownership, preference,…) may connect

user and group to the applicative entities

128marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

2. Data Design: entities classification (3)

CoreEntity1 CoreEntity2

User

Group

Accesssub-schema

Personalization sub-schema

Connection sub-schema

Coresub-schema

129marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

2.1. Core subschema Core entity identification: from data dictionary and the other

requirements

Detailed design of core subschema: attributes, components and relationships

NewsItem Product

NewsItem

HeadlineSubHeadlineDateTextDatePlaceOnlineDateCutoffDatePDFPDFNameBodyImageHighlightedSummary

Product

NameDescriptionShortDescriptionLongImageSmallImageNormalImageLargePDFBrochureFlashPresentationPDFCertificateNotesGIFTechSpecsBrochureThumbnailAvailability

Logo

NameImage

Award

NameDateLogo

Benefit

DescriptionDescriptionLong

TechSpecItem

DescriptionHighlighted

ProductConfiguration

ModelNamePartNumberDescriptionPrice

0:N

1:1

0:N

1:1

0:N

0:N

1:1 0:N

1:1

0:N

130marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

2.2. Access subschema From use cases and usability issues, different access mechanisms can be

designed

NewsCategory

Name

NewsItem

HighlightedNewsItem

0:N

1:1

ProductGroup

NamePriceList

ProductBrand

NameDescription

Product

0:N

1:1

0:N

1:1

Country

NameEnglishNameIsocodeCharset

1:10:N

1:1

0:N

131marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

2.3. Interconnection subschema Semantic connections between core subschema objects are defined

NewsItem

HeadlineSubHeadlineDateTextDatePlaceOnlineDateCutoffDatePDFPDFNameBodyImageHighlightedSummary

Product

NameDescriptionShortDescriptionLongImageSmallImageNormalImageLargePDFBrochureFlashPresentationPDFCertificateNotesGIFTechSpecsBrochureThumbnailAvailability

Logo

NameImage

Award

NameDateLogo

Benefit

DescriptionDescriptionLong

TechSpecItem

DescriptionHighlighted

ProductConfiguration

ModelNamePartNumberDescriptionPrice

0:N

1:1

0:N

1:1

0:N

0:N

1:1 0:N

1:1

0:N

0:N

0:N

0:N

0:N

HighlightedNewsItem

132marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

2.4. Personalization subschema Registered users profile and access management information

Country

NameEnglishNameIsocodeCharsetAbsoluteURLKeywords

ProductGroup

NamePriceList

NewsCategory

Name

0:N

1:1

0:N

1:1

User

UsernamePasswordEmailFirstNameLastNamePhoneAddress

Group

GroupName

SiteView

SiteViewName

DefaultGroup

1:1 1:N

1:N 1:N 1:1

1:N

0:N 0:N

Groups

133marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

3. Hypertext design 3.1. Coarse design 3.2. Detailed design

134marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

3. Hypertext Design IN: data schema, site map, functional requirements, user

requirements OUT: WebML hypertext schema

Two design steps:1. Coarse design 2. Detailed design

135marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

3.1. Coarse Design (1)a) Identification of areas,

by re-examining the functional requirements and the site map (division of the application into modules)

b) Area visibility definition:• default area, if it is accessed by default when its enclosing

site view is accessed. • landmark area, when it is globally accessible from any

other area within the Web site. • internal area, when it is visible only by means of explicit

links

136marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

3.1. Coarse Design (2)c) Specification of content:

• Core hypertextsCore(CoreEntity,Component1,…,ComponentN)

• Access hypertextsAccess(CoreEntity,AccessEntity1,…,AccessEntityN)

• Interconnection hypertextsInterconnection(Role1,…,RoleN)

• Personalization hypertexts• Content management hypertexts

Create&Connect(Entity1,Role1, .., RoleN) Modify(Entity1) Delete(Entity1) Connect(Role1), Disconnect(Role1) Set(ContextInformation)

137marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

3.1. Coarse Design (3)

• Site view definition example:

Create&Connect (News,NewsToNewsCategory)

Set (NewsCategory)

News_ContentManagement Area

Delete (News)

Modify (News)

Access (News, NewsCategory)

L

138marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

3.2. Detailed Design (1)a) Page identification:

• Division of an area into pages• Each page is assigned a portion of the content and

functions of the enclosing areab) Page visibility:

• Home page: presented by default when the user accesses the site view

• Default page: presented by default when the area is accessed

• Landmark page: globally reachable from all the other pages in the same enclosing module (site view or area)

• Internal page: implement subordinate content

139marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

3.2. Detailed Design (2) Example: News_ContentManagement Area

News_Modification Page

Modify (News)

News_Create Page

Create&Connect (News, NewsToNewsCategory)

NewsAccess&DeletionPage

Access (News, NewsCategory)Set (NewsCategory)Delete (News)

D

L

140marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

3.2. Detailed Design (3)c) Page specification:

• Detailed specification of units and links necessary to deliver the content and services established in the coarse hypertext design

• Exploit some typical hypertext sub-schemas, which are hypertext design patterns

A core sub-schema An interconnection sub-schema An access sub-schema The personalization sub-schema

141marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

access sub-schemaexample

BrandsPage

GetCountry

CountryParamCountry

CurrentCountry

ChangeCountry

Country

to Home Page

ProductGroups

ProductGroup[CountryToProductGroup]

ProductGroup

ProductGroup

to ProductPage to ProductPage

from GroupsPage

SetGroup

GroupParam

ProductsFull

ProductBrand[ProductGroupToProductBrand]

NEST Product[ProductBrandToProduct]

ProductsShort

ProductBrand[ProductGroupToProductBrand]

NEST Product[ProductBrandToProduct]

Product.OIDProduct.OID

142marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

coresub-schemaexample

ProductPage

GetCountry

CountryParam

Country

CurrentCountry

ProductGroups

ProductGroup[CountryToProductGroup]

Product[ProductBrandToProduct]

Product

GetGroup

GroupParam

to BrandsPage

fromProductsFull

index inBrandsPage

fromProductsShort

index inBrandsPage

ChangeCountry

Country

to Home Page

Products

ProductBrand[ProductGroupToProductBrand]

NEST Product[ProductBrandToProduct]

Product.OID

to TechSpecs Page

Logos

Logo[ProductToLogo]

Benefits

Benefit[ProductToBenefit]

Configurations

ProductConfiguration[ProductToProductConfiguration]

Awards

Award[ProductToAward]

WebML

Advanced topics: Web Services

Marco Brambilla

Politecnico di Milano and Web Models Srl

144marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Web services architecture

Service Integration

Service Discovery

Service Publication

Service Description

XML - based Messaging

Transport

BPEL4WS IBM, Microsoft & BEAWCSI SunBPML BPMI.org WSFL IBMXLANG Microsoft

UDDI UDDI.org

UDDI UDDI.org

WSDL W3C

SOAP W3CXML W3C

HTTP W3C

145marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Service integration layer Choreography or collaboration layer Describes the interaction of services within a process Business processes are essential to build complex applications

over the message-based paradigm.

Example: BPEL4WS An implementation language: it allows to define new Web

services as composition of existing ones The composed service is described by means of WSDL, just as

any other Web service The process specification describes how the composed

service plugs into the global process

146marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Application scenario Ski Portal stores touristic info on resorts and slopes plus

name/address of hotels• Reservations are done through the HMS web services• Payment is done through the PS web services• The HMS also delivers auxiliary services usable by the Ski Portal (e.g.,

hotel news, event notifications, user comment management)

Hotel management system (HMS)

Web serviceoperations

HTTP

HTTP

• Resorts• Ski slopes • Hotels• Clients • Reservations

Web appl.

Ski portal

Payment system (PS)

147marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Types of interactions (as from WSDL) Central component of a web service: operation = 1 or 2 msg

Ski portal Web application HMS

Get room offers requestRoom offer response

One-way subscription to hotel news

Concert tickets solicit

Hotel news notification

Concert tickets response

• Request-response• Solicit-response• Notification• One-way

148marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Synchronous vs. asynchronous Two-message operations may be used

• Synchronously: no action is taken between 1st and 2nd messg and the sender waits

• Asynchronously: action is performed between the messages, the sender does not wait

Ski portal

Get room offer requestRoom offer response

Make comment requestComment response

Concert tickets solicit

Concert tickets response

Solicit number of users connectedNumber of users. response

HMS

149marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Conversations A Web service conversation is a set of correlated messages

involving one or more Web services (and Web applications) Conversations entail additional semantics

• Messages belonging to the same conversation must be recognized and traced

• Timeouts or error conditions can be specified for the messages of a conversation

• Exceptions should be handled

150marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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:

• Data model: specific entities modeling the interaction history with Web services

• Hypertext model: 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

151marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Meta-data model for Web services

Out

InConversation

InstanceTimeStampStatus

1:N

PartOf

1:1

OperationInstance

TimeStamp

1:1

1:1

0:1

1:1

MessageType

NameOut

In

OperationType

OpNamePortNameBindingServiceNameNetworkAddressTimeout

1:1

1:1

0:1

0:1

1:1 1:1

0:N

0:N

ConvType

1:N

PartOf

1:1

0:N

0:1

NameTimeout

Format

MessageInstance

Content

152marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

WebML for supporting Web services One WebML operation for each class of Web service

operations

ReqRsp

ConvName

SolRsp

ConvName

OneW

ConvName

Notif

ConvName

AsSolRsp

ConvName

AsReqRsp

ConvName

ReqRsp

ConvName

ReqRsp

ConvName

• Marks for operations that start, resp. end conversations

153marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

WebML service operations are macros1. Create a new Conversation Instance2. Create a new Operation Instance

• Name=“getOffer", …3. Connect the Operation Instance to the

Conversation Instance4. Compose parameters of the incoming links into an XML

message5. Send XML message; block waiting for answer6. Decompose XML answer

• may involve populating the entities of the underlying data schema7. Export selected element from the answer as parameters of

the outgoing links

getOffer

ReservConv

154marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Hypertext with service calls

User data

User[OID=CurrentUser]

Reservation

Book

ReservConv

New

Reservation

Pay

ReservConv

RoomCritFromTo

Room search

Offers

RoomOffer

CreditInfoCCNoExp.

Confirmation

getOffer

ReservConv

Confirm

ReservConv

Confirmed

Reservation

155marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Hypertext with async messagingAdded new entity Comment(OID,subject, text, answer) + Relationship Comment_User

User data

User[OID=currentUser]

Send comment

CommentSubjText

Answers to my comments

Comment

CommConv

MyComm

Comment[Comment2User]

[answer!=null]

A: textC:Comment.OID

Update

Comment<answer:=A>

Answered

Comment

User data

User[OID=currentUser]

Create

Comment

Connect

Comment2User

156marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

WebML data transformation Web services communicate through XML messages (SOAP) Marshalling and transformation between messages and

from/into structured data is required XML-in & XML-out:

marshalling XML documents ER instance

Adapter unit:transformations from XMLdocument to another XML document(through user-defined XSL stylesheet)

XML XML

Adapter

157marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Examples

Book

ReservConv

New

Reservation

Book

ReservConv

New

Reservation

Adapt StoreXML

Pay

ReservConv

Confirm

ReservConv

Pay

ReservConv

Confirm

ReservConv

Adapt

158marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Actual implementation within the tool

Web Service invocations

Web service publishing

159marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

DEMO: the mediator at work Receive PO

Obtain CustomerId

Create Order

Send Lines

Close Order

WebML

Advanced topics: BPM

Marco Brambilla

Politecnico di Milano and Web Models Srl

161marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Introduction Web services and BPM are the de facto standard of modern

enterprise integration• Web services enable system-to-system interaction;• business process specification languages ease the definition of

the business constraints, by orchestrating service execution Enterprise workflows are rarely constituted only by

orchestrations of Web Services • Human interaction is often involved• (e.g., BPEL4People initiative)

We propose MDE approach for multiparty business processes, based on Web Service orchestration and Web user interface design. • BPMN• WebML

161

162marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

162

163marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

164marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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.

165marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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)

Pool

Lane

1La

ne 2

166marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

Task 1

Task 2Task 1

167marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

How to read diagrams A useful concept that helps the action of reading of a diagram

is the Token• The start of a process generates a Token that must eventually be

consumed at the conclusion of the process• A Token will traverse the Sequence Flow and pass through the Flow

Objects in the Process• The behavior of the Process can be described by tracking the path(s) of

the Token through the Process• Multiple Tokens may exist because of concurrent Process instances or

the dividing of the Token for parallel processing within a single Process instance

168marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Activities An activity:

• is work that is performed within a business process• Can be a:

Task Sub-Process

• Can be performed once or can have internally defined loops

169marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Task Is an atomic activity that is included within a process Can be executed:

• Manual: outside the process (i.e. the customer accepts an offer)• Service: automatically as some sort of service, which could be a Web

service or an automated application• User: by a human performer with the assistance of a software

application and is scheduled through a task list manager of some sort Has its own state:

• Ready: waiting to be worked• Active: someone is working on it• Completed: someone has finished working on it• Aborted: someone has cancelled it

Defines the parameters to show and to edit

170marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Parameters A parameter is:

• A simple property that stores an information managed by the process• Used when there is the need to take a decision, sending a message and

so on• Defined by:

Name Type: simple (string, integer, etc.) or complex (Business object) Available values Selection policy (single or multiple)

• Defined at pool level• Replied for each process instance

171marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Business objects A business object is:

• A complex object that stores an entity managed by the process (i.e. an order, an invoice etc.)

• Useful when: the information is a structured object you have to use two or more properties to define an object

• Defined by properties• A property is a simple object defined by:

Name Type (string, integer, etc.) Available values Selection policy (single or multiple)

• Defined at project level

172marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Gateways A gateway:

• Is used to control how sequence flows interact as they converge and diverge within a process

• Can be executed: User: manually by a user choosing the gate using a set of

parameters to show or edit like an activity Service: automatically as a service with a set of condition

parameters to test• Is divided into types:

Exclusive

Inclusive

Parallel

173marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Exclusive Data-based gateway

Task 2

Task 1

Task 3

Alternative 1 evaluated to true

Alternative 2 evaluated to true

Path 1

Path 2

174marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Inclusive Gateway

Task 2

Task 1

Task 4

Path 1 and 3 evaluated to true

Path 1 and 3 evaluated to false. Default path is taken

Task 3

Path 1

Path 3

Path 2

175marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Parallel Gateway

Task 2

Task 1

Task 3

Path 1 and 2 are both taken Path 1

Path 2

The gateway waits for ALL tokens

176marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Events An event:

• Is something that happens during the course of a business process. • Affects the flow of the process and often have a cause (trigger) or an

impact (result). • Can:

start a flow. Is drawn as a circle with a single thin line interrupt/resume a flow. Is drawn as a circle with a double thin

black line end a flow. Is drawn as a circle with a single thick black line

• Can be one of these types: None, Message, Timer, Signal, Conditional, Link, Error, Cancel,

Terminate, Compensation• Can be used to catch or throw the event• Can be defined as standalone or on the boundary of an activity as

intermediate event

177marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Message Start and Intermediate Event

Task 2Task 1 ,5

Message Throwing Intermediate Event: A message is sent

A new message arrives and the process restarts

Message Catching Intermediate Event:The process stops and waits for the message

178marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Signal Event A Signal is for general communication within and across

Process Levels, across Pools, and between Business Process Diagrams

A signal is not a message, which has a specific target, but is a broadcast

A signal is defined by:• Name• A set of parameters to show or edit

Multiple processes can have events that are triggered from the same broadcasted signal

179marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Signal Start and End Event

Task 2Task 1

Signal 1

Task 1

Signal 1

Task 1

Signal 2

Task 1

Signal 3

Task 1

Signal 1

Signal Start Event:The process starts catching the signal (only Signal 1)

Signal End Event:The process ends throwing the signal (Signal 1)

180marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Link Event A Link is a mechanism for connecting two sections of a

Process. Link Events can be used to create looping situations or to

avoid long Sequence Flow lines. Link Event uses are limited to a single Process level Paired Intermediate Events can also be used as “Off-Page

Connectors” for printing a Process across multiple pages. Can also be used as generic “Go To” objects within the

Process level. There can be multiple Source Link Events, but there can only be one Target Link Event.

Catching Thowing

181marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Compensation Compensation is concerned with undoing steps that were

already successfully completed, because their results and possibly side effects are no longer desired and need to be reversed.

If an Activity is still active, it cannot be compensated, but rather needs to be canceled.

Compensation is triggered using a compensation throw Event, which can either be an Intermediate or an End Event.

The Activity which needs to be compensated is referenced. If the Activity is clear from the context, it doesn’t have to be specified and defaults to the current Activity.

If no Activity is specified in a “global” context, all completed Activities in the Process are compensated.

182marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Sub-Process Is a compound activity in that it has detail that is defined as a

flow of other activities Enables hierarchical process development Points directly to a separately defined process Defines its own input/output parameters and exposes them

when called/executed Is started from a None Start Event, if more than once one will

be chosen Can be multi instanced in:

• Loop: defined by a while condition• Parallel: defined by a count parameter passed as input• Serial: defined by a count parameter passed as input

183marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Sub-Process

Task 1 Sub-Process 1

Task 1

184marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

184

(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

185marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

ProcessMetadata

Run-Time

Log

Actors

Data Model

186marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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)

186

NEXT

187marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

The NEXT unit (cont.d)4 execution modes:• Process start. Instantiates and starts a case for the given

ProcessID.• Process end. Given the activityInstanceID of the last activity,

sets the Case to “Ended”.• Calculate and execute. Given the actInstID of the last

concluded activity, enables the execution of the subsequent activities.

• Execute. Given an actInstID, sets its status to “Active” and launches its execution.

187

NEXT

188marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Orchestration

Modules

Next Unit

189marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Next Unit

190marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Design process

WebML

Advanced topics:AJAX

Marco Brambilla

Politecnico di Milano and Web Models Srl

192marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Conceptual modeling of AJAX features WebML currently covers a limited set of AJAX features

• Major revision foreseen Partial page refresh Popup windows

193marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Conceptual modeling of AJAX features Dynamic tooltips

Drag and drop

194marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

AJAX event management onChange event: the typical application is the refresh of the

contents of a drop down list depending on the changed value of another field

onFocus event: this may be useful for showing some instructions or hints when the user enters a field

onBlur event: allowing one to execute some action when the cursor leaves a field

195marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Other AJAX features Content

autocompletion for fields

Background file uploads

196marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Generated code and descriptorsFor each page: 1 main JSP page 1 backoffice page for the chunks used by AJAX A set of unit descriptors

Runtime descriptor DataUnit1

...Index Unit

component (java)

data access layer

Data unit component (java)

Runtime descriptor DataUnit2

Runtime descriptor DataUnit3

Runtime descriptor IndexUnit1

Runtime descriptor IndexUnit2

Runtime descriptor IndexUnit3

Page1 (jsp) ...

Page1 Chunks for AJAX (jsp)

Page2 (jsp)

Page2 Chunks for AJAX (jsp)

PageN (jsp)

PageN Chunks for AJAX (jsp)

197marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

AJAX pages behaviour

User Front-end JSP Back-end JSP chunks

Page request

AJAX request in the page

Page request

Selection of the proper backend chunks

Chunks rendering in the page

...

WebML

WebRatio 6 BPM

Marco Brambilla

Politecnico di Milano and Web Models Srl

199marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

200marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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)

201marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Architecture

202marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Model transformations

203marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

References and useful links WebRatio Official Wiki (http://wiki.webratio.com)

- “WebRatio 6 - Getting started”

- “WebRatio 6 - Tutorial - Vacation Request”

• BPMN Official Site (http://www.bpmn.org/) Bruce Silver - “BPMN Method & Style” (http://www.bpmnstyle.com/)

Bruce Silver is a well-known BPM industry analyst and consultant, the founder and principal at BPMessentials, the leading provider of BPMN training, and a participant in the BPMN 2.0 development team in OMG.

WebML

Industrial cases

Marco Brambilla

Politecnico di Milano and Web Models Srl

205marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Context and motivations Acer Inc:

• the 3rd* branded PC vendor worldwide• US$11.32 B consolidated revenues in 2006, operations in more than

100 countries, 5300 employees Situation in year 2000

• A manufacturing-oriented company, with increasing market shares and brand value, but:

• Regionalized structure with continental HQs and highly independent national subsidiaries

• Countries with very variable market approach, customer service levels, and even visual identity and local branding

• Low perceived value by customers as a knowledge and business partner

* Source Gartner

206marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Technical Goals Launched in EMEA in Dec 2000 as a worldwide pilot Business Goals:

• Supporting the new corporate strategy: “from manufacturing to Total Brand Company”, the so called “New Acer”

• Improving the customer-perceived value by: Centralizing the conception and realization of eBusiness solutions for the

(initially 14, now 34) EMEA & PA countries Deploying innovative B2C & B2B services effectively on the Web Homogenizing marketing and communication, technical support, and

customer service across national subsidiaries Building an added-value online community, serving channel operators

(dealers, VARs, distributors) and end-users in a one-to-one, yet resource-effective, way

207marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Technical Goals Division of competences between IT & MarCom in the

development of customer solutions• The MarCom business unit is responsible of the project, from business

requirement analysis, to early prototyping, development, and verification

• The IT unit sets technical standards, manages infrastructure and runs the developed solutions

Methodology for “lossless” transition from business requirements to technical requirements

Inject Customers’ and MarCom managers’ feedback into the projects as early as possible

Time to market of services and solutions & effort consumption

Long-term sustainability w.r.t. business strategy and ICT infrastructure evolution

208marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Methodology Integrated approach to Business Process Reengineering,

through Model Driven Development• Visual Language: WebML

Extensive use of automatic code generation from application models• IDE and Code Generator: WebRatio

209marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

7 years experience: B2C+B2B porfolio

210marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Case History 1: 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!!)

211marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Size & effort

Class Dimension Value Number of localized B2C web sites 14 Number of main CMS applications 4 (Admin, News, Product, Other

content) Number of supported languages 12 for B2C Web sites, 1 for

CMS Number of data entry masks 39 Number of automatically generated database tables 46 Number of automatically generated database views 82 Number of automatically generated database queries

279 for data extraction, 89 for data update

Number of automatically generated JSP page templates

48

Number of automatically generated or reused Java classes

250

Size

Number of automatically generated Java lines of code

12500 Non commented lines of code

Number of elapsed workdays 49 Number of development staff-months (analysts and developers)

6 staff-months (6 weeks x 4 persons)

Total number of prototypes 9 Average elapsed man days between consecutive prototypes

5,4

Time & effort

Average number of development man days per prototype

15,5

212marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

213marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Critical Considerations On the positive side:

• Almost 80% of the delivery effort concentrates in the phases of data design, hypertext design and prototyping:

more development time is spent with the application stakeholders MDD allows a more flexible distribution of responsibilities

between the IT department and the business units The peak productivity rates has reached five times the

number of delivered function points per staff-month of a traditional programming language like Java

214marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

1724

32

41

56

1721 24

28 31

0

10

20

30

40

50

60

2001 2002 2003 2004 2005

Year

Un

its

Number of developers

Number ofmaintainedapplications

Number of servedcountries

215marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

216marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

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

217marco.brambilla@polimi.ithttp://home.dei.polimi.it/mbrambil

WebML

Thanks

http://home.dei.polimi.it/mbrambil http://twitter.com/MarcoBrambi

http://www.slideshare.net/mbrambil

For comments or questions:Marco BrambillaPolitecnico di MilanoDipartimento di Elettronica e Informazionembrambil@elet.polimi.itResources:http://home.dei.polimi.it/mbrambil http://marcobrambi.blogspot.com http://twitter.com/MarcoBrambi