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.
Creating an AppStore using Model Driven Software Development
1. System Integration course
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
Budapest University of Technology and Economics
Department of Measurement and Information Systems
2. 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:
o We must use jBPM5 business workflows.
o Multiple platforms should be used for implementing
web services.
Creating a GUI is out of scope.
3. Tasks
1. 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
4. 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/
6. 1. Design
Components of our architecture:
o AppRepository: stores the applications, application
metadata, etc.
o UserManager: stores the users
o CreditManager: stores the credit accounts of the users
o CodeVerifier: dummy component for code and
metadata verification
7. 1. Design
Main entities (objects to store and handle)
o Application: hollow for an application
o ApplicationAccount: container object for storing
applications bought by a specific user
o 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 user
o CreditTransaction: represents a credit transaction
(income or expense)
o User: represent a user or a developer
8. 1. Design
Main connections between entities
User
ApplicationAccount
CreditAccount
Application CreditTransaction
ApplicationMetadata
ApplicationVersion
9. 2. WS implementation
Technology: Java EE and .NET
o We 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 services
o 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.
10. 2. WS implementation
Platforms of the components
o .NET: AppRepository, CodeVerifier
o Java EE: CreditManager, UserManager
Persistence
o Each component persists its own entities, e.g.
• User is persisted by UserManager
• Application, ApplicationMetadata, ApplicationVersion
entities are persisted by AppRepository
11. 3. Business workflows
Technology: jBPM5, Guvnor
Example workflows:
o Application code or metadata verification
o Application purchase
12. 3. Business workflows
Verification of an application or its metadata
(high level workflow)
14. 3. Business workflows
Application purchase
(low level workflow – it can be executed)
Service calls to
implemented web services
15. 4. Genius
Technology: JBoss Drools, jBPM
We implemented the Genius as a workflow
o Output: some recommended applications
16. 4. Genius
Suggestions are given by Drools rules
The recommended applications are …
o … from category that is frequently chosen by the user
o … made by developers liked by the user
o … popular and rather expensive
o … suitable for the user according to the applications’
age limit
o … not bought already by the user
17. 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.
18. Architecture
Development Platforms
REST interface tools
Workflow
Java EE / .NET
Components
Genius
Business logic layer
EMF-IncQuery
Persistence layer
19. 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
20. Links and contacts
Homepage of the courses:
http://www.inf.mit.bme.hu/edu/courses/mdsd
http://www.inf.mit.bme.hu/edu/courses/szolgint
GSoaArchitect:
http://code.google.com/p/gsoaarchitect/
Team members
o Dániel DARVAS darvas.daniel
o Gergő HORÁNYI horanyi.gergo
o Balázs PÁL arnongoth
o Gábor SZÁRNYAS szarnyasg