Title: Conceptual Modeling Issues in Web Applications enhanced with Web services
1Conceptual Modeling Issues in Web Applications
enhanced with Web services
- Sara Comai, Politecnico di Milano
- sara.comai_at_polimi.it
- In collaboration with Marco Brambilla, Stefano
Ceri, Piero Fraternali and Ioana Manolescu - WWW Workshop ESSW2003
- May 20, 2003 - Budapest
2Introductiontable of contents
- The scenario of Web application development
- Motivations of model-driven Web development
extended with Web services - The WebML approach and its extension with Web
services - Conceptual primitives for Web services
- Some examples
- Implementation in WebRatio
- Conclusions and future directions
3Current Web Applications development
- The focus of Web applications is shifting from
the mere publication of dynamic content to the
integrated publication of - content and services
- Services can be used to compose integrated
workflows, to support business processes
4Web services and model-driven approaches
- Technological background SOAP, UDDI, WSDL,
BPEL4WS, WSCI, and so on - Development methodologies new methods and CASE
tools are required - Aim of this work
- Conceptual modeling and automatic implementation
of Web applications interacting with Web services - Primitives for a Web modeling language
5Web Modeling Language (WebML)
- WebML a conceptual language for high-level
design of data-intensive Web applications - Defined in 1998, widely published Ceri,
Fraternali at al. Designing data-intensive Web
applications, Morgan Kauffman, Dec. 2002 - Adopted in many universities worldwide
- Commercially implemented (www.webratio.com)
- Used for developing several applications
- www.acer-euro.com, www.aceradvantage.com,
www.elet.polimi.it, www.image.co.uk,...
6WebML basic concepts
- Web application
- Structure Hypertext
Presentation
entities,relationships
data model
7WebML hypertexts
8WebML and operations
9Web services operations
- Web service operations corresponding to the WSDL
operation types - Further building blocks are needed for
integrating Web services in Web applications
10Management of input/output messages
- Typical use of Web services in Web applications
- Perform specific tasks and possibly used the data
returned by the invoked Web service to define the
content of Web pages - No need of implementing them directly or of
storing the data required for computing them - The integration requires
- Managing input/output messages (XML format)
- Marshalling of the application data into XML and
vice versa - In our approach preserve E-R data model and
http-like parameter passing
11Example of Web service invocation
12Chains of Web services
- Adapter unit for
- Composing the input message of a Web service
- Decomposing the output message of a Web service
- Calling multiple Web services in sequence,
adapting their input and output
13Storing the data retrieved from Web services
- In many applications data retrieved from Web
services need also to be stored in local data
repository - Persistent storage database updates
- Temporary storage e.g., until the user
disconnects from the application ? in main memory
14Lifetime of main memory entities
- Lifetime of main memory entities user session
- In many cases shorter time is needed, e.g., only
between two calls of the same Web service - Different policies to fine tune the behavior of
update operations on main memory objects - FLUSH each time an entity is updated the new
data replace any pre-existing data - PRESERVE each time an entity is updated the new
data is added to any pre-existing data
15Managing Web services data
- Web services are not developed by the creator of
the Web application, therefore - To build a single entity instance several Web
services calls may be needed - The data for composing an input message may be
spread across different application entities - The data obtained from an output message may be
stored into application entities with a different
structure
16Creation of new instances
- Different services may retrieve different pieces
of information of the same object or sub-schema - The same Web service may be used at different
times to retrieve different pieces of information
for the same object - Policies for managing the cumulative update of
data - If the instance is new insert the new instance
- If the instance already exists
- No action keep existing instance
- Overwrite keep only the new instance data
- Extend overwrite with the new instance data
17Materialization and dematerialization
- Need of creating instances of complex data
sub-schemata, involving several related entities,
fro the output of a service call - Materialization operation
- Need of assembling the input message of a service
from instances of complex data sub-schemata - Dematerialization operation
18Materialization and dematerialization /2
- Intermediate XML format canonical XML schema
- lt?xml version"1.0" encoding"UTF-8"?gt
- ltrootgt
- ltentity id"Ent1"gt
- ltinstancegt
- ltattribute id"oid"gtitem1lt/attributegt
- ltattribute id"att1"gt ... lt/attributegt
- lt/instancegt
- lt/entitygt
- ltentity id"Ent2"gt
- ltinstancegt
- ltattribute id"oid"gtobject1lt/attributegt
- ltattribute id"att2"gt ... lt/attributegt
- lt/instancegt
- ltinstancegt
- ltattribute id"oid"gtobject2lt/attributegt
- ltattribute id"att2"gt ... lt/attributegt
- lt/instancegt
- ltrelationship id"rel_Ent1_Ent2"gt
- ltinstancegt
- ltsource-oidgtitem1lt/source-oidgt
- lttarget-oidgtobject2lt/target-oidgt
- lt/instancegt
- ltinstancegt
- ltsource-oidgtitem1lt/source-oidgt
- lttarget-oidgtobject2lt/target-oidgt
- lt/instancegt
- lt/relationshipgt
- lt/rootgt
19Example Google search
20Example Google search
21Implementation
- Web Ratio case tool integrate environment for
the visual specification of Web applications and
the automatic generation of code for the J2EE and
Microsoft .NET platform - Real examples using these concepts
- http//www.webratio.com/webservicedemo
22Conclusions and future work
- Conclusions
- Requirements and primitives to model Web
applications interacting with Web services with
the aim of providing and automatic implementation
of such integration - Building blocks
- Supporting the transformation of application data
into Web services data and vice versa - Providing different storage alternatives
- Providing specific operations for representing at
the conceptual level common processes deriving
from the integration of Web services - Future work
- Adding semantics to the adapter unit
- Integrating service-centric applications with
workflows
23Implementation
24Architecture of WebRatio
25Example of XSL transformation
- lt?xml version"1.0"?gt
- ltxslstylesheet xmlnsxsl"http//www.w3.org/1999/
XSL/Transform" - version"1.0"gt
- Â
- ltxslparam name"to"/gt
- ltxslparam name"subject"/gt
- ltxslparam name"body"/gt
-
- ltxsltemplate match"/"gt
- lt!-- other elements composing the message
body --gt - ltto xsitype"xsdstring"gtltxslvalue-of
select"to"/gtlt/togt - ltsubject xsitype"xsdstring"gtltxslvalue-of
-
select"subject"/gtlt/subjectgt - ltbody xsitype"xsdstring"gtltxslvalue-of
select"body"/gtlt/bodygt - lt!-- other elements composing the message
body--gt - lt/xsltemplategt
- Â
- lt/xslstylesheetgt