SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
Motivation                           Introducing Remorseful              Summary
...                                   .
..                                    ......




                             Design of Remorseful
             A Distributed User Management and Authentication Solution


                                       Weisi Dai
                                      (09055029)

                       Department of Computer Science and Technology
                                 Xi’an Jiaotong University


                                     Mar 14, 2012
Motivation                     Introducing Remorseful   Summary
...                             .
..                              ......


                                 Outline



      Motivation
        The Basic Problem That I Studied
        Previous Work


      Introducing Remorseful
          Technical Details
          Object Models
Motivation                        Introducing Remorseful    Summary
...                                .
..                                 ......


                 Distributed User Authentication Solution


             • mongoDB
             • HTML5
             • Javascript
             • Application

      Roles
             • Users
             • Administrator(s)
Motivation                          Introducing Remorseful   Summary
...                                  .
..                                   ......


                                        Roles

      Users
             • Register
             • Pay
             • Choose Plan
             • Log in via clients


      Administrator(s)
             • Add and ban users
             • Add and edit plans
             • Add and modify peer servers info
Motivation                           Introducing Remorseful              Summary
...                                   .
..                                    ......


                          We need a(n)                        solution




             • Simple
             • Effective
             • No Single-point Failure!
Motivation                             Introducing Remorseful                  Summary
...                                     .
..                                      ......


                                        RADIUS
                 abbr for Remote Authentication Dial In User System, RFC2865




             • Complete Solution, both Commercial and Free
                 • Our NIC uses that!
             • Designed for Accounting in Telecommunication Industry
                 • Very very heavily used!

             • Complicated
Motivation                             Introducing Remorseful   Summary
...                                     .
..                                      ......


                       MagiAdmin and OVpnUsrMng

      MagiAdmin, by Aveline Swan
             • PHP-based
             • Not Scalable
             • Not So Fault-Tolerant
             • Not Open-Source


      OVpnUsrMng
             • Python And Django based
             • SQLite as Database
             • Not So Scalable
Motivation                           Introducing Remorseful   Summary
...                                   .
..                                    ......


                 Perfect Combination, Simple and Scalable



      Database: mongoDB
             K-V Store, NOSQL

      Web: Node.js
             Javascript on the Server Side

      OS: Unix like
Motivation                 Introducing Remorseful           Summary
...                         .
..                          ......


                                User
      CREATE TABLE IF NOT EXISTS ‘Remorseful‘.‘User‘ (
        ‘idUser‘ INT NOT NULL ,
        ‘UserName‘ TINYTEXT NOT NULL ,
        ‘Password‘ TINYTEXT NOT NULL ,
        ‘Email‘ TINYTEXT NOT NULL ,
        ‘Contact‘ TINYTEXT NULL ,
        ‘Credit‘ INT(11) NOT NULL ,
        ‘Banned‘ TINYINT(1) NOT NULL ,
        ‘Plan‘ INT NULL ,
        PRIMARY KEY (‘idUser‘, ‘UserName‘) ,
        UNIQUE INDEX ‘UserName_UNIQUE‘ (‘UserName‘ ASC) ,
        INDEX ‘Plan‘ (‘Plan‘ ASC) ,
        CONSTRAINT ‘Plan‘
          FOREIGN KEY (‘Plan‘ )
          REFERENCES ‘Remorseful‘.‘Plan‘ (‘idPlan‘ )
          ON DELETE NO ACTION
Motivation                 Introducing Remorseful        Summary
...                         .
..                          ......


                                Plan



      CREATE TABLE IF NOT EXISTS ‘Remorseful‘.‘Plan‘ (
        ‘idPlan‘ INT NOT NULL ,
        ‘PlanTitle‘ TINYTEXT NOT NULL ,
        ‘Bandwidth‘ INT NOT NULL ,
        ‘Connection‘ INT NOT NULL ,
        ‘MonthlyFee‘ INT NOT NULL ,
        ‘Hidden‘ TINYINT(1) NOT NULL ,
        PRIMARY KEY (‘idPlan‘, ‘PlanTitle‘) )
Motivation                 Introducing Remorseful          Summary
...                         .
..                          ......


                              Record
      CREATE TABLE IF NOT EXISTS ‘Remorseful‘.‘Record‘ (
        ‘idRecord‘ INT NOT NULL ,
        ‘Service‘ TINYTEXT NOT NULL ,
        ‘ConnTime‘ DATETIME NOT NULL ,
        ‘DisconnTime‘ DATETIME NULL ,
        ‘IP‘ TINYTEXT NOT NULL ,
        ‘BandwidthUp‘ MEDIUMTEXT NULL ,
        ‘BandwidthDown‘ MEDIUMTEXT NULL ,
        ‘User‘ INT NOT NULL ,
        PRIMARY KEY (‘idRecord‘) ,
        INDEX ‘User‘ (‘User‘ ASC) ,
        CONSTRAINT ‘User‘
          FOREIGN KEY (‘User‘ )
          REFERENCES ‘Remorseful‘.‘User‘ (‘idUser‘ )
          ON DELETE NO ACTION
          ON UPDATE NO ACTION)
Motivation                 Introducing Remorseful           Summary
...                         .
..                          ......


                            Payment

      CREATE TABLE IF NOT EXISTS ‘Remorseful‘.‘Payment‘ (
        ‘idPayment‘ INT NOT NULL ,
        ‘User‘ INT NOT NULL ,
        ‘Via‘ TINYTEXT NOT NULL ,
        ‘Amount‘ INT NOT NULL ,
        ‘TIME‘ DATETIME NOT NULL DEFAULT now() ,
        PRIMARY KEY (‘idPayment‘) ,
        INDEX ‘User‘ (‘User‘ ASC) ,
        CONSTRAINT ‘User‘
          FOREIGN KEY (‘User‘ )
          REFERENCES ‘Remorseful‘.‘User‘ (‘idUser‘ )
          ON DELETE NO ACTION
          ON UPDATE NO ACTION)
Motivation                 Introducing Remorseful        Summary
...                         .
..                          ......


                                Peer




      CREATE TABLE IF NOT EXISTS ‘Remorseful‘.‘Peer‘ (
        ‘idPeer‘ INT NOT NULL ,
        ‘IP‘ VARCHAR(45) NOT NULL ,
        ‘PORT‘ INT NOT NULL ,
        PRIMARY KEY (‘idPeer‘) )
Motivation                           Introducing Remorseful                         Summary
...                                   .
..                                    ......


                                    EER Diagram
              Record
                                                                Plan
             idRecord INT
                                                               idPlan INT
             Service TINYTEXT
                                         User                  PlanTitle TINYTEXT
             ConnTime DATETIME
                                       idUser INT              Bandwidth LONG
             DisconnTime DATETIME
                                       UserName TINYTEXT       Connection INT
             IP TINYTEXT
                                       Password TINYTEXT       Hidden BOOL
             BandwidthUp LONG
                                       Email TINYTEXT          MonthlyFee INT
             BandwidthDown LONG
                                       Contact TINYTEXT       Indexes
             User INT
                                       Credit INTEGER         PRIMARY
        Indexes
                                       Banned BOOL
        PRIMARY
                                       Plan INT                  Payment
        User
                                      Indexes                   idPayment INT
                                      PRIMARY                   User INT
              Peer                    UserName_UNIQUE
                                                                Via TINYTEXT
         idPeer INT                   Plan
                                                                Amount INT
         IP VARCHAR(45)
                                                                TIME DATETIME
         PORT INT
                                                              Indexes
        Indexes
                                                              PRIMARY
        PRIMARY
                                                              User



      Created with MySQL Workbench 5.2.34
Motivation                             Introducing Remorseful   Summary
...                                     .
..                                      ......


                             Summary: Remorseful




             • Consistent Front-End and Back-End
             • mongoDB for K-V Store, Distributed
             • 5 Tables, or 5 Models

      Any Questions?
Appendix
.



                       Remorseful online




      Released under GPL v3, and online at
      http://github.com/multiple1902/remorseful

Más contenido relacionado

Similar a Design of Remorseful

Data Democratization at Nubank
 Data Democratization at Nubank Data Democratization at Nubank
Data Democratization at Nubank
Databricks
 
Resdk java custo_webi_dg
Resdk java custo_webi_dgResdk java custo_webi_dg
Resdk java custo_webi_dg
kilbull
 

Similar a Design of Remorseful (20)

CDI and Weld
CDI and WeldCDI and Weld
CDI and Weld
 
Python business intelligence (PyData 2012 talk)
Python business intelligence (PyData 2012 talk)Python business intelligence (PyData 2012 talk)
Python business intelligence (PyData 2012 talk)
 
Ds8800 plan guide
Ds8800 plan guideDs8800 plan guide
Ds8800 plan guide
 
Apache Pinot Meetup Sept02, 2020
Apache Pinot Meetup Sept02, 2020Apache Pinot Meetup Sept02, 2020
Apache Pinot Meetup Sept02, 2020
 
CouchApps: Requiem for Accidental Complexity
CouchApps: Requiem for Accidental ComplexityCouchApps: Requiem for Accidental Complexity
CouchApps: Requiem for Accidental Complexity
 
Data Democratization at Nubank
 Data Democratization at Nubank Data Democratization at Nubank
Data Democratization at Nubank
 
Book Getting Started Src
Book Getting Started SrcBook Getting Started Src
Book Getting Started Src
 
Db2
Db2Db2
Db2
 
Resdk java custo_webi_dg
Resdk java custo_webi_dgResdk java custo_webi_dg
Resdk java custo_webi_dg
 
Debugging a .NET program after crash (Post-mortem debugging)
Debugging a .NET program after crash (Post-mortem debugging)Debugging a .NET program after crash (Post-mortem debugging)
Debugging a .NET program after crash (Post-mortem debugging)
 
Pspice userguide ingles
Pspice userguide inglesPspice userguide ingles
Pspice userguide ingles
 
Openobject bi
Openobject biOpenobject bi
Openobject bi
 
Nu229 a00mr
Nu229 a00mrNu229 a00mr
Nu229 a00mr
 
Microservices designing deploying
Microservices designing deployingMicroservices designing deploying
Microservices designing deploying
 
Microservices designing deploying
Microservices designing deployingMicroservices designing deploying
Microservices designing deploying
 
Microservices_Designing_Deploying.pdf
Microservices_Designing_Deploying.pdfMicroservices_Designing_Deploying.pdf
Microservices_Designing_Deploying.pdf
 
Microservices designing deploying
Microservices designing deployingMicroservices designing deploying
Microservices designing deploying
 
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
 
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
 
KVSの性能、RDBMSのインデックス、更にMapReduceを併せ持つAll-in-One NoSQL: MongoDB
KVSの性能、RDBMSのインデックス、更にMapReduceを併せ持つAll-in-One NoSQL: MongoDB KVSの性能、RDBMSのインデックス、更にMapReduceを併せ持つAll-in-One NoSQL: MongoDB
KVSの性能、RDBMSのインデックス、更にMapReduceを併せ持つAll-in-One NoSQL: MongoDB
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Design of Remorseful

  • 1. Motivation Introducing Remorseful Summary ... . .. ...... Design of Remorseful A Distributed User Management and Authentication Solution Weisi Dai (09055029) Department of Computer Science and Technology Xi’an Jiaotong University Mar 14, 2012
  • 2. Motivation Introducing Remorseful Summary ... . .. ...... Outline Motivation The Basic Problem That I Studied Previous Work Introducing Remorseful Technical Details Object Models
  • 3. Motivation Introducing Remorseful Summary ... . .. ...... Distributed User Authentication Solution • mongoDB • HTML5 • Javascript • Application Roles • Users • Administrator(s)
  • 4. Motivation Introducing Remorseful Summary ... . .. ...... Roles Users • Register • Pay • Choose Plan • Log in via clients Administrator(s) • Add and ban users • Add and edit plans • Add and modify peer servers info
  • 5. Motivation Introducing Remorseful Summary ... . .. ...... We need a(n) solution • Simple • Effective • No Single-point Failure!
  • 6. Motivation Introducing Remorseful Summary ... . .. ...... RADIUS abbr for Remote Authentication Dial In User System, RFC2865 • Complete Solution, both Commercial and Free • Our NIC uses that! • Designed for Accounting in Telecommunication Industry • Very very heavily used! • Complicated
  • 7. Motivation Introducing Remorseful Summary ... . .. ...... MagiAdmin and OVpnUsrMng MagiAdmin, by Aveline Swan • PHP-based • Not Scalable • Not So Fault-Tolerant • Not Open-Source OVpnUsrMng • Python And Django based • SQLite as Database • Not So Scalable
  • 8. Motivation Introducing Remorseful Summary ... . .. ...... Perfect Combination, Simple and Scalable Database: mongoDB K-V Store, NOSQL Web: Node.js Javascript on the Server Side OS: Unix like
  • 9. Motivation Introducing Remorseful Summary ... . .. ...... User CREATE TABLE IF NOT EXISTS ‘Remorseful‘.‘User‘ ( ‘idUser‘ INT NOT NULL , ‘UserName‘ TINYTEXT NOT NULL , ‘Password‘ TINYTEXT NOT NULL , ‘Email‘ TINYTEXT NOT NULL , ‘Contact‘ TINYTEXT NULL , ‘Credit‘ INT(11) NOT NULL , ‘Banned‘ TINYINT(1) NOT NULL , ‘Plan‘ INT NULL , PRIMARY KEY (‘idUser‘, ‘UserName‘) , UNIQUE INDEX ‘UserName_UNIQUE‘ (‘UserName‘ ASC) , INDEX ‘Plan‘ (‘Plan‘ ASC) , CONSTRAINT ‘Plan‘ FOREIGN KEY (‘Plan‘ ) REFERENCES ‘Remorseful‘.‘Plan‘ (‘idPlan‘ ) ON DELETE NO ACTION
  • 10. Motivation Introducing Remorseful Summary ... . .. ...... Plan CREATE TABLE IF NOT EXISTS ‘Remorseful‘.‘Plan‘ ( ‘idPlan‘ INT NOT NULL , ‘PlanTitle‘ TINYTEXT NOT NULL , ‘Bandwidth‘ INT NOT NULL , ‘Connection‘ INT NOT NULL , ‘MonthlyFee‘ INT NOT NULL , ‘Hidden‘ TINYINT(1) NOT NULL , PRIMARY KEY (‘idPlan‘, ‘PlanTitle‘) )
  • 11. Motivation Introducing Remorseful Summary ... . .. ...... Record CREATE TABLE IF NOT EXISTS ‘Remorseful‘.‘Record‘ ( ‘idRecord‘ INT NOT NULL , ‘Service‘ TINYTEXT NOT NULL , ‘ConnTime‘ DATETIME NOT NULL , ‘DisconnTime‘ DATETIME NULL , ‘IP‘ TINYTEXT NOT NULL , ‘BandwidthUp‘ MEDIUMTEXT NULL , ‘BandwidthDown‘ MEDIUMTEXT NULL , ‘User‘ INT NOT NULL , PRIMARY KEY (‘idRecord‘) , INDEX ‘User‘ (‘User‘ ASC) , CONSTRAINT ‘User‘ FOREIGN KEY (‘User‘ ) REFERENCES ‘Remorseful‘.‘User‘ (‘idUser‘ ) ON DELETE NO ACTION ON UPDATE NO ACTION)
  • 12. Motivation Introducing Remorseful Summary ... . .. ...... Payment CREATE TABLE IF NOT EXISTS ‘Remorseful‘.‘Payment‘ ( ‘idPayment‘ INT NOT NULL , ‘User‘ INT NOT NULL , ‘Via‘ TINYTEXT NOT NULL , ‘Amount‘ INT NOT NULL , ‘TIME‘ DATETIME NOT NULL DEFAULT now() , PRIMARY KEY (‘idPayment‘) , INDEX ‘User‘ (‘User‘ ASC) , CONSTRAINT ‘User‘ FOREIGN KEY (‘User‘ ) REFERENCES ‘Remorseful‘.‘User‘ (‘idUser‘ ) ON DELETE NO ACTION ON UPDATE NO ACTION)
  • 13. Motivation Introducing Remorseful Summary ... . .. ...... Peer CREATE TABLE IF NOT EXISTS ‘Remorseful‘.‘Peer‘ ( ‘idPeer‘ INT NOT NULL , ‘IP‘ VARCHAR(45) NOT NULL , ‘PORT‘ INT NOT NULL , PRIMARY KEY (‘idPeer‘) )
  • 14. Motivation Introducing Remorseful Summary ... . .. ...... EER Diagram Record Plan idRecord INT idPlan INT Service TINYTEXT User PlanTitle TINYTEXT ConnTime DATETIME idUser INT Bandwidth LONG DisconnTime DATETIME UserName TINYTEXT Connection INT IP TINYTEXT Password TINYTEXT Hidden BOOL BandwidthUp LONG Email TINYTEXT MonthlyFee INT BandwidthDown LONG Contact TINYTEXT Indexes User INT Credit INTEGER PRIMARY Indexes Banned BOOL PRIMARY Plan INT Payment User Indexes idPayment INT PRIMARY User INT Peer UserName_UNIQUE Via TINYTEXT idPeer INT Plan Amount INT IP VARCHAR(45) TIME DATETIME PORT INT Indexes Indexes PRIMARY PRIMARY User Created with MySQL Workbench 5.2.34
  • 15. Motivation Introducing Remorseful Summary ... . .. ...... Summary: Remorseful • Consistent Front-End and Back-End • mongoDB for K-V Store, Distributed • 5 Tables, or 5 Models Any Questions?
  • 16. Appendix . Remorseful online Released under GPL v3, and online at http://github.com/multiple1902/remorseful