Insert title here - Gaming Standards Association
Download
Report
Transcript Insert title here - Gaming Standards Association
How to speed up the implementation of
GSA standards into new products
Backward Compatibility,
Interoperability and Testing
May 2010
Green Valley Ranch - Las Vegas, NV
Ales Gornjec, Hermes SoftLab
Agenda
G2S and S2S versions and impacts
Surviving with multiple versions of protocol
Interoperability
Changes introduced through clarifications in G2S 2.0
Strategies in solving and avoiding interoperability issues
Compliance with protocol specifications
Slide 2
Protocol versions
G2S
First released in 2006
Since we have seen one major release and several updates /clarifications
S2S
First release in 2004
Several updates and new releases were published
Multiple versions already implemented and deployed
New (major) versions are released every second year
New functionalities (integrated extensions)
Rearranged classes
Clarifications in gray areas
Support for multiple versions needed in both EGMs and systems
Strategy needed to keep interoperability at reasonable level
Slide 3
Multiple version requirements
EGMs
Costly to implement support for multiple versions of G2S to work
simultaneously
Multiple versions could be supported and treated as separate protocols
EGM must be configured to start with particular version
Host systems
Reasonable to expect not all EGMs on floor support the same G2S
version
Support for multiple simultaneous versions is needed
Extensions add complexity for multiple version support
Not a clear way to detect what peer supports
G2S has optional support for namespace negotiation (from v2.0)
Slide 4
G2S Multi-version support strategy
EGMs
Must stick with protocol and extension specification as much as possible
Avoid shortcuts in implementation
Detect and process errors correctly
Hard to hot fix due to certification constraints
Host
Should be able to support different versions and
Different collections of extensions
Use fall-back strategy (ask for cabinet instead of device meters)
Be tolerant to inconsistencies (when processing EGM messages)
Be compliant to specifications (when composing own messages)
More possibilities to deploy hot fixes
Field effect
Slide 5
Interoperability problems
Possible impacts
No communication – few or none messages exchanged
Messages exchanged, but lots of errors reported
Some functionality not usable (some G2S classes not operable)
Consistency and quality of delivered data
Several steps needed to resolve the issue
Examine communication logs
Scan communication and analyse messages (more complicated with
encrypted communication)
Analyze message flow
Deduce problem location and nature
Plan how to fix and resolve the issue
Slide 7
Interoperability
testing and validation
Scope:
Usually starts with single entities on both sides (EGM & system)
The goal for both sides is to work with multiple products
Interoperability LABs needed to tests such combinations
Common test tools help in pre-system test phases
Possible directions:
Follow the leader (first adopter)
Establish community agreement for common interoperability testing
Strong push from one major operator
Slide 8
G2S 1.0.3 to G2S 2.0
Some classes changed significantly like communications class
Additional request-response pairs
Additional functionality (namespace negotiation)
Additional (optional) attributes
Several clarifications on how some functionalities must be
implemented
Some gray areas removed
Portions of protocol stack needed rework
Major products still based on 1.0.3
Slide 9
G2S 2.0
Some changes in specification urged to change the
implementation of stack and way of integration
Examples:
Generation of event transactionIds changed (auto-generated in 1.0.3;
derived from context in 2.0)
Implementation changed: eventLogEntry.transactionId must be set by
the device that reports the event. EventLog will not create and assign
transactionId any more.
Relation between G2S device states (lock, disable) and EGM global
state changed.
Slide 10
Testing
GSA certification checks protocol implementation and
integration on message level
To remove interoperability issues, more complex scenarios are
needed:
Complex real life interaction
EGM state machine changes (service, menus, configuration)
Test automation is crucial for:
Keeping cost reasonable
Efficient regression testing
Performance testing (hosts testing)
Duration testing
Slide 11
HSL test automation based on WWF
G2S Host simulator
Allows test automation;
Test scripts are based on Windows Workflows Foundation (WWF)
Windows Workflows Foundation (WWF)
Provides displaying, editing and creating of workflows
Alternative text editors for scripts creation
Tracks the execution of workflow scripts
Slide 12
G2S Host simulator’s WWF script
Workflow designer
enables:
displaying,
editing and
creating
of various test
scenarios based on
the Embedded
Windows Workflow
Foundation Script
Editor
Slide 13
G2S Host simulator’s WWF script
Workflow
tracker allows
test automation
and tracks the
execution of
workflow
scripts
Slide 14
G2S Workflow Activities
Send: sending messages to the EGM
Receive: receiving messages from the EGM and filtering
for individual classes and devices
ReceiveEventReport: filtering messages to different
events
Validation: validating messages received by the EGM. It
can validate a single or multiple attributes
Transform:
various transformations of XML messages
setting sesssionIDs, commandIDs,
setting date and /or time,
etc.
before the messages are sent
Slide 15
Steps to create Workflow
Step 1:
Drag and drop
appropriate
activities on
workflow
designer
Slide 17
Steps to create Workflow
Step 2:
Fill Property
grid for each
activity – bind
property to
another
property or
insert text
(class,
command,
elements,
attributes)
Slide 18
Testing time comparison
phase
design
automatic test creation
and verification
manual testing
automated
testing
and documentation (1-2 h)
8h
single cycle execution
20 minutes
1 min
total execution time per
100 test cycles
2045 minutes
625 minutes
errors in execution (need
to repeat the test)
50
1
Slide 19
Workflow execution tracking - example
To execute the workflow:
Select desired
workflow when
communication
between host and
EGM is established.
To track the worklfow
Tracking of the
workflow can be done
via Workflow tracker’s
Tracking Channel (in
text form) or Tracking
Viewer (graphic form).
Slide 20
Interoperability: XML name prefix usage
Problem:
W3C XML specification allows strings for namespace prefixes to be
chosen by the implementation.
W3C XML allows global namespace to be defined without explicit
prefix
XML generators may use predefined or auto generated prefixes.
XML parser should handle any prefix that was used by sender.
Expecting prefixes to be used in particular way in receiver will cause
interoperability problems.
Impact:
High: Protocol stacks are not interoperable.
Strategy/Solution:
Simple: By default use auto generated prefixes (optimized for size)
Medium: Possibility to configure prefixes (if not auto-generated)
Medium: Tweak your XML generator to emit prefixes in particular way
Slide 21
Example of valid XMLs
One system might send:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<s2sMessage xmlns="http://www.gamingstandards.com/s2s/schemas/v1.2.6/">
<s2sAck xmlns:v1="http://www.gamingstandards.com/s2s/schemas/v1.2.6/"
v1:dateTimeSent="2010-04-14T12:21:07.728+03:00"
v1:fromSystem="http://1.2.3.4:8082/S2S_1"
v1:messageId="78"
v1:toSystem="http://4.3.2.1:12345/S2S"/>
</s2sMessage>
Another might expect:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<v1:s2sMessage
xmlns:v1="http://www.gamingstandards.com/s2s/schemas/v1.2.6/">
<v1:s2sAck
v1:dateTimeSent="2010-04-14T12:21:07.728+03:00"
v1:fromSystem="http://1.2.3.4:8082/S2S_1"
v1:messageId="78"
v1:toSystem="http://4.3.2.1:12345/S2S"/>
</v1:s2sMessage>
Slide 22
Interoperability: response to setCabinetState
G2S specification allows EGM to respond immediately or when
actual change of state occurs
Problem:
Such flexibility in EGM implementation can complicate host
implementation significantly
Impact:
Medium: Inconsistency of cabinetState information at host side
Strategy/Solution:
Complex: Implement more complex state machine on host side and
subscribe to events.
Slide 23
Interoperability: S2S Wildcard behaviour
S2S allows to use wildcards for selecting meters
In accountingMeter subscriptions
In event subscriptions
In on demand requests
Problem:
Host/server might not have enough information for S2S client requests
Impact:
High: inconsistent data may be delivered
Strategy/Solution:
Complex: Upgrade implementation to newer (latest) version
Medium: follow explanation from latest version on existing product
Host (edge) implementation and data collection strategy from EGM is
adjusted to satisfy S2S needs
Slide 24
Questions?
Slide 25