250 likes | 365 Views
Conceptual Modeling Issues in Web Applications enhanced with Web services. Sara Comai, Politecnico di Milano sara.comai@polimi.it In collaboration with: Marco Brambilla, Stefano Ceri, Piero Fraternali and Ioana Manolescu WWW Workshop ESSW2003 May 20, 2003 - Budapest.
E N D
Conceptual Modeling Issues in Web Applications enhanced with Web services Sara Comai, Politecnico di Milano sara.comai@polimi.it In collaboration with: Marco Brambilla, Stefano Ceri, Piero Fraternali and Ioana Manolescu WWW Workshop ESSW2003 May 20, 2003 - Budapest
Introduction:table 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
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 Current Web Applications development
Web 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
Web 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,...
styles units, pages, links, site views navigation + composition model presentation WebMLbasic concepts Web application = Structure + Hypertext + Presentation entities,relationships data model
Index of Papers All Authors • Daml-s and WSDL • WebML • Web services Selected paper title: Web services abstract: XXX Go to all authors page WebML hypertexts
Insert Your Data • Fname • Lname submit WebML and operations
Web services operations • Web service operations corresponding to the WSDL operation types • Further building blocks are needed for integrating Web services in Web applications
Management 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
Chains 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
Storing 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
Lifetime 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
Managing 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
Creation 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
Materialization 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
Materialization and dematerialization /2 • Intermediate XML format: canonical XML schema <?xml version="1.0" encoding="UTF-8"?> <root> <entity id="Ent1"> <instance> <attribute id="oid">item1</attribute> <attribute id="att1"> ... </attribute> </instance> … </entity> <entity id="Ent2"> <instance> <attribute id="oid">object1</attribute> <attribute id="att2"> ... </attribute> </instance> <instance> <attribute id="oid">object2</attribute> <attribute id="att2"> ... </attribute> </instance> </entity> <relationship id="rel_Ent1_Ent2"> <instance> <source-oid>item1</source-oid> <target-oid>object2</target-oid> </instance> <instance> <source-oid>item1</source-oid> <target-oid>object2</target-oid> </instance> </relationship> </root>
Implementation • 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
Conclusions 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
Implementation • WebRatio case tool
Example of XSL transformation <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:param name="to"/> <xsl:param name="subject"/> <xsl:param name="body"/> <xsl:template match="/"> <!-- other elements composing the message body --> <to xsi:type="xsd:string"><xsl:value-of select="$to"/></to> <subject xsi:type="xsd:string"><xsl:value-of select="$subject"/></subject> <body xsi:type="xsd:string"><xsl:value-of select="$body"/></body> <!-- other elements composing the message body--> </xsl:template> </xsl:stylesheet>