Expendables E-AppStore
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Expendables E-AppStore

on

  • 696 views

 

Statistics

Views

Total Views
696
Views on SlideShare
592
Embed Views
104

Actions

Likes
0
Downloads
4
Comments
0

3 Embeds 104

http://www.inf.mit.bme.hu 89
http://inf.mit.bme.hu 14
http://webcache.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Expendables E-AppStore Presentation Transcript

  • 1. EXPENDABLESTEAME-APPSTORE
  • 2. HOMEWORK PROJECTThe project was a homework assignment at the BudapestUniversity of Technology and Economics during the SystemIntegration course lead by the Fault Tolerant SystemResearch Group.https://www.inf.mit.bme.hu/enhttps://www.inf.mit.bme.hu/edu/courses/szolgint
  • 3. ASSIGNMENT•  Design and implement the business logic of an app store, where… •  Customers can: •  Browse and view applications •  Buy applications •  Get recommendations on which apps to buy •  Manage their accounts •  Developers can: •  Upload their applications with additional metainformation •  Manage, and update their uploaded applications •  Transfer their profit to a bank account •  Shop managers can: •  Supervise submitted apps, accept, or reject them
  • 4. DEVELOPMENTPHASESWe used a model driven approach to create our App store.Development phases:1.  Analysis and design •  Requirement analysis •  Domain analysis •  System design with domain specific model •  Business process modeling2.  Implementation of business logic •  Facilitated with code generation from system model3.  Add rule-based app recommendation feature
  • 5. DEVELOPMENTPROCESSRequirement analysis Analysis & Business process Architectural design model modeling Business Generative Domain process model implementation specific model Rule based functionality
  • 6. ANALYZING THE DOMAIN•  We created a domain specific meta-model using the Eclipse Modeling Framework to help designing our system. Required modeling elements: •  Business entities with persistence •  Services and methods with REST interfaces •  Types, attributes, references…•  Using this domain specific language we could create an instance model of our planned system.
  • 7. DOMAIN SPECIFIC MODEL system REST servicefeatures method attribute parameter entity persistence features entity reference
  • 8. CODE GENERATIONWe extended the DSM with code generation using Xtend 2technology.Generated Java source artifacts from system model:•  Entity class files with JPA annotations for persistence•  Entity manager interfaces for entity manipulation•  Service interfaces files with JAX-RS annotations for RESTful interfaceTo learn more of the Expendables Web Service Modeler visit:http://code.google.com/p/expendables-ws-modeller/
  • 9. GENERATED ENTITY CLASS:TRANSACTION ENTITY
  • 10. GENERATED ENTITY MANAGERAND SERVICE INTERFACES Entity Manager Interface for Transaction EntityService Interface for Financial Service
  • 11. ARCHITECTURE •  •  •  User Management Store Customer App Management •  Developer Eclipse – OSGi Framework •  Quality Assurance •  Financial Expendables AppStore EclipseSource JAX-RS REST Services Connector Entity REST interface Entities Managers Jersey (JAX-RS) EclipseLink (JPA) Customer or MySQL Developer Connector MySQLDeveloped byExpendables team Server
  • 12. DATA STORAGE•  POJO Entity classes with JPA annotations •  Entirely generated code from system model •  JPQL named queries •  Various relationships between entities•  Entity Manager classes for retrieving and interacting with entities•  OR mapping with EclipseLink (Java Persistence API 2.0 reference implementation)•  MySQL Server for storage •  Database schema generated by EclipseLink •  Connection with Java MySQLConnector
  • 13. WEB SERVICES•  OSGi Java components with RESTful interfaces using EclipseSource JAX-RS Connector•  Using Jersey JAX-RS reference implementation•  Generation gap pattern •  Generated Java interfaces with JAX-RS annotations (from system model with generation tool) •  Manually written pure Java implementation classes•  Architecture: •  Java classes – services •  Java methods – service functions•  Usage: •  http://appstoredomain/service/function
  • 14. QUALITY ASSURANCE Quality Assurance Service for getting and submitting Manager PHP Eclipse – OSGi Framework supervisionserver information Expendables AppStore EclipseSource JAX-RS AutoVerify S. jBPM Workflow REST Services ConnectorBytecodeCheck S. jBPM workflow to drive the supervision process Entity REST interface •  Interacts with Entities Managers Jersey supervising Manager (JAX-RS) HTML forms via •  Manager approves the values or EclipseLink (JPA) describes problems •  Separate PHP services •  Customer Dummy implementations MySQL •  Result or random value: is Developer GO/NO GO Connector MySQL Developed by Expendables team Server
  • 15. QUALITY ASSURANCE JBPM WORKFLOW Name SupervisionAutoverification & Bytecode check Human Test MetadataSupervision
  • 16. BANK SYSTEM Manager PHP Eclipse – OSGi Frameworkserver Expendables AppStore EclipseSource JAX-RS AutoVerify S. jBPM Workflow REST Services ConnectorBytecode Separate ASP.NET Bank SystemCheck S. Entity REST interface Entities.NET Managers Jersey (JAX-RS) communication RESTBank with AppStore Transfer Money function for EclipseLink (JPA) transferring money to Upload Credit service Bank Customer for buying credits at or AppStore MySQL Developer Connector MySQL Developed by Expendables team Server
  • 17. GENIUS SERVICERule based recommendation service•  Drools rule engine •  Applications assigned with a score •  Rule firings change the scores •  Prohibitive rules multiply the score by zero •  Recommending rules multiply the score by a greater than one factor•  The factors initialized from a decision table •  Variable assignment can be done from an excel sheet •  Managers don’t affect the source code•  The service returns a list of applications with the highest scores, meaning those the most recommended apps
  • 18. GENIUS SERVICEDrools rules:•  Age limit:Apps for customers above a certain age are not recommended.•  Already owned apps:Already owned apps are not recommended.•  Popular apps:Apps purchased in the last 31 days and above a certain price arerecommended.•  Same developer or same category:Apps from the same developer or category of already owned appsare recommended.
  • 19. GENIUS SERVICEAutomatic Derivation of rules with data mining methods•  Database: •  Transactions in adjacency matrix form (user – app dimensions) •  Automatic update of the matrix with stored procedures•  Association: •  Generated Association rules with Weka •  API calls •  Read directly from MySQL DB •  FP-growth algorithm http://en.wikipedia.org/wiki/Association_rule_learning#FP- growth_algorithm •  Recommendations from the association rules
  • 20. THE GENIUS PROCESSProcessing XMLrules with DOM Weka parser Decision FP- table growth CorrectionAsssociation factors Lift factors Association rules DroolsThe initial Rules Fire rules scores 1 1 Add the Multiply the The TopList of . factors to scores with 5 AppsApps . scores the factors by . scores 1
  • 21. FINAL ARCHITECTURE •  •  •  User Management Store Customer App Management Manager •  Developer PHP Eclipse – OSGi Framework •  Quality Assuranceserver •  Financial Expendables AppStore EclipseSource JAX-RS AutoVerify S. jBPM Workflow REST Services ConnectorBytecodeCheck S. Genius Service Entity REST interface Entities.NET Managers Jersey (JAX-RS)Bank JBoss EclipseLink (JPA) Drools Customer or MySQL Developer Connector MySQL MySQL Developed by Weka Server Connector Expendables team
  • 22. CONTACTSMembers:•  Ableda Péter (abledapeter@gmail.com)•  Csicsely Attila (csicsely.attila@gmail.com)•  Kiss Dániel (kissdani89@gmail.com)•  Lóránd Bálint (balint.lorand@gmail.com)Group e-mail address:•  expendables-team@googlegroups.comExpendables Web Service Modeler•  http://code.google.com/p/expendables-ws-modeller/Fault Tolerant System Research Group at BUTE•  https://www.inf.mit.bme.hu/en