Documente Academic
Documente Profesional
Documente Cultură
Prepared by:
Revision
1
Date
24/10/2012
Author
Description
First release
SoftWeave Ltd.
Introduction ................................................................................................................. 5 1.1 Background .......................................................................................................... 5 1.2 Design Goals ........................................................................................................ 5 2 Architecture................................................................................................................. 6 2.1 Introduction .......................................................................................................... 6 2.2 Major components ................................................................................................ 6 2.2.1 Physical Diagram .......................................................................................... 7 2.2.2 Users ............................................................................................................. 7 2.2.2.1 End user ................................................................................................. 7 2.2.2.2 Operator ................................................................................................. 7 2.2.2.3 Support Teams ....................................................................................... 7 2.2.3 Video ............................................................................................................. 9 2.2.4 Slot Machine Take Over ............................................................................... 9 2.2.5 CDN Services.............................................................................................. 10 2.2.6 Slot Management BO (EX) ......................................................................... 10 2.2.7 Chat server .................................................................................................. 11 2.2.8 Application servers ..................................................................................... 11 2.2.9 OLTP DB Server......................................................................................... 11 2.2.10 Reporting BO Server................................................................................... 12 2.2.11 Monitoring log ............................................................................................ 12 2.2.12 SAN............................................................................................................. 12 2.3 System components (logical) ............................................................................. 13 2.3.1 Operator ...................................................................................................... 13 2.3.2 Presentation Layer ...................................................................................... 14 2.3.2.1 Cashing\Front ...................................................................................... 14 2.3.2.2 Lobby ................................................................................................... 14 2.3.2.3 Game client .......................................................................................... 15 2.3.3 Integration Server........................................................................................ 16 2.3.3.1 User management ................................................................................ 16 2.3.3.2 Transaction management ..................................................................... 16 2.3.4 Gaming platform ......................................................................................... 16 2.3.4.1 Slot management ................................................................................. 16 2.3.4.2 Hostess MNG ...................................................................................... 17 2.3.5 Gaming DB ................................................................................................. 17 2.3.5.1 Dictionary Schema .............................................................................. 18
2
2.3.5.2 Configuration Schema ......................................................................... 18 2.3.5.3 User Base ............................................................................................. 18 2.3.5.4 Gaming DB .......................................................................................... 19 2.3.5.5 Gaming Control ................................................................................... 19 2.3.6 Reporting..................................................................................................... 19 2.3.6.1 Reporting APP ..................................................................................... 19 2.3.6.2 Reporting DBs ..................................................................................... 20 2.3.6.3 Reporting DWH ................................................................................... 20 2.3.7 Slot Management BO (EX) ......................................................................... 20 2.3.7.1 Data Assimilation ................................................................................ 20 2.3.7.2 Pit manager .......................................................................................... 20 2.3.7.3 Reports and Analytics .......................................................................... 20 2.3.8 Video ........................................................................................................... 21 2.3.9 Slot machine take over ................................................................................ 21 2.3.9.1 Microcontroller .................................................................................... 21 2.3.10 Server Side .................................................................................................. 22 2.3.11 Monitoring logging ..................................................................................... 22 3 System main functionalities ...................................................................................... 23 3.1 Game play .......................................................................................................... 23 3.1.1 General ........................................................................................................ 23 3.1.2 Flow diagram .............................................................................................. 24 3.1.3 Error handling/messages ............................................................................. 25 3.2 Join Hostess ........................................................................................................ 25 3.3 Join Hostess ........................................................................................................ 25 3.3.1 General ........................................................................................................ 25 3.3.2 Flow diagram .............................................................................................. 26 3.3.3 Error handling/messages ............................................................................. 26 3.4 History ................................................................................................................ 27 3.4.1 Flow diagram .............................................................................................. 27 3.4.1 Error handling/messages ............................................................................. 27 3.5 Slot Queue .......................................................................................................... 28 3.5.1 Flow diagram .............................................................................................. 28 3.5.2 Error handling/messages ............................................................................. 28 4 Hardware components in the system ........................................................................ 29 4.1 General ............................................................................................................... 29 4.1.1 Application server ....................................................................................... 29
4.1.2 SAN............................................................................................................. 30 4.1.3 Machine control node ................................................................................. 30 4.1.3.1 General................................................................................................. 30 4.1.3.2 Set up and Configuration ..................................................................... 30 4.1.4 DB ............................................................................................................... 30 4.1.4.1 General................................................................................................. 31 4.1.4.2 Set up and Configuration ..................................................................... 31 4.1.5 Cameras....................................................................................................... 31 4.1.5.1 General................................................................................................. 31 4.1.5.2 Set up and Configuration ..................................................................... 31 5 Performance (load model)......................................................................................... 32 6 Miscellanea / Appendices ......................................................................................... 33 6.1 Interoperability with other systems .................................................................... 33 6.1.1 Chat server .................................................................................................. 33 6.1.1 External BO system .................................................................................... 33 6.1.2 Video streaming and control ....................................................................... 33 6.1.3 CDN services .............................................................................................. 33 6.1.4 Operator ...................................................................................................... 33 6.1.5 Monitoring .................................................................................................. 33 6.2 Expandability ..................................................................................................... 33 6.3 Monitoring .......................................................................................................... 33 6.4 Security............................................................................................................... 34 6.5 Open Issues ........................................................................................................ 34
1 Introduction
1.1 Background
This design document describes the structure of the new online gaming product. The system will allow players to activate and place bets on actual physical video slots in remote. The system will support supporting and premium services such as privet hostesses and real time touring of the casino floor.
2 Architecture
2.1 Introduction
The remote slot application aim is to provide the end user a live video slot play experience.It will contain a combination of software and hardware components controlling the game flow. The application will integrate several existing components alongside proprietary modules in to one eco system. A dedicated video slot floor will be set up with the capabilities of setting up to 500 slot machine and support for video equipment lightning and adequate walking space and staging location for live hostess. To allow remote physical control on the slot machines the solution will require installing microcontrollers to mimic the click operations of the end user, extensive wiring, video equipment and hardware. All of the above should be hidden from the end user to allow an authentic video slot floor look and feel. The slot machines will be fitted in customized cabinets that will hide the wiring and microcontrollers. The rest of the hardware will be located in the servers room, and there will be an additional room for the NOC and floor management stuff. The application is a client server distributed application with several components located outside the casino premises.
2.2.2 Users
2.2.2.2 Operator
The casino is a white labelsolutionbuilt to support multiple operators. The operator is responsible to bring the end user in to the casino and manage their bankroll. An operator will use our integration API to connect to the casino and initiate game play. Using a web based reporting system interface the operator will be able to view his and only his client game play and general revenue reports.
2.2.2.3.2 Hostess
The hostesses will fill role of the entertainment provider in the casino. Once an end user connects to the hostess his basic data will be displayed on the hostess client, this information will include name nickname, language and VIP level. . Hostesss availability list will be filtered per user based on his characteristics (language) and history connections. The hostess application will hold a rich client that will provide direct video conference between the hostesses and the end user private and public chat options. That client will establish connection with the chat server video streaming system gaming platform ( for user data and availability ) The hostesses client will support two major formats Touring hostesses with the neck mike, portable camera and tablet, communicating by public chat rooms and answer via voice. Privet hostess entertaining the client while playing a slot machine the machine will be equipped with a camera, microphone, headset and a screen to display the clients name and text chat. Her hand need to be free.
2.2.2.3.3 Support
The support group cover several functions all connected to back office services: NOC first response team that monitors the casino activity unlike the Pit Manager they will not manipulate the actual slot machines. The NOC team will receive inputs from the logging application (fed by the application servers and microcontrollers), floor hardware log reporting, reporting application aggregating results and the external BO application. Once an error is noticed will attempt to address the issue!if not in their jurisdiction will escalate! Second level support second level support is targeted to answer the operator issues. End users issues will be dealt through their operator representatives. The team members will enjoy rich client interface with access to player\operator history, statistical and operational reports.
2.2.3 Video
The physical layer enabling communication between the live casino floor (hostess and slot machines ) to the end user. The system is comprised mostly of IP cameras( which are cameras that transmit the image over the Ethernet). The cameras feed will be streamed directly to the end user, some of the premium cameras (provided with augmented reality ) might be connected to a PC that will manage and relay their stream to the network . All cameras will be monitored and accessed via the network. The cameras will stream four types ofcontent groups. Setup options will be a selected according to the required functionality : o General video of the casino floor for ambiance o Single slot machine game play image o Slot machine supporting Private hostess - the video feed will be served in an enhanced fashion , it will be augmented with extra visual and 3d graphical effects o Touring hostess supporting walk about features for hostesswhile touring the casino floor. The major inputs and outputs will be: o a non-processed video stream o processed video stream that will contain an overlay of augmented reality , graphics etc' o audio from the hostess wearable mics The video system will have a management server that will connect between the cameras streams to end user, in case a few clients are watching the same slot machine they will be served the same stream. The management server will also monitor and check the availability of the camera and will provide alerts in the case of a malfunction. Management server will run on JBOSS using java and java web services technologies
It is estimated that we shall need 3-5 servers one for every 100-160 machines the server will need to process hundreds of command in parallel and hold hundreds of TCP/IP connections. The nodes will be comprised out of microcontroller and peripheral electronic to interface and control the machine electro mechanical interface. The microsystem client will be programmed via dedicated language according to the chosen microcontroller (C, C like languages). System management will be carried using a web based GUI that will report the status of the system and will enable management functionality. A series of leds indicating the status and activity of the microsystems will allow the tech team to spot the condition of the controller on the floor. Each slot machine will have its own microcontroller the microcontroller will connect to the machine buttons / electrical components via it digital and analog ports. For example: if you need to press a button then the button contacts will be replaces by a relay (electro-mechanical or solid state one) , The software will be loaded to the microcontroller locally via USB by the technician / manufacturer, software updates will be done In the same way. Configuration updates will be sent remotely and will reside on the microcontroller flash memory
10
Real time push of games result per machine per round VIA API to our system. The data transferred needs to include bet and win amounts in credits. Pit manager reporting and monitoring module Compliance with the local authorities requirements
Requirements: Relational DB features support RDP scenarios support for up to the second live back up hot recovery option On premises support for clustering mirroring or replication solution Encryption support for gambling regulation standards
2.2.10
Reporting BO Server
The following DB servers is considered a VLDB it main usage will be to hold game history. Accompanying the server an ETL application to migrate and accumulate data origin in the fast history DB. The server will host several Databases : Recent history for fast data insertions and reads Archive old game play for archiving purposes supporting large data volumes DWH eco system built for aggregation and reporting NonSQL DB second stage reporting development when raw data reaches 1T The game history saved will serve the following functions: End user will be able to view former games Reports for the operator Support team inquiry Fraud investigation Requirements: Relational DB features support due to the consistency required by the regulation standards RDP scenarios support for live back up hot recovery option Data compression and partitioning
2.2.11
Monitoring log
Will ingrate an out of the box monitoring system. The system will report errors application and hardware and create alerts and escalate
2.2.12
SAN
The SAN device will support the storage requirements for the different application servers DB and external applications. For requirements please check the hardware section below.
12
2.3.1 Operator
The logical unit of the Operator represents our clients.To whom we are providing the live floor casino service. Technology and unit platform are under the jurisdiction and responsibility of the operator. The unit holds the user information and bankroll and will manage chase deposits and all the money transactions involved with the end user funds including history saved risk management deposit fraud detection and preventions. The live floor casino application will consider the data provided by the operator as accurate and up to date and will not try to validate it on its own account.
13
Main functions required Login and authentication end user Get user data to the integration service Funds wiredraw Funds deposited Optional functions Game round results receive and store Request report from the casino
2.3.2.1 Cashing\Front
This is the Proxy cashingpart of the application holding public data to be presented to all users. Such as machine mapping, machine betting limits, error messages, assets available slot machines, hostess, JP balance, video streaming lists. Data will be held in a format readable to all the different lobby clients ( See below ). This cashing application only, no specific logic is defined per user. Scaling the application is done by multiplying servers. At the second stage the application should be migrated to the cloud utilizing Global CDN services assuring the quick delivery to end users. Main functions required Read slot list hostesses list from gaming platform Format read information to designated format Cash data for delivery Hold slot queue
2.3.2.2 Lobby
Rich Client side GUI built in HTML 5 to support multiple platforms. There will be different presentation formats based on the end user platform ( see below ). The aim is to
14
invite client to use the slot machines and hostesss services (see BRD for more information) Main functions required Select presentation format when loaded the lobby will build the presentation format base on the end user platform using dedicated configuration file per platform.Since the screen size and user interface differs from on platform to another an appropriate GUI supporting the appropriate screen size and control options. Read data from cashing front Read user data from integration server Present touring hostess video feed and chat connection Select private hostess Select slot open game client window Display live streaming media Multilingual and multicurrency support Walk around camera feed Display a synchronized player balance Support messages to client (ticker) Handel waiting queue alert for a specific slot user will mark that he wants to play on certain slot if it is occupied and will receive an alert to lobby or client when slot is available
15
Messages to the client Manage the stream settings mute /resolution /full screen mode.
16
Define a slot. o Insert slot information: type , name description language support ID o Insert bet related info : available betting options , payout , JP Connection o Insert game play configuration : existing buttons and layout can be used with private hostess o Duplicate machine for fast creation of a new machine o Edit configuration information o Notice you cannot delete a slot machine Slot availability Configure slot availability list is limited to vip clients only English speaking only .. Set slot status o Operational status is the slot available to game play o Occupy slot user selected the slot Return slot list and slot information
2.3.5 Gaming DB
The gaming DB is built form several data schemas (table groups with functionality related to each other). It is an OLTP DB by design built for small number record insert and restore at one operation
17
communication
18
o User record will hold the basic information of the user usually the mutual ground to all operators. Name , operator id last login time casino floor unique id o User extra information this is a none essential user level data like age .
2.3.5.4 Gaming DB
This is the most active schema, it will hold game play data per logged in user. The DB will serve as a persistent chasing layer for the different game servers, that way the application can remain stateless and the next action can be taken care off by any of the servers.
2.3.6 Reporting
The reporting a platform is a complex system design to absorb massive amount of event records from round play to private to hostess requests, then aggregate the raw data creating as the end result data ready for predesigned reports.
19
20
2.3.8 Video
The video component is responsible to stream the video feed form with in the casino to the end user and log the activity of the slot machines Main functionality: Capture video and voice feed using IP cameras see physical for more info Management and streaming system Serve as a directory and lookup server for clients wishing to access certain camera, the camera will be searched according to position (corridor junction for the 360 degrees camera ) or by slot machine ID , this server will also monitor and keep the status of each camera and will provide alerts and notifications to the operators regarding the camera status . Store game play video for later viewing. Stream data to end user, with integration to video streaming CDNs if required The management server will log the system events and camera usage Alerts will be sent from the management server to the operators using mail and event to the general monitoring application.
2.3.9.1 Microcontroller
Main functionality: Receive simple commands via string ( such as "1" = press button 1 , "d" = send back diagnostic data ) Hold X ( minimum 100 ) recent commands received by the microcontroller ( memory card is optional in that case , we might use the microcontroller internal flash ) The microcontroller can in some cases hold a verifying hardware that will check if a button was pressed properly.
The technology in use: There are several options. Currently it seems we shall use a microcontroller from the Arduino family. It will be accompanied with a Ethernet shield .The microcontrollers it will be programmed via the Arduino C language version.
21
2.3.10
Server Side
Main functionality: Provide access to the node functionalities via SDK the node access will be protected by software mechanism that will prevent more than one player to access it (in java it will be implemented as synchronized object with session lock) this mechanism is provided as a safety measure, the access to the node should be restricted to one player by the calling application. Provide status of all nodes Alert on node failure Recovery mechanism: source of failure can be in one of three places:server, communication medium ( Ethernet) , node. In case of node disconnection it will be the server responsibility to contact the node by using a repetitive polling of node connection. In thecase the server is shutting down and restarting it will receive by node TCP/IP addresses and will be responsible to call them one after the other till connection is established between them all. At the second phase a initial handshake / recognition process will be programed in to the nodes, by the node calling the server in order to list itself up.
2.3.11
Monitoring logging
The monitoring layer will serve as the focal of the whole application platform. The different parts of the application will report back logical error to the monitoring app on errors and monitoring agent will be implemented in the application for external monitoring. The errors will trigger event in the application resulting escalation and reports back to the first level support on premises.
22
o o o o
23
24
25
o Insufficient funds in the case of private hosting if there is no money in the end user balance: display warning on client screen with a countdown saying screen will be darken in ..
3.4 History
To allow transparency and help with operator support we will allow access to our reporting platform from an external interface. The operator will have to login to our BO system the reporting app will keep session info on the login and will check for user right before performing any report and displaying results.
27
28
4.1.2 SAN
Our SAN solution will support the application server storage requirements video storage for history and the DB requirements. A NETApp Mid-level solution will do, with following feature: Support to 30TB Storage Dual switch Support for RDP and snapshot External storage chaining
4.1.3.1 General
Will be built form a Case ( 10X10X10 cm ) with external power supply , and wires going out to the peripherals of the slot machine , it will have the on/off button , and communication ports for standard Ethernet cat-5 cat-6 cables
4.1.4 DB
The DB hardware is based on the application server and SAN components mentioned above currently there are no specific hardware requirements for the DB. We will start with the following a resource a locations OLTP SERVER : 1 CPU Dual Core 2 GB Memory 50 GB Hard Drive for data 100 GB Hard drive backup 150 GB for snapshot Reporting DB 2 CPU Dual Core 4 GB Ram
30
100 GB Hard Drive for Data 150 GB Hard Drive Backup 200 GB snapshot
4.1.4.1 General
TBD
4.1.5 Cameras
4.1.5.1 General
TBD
31
32
6 Miscellanea / Appendices
6.1 Interoperability with other systems
6.1.1 Chat server
Redirect user to private and public chat rooms based on the current client state for example in the lobby the user will join public chat rooms used by the touring hostess
6.1.4 Operator
See logical design
6.1.5 Monitoring
We will use an out of the box monitoring application using standard syslog and snmp traps will receive error report from the deferent modules display report on the main noc screen.
6.2 Expandability
This is a live floor casino application due to security and regulation it can not be extends or modified by third party with the exception of the APIs exposed by the integration layer.
6.3 Monitoring
Will use global monitoring system gathering date from the different application components. Logical application errors will be reported to the main monitoring application Monitoring agents installed on the servers Ip cameras and augmented cameras will be monitored by the management server that will report back Streaming solution will be monitored by its own monitoring utilities and if possible by interfacing to the streaming solution SDK through the management server
33
The management server will be monitored by the operators using a web interface Microcontroller will be monitored by the takeover server and a set of leds indicting the microcontroller status
6.4 Security
We assume that the internal network is isolated from the web through the streaming servers and those servers are protected by proper firewall and other security mechanisms. Security issues can rise from tempering with the ip cameras remotely and of other system component, the issue can rise from denial of service attack to hijacking services and interfering with the camera proper operation by addressing its SDK . Injecting massive amounts of requests can cause the microcontroller node or the takeover server to lock or malfunction, thus the local Ethernet infrastructure should be isolated from the web accesses should be allowed only by internal network.
34