On October 23rd, 2014, we updated our
By continuing to use LinkedIn’s SlideShare service, you agree to the revised terms, so please take a few minutes to review them.
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
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
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
DEVELOPMENTPROCESSRequirement analysis Analysis & Business process Architectural design model modeling Business Generative Domain process model implementation specific model Rule based functionality
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.
DOMAIN SPECIFIC MODEL system REST servicefeatures method attribute parameter entity persistence features entity reference
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/
GENERATED ENTITY CLASS:TRANSACTION ENTITY
GENERATED ENTITY MANAGERAND SERVICE INTERFACES Entity Manager Interface for Transaction EntityService Interface for Financial Service
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
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
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
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
QUALITY ASSURANCE JBPM WORKFLOW Name SupervisionAutoverification & Bytecode check Human Test MetadataSupervision
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
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
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.
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
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
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
CONTACTSMembers:• Ableda Péter (firstname.lastname@example.org)• Csicsely Attila (email@example.com)• Kiss Dániel (firstname.lastname@example.org)• Lóránd Bálint (email@example.com)Group e-mail address:• firstname.lastname@example.orgExpendables 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