1 / 23

Outline

Outline. Introduction Motivation Architectural integration Model-driven solution Land Registry Court Process– A Case study Conclusion and Outlook. Data flow in process-driven SOAs. Process activities can invoke service operations Service operations can invoke database operations

cybill
Download Presentation

Outline

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. Outline Introduction Motivation Architectural integration Model-driven solution Land Registry Court Process– A Case study Conclusion and Outlook

  2. Data flow in process-driven SOAs Process activities can invoke service operations Service operations can invoke database operations Database operations access the database

  3. Current Problems Up-to-date it is not easy to find out… Which process activities require which database operations? Which services require which database operations? Which database operations can be discarded? Reason: No sufficient modeling solutions to link database operations to service operations

  4. Current Problems Up-to-date it is not easy to find out… if a required database operation already exists and can be reused where (in which database/ schema/ table) a required column can be found Reason: Insufficient searching capabilities for existing database operations

  5. Main objectives of our solution Better software reuse Data Access Object (DAO) reuse should not be limited on the underlying Object-Relational Mapping technology the underlying RDBMS Platform Central repository for storing Data Access Object (DAO) models Better integration of data and services Relating a flow of database operations to a service operation Separation of Concerns e.g. by separating a flow of database operations from other business logic

  6. Architectural view 4-component architecture Service operation flow of database operations Central Data Access Object (DAO) Repository for better DAO reuse

  7. Service Operation Flow Modeling database operations into service operations Separate View for data flows within a service operation Separate database operations from other business logic operations

  8. DAO Repository Central repository Basic Functionality: Publishing DAOs Updating DAOs Deleting DAOs Retrieving DAOs by different search criteria (column, table database, ORM) Separate view for database/service developers

  9. Viewbased Data Modeling Framework Extends the basic Viewbased Modeling Framework Different views for different stakeholders A specific view for each architectural component High level vs. low level views Technology-specific vs. -independent views

  10. View Model Elements

  11. Different View Levels High level: Control-Flow View Service Repository View DAO Flow View Low level: DAO Repository View Technology-independent: ORM View Data Object View Physical Data View Database Connection View Technology-specific: ORM HIBERNATE View JAVA Data Object View MYSQL Physical Data View JDBC Database Connection View

  12. Case Study: Process Flow Modeling the process of filing an application at the land register court Process activities can invoke either service operations or human tasks Using the Control-Flow View model, the Collaboration View model and the information View-model for modeling the process Generating BPEL WSDL definition of the model instances

  13. <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="" xmlns="" xmlns:="" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" xmlns:provided="" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:types> <xsd:schema targetNamespace="" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:complexType name="ApplicationType"> <xsd:sequence> <xsd:element name="text" type="AccountFeesRequest"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="PersonAddressType"> <xsd:sequence> <xsd:element name="street" type="AccountFeesRequest"/> <xsd:element name="streetNumber" type="AccountFeesRequest"/> <xsd:element name="place" type="AccountFeesRequest"/> <xsd:element name="country" type="AccountFeesRequest"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="PersonType"> <xsd:sequence> <xsd:element name="personAddress" type="PersonAddressType"/> <xsd:element name="name" type="AccountFeesRequest"/> <xsd:element name="dateOfBirth" type="SaveApplicationResponse"/> <xsd:element name="placeOfBrith" type="AccountFeesRequest"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="FeesType"> <xsd:sequence> <xsd:element name="amount" type="ValidateApplicationRequest"/> <xsd:element name="currency" type="AccountFeesRequest"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="ReponseType"> <xsd:sequence> <xsd:element name="result" type="AccountFeesRequest"/> <xsd:element name="value" type="ExcecuteApplicationResponse"/> </xsd:sequence> </xsd:complexType> </xsd:schema> </wsdl:types> <wsdl:message name="DeliverDismissalRequest"> <wsdl:part name="Application" type="provided:org.eclipse.emf.ecore.impl.DynamicEObjectImpl@c39a20 (eClass: org.eclipse.emf.ecore.impl.EClassImpl@a1d1f4 (name: ComplexType) (instanceClassName: null) (abstract: false, interface: false))"/> </wsdl:message> <wsdl:message name=""/> <wsdl:message name="DeliverDismissalResponse"> <wsdl:part name="Response" type="provided:org.eclipse.emf.ecore.impl.DynamicEObjectImpl@100ebec (eClass: org.eclipse.emf.ecore.impl.EClassImpl@a1d1f4 (name: ComplexType) (instanceClassName: null) (abstract: false, interface: false))"/> </wsdl:message> <wsdl:message name=""/> <wsdl:portType name="Delivery"> <wsdl:operation name="DeliverDismissal"> <wsdl:input message="provided:DeliverDismissalRequest" name="in"/> <wsdl:output message="provided:DeliverDismissalResponse" name="out"/> </wsdl:operation> <wsdl:operation name="DeliverApprovalAndFees"> <wsdl:input message="provided:DeliverApprovalAndFeesRequest" name="in"/> <wsdl:output message="provided:DeliverApprovalAndFeesResponse" name="out"/> </wsdl:operation> </wsdl:portType> </wsdl:definitions> Case Study: Generated WSDL … … 14

  14. Case Study: Service Operation Flow Process Flow Service Operation Flow

  15. Case Study: Service Operation Flow UML notation Ecore notation

  16. Case Study: Generated DAO Source code (IBATIS/Spring) 17

  17. Case Study: Generated DAO Source code (IBATIS/Spring) 18

  18. Case Study: DAO Repository Database extract:

  19. Conclusion A Model-Driven four-component architecture to enable… Better Integration of data and services: Separate DAO flows from the whole business logic Separation of Concerns: Each view model tailored to the requirements of different stakeholders Better software reuse: A central repository for managing Data Access Objects

  20. Open issues • Requirements and scope of operation of a view-based, model-driven repository • Improved search algorithms e.g. by using ontologies • Runtime statistics (e.g. how often a DAO operation is invoked?) • Detailed specification of Service operation flows 21

  21. Thank you for your attention! 22

More Related