IWC Design Doc v1

De DigiWiki.

Sommaire

What Is IWC?

The IWC (Inter World Communications) module is an extension of Aurora-Sim that allows you to seamlessly integrate two or more individual grids into one single continuous grid, with each grid having full control over each of its assets, users, inventory, and all of the items attached to their grid.

The idea behind IWC is to add the ability to easily share content and join in activities on regions in other grids without having to become a part of the grid and have another account, but instead be able to go there without having to create another account and be able to access all of their inventory that they have accumulated from another grid.

How does IWC work?

IWC works by first contacting the new grid and asking for an IWC connection. If the other grid allows the request, the link is set up and communications can begin between the two servers. The communication for different modules, such as for profiles, is no different than the communication that would happen between a grid-attached region and a normal grid. IWC reuses these same lines of communication so that new forms of communication that would be unique to IWC do not have to be created, allowing for more code to be reused between normal and IWC communications.

Barriers in IWC communication

There are a few obvious barriers in the way that IWC creates links to other grids, the first and foremost being that as the number of links increase, the time it takes to get information slows down linearly. This poses a large problem, as many links may accumulate over time, causing large issues for grid operators. IWC addresses the bulk of these issues in 2 ways, each addressing a separate problem with the communications, as listed below.

Way 1: Optimizing and reducing the number of calls to each grid

When a communication is needing to be made for a user, in many cases, not all grids that are linked via IWC need to be called. Such as with rezzing items from inventory, the item should be checked for which grid its' asset and inventory data exists on, and then that grid should be called directly, instead of calling all attached grids. In cases that the grid that it came from cannot be determined, it should call the user's home first before checking any other linked grids, as the user's home is the most likely place (after the grid the user is on) that the information will be.

Way 2: Caching

Caching info that will not change is another large part of cutting down the number of requests to each linked grid. The map is one of the largest issues with many linked IWC grids, as the map constantly changes as regions go up and down and links are added and removed. In this case, heavy caching is done, which does change how the map looks, but in the short term, cuts down on the number of requests to each grid. In the future, more work will need to be done on creating a IWC linked grid map, in which all requests will go directly to it, so that it can keep and control all of the data about regions in all of the linked grids, instead of each grid having to control their region map as well.

How to use IWC

Standalone Setup

There are only a couple of steps to set up IWC in standalone mode

1): in bin/Configuration/StandaloneCommon.ini, comment out (put a ';' in front of) the Include-Standalone line, and uncomment (remove the ';' in front of) the Include-StandaloneIWC line. 2): After restarting the simulator, the IWC console commands will be active, and you can then use 'iwc add connection' to add your IWC connections.

Grid setup

IWC in grid mode is not supported at this time, but you can be daring and try to convert the standalone configuration to grid if you want (advanced users only), and it may work!

Outils personnels
  • Cette page a été consultée 607 fois.
donate
Google Ads