1 / 25

Conceptual Modeling Issues in Web Applications enhanced with Web services

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.

lane-mendez
Download Presentation

Conceptual Modeling Issues in Web Applications enhanced with Web services

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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,...

  6. styles units, pages, links, site views navigation + composition model presentation WebMLbasic concepts Web application = Structure + Hypertext + Presentation entities,relationships data model

  7. 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

  8. Insert Your Data • Fname • Lname submit WebML and operations

  9. Web services operations • Web service operations corresponding to the WSDL operation types • Further building blocks are needed for integrating Web services in Web applications

  10. 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

  11. Example of Web service invocation

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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>

  19. Example: Google search

  20. Example: Google search

  21. 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

  22. 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

  23. Implementation • WebRatio case tool

  24. Architecture of WebRatio

  25. 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>

More Related