コード例 #1
0
 public void frmSTXServiceTestApplication_Load(System.Object sender, System.EventArgs e)
 {
     try
     {
         this._STXServicePArametersCont = new DiscoverableServiceDefinitionParametersContainer();
     }
     catch (Exception)
     {
     }
 }
コード例 #2
0
            public static DiscoverableServiceDefinitionParametersContainer GetLocalServiceParameters(string parametersFileName)
            {
                DiscoverableServiceDefinitionParametersContainer _STXServiceDefinitionParametersContainer = default(DiscoverableServiceDefinitionParametersContainer);

                try
                {
                    _STXServiceDefinitionParametersContainer = ObjectSerializer.DeserializeObjectFromFile(parametersFileName);
                    return(_STXServiceDefinitionParametersContainer);
                }
                catch (Exception)
                {
                    return(null);
                }
            }
コード例 #3
0
            internal static DiscoverableServiceDefinitionParametersContainer GetLocalHostServiceDefaultParameters()
            {
                string hostNAme = Dns.GetHostName();

                DiscoverableServiceDefinitionParametersContainer parameters = new DiscoverableServiceDefinitionParametersContainer();

                parameters.AddParameter(CNDServiceDefinitions.CND_SERVICE_NAME, System.Convert.ToString(CNDServiceDefinitions.CNDSERVICE_PUBLIC_NAME));
                parameters.AddParameter(CNDServiceDefinitions.CND_SERVICE_HOSTNAME, System.Convert.ToString(hostNAme));
                IPAddress LocalActiveIPAddress = CommunicationsLibrary.Utilities.CommunicationsUtilities.GetActiveIPAddress();
                string    IPAdddressAsString   = LocalActiveIPAddress.ToString();

                parameters.AddParameter(CNDServiceDefinitions.CND_SERVICE_IP_ADDRESS, System.Convert.ToString(IPAdddressAsString));
                parameters.AddParameter(CNDServiceDefinitions.CND_SERVICE_P2PPORT_PORTNUMBER, System.Convert.ToString(CNDServiceDefinitions.CND_SERVICE_DEFAULT_PORT));
                parameters.AddParameter(CNDServiceDefinitions.CND_SERVICE_MULTICASTSERVER_IP_ADDRESS, System.Convert.ToString(CNDServiceDefinitions.CND_SERVICE_MULTICAST_IP_ADDRESS));
                parameters.AddParameter(CNDServiceDefinitions.CND_SERVICE_MULTICASTSERVER_PORTNUMBER, System.Convert.ToString(CNDServiceDefinitions.CND_SERVICE_MULTICAST_PORT));


                return(parameters);
            }
            public DiscoverableServiceDefinitionHandlingServer(DiscoverableServiceHandlingOperativeDefs.DiscoverableServiceMode serviceMode, string serviceName, DiscoverableServiceDefinitionParametersContainer parameters)
            {
                this._serviceName       = serviceName.ToUpper();
                this._serviceID         = Guid.NewGuid().ToString("N");
                this._servideMode       = serviceMode;
                this._serviceParameters = parameters;
                //adds the service name, its id and its operation mode in the parameters Table
                //in order to reply the table within the broadcast reply as a hashtable and
                //retrieve those parametes in the client to fill specific fiels of the structure DiscoverableServiceDefinition
                this._serviceParameters.AddParameter(DiscoverableServiceHandlingOperativeDefs.SERVICE_NAME, this._serviceName);
                this._serviceParameters.AddParameter(DiscoverableServiceHandlingOperativeDefs.SERVICE_ID, this._serviceID);
                this._serviceParameters.AddParameter(DiscoverableServiceHandlingOperativeDefs.SERVICE_OPERATION_MODE, DiscoverableServiceHandlingOperativeDefs.GetServiceOperationModeAsString(this._servideMode));

                this._clientQueriesReceived     = 0;
                this._succesfullQueriesResulted = 0;

                //Me._broadcastListener = BroadCasting.DataBroadcastListener.GetInstance
                this._broadcastListener = new DataBroadcastListener(DiscoverableServiceHandlingOperativeDefs.DHS_SERVICE_HANDLER_BROADCAST_IP_ADDRESS, DiscoverableServiceHandlingOperativeDefs.DSH_SERVICE_HANDLER_BROADCAST_TCP_PORT);
                this._broadcastListener.DataReceived += this.broadcastDataReceived;
            }
コード例 #5
0
            private CNDService()
            {
                this._remoteComponentLinkTable = new CNDRemoteComponentLinkHandlerTable();
                this._remoteComponentLinkTable.LinkWithRemoteComponentHasBroken += this.LinkWithRemoteComponentHasBroken;

                //************************************************************************************
                //CREATION THE DEFAULT P2P PORT OF THE SERVICE
                try
                {
                    this._serviceP2PPort = new P2PPort(this, CNDServiceDefinitions.CND_SERVICE_DEFAULT_PORT);
                }
                catch (Exception ex)
                {
                    string msg = " Error starting the default P2PPort of CND service : " + ex.Message;
                    CustomEventLog.WriteEntry(EventLogEntryType.Warning, msg);

                    this._serviceP2PPort = new P2PPort(this);

                    msg = "The CND Service default P2PPort was started using a dinamic port number \'" + System.Convert.ToString(this._serviceP2PPort.ListeningPortNumber) + "\' out of the CND service range (" + System.Convert.ToString(CNDCommunicationsEnvironmentDefinitions.INITIAL_TCP_PORT_FOR_CND_COMMS_ENVIRONMENT) + "-" + System.Convert.ToString(CNDCommunicationsEnvironmentDefinitions.FINAL_TCP_PORT_FOR_CND_COMMS_ENVIRONMENT) + ")";
                    CustomEventLog.WriteEntry(EventLogEntryType.Warning, msg);
                }

                //************************************************************************************
                //CREATION THE MULTICASTING DATA REPLICATOR SERVER
                try
                {
                    this._MultiCastDataReplicationServer = new MultiCastDataReplicationServer(CNDServiceDefinitions.CND_SERVICE_MULTICAST_IP_ADDRESS, CNDServiceDefinitions.CND_SERVICE_MULTICAST_PORT);
                }
                catch (Exception ex)
                {
                    string msg = " Error starting a multicast port for CND service : " + ex.Message;
                    CustomEventLog.WriteEntry(EventLogEntryType.Warning, msg);

                    this._MultiCastDataReplicationServer = new MultiCastDataReplicationServer();

                    msg = "The CND service Multicast Server was started using a dinamic port number \'" + System.Convert.ToString(this._MultiCastDataReplicationServer.MultiCastPortNumber) + "\' out of the CND service range (" + System.Convert.ToString(CNDCommunicationsEnvironmentDefinitions.INITIAL_TCP_PORT_FOR_CND_COMMS_ENVIRONMENT) + "-" + System.Convert.ToString(CNDCommunicationsEnvironmentDefinitions.FINAL_TCP_PORT_FOR_CND_COMMS_ENVIRONMENT) + ")";
                    CustomEventLog.WriteEntry(EventLogEntryType.Warning, msg);
                }

                this.LoadCNDTableFromFileOrCreateAndEmptyTableIfNotExists();

                this._hostName = System.Net.Dns.GetHostName();
                //crates the service parameters to publish throuGh the STXServiceDefinitionHandlerServer
                this._STXServicePArametersCont = new DiscoverableServiceDefinitionParametersContainer();
                this._STXServicePArametersCont.AddParameter(CNDServiceDefinitions.CND_SERVICE_NAME, System.Convert.ToString(CNDServiceDefinitions.CNDSERVICE_PUBLIC_NAME));
                this._STXServicePArametersCont.AddParameter(CNDServiceDefinitions.CND_SERVICE_HOSTNAME, System.Convert.ToString(this._hostName));
                this._STXServicePArametersCont.AddParameter(CNDServiceDefinitions.CND_SERVICE_IP_ADDRESS, this._serviceP2PPort.IPAddress.ToString());
                this._STXServicePArametersCont.AddParameter(CNDServiceDefinitions.CND_SERVICE_P2PPORT_PORTNUMBER, System.Convert.ToString(this._serviceP2PPort.ListeningPortNumber));
                this._STXServicePArametersCont.AddParameter(CNDServiceDefinitions.CND_SERVICE_MULTICASTSERVER_IP_ADDRESS, System.Convert.ToString(this._MultiCastDataReplicationServer.MultiCastIPAddress));
                this._STXServicePArametersCont.AddParameter(CNDServiceDefinitions.CND_SERVICE_MULTICASTSERVER_PORTNUMBER, System.Convert.ToString(this._MultiCastDataReplicationServer.MultiCastPortNumber));

                this._STXServicePArametersCont.SaveToFile(CNDServiceDefinitions.CND_SERVICE_SERVICE_PARAMETERS_TABLE_FILENAME);

                this._serviceParametersTable = new DataTable("CND Service Parameters");
                this._serviceParametersTable.Columns.Add("Parameter Name");
                this._serviceParametersTable.Columns.Add("Parameter Value");
                IEnumerator enumm      = this._STXServicePArametersCont.ParametersTable.GetEnumerator();
                string      paramName  = "";
                string      ParamValue = "";
                DataRow     paramRow   = default(DataRow);

                while (enumm.MoveNext())
                {
                    paramName   = System.Convert.ToString(((DictionaryEntry)enumm.Current).Key);
                    ParamValue  = System.Convert.ToString(((DictionaryEntry)enumm.Current).Value);
                    paramRow    = this._serviceParametersTable.NewRow();
                    paramRow[0] = paramName;
                    paramRow[1] = ParamValue;
                    this._serviceParametersTable.Rows.Add(paramRow);
                }

                //creates the service handler as singleton
                this._stxServiceHandler = new DiscoverableServiceDefinitionHandlingServer(DiscoverableServiceHandlingOperativeDefs.DiscoverableServiceMode.singletonInstanceNetworkService, CNDServiceDefinitions.CNDSERVICE_PUBLIC_NAME, this._STXServicePArametersCont);

                CustomEventLog.WriteEntry(EventLogEntryType.SuccessAudit, "CND Service started succesfully @ " + this._hostName + " on " + DateTime.Now.ToString());
            }
            public DiscoverableServiceHandlingOperativeDefs.DiscoverableServiceDefinition FindService(string ServiceNameToFind)
            {
                try
                {
                    BroadCasting.Data.BroadCastRepliesContainer replies = default(BroadCasting.Data.BroadCastRepliesContainer);
                    replies = this._DataBroadcastClient.BroadCastDataAndWaitOneFirstReply(DiscoverableServiceHandlingOperativeDefs.SERVICE_NAME_QUERY_BROADCAST_ID_NAME_STRING, DiscoverableServiceHandlingOperativeDefs.SERVICE_NAME, ServiceNameToFind, TIME_OUT_SECONDS);
                    if (replies.Count > 0)
                    {
                        //evaluates if the reply contains the reply from the service searched
                        if (replies.ContainsReplyIDName(DiscoverableServiceHandlingOperativeDefs.SERVICE_NAME_QUERY_REPLYIDNAME_STRING))
                        {
                            BroadCasting.Data.BroadCastReply STXSErviceReply = default(BroadCasting.Data.BroadCastReply);
                            STXSErviceReply = replies.Item(DiscoverableServiceHandlingOperativeDefs.SERVICE_NAME_QUERY_REPLYIDNAME_STRING);

                            //evaluates for the service parameters table attached with the data name specified
                            //by the constant SERVICE_PARAMETERS_TABLE
                            if (STXSErviceReply.DataName == DiscoverableServiceHandlingOperativeDefs.SERVICE_PARAMETERS_TABLE)
                            {
                                CustomHashTable paramsTable = (CustomHashTable)STXSErviceReply.Value;
                                DiscoverableServiceDefinitionParametersContainer serviceParams = new DiscoverableServiceDefinitionParametersContainer(paramsTable);
                                DiscoverableServiceHandlingOperativeDefs.DiscoverableServiceDefinition serviceDEfiniton = new DiscoverableServiceHandlingOperativeDefs.DiscoverableServiceDefinition();

                                DiscoverableServiceParameter param = default(DiscoverableServiceParameter);

                                //retrieves the service name from the parameters list
                                //and removes it from the parameters list
                                param = serviceParams.GetParameter(DiscoverableServiceHandlingOperativeDefs.SERVICE_NAME);
                                if (param == null)
                                {
                                    throw (new DiscoverableServiceDefinitionHandlingException(ServiceNameToFind, DiscoverableServiceHandlingOperativeDefs.SERVICE_NAME));
                                }
                                serviceDEfiniton.ServiceName = param.Value;
                                serviceParams.RemoveParameter(DiscoverableServiceHandlingOperativeDefs.SERVICE_NAME);

                                //retrieves the service id from the parameters table and removes it
                                param = serviceParams.GetParameter(DiscoverableServiceHandlingOperativeDefs.SERVICE_ID);
                                if (param == null)
                                {
                                    throw (new DiscoverableServiceDefinitionHandlingException(ServiceNameToFind, DiscoverableServiceHandlingOperativeDefs.SERVICE_ID));
                                }
                                serviceDEfiniton.ServiceIDString = param.Value;
                                serviceParams.RemoveParameter(DiscoverableServiceHandlingOperativeDefs.SERVICE_ID);

                                //retrieves the service operation mode
                                param = serviceParams.GetParameter(DiscoverableServiceHandlingOperativeDefs.SERVICE_OPERATION_MODE);
                                if (param == null)
                                {
                                    throw (new DiscoverableServiceDefinitionHandlingException(ServiceNameToFind, DiscoverableServiceHandlingOperativeDefs.SERVICE_OPERATION_MODE));
                                }
                                serviceDEfiniton.ServiceOperationMode = DiscoverableServiceHandlingOperativeDefs.GetServiceOperationModeFromString(param.Value);
                                serviceParams.RemoveParameter(DiscoverableServiceHandlingOperativeDefs.SERVICE_OPERATION_MODE);

                                serviceDEfiniton.ServiceParameters = serviceParams;
                                return(serviceDEfiniton);
                            }
                            else
                            {
                                throw (new DiscoverableServiceDefinitionHandlingSearchFailureException(ServiceNameToFind));
                            }
                        }
                        else
                        {
                            throw (new DiscoverableServiceDefinitionHandlingSearchFailureException(ServiceNameToFind));
                        }
                    }
                    else
                    {
                        throw (new DiscoverableServiceDefinitionHandlingSearchFailureException(ServiceNameToFind));
                    }
                }
                catch (Services.BroadCasting.DataBroadCastWaitReplyException)
                {
                    throw (new DiscoverableServiceDefinitionHandlingSearchFailureException(ServiceNameToFind));
                }
                catch (Exception)
                {
                    throw (new DiscoverableServiceDefinitionHandlingSearchFailureException(ServiceNameToFind));
                }
            }
            public Services.DiscoverableServiceHandling.Data.DiscoverableServiceDefinitionsContainer DiscoverServicesNumOfInstances(string ServiceNameToFind, int numberOfInstances)
            {
                Services.DiscoverableServiceHandling.Data.DiscoverableServiceDefinitionsContainer servicesFoundContainer = new Services.DiscoverableServiceHandling.Data.DiscoverableServiceDefinitionsContainer();

                BroadCasting.Data.BroadCastRepliesContainer replies = default(BroadCasting.Data.BroadCastRepliesContainer);
                try
                {
                    replies = this._DataBroadcastClient.BroadCastDataAndWaitSpecifiedNumberOfReplies(DiscoverableServiceHandlingOperativeDefs.SERVICE_NAME_QUERY_BROADCAST_ID_NAME_STRING, DiscoverableServiceHandlingOperativeDefs.SERVICE_NAME, ServiceNameToFind, numberOfInstances);

                    IEnumerator    enumm = replies.GetEnumerator();
                    BroadCastReply reply = default(BroadCastReply);

                    while (enumm.MoveNext())
                    {
                        reply = (BroadCastReply)enumm.Current;

                        //evaluates if the reply contains the reply from the service searched
                        if (reply.ReplyIDName == DiscoverableServiceHandlingOperativeDefs.SERVICE_NAME_QUERY_REPLYIDNAME_STRING)
                        {
                            BroadCasting.Data.BroadCastReply STXSErviceReply = default(BroadCasting.Data.BroadCastReply);
                            STXSErviceReply = reply;

                            //evaluates for the service parameters table attached with the data name specified
                            //by the constant SERVICE_PARAMETERS_TABLE
                            if (STXSErviceReply.DataName == DiscoverableServiceHandlingOperativeDefs.SERVICE_PARAMETERS_TABLE)
                            {
                                CustomHashTable paramsTable = (CustomHashTable)STXSErviceReply.Value;
                                DiscoverableServiceDefinitionParametersContainer serviceParams = new DiscoverableServiceDefinitionParametersContainer(paramsTable);
                                DiscoverableServiceHandlingOperativeDefs.DiscoverableServiceDefinition serviceDEfiniton = new DiscoverableServiceHandlingOperativeDefs.DiscoverableServiceDefinition();

                                DiscoverableServiceParameter param = default(DiscoverableServiceParameter);

                                //retrieves the service name from the parameters list
                                //and removes it from the parameters list
                                param = serviceParams.GetParameter(DiscoverableServiceHandlingOperativeDefs.SERVICE_NAME);
                                if (param == null)
                                {
                                    throw (new DiscoverableServiceDefinitionHandlingException(ServiceNameToFind, DiscoverableServiceHandlingOperativeDefs.SERVICE_NAME));
                                }
                                serviceDEfiniton.ServiceName = param.Value;
                                serviceParams.RemoveParameter(DiscoverableServiceHandlingOperativeDefs.SERVICE_NAME);

                                //retrieves the service id from the parameters table and removes it
                                param = serviceParams.GetParameter(DiscoverableServiceHandlingOperativeDefs.SERVICE_ID);
                                if (param == null)
                                {
                                    throw (new DiscoverableServiceDefinitionHandlingException(ServiceNameToFind, DiscoverableServiceHandlingOperativeDefs.SERVICE_ID));
                                }
                                serviceDEfiniton.ServiceIDString = param.Value;
                                serviceParams.RemoveParameter(DiscoverableServiceHandlingOperativeDefs.SERVICE_ID);

                                //retrieves the service operation mode
                                param = serviceParams.GetParameter(DiscoverableServiceHandlingOperativeDefs.SERVICE_OPERATION_MODE);
                                if (param == null)
                                {
                                    throw (new DiscoverableServiceDefinitionHandlingException(ServiceNameToFind, DiscoverableServiceHandlingOperativeDefs.SERVICE_OPERATION_MODE));
                                }
                                serviceDEfiniton.ServiceOperationMode = DiscoverableServiceHandlingOperativeDefs.GetServiceOperationModeFromString(param.Value);
                                serviceParams.RemoveParameter(DiscoverableServiceHandlingOperativeDefs.SERVICE_OPERATION_MODE);

                                serviceDEfiniton.ServiceParameters = serviceParams;

                                servicesFoundContainer.AddDefinition(serviceDEfiniton);
                            }
                        }
                    }
                    return(servicesFoundContainer);
                }
                catch (Exception)
                {
                    return(servicesFoundContainer);
                }
            }