SlideShare a Scribd company logo
EXPENDABLES
TEAM
E-APPSTORE
HOMEWORK PROJECT
The project was a homework assignment at the Budapest
University of Technology and Economics during the System
Integration course lead by the Fault Tolerant System
Research Group.




https://www.inf.mit.bme.hu/en


https://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
DEVELOPMENT
PHASES
We 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 modeling
2.  Implementation of business logic
    •  Facilitated with code generation from system model
3.  Add rule-based app recommendation feature
DEVELOPMENT
PROCESS

Requirement 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      service
features

                 method
                                                  attribute
                          parameter
                                         entity               persistence
                                                               features


                                                    entity
                                                  reference
CODE GENERATION
We extended the DSM with code generation using Xtend 2
technology.
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
   interface


To learn more of the Expendables Web Service Modeler visit:
http://code.google.com/p/expendables-ws-modeller/
GENERATED ENTITY CLASS:
TRANSACTION ENTITY
GENERATED ENTITY MANAGER
AND SERVICE INTERFACES
                        Entity Manager Interface
                         for Transaction Entity




Service 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


                                         MySQL
Developed by
Expendables 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                               supervision
server                                                                                            information
                                                                           Expendables AppStore




                                                    EclipseSource JAX-RS
 Auto
Verify S.
                   jBPM
                  Workflow                                                    REST Services




                                                          Connector
Bytecode
Check 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
                       Supervision




Autoverification &
 Bytecode check
                       Human Test




 Metadata
Supervision
BANK SYSTEM
               Manager
 PHP                                      Eclipse – OSGi Framework
server
                                                                         Expendables AppStore




                                                  EclipseSource JAX-RS
 Auto
Verify S.
                 jBPM
                Workflow                                                    REST Services




                                                        Connector
Bytecode
      Separate ASP.NET                  Bank System
Check S.

                                                                                      Entity
                     REST interface




                                                                          Entities
.NET                                                                                 Managers
                                        Jersey
                                      (JAX-RS) communication
                                           REST
Bank




                                          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 SERVICE
Rule 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 SERVICE
Drools 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 are
recommended.
•  Same developer or same category:
Apps from the same developer or category of already owned apps
are recommended.
GENIUS SERVICE
Automatic 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 PROCESS
Processing XML
rules with DOM        Weka
     parser                      Decision
                   FP-            table
                  growth                       Correction
Asssociation                                    factors
 Lift factors
                  Association
                     rules        Drools
The initial
                                  Rules          Fire rules
 scores

          1
          1       Add the       Multiply the         The Top
List of   .      factors to     scores with          5 Apps
Apps      .        scores       the factors             by
          .                                           scores
          1
FINAL ARCHITECTURE                                                                            • 
                                                                                                • 
                                                                                                • 
                                                                                                     User Management
                                                                                                     Store
                                                                                                     Customer App
                                                                                                     Management
               Manager                                                                          •    Developer
 PHP                                      Eclipse – OSGi Framework                              •    Quality Assurance
server                                                                                          •    Financial

                                                                        Expendables AppStore




                                                 EclipseSource JAX-RS
 Auto
Verify S.
                 jBPM
                Workflow                                                   REST Services




                                                       Connector
Bytecode
Check 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
CONTACTS
Members:
•  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.com
Expendables 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

More Related Content

PPTX
Grottarossa:Why?
PDF
01.egovFrame Training Book II
PDF
Oracle - Programatica2010
PPT
Pure Ejb Within An Agile Context
PDF
N(i)2 technical architecture 2.0 (v1 1)
 
PDF
Understanding Oracle ADF and its role in Oracle Fusion Middleware
PPTX
Got ipads, android tablets and windows devices
PPT
Introducing adf business components
Grottarossa:Why?
01.egovFrame Training Book II
Oracle - Programatica2010
Pure Ejb Within An Agile Context
N(i)2 technical architecture 2.0 (v1 1)
 
Understanding Oracle ADF and its role in Oracle Fusion Middleware
Got ipads, android tablets and windows devices
Introducing adf business components

What's hot (19)

PDF
Architecture1101 jy21cyl
PDF
02.egovFrame Development Environment training book
PDF
Introduction to Force.com
PDF
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012
PDF
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
PPTX
The Art & Sience of Optimization
PDF
Oracle tech fmw-02-soa-suite-11g-neum-15.04.2010
PDF
PaaSing a Java EE 6 Application at Geecon 2012
PDF
The Java EE 7 Platform: Developing for the Cloud
PDF
Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3
PPTX
Tutorial: SharePoint 2013 Admin in the Hybrid World by Jason Himmelstein - SP...
PPTX
Workflow bis17
PDF
Beyond the Basics: An Overview of User LifeCycle and Managing Users with TDI
PDF
Ebs operational reporting at santos evaluation, selection & implementation
PPTX
Java ee introduction
PDF
Java EE / GlassFish Strategy & Roadmap @ JavaOne 2011
PDF
04.egovFrame Runtime Environment Workshop
PDF
Sakai Technical (Chinese)
PDF
Java EE Technical Keynote at JavaOne Latin America 2011
Architecture1101 jy21cyl
02.egovFrame Development Environment training book
Introduction to Force.com
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
The Art & Sience of Optimization
Oracle tech fmw-02-soa-suite-11g-neum-15.04.2010
PaaSing a Java EE 6 Application at Geecon 2012
The Java EE 7 Platform: Developing for the Cloud
Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3
Tutorial: SharePoint 2013 Admin in the Hybrid World by Jason Himmelstein - SP...
Workflow bis17
Beyond the Basics: An Overview of User LifeCycle and Managing Users with TDI
Ebs operational reporting at santos evaluation, selection & implementation
Java ee introduction
Java EE / GlassFish Strategy & Roadmap @ JavaOne 2011
04.egovFrame Runtime Environment Workshop
Sakai Technical (Chinese)
Java EE Technical Keynote at JavaOne Latin America 2011
Ad

Viewers also liked (7)

PPTX
Mdsd slides
PDF
Challenges for advanced domain-specific frameworks
PPT
EmfStore - A Repository for EMF Models
PDF
OSGi Community Event 2010 - App Store for the Connected Home Services
PDF
Aptoide partners 2016
PDF
Hype vs. Reality: The AI Explainer
PDF
Study: The Future of VR, AR and Self-Driving Cars
Mdsd slides
Challenges for advanced domain-specific frameworks
EmfStore - A Repository for EMF Models
OSGi Community Event 2010 - App Store for the Connected Home Services
Aptoide partners 2016
Hype vs. Reality: The AI Explainer
Study: The Future of VR, AR and Self-Driving Cars
Ad

Similar to Expendables E-AppStore (20)

PPTX
SPEC INDIA Java Case Study
PPTX
SharePoint 2010 as a Development Platform
PPTX
CloudStack Collaboration Conference 12; Refactoring cloud stack
PDF
Google App Engine At A Glance
PPTX
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
PDF
Imaginea Service Sheet - Performance Engineering
PDF
Operating the Hyperscale Cloud
PPT
WARE: a tool for the Reverse Engineering of Web Applications
PDF
2009 Q2 WSO2 Technical Update
PPTX
Sakeesoft
PDF
2012 CloudStack Design Camp in Taiwan--- CloudStack Overview-2
PDF
02 Ms Online Identity Session 1
PDF
Дамир Тенишев Exigen Services Business Processes Storehouse
PDF
21st Century Service Oriented Architecture
PPTX
6.Live Framework 和Mesh Services
PPTX
SaaS transformation with OCE - uEngineCloud
PPTX
AX2012 Technical Track - Entreprise portal, Czesia Langoswka
PPTX
PDF
F428435966 odtug web-logic for developers
PPT
Summer training java
SPEC INDIA Java Case Study
SharePoint 2010 as a Development Platform
CloudStack Collaboration Conference 12; Refactoring cloud stack
Google App Engine At A Glance
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
Imaginea Service Sheet - Performance Engineering
Operating the Hyperscale Cloud
WARE: a tool for the Reverse Engineering of Web Applications
2009 Q2 WSO2 Technical Update
Sakeesoft
2012 CloudStack Design Camp in Taiwan--- CloudStack Overview-2
02 Ms Online Identity Session 1
Дамир Тенишев Exigen Services Business Processes Storehouse
21st Century Service Oriented Architecture
6.Live Framework 和Mesh Services
SaaS transformation with OCE - uEngineCloud
AX2012 Technical Track - Entreprise portal, Czesia Langoswka
F428435966 odtug web-logic for developers
Summer training java

Recently uploaded (20)

PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Big Data Technologies - Introduction.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Approach and Philosophy of On baking technology
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
A Presentation on Artificial Intelligence
PDF
Empathic Computing: Creating Shared Understanding
PDF
Modernizing your data center with Dell and AMD
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Machine learning based COVID-19 study performance prediction
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Network Security Unit 5.pdf for BCA BBA.
Big Data Technologies - Introduction.pptx
cuic standard and advanced reporting.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Encapsulation theory and applications.pdf
Encapsulation_ Review paper, used for researhc scholars
Approach and Philosophy of On baking technology
Review of recent advances in non-invasive hemoglobin estimation
A Presentation on Artificial Intelligence
Empathic Computing: Creating Shared Understanding
Modernizing your data center with Dell and AMD
Advanced methodologies resolving dimensionality complications for autism neur...
Mobile App Security Testing_ A Comprehensive Guide.pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto
NewMind AI Monthly Chronicles - July 2025
Machine learning based COVID-19 study performance prediction
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx

Expendables E-AppStore

  • 2. HOMEWORK PROJECT The project was a homework assignment at the Budapest University of Technology and Economics during the System Integration course lead by the Fault Tolerant System Research Group. https://www.inf.mit.bme.hu/en https://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. DEVELOPMENT PHASES We 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 modeling 2.  Implementation of business logic •  Facilitated with code generation from system model 3.  Add rule-based app recommendation feature
  • 5. DEVELOPMENT PROCESS Requirement 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 service features method attribute parameter entity persistence features entity reference
  • 8. CODE GENERATION We extended the DSM with code generation using Xtend 2 technology. 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 interface To learn more of the Expendables Web Service Modeler visit: http://code.google.com/p/expendables-ws-modeller/
  • 10. GENERATED ENTITY MANAGER AND SERVICE INTERFACES Entity Manager Interface for Transaction Entity Service 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 MySQL Developed by Expendables 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 supervision server information Expendables AppStore EclipseSource JAX-RS Auto Verify S. jBPM Workflow REST Services Connector Bytecode Check 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 Supervision Autoverification & Bytecode check Human Test Metadata Supervision
  • 16. BANK SYSTEM Manager PHP Eclipse – OSGi Framework server Expendables AppStore EclipseSource JAX-RS Auto Verify S. jBPM Workflow REST Services Connector Bytecode Separate ASP.NET Bank System Check S. Entity REST interface Entities .NET Managers Jersey (JAX-RS) communication REST Bank 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 SERVICE Rule 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 SERVICE Drools 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 are recommended. •  Same developer or same category: Apps from the same developer or category of already owned apps are recommended.
  • 19. GENIUS SERVICE Automatic 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 PROCESS Processing XML rules with DOM Weka parser Decision FP- table growth Correction Asssociation factors Lift factors Association rules Drools The initial Rules Fire rules scores 1 1 Add the Multiply the The Top List of . factors to scores with 5 Apps Apps . scores the factors by . scores 1
  • 21. FINAL ARCHITECTURE •  •  •  User Management Store Customer App Management Manager •  Developer PHP Eclipse – OSGi Framework •  Quality Assurance server •  Financial Expendables AppStore EclipseSource JAX-RS Auto Verify S. jBPM Workflow REST Services Connector Bytecode Check 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. CONTACTS Members: •  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.com Expendables 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