Please enable JavaScript.
Coggle requires JavaScript to display documents.
VLT BackOffice Technical Solution Draft (Technologies, tools, engines…
VLT BackOffice Technical Solution Draft
Software structure :
Visual Studio Projects (assemblies structure) :question:
*.Repository
.Business.Abstractions or
.Business.Model
*.Business
BackOffice.WebApi
Terminology
Repository
Model and everything depending on used database technology and tools
Business
Model and everything not depending on underlying database technology and tool
Mapping
Mapping business to repository and vice versa. Copying objects with content, converting types and formats.
Audit
Logging work of users (administrators using admin app)
Permissions
Defines what can user do using admin app and what can attendant do directly on terminal using service menu
User
User of administration web application
Attendant wiorking directly on terminal through service menu
Model
Enties and its relationships
Player
Somebody using games or other applications on terminal
Terminal
Hardware device managed by BackOffice system. Also known as EGM.
Game
Game software running on terminal
Business event
Event occured on terminal during its operation
Topology
List of terminals and its relationships to geographics location, venues and retailers.
Venue
Single geographically located place where one or more terminals are held
Entity
There is no such thing like definition of the "entity" word :smiley:
Sanitization
Automatic (on the fly) change of value of entity property from bad to good
Responsible gaming
Limitations of player's activities (maximum bet, some time limits etc.). Editable by user him/herself.
Conceptual project structure
Repository
Repository entity model
Constraints from business model
Matches underlying database engine (SQL or Mongo now)
Repository logic
Business
Business entity model
Defines basic validation constraints and exposes to be used in repository entity model
Ranges for numbers
Maximum string length
Regular expression for strings (allowed characters and formats)
Logical consistency validations
Business logic
Operations above business model
Mapping layer - from business to repository entities and vice versa
Basic validation (validators)
Permission checking
Sanitizing values
Deduplication of names
Automatic string trimming and shrinking
WebService API
ODATA protocol for data pull
SignalR for data push
How to formal definition?
:question:
Microservices
Deployed as a single large service with WebAPI
Inprocess communication using C# interfaces
Ready to be deployed separately
Microservices by purpose
Events store
Stores incoming business events from terminals
Allows to query for store business events
Terminal Alive
Receives business events from terminal
Receives special
alive
messages from terminals
Allow to determine time of terminal last activity
Topology
Stores information related to topology of terminals
Allows queries and changes
Users management
Stores information about users and theirs permissions
Allows queries and changes
System audit
Stores information about users activities in whole system. Receives messages from other microservices.
Communication service
Provides communication with terminals
Commands, events, notifications
Content storage
Stores large binaries as software packages, videos, advertisements etc.
Content distribution
Distributes large binaries to terminals
Alerts
Monitors events incoming from terminals and starts predefined operations when some conditions are met
Reporting
Generates reports using data exposed by other services
Users messaging
Sends mails and SMS to users
Using 3-rd party tool for templating and sending
Must be usable for non-technical staff (templates)
Must be able to send mails with attachments, rich text formatting and images.
Must handle delivery failures
Must keep statistics for reporting
Terminal Health
Monitors realtime status of terminal
Aggregates information from other services
Accounting
Vouchers
Responsible gaming
Jackpot
Software management
Manages software packages on terminals
Remote installation, deinstallation
Maintains information about terminals software configuration
Configuration store
Stores configuration data for terminals components
Stores configuration data for system components
Is agnostic to the data types, stores data as classes with type tag serialized to BSON
Navision export
Exports financial data to company accounting system
Technologies, tools, engines
Databases
SQL for relational small and medium sized data
Entity Framework
Allow to use virtually ANY database engine. SQL Express must be enough.
MongoDB for non-relational large data sets with scalability requirements
Configuration
Ninject
Mapping
AutoMapper
Sending messages to users
E-mailing
Sendind :question:
Templating :question:
SMS
Templating :question:
Sending :question:
Auditing
Each microservice sends auditing information through S2S messaging to AuditService
Localization :question:
WebService API
ODATA
SignalR
Frontend
DevExtreme
ASP.NET MVC :question:
Communication with terminals
RabbitMQ
Testing
Moq
Postman for integration tests
User authetication
ASP.NET MVC
Formal API definition
CSDL through ODATA tools
Inprocess events
Reactive Extensions
Reporting
Microsoft Power BI :question:
Archivation
Microsoft Azure function :question:
System communication security
Own certification authority
Deployment
Health monitoring tools
Requirements
Performance
100 messages per second from terminals
100 clients of admin app in concurrent
Data retain
5 years
Archivation
GDPR
Personal data (contacts)
Auditing data (work of users logs)
Reporting
Automatic reports via email
Automatic alerts via email and SMS
System health alerts
Integration with other systems
Navision
User experience
Nice UI
Responsive UI
Fast and user friendly
Look and feel is most important
:!:
G2S compliant
Just some degree of converegency for now
Formal API documentation
Business model
Entities
Events
Commands
Formats
Communication protocol
WebAPI
Audit
All information about changes in system are logged and can be audited.
Testing
System functionality and performance testing tool
Simulates terminals and its activities
Simulates business events including errors and intrusions
WebAPI testing tool
Simulates users activities through ODATA protocol
Checking model constraints
Checking business operations
Principles
No compromises
First pass yield
Everytime controlled development
User experience is everything
Delivery
Charon protocol
Reliable delivery
Not only transport of messages, but reliable processing
Allows to detect missing messages and resend them