creating an appstore using model driven software development
Post on 18-Jan-2015
962 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
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.
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
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/
GSoaArchitect metamodelService component Service method
Data type
Entity
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
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
Main connections between entities
1. Design
Application
ApplicationMetadata
ApplicationVersion
User
ApplicationAccount
CreditAccount
CreditTransaction
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.
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
3. Business workflows Technology: jBPM5, Guvnor
Example workflows:o Application code or metadata verificationo Application purchase
3. Business workflows Verification of an application or its metadata
(high level workflow)
3. Business workflows Application purchase
(high level workflow)
3. Business workflows Application purchase
(low level workflow – it can be executed)
Service calls to implemented web services
4. Genius Technology: JBoss Drools, jBPM
We implemented the Genius as a workflow
o Output: some recommended applications
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
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.
Architecture
Genius
PlatformsDevelopment tools
Persistence layer
Business logic layer
REST interface
Workflow
EMF-IncQuery
Java EE / .NETComponents
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
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
top related