openlvc / portico

Portico is an open source, cross-platform, fully supported HLA RTI implementation. Designed with modularity and flexibility in mind, Portico is a production-grade RTI for the Simulation and Training Community, so come say hi!
http://www.porticoproject.org
151 stars 81 forks source link

Infrastructure to support centralized RTI executive process #219

Closed timpokorny closed 6 years ago

timpokorny commented 6 years ago

Summary

Create the necessary infrastructure for a centralized RTI Server process (rtiexec) and LRC that can communicate with it. Communications between federates and the RTI (and one another) will take place over two locally separate channels:

  1. Administrative messages sent via a control channel, considered point-to-point (rtiexec<>federate)
  2. High volume data messages send group/broadcast messages via a data channel

This will help us balance performance needs for commonly used message with simplified, central control for administrative and those messages that measured by volume are less frequent in any given federation run.

It is important to note that the actual communications mechanism used to carry the messages is not prescribed. For example, the control messages can travel over a multicast channel; they do not need to be point-to-point by transport, they are just that way logically.

These changes will focus on the application that will launch for the rtiexec and the infrastructure necessary to support it. We will take this chance to simplify some of the message handler association and loading semantics as well. Further, we will also complete the complimentary changes for the LRC.

The end goal is a central rtiexec process and a federate using an updates LRC that can establish a return PING message on both the control and data channels.

Items not part of this ticket and deferred until later:

Acceptance Criteria

Once complete: User Level

Detailed

bharat77s commented 6 years ago

is it advisable for connecting more than 26 client PC on window server OS while using Portico RTI or home edition of window OS will be able to handle the federate response from clients of morethan 26 clients PC in a local lan at present

timpokorny commented 6 years ago

G'day @bharat77s, There should be little difference that I am aware of between the two. The measure of performance will be more related to how much traffic and the frequency of traffic that the federates want to send.

bharat77s commented 6 years ago

thankx for the reply, as presently my fedarates are crashing as we increase the number of PC from 24 also the FPS is drastically reduced to 18.. we are following the star topology for connecting the CLients with the controller(Fedarate- where all packets are getting broadcasted to clients), hence thought might be all my PCs including the COntroller is runnig on WIndows 7 service PAck-1, that is why the issue. So thoguht of changing the controller PC to WIndow Server edition for scalability and renderring of the simulator

timpokorny commented 6 years ago

Could you perhaps explain a little more of the setup? If you could let me know any crash stuff as well we might be able to help (I'd open that as a separate ticket).

bharat77s commented 6 years ago

We are running a Game in which each PC(config: 8 GB DDR4 AND Quadro 2000 6 GB grafix Card ) is a Tank and we have 36 such PCs, the objective for destroying a particular area is passed by the instructor PC(config: 16 GB DDR4 AND Quadro 2000 6 GB grafix Card ) which sets up the entire excercise, there is a enemy controller PC(config: 8 GB DDR4 AND Quadro 2000 6 GB grafix Card ) where in the ENEMRY TANKS AOTHER ASSETS OF ENEMY CAN BE SET, THEY ARE CONTROLLED USING THE paTH FINDING ALGORTIHM IN unity. The HLA we are using is Portico where in the postion of every tank or the firing of every tank is passed by the independednt client PC to the instructor PC and it then broadcast to all PCs. Also the enemy controller PC also passes the location to the instructor PC which is again updated to all PC depending upon the range where is the deployment of the enemy tank All PCs we are using WINdows 7 Service PAck -1 So in this configuration if we are running are simualtion we are getting the crash on the CLienb PC saying the federate has resigned.

But if we are running or 24 PCs we are running smoothly. the entire network is on star topology connected through a network
if we update the instructor PC to window server R2 so that the federate request is handle using RDP protocol than can it be stablised .

the goal is to scale the number of PCs to 50 and further in next phase having geographical difference and talking thorugh VPN

timpokorny commented 6 years ago

G'day @bharat77s, that crash sounds very odd. It would be good to see a sample log of a federate that is experiencing the problem. I'd suggest opening a separate issue for it. Also, when collecting logs, if you can turn the log level up to TRACE and turn JGroups logging on in the RID file that would be helpful. I wonder if there is some stalling happening that is causing one of the federates to mistakenly believe that someone else has resigned and thus causes this issue.

timpokorny commented 6 years ago

This work is still in progress as I work through some issues with part of the way that multicast and tcp connections are handled.

This branch will be held open and has turned into the root branch for the central RTI work. Once complete, will merge it all across, but change is quite disruptive ATM so trying to keep that minimized.

Branch: port219-central-rti

timpokorny commented 6 years ago

Work on this specific issue is complete and it is in the branch mentioned above. Still holding that open to aggregate other disruptive work.