Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
OMGi Application StoreA service oriented application developed       in a model driven approach
Introduction●   The project was created during a service-    oriented development course at BUTE-FTSRG.●   Related open so...
Project scope●   Developing a service-oriented application store●   Features:    ○   Services for managing accounts, apps,...
Phases of development●    The project was created in a model     driven manner.●    Main development phases:    1. Analysi...
Model based developement processRequirement analysis &                           Use case          Architectural  business...
Requirement analysis●   UML based analysis    ● Modeling functional requirements with use      cases    ● Modeling scenari...
Example: Customer use cases
Architectural design●   Creation of an EMF-based domain specific    language that describes:    ●   Business data    ●   B...
Domain specific language                     general                     data type                                       a...
System architecture   Implementation of the services, which provide   the specified functionalities                       ...
Domain specific architecture model               Business               componentREST                                REST ...
Business process modeling●   Modeling in BPMN●   Specified processes:    ●   Quality management    ●   Application purchas...
Implementation: code generation●   Technology: Xtend●   Input: the specified system model●   Generates the following from ...
Code generation example:  Annotated JPA entities@Entity//...public class Customer extends User {//...   @ManyToMany   priv...
Code generation example:  Annotated REST services@Path("/rscustomermanager")public class RsCustomerManager i mplements IRs...
Code generation example:  Business logic stubspublic class CustomerManager implements ICustomerManager {   private IUserAc...
Implementation: business processes●   Implementation of services, which are called from    business processes    ●   Call ...
Enhancement with rule based    functionality●   Add „Genius” feature to the system    ●   Intelligent, rule based applicat...
Enhancement with rule based        functionality – implementation - 1●   Enlargement the system model and generate    new ...
Enhancement with rule basedfunctionality – implementation - 2Request            Collect                                   ...
Used technolgies Business processes: jBPM        Business rules: JBoss Drools                  REST service layer: Jersey ...
Links●   BUTE Fault Tolerant Systems Research Group    http://www.inf.mit.bme.hu/en●   SOA course at BUTE    http://www.in...
Upcoming SlideShare
Loading in …5
×

OMGi application store

762 views

Published on

Published in: Technology
  • Be the first to comment

OMGi application store

  1. 1. OMGi Application StoreA service oriented application developed in a model driven approach
  2. 2. Introduction● The project was created during a service- oriented development course at BUTE-FTSRG.● Related open source project: OMGi Tools, an envirionment for model base development of service oriented applications● Participiants: ● Bogsch Balázs (balaggee gmail.com) ● Papp István (pappist87 gmail.com) ● Tóth Tamás (tothtamas.bme gmail.com) ● Tóth Zsolt (toth.zsolt.bme gmail.com)
  3. 3. Project scope● Developing a service-oriented application store● Features: ○ Services for managing accounts, apps, purchases, etc. ○ Business process based quality management ○ Business process based application purchase ○ Rule based application filter
  4. 4. Phases of development● The project was created in a model driven manner.● Main development phases: 1. Analysis and design ● Requirement analysis ● Architectural design ● Business process modeling 2. Generative implementation of business logic 3. Enhancement with rule based functionality
  5. 5. Model based developement processRequirement analysis & Use case Architectural business process model design modeling Business Generative Domain specific process model implementation language & model Enhancement with rule based functionality
  6. 6. Requirement analysis● UML based analysis ● Modeling functional requirements with use cases ● Modeling scenarios with activities● Main functionality ● Account management for customers and developers ● Management of applications and versions for developers ● Transactions ● Automatic and manual quality management of uploaded apps
  7. 7. Example: Customer use cases
  8. 8. Architectural design● Creation of an EMF-based domain specific language that describes: ● Business data ● Business components and services ● Interconnections and dependency between them ● and other aspects● System architecture specification in the created language
  9. 9. Domain specific language general data type attribute of an entity service parameter entity business service technologicalREST detailsservice business component reference between entities
  10. 10. System architecture Implementation of the services, which provide the specified functionalities Quality manager Customer services Developer services services REST Service layer Business layer Database layer Database
  11. 11. Domain specific architecture model Business componentREST REST Businessinterface service service
  12. 12. Business process modeling● Modeling in BPMN● Specified processes: ● Quality management ● Application purchase (example)
  13. 13. Implementation: code generation● Technology: Xtend● Input: the specified system model● Generates the following from the system model: ● Annotated JPA entity classes ● Annotated REST interfaces of business services ● Stubs for business logic with dependencies● The generated code is runnable on OSGi platform● For more: check OMGi Tools
  14. 14. Code generation example: Annotated JPA entities@Entity//...public class Customer extends User {//... @ManyToMany private List<App> purchasedApps = new ArrayList<App>(); public List<App> getPurchasedApps() { return purchasedApps; } public void setPurchasedApps(List<App> purchasedApps) { this.purchasedApps = purchasedApps; }//...
  15. 15. Code generation example: Annotated REST services@Path("/rscustomermanager")public class RsCustomerManager i mplements IRsCustomerManager { private CustomerManager customerManager = new CustomerManager();//... @DELETE @Path("removecustomer/{customerId}") @Produces("text/plain") @Override public Response removeCustomer(@PathParam("customerId") String customerId) throws NumberFormatException, DatabaseAccessException, NoSuchEntitytException { System.out.println("INFO: RemoveCustomer service called...."); return Response.status(200).entity("Service called succesfully"); }//...
  16. 16. Code generation example: Business logic stubspublic class CustomerManager implements ICustomerManager { private IUserAccountManager userAccountManager = new UserAccountManager();//... @Override public void removeCustomer( int customerId) throws DatabaseAccessException, NoSuchEntitytException { //ToDo return; }//...
  17. 17. Implementation: business processes● Implementation of services, which are called from business processes ● Call REST services from WorkItem handlers Application purchase REST services REST Service layer Business layer
  18. 18. Enhancement with rule based functionality● Add „Genius” feature to the system ● Intelligent, rule based application recommendation ● Considering user habits and business interests ● Preferred expensive and frequently purchased applications ● Preferred the works of developers from whom the user purchased a lot ● Preferred applications purchesed by user who has similar purchasing habits ● Preferred applications from category which is popular for user
  19. 19. Enhancement with rule based functionality – implementation - 1● Enlargement the system model and generate new components and services● Implement „Genius” REST service ● Request parameter customer ID and the response a list of recommend applications● Implement necessary business services in business logic layer● Use JBoss Drools rule engine ● Weighting applications when a rule is activated
  20. 20. Enhancement with rule basedfunctionality – implementation - 2Request Collect Collect possible applications data (e.g. not purchased) Genius REST Service Fire rules Business layerResponse Get applicaions’ metrics: ● app popularity ● generated income ● developer popularity ● user similarity
  21. 21. Used technolgies Business processes: jBPM Business rules: JBoss Drools REST service layer: Jersey Business layer: OSGi, JEE, .Net WPF Database access layer: EclipseLink Database: Derby
  22. 22. Links● BUTE Fault Tolerant Systems Research Group http://www.inf.mit.bme.hu/en● SOA course at BUTE http://www.inf.mit.bme.hu/edu/courses/szolgint● OMGi Tools http://code.google.com/p/omgi-tools/

×