summaryrefslogtreecommitdiffstats
path: root/src/remoteobjects/doc/src/remoteobjects-registry.qdoc
blob: 9c3da0581bd2af6f83f54eb9efb62d8eac16d428 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/****************************************************************************
**
** Copyright (C) 2014 Ford Motor Company
** Contact: https://www.qt.io/licensing/
**
** This file is part of the QtRemoteObjects module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL21$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** As a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
\page qtremoteobjects-registry.html
\title Qt Remote Objects Registry
\brief Describes how the Qt Remote Objects registry establishes connections
       between nodes.
\target Registry

When you \l {QRemoteObjectNode::acquire()} a replica, the node URL is not passed
as an argument. This means you do not need to specify the host node, but it does
require you to have some other means of connecting to that host. Without the
registry, it is necessary to manually call \l {QRemoteObjectNode::connect()},
from each node, to every host node that has \l {Source} objects it should
replicate. This is fine for small or static networks, but does not scale.

The registry provides a simpler way to establish these connections. Every node
that wants to be part of the registry's network connects to the registry. The
registry is itself a specialized source object, and thus is hosted by a node.
Connecting to the registry is simply a matter of passing the registry's URL to
the QRemoteObjectNode or QRemoteObjectHost constructor, or passing the URL to
the setRegistryUrl method.

The registry is tightly integrated with QtRO. Whenever a \l {Source} is added
or removed, the name/URL is updated in the registry automatically. So once
your node is connected to the registry, it is not necessary to connect to any
other nodes manually. If you request an object on the network and you aren't
connected to the hosting node, the registry will know what URL to connect to
and will initiate the connection. Once connected (and the list of available
objects is passed along, including the desired \l {Source}), the initialization
process for the requested \l Replica will start automatically.
*/