SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Architecture1101 jy21cyl
Architecture1101 jy21cylArchitecture1101 jy21cyl
Architecture1101 jy21cylZouhayr Rich
 
02.egovFrame Development Environment training book
02.egovFrame Development Environment training book02.egovFrame Development Environment training book
02.egovFrame Development Environment training bookChuong Nguyen
 
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012Arun Gupta
 
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, JohannesburgJava EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, JohannesburgArun Gupta
 
The Art & Sience of Optimization
The Art & Sience of OptimizationThe Art & Sience of Optimization
The Art & Sience of OptimizationHertzel Karbasi
 
Oracle tech fmw-02-soa-suite-11g-neum-15.04.2010
Oracle tech fmw-02-soa-suite-11g-neum-15.04.2010Oracle tech fmw-02-soa-suite-11g-neum-15.04.2010
Oracle tech fmw-02-soa-suite-11g-neum-15.04.2010Oracle BH
 
PaaSing a Java EE 6 Application at Geecon 2012
PaaSing a Java EE 6 Application at Geecon 2012PaaSing a Java EE 6 Application at Geecon 2012
PaaSing a Java EE 6 Application at Geecon 2012Arun Gupta
 
The Java EE 7 Platform: Developing for the Cloud
The Java EE 7 Platform: Developing for the CloudThe Java EE 7 Platform: Developing for the Cloud
The Java EE 7 Platform: Developing for the CloudArun Gupta
 
Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3
Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3
Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3SAP Portal
 
Tutorial: SharePoint 2013 Admin in the Hybrid World by Jason Himmelstein - SP...
Tutorial: SharePoint 2013 Admin in the Hybrid World by Jason Himmelstein - SP...Tutorial: SharePoint 2013 Admin in the Hybrid World by Jason Himmelstein - SP...
Tutorial: SharePoint 2013 Admin in the Hybrid World by Jason Himmelstein - SP...SPTechCon
 
Workflow bis17
Workflow bis17Workflow bis17
Workflow bis17sakpob
 
Beyond the Basics: An Overview of User LifeCycle and Managing Users with TDI
Beyond the Basics: An Overview of User LifeCycle and Managing Users with TDIBeyond the Basics: An Overview of User LifeCycle and Managing Users with TDI
Beyond the Basics: An Overview of User LifeCycle and Managing Users with TDIStuart McIntyre
 
Ebs operational reporting at santos evaluation, selection & implementation
Ebs operational reporting at santos evaluation, selection & implementationEbs operational reporting at santos evaluation, selection & implementation
Ebs operational reporting at santos evaluation, selection & implementationInSync Conference
 
Java EE / GlassFish Strategy & Roadmap @ JavaOne 2011
Java EE / GlassFish Strategy & Roadmap @ JavaOne 2011Java EE / GlassFish Strategy & Roadmap @ JavaOne 2011
Java EE / GlassFish Strategy & Roadmap @ JavaOne 2011Arun Gupta
 
04.egovFrame Runtime Environment Workshop
04.egovFrame Runtime Environment Workshop04.egovFrame Runtime Environment Workshop
04.egovFrame Runtime Environment WorkshopChuong Nguyen
 
Sakai Technical (Chinese)
Sakai Technical (Chinese)Sakai Technical (Chinese)
Sakai Technical (Chinese)jiali zhang
 
Java EE Technical Keynote at JavaOne Latin America 2011
Java EE Technical Keynote at JavaOne Latin America 2011Java EE Technical Keynote at JavaOne Latin America 2011
Java EE Technical Keynote at JavaOne Latin America 2011Arun Gupta
 

Was ist angesagt? (19)

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

Andere mochten auch

Challenges for advanced domain-specific frameworks
Challenges for advanced domain-specific frameworksChallenges for advanced domain-specific frameworks
Challenges for advanced domain-specific frameworksIstvan Rath
 
EmfStore - A Repository for EMF Models
EmfStore - A Repository for EMF ModelsEmfStore - A Repository for EMF Models
EmfStore - A Repository for EMF ModelsMaximilian Kögel
 
OSGi Community Event 2010 - App Store for the Connected Home Services
OSGi Community Event 2010 - App Store for the Connected Home ServicesOSGi Community Event 2010 - App Store for the Connected Home Services
OSGi Community Event 2010 - App Store for the Connected Home Servicesmfrancis
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerLuminary Labs
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
 

Andere mochten auch (7)

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

Ähnlich wie Expendables E-AppStore

SPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA
 
SharePoint 2010 as a Development Platform
SharePoint 2010 as a Development PlatformSharePoint 2010 as a Development Platform
SharePoint 2010 as a Development PlatformAyman El-Hattab
 
CloudStack Collaboration Conference 12; Refactoring cloud stack
CloudStack Collaboration Conference 12; Refactoring cloud stackCloudStack Collaboration Conference 12; Refactoring cloud stack
CloudStack Collaboration Conference 12; Refactoring cloud stackbuildacloud
 
Google App Engine At A Glance
Google App Engine At A GlanceGoogle App Engine At A Glance
Google App Engine At A GlanceStefan Christoph
 
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise ArchitecturesBIOVIA
 
Imaginea Service Sheet - Performance Engineering
Imaginea Service Sheet - Performance EngineeringImaginea Service Sheet - Performance Engineering
Imaginea Service Sheet - Performance EngineeringImaginea
 
Operating the Hyperscale Cloud
Operating the Hyperscale CloudOperating the Hyperscale Cloud
Operating the Hyperscale CloudOpen Stack
 
WARE: a tool for the Reverse Engineering of Web Applications
WARE: a tool for the Reverse Engineering of Web Applications WARE: a tool for the Reverse Engineering of Web Applications
WARE: a tool for the Reverse Engineering of Web Applications Porfirio Tramontana
 
2009 Q2 WSO2 Technical Update
2009 Q2 WSO2 Technical Update2009 Q2 WSO2 Technical Update
2009 Q2 WSO2 Technical UpdateWSO2
 
2012 CloudStack Design Camp in Taiwan--- CloudStack Overview-2
2012 CloudStack Design Camp in Taiwan--- CloudStack Overview-22012 CloudStack Design Camp in Taiwan--- CloudStack Overview-2
2012 CloudStack Design Camp in Taiwan--- CloudStack Overview-2tcloudcomputing-tw
 
02 Ms Online Identity Session 1
02 Ms Online Identity   Session 102 Ms Online Identity   Session 1
02 Ms Online Identity Session 1Sivadon Chaisiri
 
Дамир Тенишев Exigen Services Business Processes Storehouse
Дамир Тенишев Exigen Services Business Processes StorehouseДамир Тенишев Exigen Services Business Processes Storehouse
Дамир Тенишев Exigen Services Business Processes StorehouseТранслируем.бел
 
21st Century Service Oriented Architecture
21st Century Service Oriented Architecture21st Century Service Oriented Architecture
21st Century Service Oriented ArchitectureBob Rhubart
 
6.Live Framework 和Mesh Services
6.Live Framework 和Mesh Services6.Live Framework 和Mesh Services
6.Live Framework 和Mesh ServicesGaryYoung
 
SaaS transformation with OCE - uEngineCloud
SaaS transformation with OCE - uEngineCloudSaaS transformation with OCE - uEngineCloud
SaaS transformation with OCE - uEngineClouduEngine Solutions
 
AX2012 Technical Track - Entreprise portal, Czesia Langoswka
AX2012 Technical Track -  Entreprise portal, Czesia LangoswkaAX2012 Technical Track -  Entreprise portal, Czesia Langoswka
AX2012 Technical Track - Entreprise portal, Czesia Langoswkadynamicscom
 
F428435966 odtug web-logic for developers
F428435966 odtug   web-logic for developersF428435966 odtug   web-logic for developers
F428435966 odtug web-logic for developersMeng He
 
Summer training java
Summer training javaSummer training java
Summer training javaArshit Rai
 

Ähnlich wie Expendables E-AppStore (20)

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

Kürzlich hochgeladen

Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
GenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncGenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncObject Automation
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxYounusS2
 
RAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIRAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIUdaiappa Ramachandran
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdfJamie (Taka) Wang
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 

Kürzlich hochgeladen (20)

Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
GenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncGenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation Inc
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptx
 
RAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIRAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AI
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 

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