<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
<!--
PDL HEADER START
Public Documentation License Notice
The contents of this Documentation are subject to the Public
Documentation License Version 1.01 (the "License"); you may only
use this Documentation if you comply with the terms of this License.
A copy of the License is available at
http://www.opensolaris.org/os/community/documentation/license.
PDL HEADER END
Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
-->
<chapter xmlns:xi="http://www.w3.org/2001/XInclude"><title>Concepts</title>
<!-- Overview -->
<section><title>Overview</title>
<para>
The three concepts most fundamental to <command>rad</command> are
<emphasis>interfaces</emphasis>, objects that implement those
interfaces, and the namespace in which those objects can
be found and operated upon. An interface defines
how a <command>rad</command> client can interact with an object. An
object implements an interface, providing a concrete
behavior to be invoked when a client makes a request. Lastly, the
namespace acts as <command>rad</command>'s gatekeeper, associating a
name with each object, dispatching requests to the proper object, and
providing meta-operations that let the client make queries about what
objects are available and what interfaces they implement.
</para>
<para>
Before discussing these three concepts any further, though, it is
important to understand a fourth: data and the typing system used by
<command>rad</command>.
</para>
</section>
<!-- Section: Data -->
<xi:include href="c-concepts-data.xml" />
<!-- Section: APIs -->
<!-- Interfaces -->
<!-- - Methods -->
<!-- - Properties -->
<!-- - Events -->
<xi:include href="c-concepts-apis.xml" />
<!-- Section: Namespace -->
<!-- Namespace -->
<!-- - Names -->
<!-- - Objects -->
<!-- - Operations -->
<xi:include href="c-concepts-namespace.xml" />
</chapter>