Symphony Bridge is a powerful service based technology that enables the access of data and logic from a variety of clients.
The Symphony Bridge offers a variety of server protocols that allow access to data and logic through powerful Symphony Data Object classes. Symphony Harmony is the client technology that allows access via SQL like syntax to the data and .Net business logic.
The Symphony Bridge server provides the following server protocols:
The first three server protocol are accessed though the Symphony Harmony client methods. There is no Symphony Harmony client for the WEB API Restful protocol which enables the consumer to use any client capabilities such as JavaScript.
Symphony Bridge server can be run as a console application (for testing purposes) and as windows service. The settings for each are configured independently in their respective configuration files. The console application's configuration file is called "SymphonyBridgeServerConsole.exe.config" and the windows service configuration file is called "SymphonyBridgeServerService.exe.config". The following settings are applicable for both servers:
Setting | Remarks | Example |
---|---|---|
SYMPHONY_BRDIGE_LIBRARY_FOLDER | This is the base folder where the servers are installed. | C:\Program Files (x86)\RCPConsultants\SymphonyFramework\SymphonyBridge |
SYMPHONY_AUTHENTICATION_DATA | Defines the folder where authentication data is located. this data is volatile and is not visible outside of the server. | C:\Program Files (x86)\RCPConsultants\SymphonyFramework\SymphonyBridge |
SYMPHONY_BRIDGE_THROW_LICENSE_EXCEPTION | If set to "True" an exception is thrown if a Synergy license cannot be allocated. If set to "False" the runtime will pause before allocating a license. | False |
SYMPHONY_BRIDGE_FORCE_DOMAIN_KILL | When a request has been completed force the applicaiton domain to be killed. The default is to leave the domain active for future client connetions. | False |
SYMPHONY_UNIQUE_DISPATCHERS | <depreciated> Force logic dispatchers to be placed on a unique thread. | True |
SYMPHONY_DEBUG_VIEW | Setting to a value other than "0" will cuase extensive logging to be recorded. This setting has a significant impact on performance and should be set to "0" unless a critical issue is encountered. | 0 |
SYMPHONY_BRIDGE_APPDOMAIN_TIMEOUT | The time in seconds a domain remains active. Clients reconnecting will be reallocated the original server they used. This improved performance. | 60 |
SYMPHONY_BRIDGE_LOGGING_FOLDER | The folder location when client connection logging information is stored. Each connection will create a log file. Regularly removing old log files is recommended. | C:\Program Files (x86)\RCPConsultants\SymphonyFramework\SymphonyBridge\Log |
SYMPHONY_BRIDGE_SELLOGGING_FOLDER | Additional Syenrgy/DE Select logging can be recorded and the resulting log files will be stored in this folder location. Synergy/DE Select logging in not thread/domain safe and thus log files may contain details from duplicate concurrent client connections. It is recommended only when testing individual client connections. | C:\Program Files (x86)\RCPConsultants\SymphonyFramework\SymphonyBridge\SelectLog |
SYMPHONY_BRIDGE_SERVER_WEB_ADDRESS | This is the server and port number which the running server will allocate and listen on for inbound Web HTTP web service connections from Symphony Harmony. | localhost:8081 |
SYMPHONY_BRIDGE_SERVER_TCP_ADDRESS | This is the server and port number which the running server will allocate and listen on for inbound Net TCP-IP connections from Symphony Harmony. | localhost:8082 |
SYMPHONY_BRIDGE_SERVER_WEBAPI_ADDRESS | This is the server and port number which the running server will allocate and listen on for inboundWEB API Restful connections. | localhost:8083 |
SYMPHONY_BRIDGE_SERVER_WEBAPI_VERSION | Define the verion number of the service. | 1 |
SYMPHONY_BRDIGE_CUSTOM_ROUTINGS | Provides the ability to define the libraries containing bespoke/custom WEB API controllers. The string should be a semi-colon separated list of assemblies including the DLL extension. All the assemblies must exisitng in the folder defined by the SYMPHONY_BRDIGE_LIBRARY_FOLDER setting above. | ExampleData.dll;CustomData.dll |
SYMPHONY_BRIDGE_CORS_DOMAINS | CORS or Cross Origin Resource Sharing. Define the address of the client to provide CORS enablment. | http://localhost:50284 |
SYMPHONY_BRIDGE_SERVER_MESSAGE_SIZE | Size of the message size allowed through Symphony Bridge. | 2147483647 |
SYMPHONY_BRIDGE_SERVER_SERVICE_BUS | The address of the Microsoft Azure Service Bus relay to connect to. | SymphonyBridgeService |
SYMPHONY_BRIDGE_SERVER_SERVICE_KEY | This is the security key that is required to make the connection tot he Microsoft Azure Service Bus Relay instance. | dRjiyTaojffcmd8NlJyUmrbjY65TFW8XLd/waP1Q6C0= |
BRIDGEDATA | The location where Symphony Bridge pulse matrix data is recorded. | C:\Program Files (x86)\Synergex\SymphonyFramework\SymphonyBridge\Data\ |
SYMPHONY_EXPOSE_CATALOGUE_INFO | Setting to "True" will allow Symphony Bridge to return information about the resources available such as table names, table field names, stored procedure method names and parameters. | True |
SYMPHONY_CUSTOM_MAPPING_CLASS | Define the fully qualified name of the table mapping method used to map table names to physical file names. The client connection must use the DNS: prefix to force the evaluation of this setting and the subsequent execution of the defined method to map the table name to the file name. | ExampleData.CustomTableMapping.MapDSNTableToFile |
SYMPHONY_AUTHENTICATION_CLASS | The Symphony Bridge provides for complete authentication and authorization control of access to resources. This setting should be the name of your class that implements the ISymphonyAuthentication interface. | ExampleData.Authenticate |
SYMPHONY_IO_HOOK_CLASS |
The Synergy/DE file IO sub-system provide the ability to implement IO Hooks. These hooks provide the ability to perform logic when IO is performed on the Synergy data within a file. Symphony Bridge fully supports IO Hooks. This setting should be set to the fully qualified name of your IO Hook class. The name should incldue the fully namespace, class, method name and the assembly name where the method can be found. |
ExampleData.Data.dataIOHookManager, ExampleData |
SYMPHONY_BRIDGE_CUSTOM_HEADER_MNEMONIC | Define the custom mnemonic to be returned following a POST, PUT or DELETE operation through the Symphony Bridge WEB API Restful protocol. | The default value is "Symphony". The resulting header mnemonic is "X-Symphony-Result". |
SYMPHONY_EXPOSE_CATALOGUE_INFO | If set to True then when using the WEBAPI server protocol the client can query the server for resource information such as the strucutre names and fields along with the store procedure method names and arguments. | True |
SYMPHONY_BRIDGE_POOLED_DOMAINS | Specify if the Symphony Bridge Server should create a pool of application domains. Pooling application domains can improve the performance of the Symphony Bridge Server. | True |
SYMPHONY_BRIDGE_POOLED_DOMAINS_COUNT | Define the number of pooled domains. | 10 |
SYMPHONY_EVENT_LOG_DATABASE | Define the PostgreSQL database connection string. This will be the database used to record Symphony Event log details. | Server=localhost;Port=5432;User ID=symphony;Password=*************;Database=symphonydatabase; |
SYMPHONY_EVENT_RECORDING | Define the number of pooled domains. | True |
Once the required configuration settings have been defined the Symphony Bridge server can be run. You can run the console server from a Windows Command Prompt that has Administrator privileges by simply running the SymphonyBridgeServerConsole.exe program. The server will run and display the available connections:
To run the Symphony Bridge as a windows server you first need to register the service. This can be done by executing the SBServiceCreate.bat script. This script accepts a single parameter - the service number. This allows you to create any number of services:
The service can be stopped and started using the Service application in Control Panel.