Enabling Groups

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(unfinished)
 
(Groups Overview)
(23 intermediate revisions by 8 users not shown)
Line 1: Line 1:
 
{{Quicklinks}}
 
{{Quicklinks}}
= Overview of the Group System =
+
= Groups Overview =
  
== What is "Group" in OpenSimulator? ==
+
'''Note: This page does not apply to the new core groups code that will be in OpenSimulator 0.7.6 onwards.  This is currently disabled by default.  Please see the [[V2 Groups]] page for instructions on how to enable it and some suggestions for migrating data from Flotsam/XmlRpc groups.
  
Group is one of the optional functionality of OpenSimulator, which enables the users to create grid-wide(or hypergrid-wide) community in your regions. For the general knowledge about the concept of Group or how to create your in-world group, see [http://wiki.secondlife.com/wiki/Group "Group" article in SecondLife Wiki].
+
== What is "Groups" in OpenSimulator? ==
  
== Components for the Group System ==
+
''Groups'' is facility that enables Groups support in OpenSimulator. See the [http://wiki.secondlife.com/wiki/Group "Group" article in SecondLife Wiki].
  
The group system consists of the three components: '''Group Service''', '''Group Services Connector''' and '''Group Module'''. Group Server handles data for in-world groups(i.e. group infos, ranks or notices). In most cases, it connects to their database to persist them. On the other hand, the OpenSimulator handle in-world groups with Group Module, which implements IGroupsModule, which calls Group Service Connector, which implements IGroupsServicesConnector, to retreive data from Group Service issuing xmlrpc calls.
+
== Components for the Groups ==
  
<!-- TODO: diaglam -->
+
Groups consists of three components: the '''Group Service''', the '''Group Services Connector''' and the '''Group Module'''. The groups service is a simple data service that stores data for in-world groups (e.g. group info, ranks or notices). It will often store this information in a database. All groups services are currently provided by third party projects that are not shipped with OpenSimulator. See the [[Feature Matrix#Users]] for more details.
 +
 
 +
The groups service connector is the means by which OpenSimulator connects to the groups service, using the protocol handled by the service. The GroupsModule is the generic means by which the rest of OpenSimulator makes group requests. The groups module passes on requests to the configured services connector.
 +
 
 +
[[Image:GroupsComponents.png]]
 +
 
 +
Thus, you will need to set up these three components to enable the Groups in your OpenSimulator. The following sections describe how to do that. Currently there are three known Group Services:
  
Thus, you will need to set up these three compornents to enable Group System in your OpenSimulator. The following sections describe how to do that. Currently there are two known Group Services:
 
 
* [http://code.google.com/p/flotsam/ Flotsam Project] : [[#XmlRpcGroups]]
 
* [http://code.google.com/p/flotsam/ Flotsam Project] : [[#XmlRpcGroups]]
 
* [http://code.google.com/p/openmetaverse/wiki/SimianGrid SimianGrid Project] : [[#SimianGrid ]]
 
* [http://code.google.com/p/openmetaverse/wiki/SimianGrid SimianGrid Project] : [[#SimianGrid ]]
You can even create your own group system by yourself, implementing IGroupsModule or/and IGroupServicesConnector.
+
* [http://opensimulator.org/wiki/V2_Groups OpenSimulator Integrated Groups] '''NEW'''
  
== Requirements ==
+
'''Please note that the first two are third party modules which you use at your own risk!  OpenSimulator cannot make bug fixes to these modules or accept bug reports for them.'''
  
If you want to run group services on your own, you'll need to deploy your web applications (on Apache, IIS or such).
+
You can even create your own Groups functionality by yourself, implementing IGroupServicesConnector and/or a groups service, depending on whether you want to use an existing protocol or make up your own (we highly recommend using an existing protocol if you can).
  
 +
== Requirements ==
 +
 +
If you want to run Group Services on your own, you need to know how to deploy your web applications on so-called web server, such as Apache or IIS.
  
 
= XmlRpcGroups =
 
= XmlRpcGroups =
Line 27: Line 35:
  
 
First, create your database. If you don't even know how to install or login to MySQL, see [[Database Settings#MySQL Walkthrough]].
 
First, create your database. If you don't even know how to install or login to MySQL, see [[Database Settings#MySQL Walkthrough]].
 +
Note: If your MySQL database uses the utf8 character set, you may receive errors when creating the tables needed for groups in the table creation step below. A MySQL database using the latin1 character set should not have that issue.
 
<pre>
 
<pre>
 
mysql> create database opensim_group;
 
mysql> create database opensim_group;
Line 36: Line 45:
 
== Getting XmlRpcGroups ==
 
== Getting XmlRpcGroups ==
  
Download and extract the package from the following link.
+
Download the Flotsam package via git using the following link:<br />
 +
http://github.com/mcortez/flotsam
  
 +
Copy the XmlRpcGroups folder located under flotsam/Servers to your webserver.
 +
 +
The wiki page with additional information about the Flotsam XmlRpcGroups is at:<br />
 
http://code.google.com/p/flotsam/wiki/XmlRpcGroups
 
http://code.google.com/p/flotsam/wiki/XmlRpcGroups
  
Line 51: Line 64:
 
and try again.
 
and try again.
  
== Deploying XmlRpcGroups PHP Application ==
+
== Deploying XmlRpcGroups ==
 +
 
 +
Deploy XmlRpcGroups php application to your web server.
  
Deploy XmlRpcGroups php application to your web server.
+
For IIS: Copy the XmlRpcGroupsServer folder to c:\inetpub\wwwroot
  
 
== Configuring XmlRpcGroups ==
 
== Configuring XmlRpcGroups ==
  
Copy 'config.php.exmple' to 'config.php'. This file will be the configuration file for gorup service. At lease, you need to fill in following properties like that:
+
Copy 'config.php.exmple' to 'config.php'. This file will be the configuration file for gorup service. At least, you need to fill in following properties like that:
 
<pre>
 
<pre>
 
$dbName = "opensim_group";
 
$dbName = "opensim_group";
Line 63: Line 78:
 
$dbPort = 3306;
 
$dbPort = 3306;
 
$dbUser = "opensim_group";
 
$dbUser = "opensim_group";
$dbPassword ="opensim_group_password";
+
$dbPassword = "opensim_group_password";
 
</pre>
 
</pre>
 
Optionally, you can set these parameters to ensure the security of xmlrpc service:
 
Optionally, you can set these parameters to ensure the security of xmlrpc service:
Line 72: Line 87:
 
Note that if you want to enable UTF-8 characters in group descriptions, ranks or notices, you need to write this line in somewhere(between "<?php" and "?>") in config.php file to prevent them from getting garbled:
 
Note that if you want to enable UTF-8 characters in group descriptions, ranks or notices, you need to write this line in somewhere(between "<?php" and "?>") in config.php file to prevent them from getting garbled:
 
<pre>
 
<pre>
$xmlrpc_internalencoding = 'UTF-8'
+
$xmlrpc_internalencoding = 'UTF-8';
 
</pre>
 
</pre>
  
 
== Configuring Your OpenSimulator ==
 
== Configuring Your OpenSimulator ==
  
Open OpenSim.ini file. In [Groups] section, you'll find some properties. Change them so that it will look like that:
+
Open OpenSim.ini file. In the [Groups] section, you'll find some properties. Change them so that it will look like that:
 
<pre>
 
<pre>
 
[Groups]
 
[Groups]
Line 123: Line 138:
 
</pre>
 
</pre>
  
As of OpenSimulator 0.7.1.X, you will need to uncomment MessagingModule or ServicesConnectorModule line even if you are using GroupsMessagingModule or XmlRpcGroupsServicesConnector([http://opensimulator.org/mantis/view.php?id=5543 #5543]).
+
As of OpenSimulator 0.7.1.X, you need to uncomment MessagingModule or ServicesConnectorModule line even if you are using GroupsMessagingModule or XmlRpcGroupsServicesConnector([http://opensimulator.org/mantis/view.php?id=5543 #5543]).
  
  

Revision as of 09:32, 21 May 2014

Contents

Groups Overview

Note: This page does not apply to the new core groups code that will be in OpenSimulator 0.7.6 onwards. This is currently disabled by default. Please see the V2 Groups page for instructions on how to enable it and some suggestions for migrating data from Flotsam/XmlRpc groups.

What is "Groups" in OpenSimulator?

Groups is facility that enables Groups support in OpenSimulator. See the "Group" article in SecondLife Wiki.

Components for the Groups

Groups consists of three components: the Group Service, the Group Services Connector and the Group Module. The groups service is a simple data service that stores data for in-world groups (e.g. group info, ranks or notices). It will often store this information in a database. All groups services are currently provided by third party projects that are not shipped with OpenSimulator. See the Feature Matrix#Users for more details.

The groups service connector is the means by which OpenSimulator connects to the groups service, using the protocol handled by the service. The GroupsModule is the generic means by which the rest of OpenSimulator makes group requests. The groups module passes on requests to the configured services connector.

GroupsComponents.png

Thus, you will need to set up these three components to enable the Groups in your OpenSimulator. The following sections describe how to do that. Currently there are three known Group Services:

Please note that the first two are third party modules which you use at your own risk! OpenSimulator cannot make bug fixes to these modules or accept bug reports for them.

You can even create your own Groups functionality by yourself, implementing IGroupServicesConnector and/or a groups service, depending on whether you want to use an existing protocol or make up your own (we highly recommend using an existing protocol if you can).

Requirements

If you want to run Group Services on your own, you need to know how to deploy your web applications on so-called web server, such as Apache or IIS.

XmlRpcGroups

Database Settings

First, create your database. If you don't even know how to install or login to MySQL, see Database Settings#MySQL Walkthrough. Note: If your MySQL database uses the utf8 character set, you may receive errors when creating the tables needed for groups in the table creation step below. A MySQL database using the latin1 character set should not have that issue.

mysql> create database opensim_group;
mysql> use opensim_group;
mysql> create user 'opensim_group'@'localhost' identified by 'opensim_group_password';
mysql> grant all on opensim_group.* to 'opensim_group'@'localhost';

Getting XmlRpcGroups

Download the Flotsam package via git using the following link:
http://github.com/mcortez/flotsam

Copy the XmlRpcGroups folder located under flotsam/Servers to your webserver.

The wiki page with additional information about the Flotsam XmlRpcGroups is at:
http://code.google.com/p/flotsam/wiki/XmlRpcGroups

Creating Tables

Create tables inside your newly created database. In the package, you'll find 'groups.sql'. Run it.

mysql> source /(your_path_to_the_package)/groups.sql

It will create the tables for groups. If it succeed, the database has seven tables now. Note that the recent version(5.X) of mysql server may fail to create them. If so, change

  • timestamp(14) to timestamp
  • TYPE=MyISAM to ENGINE=MyISAM

and try again.

Deploying XmlRpcGroups

Deploy XmlRpcGroups php application to your web server.

For IIS: Copy the XmlRpcGroupsServer folder to c:\inetpub\wwwroot

Configuring XmlRpcGroups

Copy 'config.php.exmple' to 'config.php'. This file will be the configuration file for gorup service. At least, you need to fill in following properties like that:

$dbName = "opensim_group";
$dbHost = "localhost";
$dbPort = 3306;
$dbUser = "opensim_group";
$dbPassword = "opensim_group_password";

Optionally, you can set these parameters to ensure the security of xmlrpc service:

$groupWriteKey = 'group_write_key';
$groupReadKey  = 'group_read_key';

Note that if you want to enable UTF-8 characters in group descriptions, ranks or notices, you need to write this line in somewhere(between "<?php" and "?>") in config.php file to prevent them from getting garbled:

$xmlrpc_internalencoding = 'UTF-8';

Configuring Your OpenSimulator

Open OpenSim.ini file. In the [Groups] section, you'll find some properties. Change them so that it will look like that:

[Groups]
    ;# {Enabled} {} {Enable groups?} {true false} false
    ;; Enables the groups module
    Enabled = true

    ;# {Module} {Enabled:true} {Groups module to use? (Use GroupsModule to use Flotsam/Simian)} {} Default
    ;; This is the current groups stub in Region.CoreModules.Avatar.Groups.
    ;; All the other settings below only really apply to the Flotsam/SimianGrid
    ;; GroupsModule.
    ;; This module can use a PHP XmlRpc server from the Flotsam project at
    ;; http://code.google.com/p/flotsam/
    ;; or from the SimianGrid project at http://code.google.com/p/openmetaverse
    Module = GroupsModule

    ;# {MessagingEnabled} {Module:GroupsModule} {Is groups messaging enabled?} {true false} true
    ;MessagingEnabled = true

    ;# {MessagingModule} {MessagingEnabled:true} {Module to use for groups messaging} {GroupsMessagingModule} GroupsMessagingModule
    MessagingModule = GroupsMessagingModule

    ;# {ServicesConnectorModule} {Module:GroupsModule} {Service connector to use for groups} {XmlRpcGroupsServicesConnector SimianGroupsServicesConnector} XmlRpcGroupsServicesConnector
    ;; Service connectors to the Groups Service as used in the GroupsModule.  Select one depending on
    ;; whether you're using a Flotsam XmlRpc backend or a SimianGrid backend
    ServicesConnectorModule = XmlRpcGroupsServicesConnector

    ;# {GroupsServerURI} {Module:GroupsModule} {Groups Server URI} {}
    ;; URI for the groups services
    ;; e.g. http://yourxmlrpcserver.com/xmlrpc.php for Flotsam XmlRpc
    ;; or http://mygridserver.com:82/Grid/ for SimianGrid
    GroupsServerURI = "http://localhost/(context_path_to_deployed_xmlrpc_service)/xmlrpc.php"

    ;# {NoticesEnabled} {Module:GroupsModule} {Enable group notices?} {true false} true
    ;; Enable Group Notices
    ; NoticesEnabled = true

    ;; This makes the Groups modules very chatty on the console.
    ;DebugEnabled = false

    ;; XmlRpc Security settings.  These must match those set on your backend
    ;; groups service if the service is using these keys
    XmlRpcServiceReadKey    = group_read_key
    XmlRpcServiceWriteKey   = group_write_key

As of OpenSimulator 0.7.1.X, you need to uncomment MessagingModule or ServicesConnectorModule line even if you are using GroupsMessagingModule or XmlRpcGroupsServicesConnector(#5543).


SimianGrid

http://code.google.com/p/openmetaverse/wiki/Installation

Personal tools
General
About This Wiki