Creating an AppStore using Model Driven Software Development

20
Budapest University of Technology and Economics Department of Measurement and Information Creating an AppStore using Model Driven Software Development GS Team Dániel DARVAS, Gergő HORÁNYI, Balázs PÁL, Gábor SZÁRNYAS Budapest University of Technology and Economics System Integration course

description

Creating an AppStore using Model Driven Software Development The project has been developed by Team GS at the Fault Tolerant Systems Research Group of Budapest University of Technology and Economics.

Transcript of Creating an AppStore using Model Driven Software Development

Page 1: Creating an AppStore using Model Driven Software Development

Budapest University of Technology and EconomicsDepartment of Measurement and Information Systems

Creating an AppStore using Model Driven Software Development

GS Team

Dániel DARVAS, Gergő HORÁNYI,Balázs PÁL, Gábor SZÁRNYAS

Budapest University of Technology and Economics

System Integration course

Page 2: Creating an AppStore using Model Driven Software Development

Object of the work Creating a prototype of an application store’s web

services where:o applications can be published, bought or verified;o users can be registered;o payments can be transferred

Additional requirements:oWe must use jBPM5 business workflows.oMultiple platforms should be used for implementing

web services. Creating a GUI is out of scope.

Page 3: Creating an AppStore using Model Driven Software Development

Tasks1. Designing a data model for AppStore

2. Implementing the web services

3. Creating business workflows

4. Uploading test data

5. Creating an intelligent, rule-based advisor (called Genius) to recommend applications for users

Page 4: Creating an AppStore using Model Driven Software Development

1. Design Technology: Eclipse Modeling Framework

We made a general Service Oriented Architecture metamodel on the „Model Driven Software Development” course named GSoaArchitect.o http://code.google.com/p/gsoaarchitect/

Page 5: Creating an AppStore using Model Driven Software Development

GSoaArchitect metamodelService component Service method

Data type

Entity

Page 6: Creating an AppStore using Model Driven Software Development

1. Design Components of our architecture:

o AppRepository: stores the applications, application metadata, etc.

o UserManager: stores the userso CreditManager: stores the credit accounts of the userso CodeVerifier: dummy component for code and

metadata verification

Page 7: Creating an AppStore using Model Driven Software Development

1. Design Main entities (objects to store and handle)

o Application: hollow for an applicationo ApplicationAccount: container object for storing

applications bought by a specific usero ApplicationMetadata: metadata for an application

(name, price, etc.)o ApplicationVersion: represents a specific version of an

application (stores its files)o CreditAccount: credit account of a usero CreditTransaction: represents a credit transaction

(income or expense)o User: represent a user or a developer

Page 8: Creating an AppStore using Model Driven Software Development

Main connections between entities

1. Design

Application

ApplicationMetadata

ApplicationVersion

User

ApplicationAccount

CreditAccount

CreditTransaction

Page 9: Creating an AppStore using Model Driven Software Development

2. WS implementation Technology: Java EE and .NET

oWe had to use multiple platforms. With our GSoaArchitect tool we are able to

generate automatically (using Xpand) the following parts for both platforms:o Skeletons of web serviceso Entities and persistence (using Entity Framework or

Java Persistence API)o Project files (e.g. .csproj descriptors)

Note that the target platform of the components and entities are specified by the source model.

Page 10: Creating an AppStore using Model Driven Software Development

2. WS implementation Platforms of the components

o .NET: AppRepository, CodeVerifiero Java EE: CreditManager, UserManager

Persistenceo Each component persists its own entities, e.g.• User is persisted by UserManager• Application, ApplicationMetadata, ApplicationVersion

entities are persisted by AppRepository

Page 11: Creating an AppStore using Model Driven Software Development

3. Business workflows Technology: jBPM5, Guvnor

Example workflows:o Application code or metadata verificationo Application purchase

Page 12: Creating an AppStore using Model Driven Software Development

3. Business workflows Verification of an application or its metadata

(high level workflow)

Page 13: Creating an AppStore using Model Driven Software Development

3. Business workflows Application purchase

(high level workflow)

Page 14: Creating an AppStore using Model Driven Software Development

3. Business workflows Application purchase

(low level workflow – it can be executed)

Service calls to implemented web services

Page 15: Creating an AppStore using Model Driven Software Development

4. Genius Technology: JBoss Drools, jBPM

We implemented the Genius as a workflow

o Output: some recommended applications

Page 16: Creating an AppStore using Model Driven Software Development

4. Genius Suggestions are given by Drools rules

The recommended applications are …o… from category that is frequently chosen by the usero… made by developers liked by the usero… popular and rather expensiveo… suitable for the user according to the applications’

age limito… not bought already by the user

Page 17: Creating an AppStore using Model Driven Software Development

5. Uploading test data Technology: Eclipse Modeling Framework

We created an importer which can explore an EMF instance model and uploads the found data over our components’ REST web services.

Page 18: Creating an AppStore using Model Driven Software Development

Architecture

Genius

PlatformsDevelopment tools

Persistence layer

Business logic layer

REST interface

Workflow

EMF-IncQuery

Java EE / .NETComponents

Page 19: Creating an AppStore using Model Driven Software Development

Used technologies Eclipse, Visual Studio: for development Eclipse Modeling Framework: for creating the

model of the architecture jBPM5, Guvnor: for workflows .NET, JavaEE: for implementing web services Entity Framework, JPA: for persisting entities Drools: for giving rule-based suggestions Eclipse OCL, EMF-IncQuery: for validation models

Page 20: Creating an AppStore using Model Driven Software Development

Links and contacts Homepage of the courses:

http://www.inf.mit.bme.hu/edu/courses/mdsdhttp://www.inf.mit.bme.hu/edu/courses/szolgint

GSoaArchitect:http://code.google.com/p/gsoaarchitect/

Team memberso Dániel DARVAS darvas.danielo Gergő HORÁNYI horanyi.gergoo Balázs PÁL arnongotho Gábor SZÁRNYAS szarnyasg