Author: rhauch
Date: 2008-04-30 15:30:18 -0400 (Wed, 30 Apr 2008)
New Revision: 114
Added:
trunk/docs/getting_started/en/images/dna-architecture.png
Removed:
trunk/docs/getting_started/en/images/build.png
trunk/docs/getting_started/en/images/docbook-dir.png
Modified:
trunk/docs/getting_started/en/master.xml
Log:
Added overview and architecture sections.
Deleted: trunk/docs/getting_started/en/images/build.png
===================================================================
(Binary files differ)
Added: trunk/docs/getting_started/en/images/dna-architecture.png
===================================================================
(Binary files differ)
Property changes on: trunk/docs/getting_started/en/images/dna-architecture.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: trunk/docs/getting_started/en/images/docbook-dir.png
===================================================================
(Binary files differ)
Modified: trunk/docs/getting_started/en/master.xml
===================================================================
--- trunk/docs/getting_started/en/master.xml 2008-04-30 17:52:22 UTC (rev 113)
+++ trunk/docs/getting_started/en/master.xml 2008-04-30 19:30:18 UTC (rev 114)
@@ -8,19 +8,18 @@
<subtitle>Getting Started Guide</subtitle>
<issuenum>0.1</issuenum>
<productnumber>1</productnumber>
- <xi:include
xmlns:xi="http://www.w3.org/2001/XInclude"
href="Author_Group.xml"/>
- <xi:include
xmlns:xi="http://www.w3.org/2001/XInclude"
href="Legal_Notice.xml"/>
+ <xi:include
xmlns:xi="http://www.w3.org/2001/XInclude"
href="Author_Group.xml" />
+ <xi:include
xmlns:xi="http://www.w3.org/2001/XInclude"
href="Legal_Notice.xml" />
</bookinfo>
<preface id="preface" revision="1">
<title>What this book covers</title>
<para>The goal of this book is to help you learn about JBoss DNA and how you
can use it in your own applications to get the
most out of your JCR repositories.</para>
- <para>The part of the book starts out with an introduction to content
repositories and an overview of the JCR API, both of which are an
- important aspect of JBoss DNA. This is followed by an overview of the the JBoss DNA
project, it's architecture, and a basic
- roadmap for what's coming next.</para>
- <para>The next part of the book covers how to download and build the examples,
how to use JBoss DNA with
- existing repositories, and how to build and use custom sequencers.
- </para>
+ <para>The part of the book starts out with an introduction to content
repositories and an overview of the JCR API, both of
+ which are an important aspect of JBoss DNA. This is followed by an overview of the
the JBoss DNA project, it's architecture,
+ and a basic roadmap for what's coming next.</para>
+ <para>The next part of the book covers how to download and build the examples,
how to use JBoss DNA with existing
+ repositories, and how to build and use custom sequencers.</para>
<para>
If you have any questions or comments, please feel free to contact JBoss DNA's
<ulink url="mailto:dna-users@jboss.org">user mailing
list</ulink>
@@ -132,6 +131,137 @@
<chapter id="jboss_dna">
<title>JBoss DNA</title>
<sect1>
+ <title>Overview</title>
+ <para>JBoss DNA is a repository and set of tools that make it easy to
capture, version, analyze, and understand the
+ fundamental building blocks of information. As models, service and process
definitions, schemas, source code, and other
+ artifacts are added to the repository, JBoss DNA "sequences" the makeup
of these components and extracts their structure
+ and interdependencies. The JBoss DNA web application allows end users to access,
visualize, and edit this information in
+ the terminology and structure they are familiar with. Such domain-specific
solutions can be easily created with little or
+ no programming.</para>
+ <para> JBoss DNA supports the Java Content Repository (JCR) standard and is
able to provide a single integrated view of
+ multiple repositories, external databases, services, and applications, ensuring
that JBoss DNA has access to the latest
+ and most reliable master data. For instance, DNA could provide in a single view
valuable insight into the business
+ processes and process-level services impacted by a change to in an intermediary
web server operation defined via WSDL.
+ Similarly, a user could quickly view and navigate the dependencies between the
data source models and transformation
+ information stored within a content repository, the code base stored within a
version control system, and the database
+ schemas used by an application.</para>
+ </sect1>
+ <sect1 id="architecture">
+ <title>Architecture</title>
+ <para>The architecture for JBoss DNA consists of several major components
that will be built on top of standard APIs,
+ including JCR, JDBC, JNDI and HTTP. The goal is to allow these components to be
assembled as needed and add value on top
+ of other DNA components or third-party systems that support the standard
APIs.</para>
+ <!-- mediaobject>
+ <imageobject>
+ <imagedata align="center"
fileref="images/dna-architecture.png"/>
+ </imageobject>
+ </mediaobject -->
+ <figure id="dna-architecture">
+ <title>JBoss DNA Architecture</title>
+ <graphic align="center" scale="60"
fileref="images/dna-architecture.png" />
+ </figure>
+ <para>
+ As shown in the diagram above, the major components are (starting at the top):
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="strong">DNA Eclipse
Plugins</emphasis>
+ enable Eclipse users to access the contents of a JBoss DNA repository.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong">DNA JDBC Driver</emphasis>
+ provides a driver implementation, allowing JDBC-aware applications to
connect to and use a JBoss DNA repository.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong">DNA Remote JCR</emphasis>
+ is a client-side component for accessing remote JCR repositories.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong">DNA Web
Application</emphasis>
+ is used by end users and domain experts to visualize, search, edit, change
and tag the repository content. The web
+ application uses views to define how different types of information are to
be presented and edited in
+ domain-specific ways. The goal is that this web application is easily
customized and branded for inclusion into
+ other solutions and application systems. The DNA Web Application operate
upon any JCR-compliant repository, although
+ it does rely upon the DNA analysis and templating services.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong">DNA Publishing
Server</emphasis>
+ allows content to be downloaded, uploaded and edited using the Atom
Publishing Protocol. With the DNA Publishing
+ Server, the content of the repository can easily be created, read, edited
and deleted using the standard HTTP
+ operations of POST, GET, PUT and DELETE (respectively). More and more tools
are being created that support working
+ with Atom Publishing servers. The DNA Publishing Server operates upon any
JCR-compliant repository.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong">DNA WebDAV Server</emphasis>
+ allows clients such as Microsoft Windows and Apple OS X to connect to, read
and edit the content in the repository
+ using the WebDAV standard. Since WebDAV is an extension of HTTP, web
browsers are able to read (but not modify) the
+ content served by a WebDAV compliant server. The DNA WebDAV Server operates
upon any JCR-compliant repository.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong">DNA Sequencers</emphasis>
+ are pluggable components that make it possible for content to be uploaded
to the repository and automatically
+ processed to extract meaningful structure and place that structure in the
repository. Once this information is in
+ the repository, it can be viewed, edited, analyzed, searched, and related
to other content. DNA defines a Java
+ interface that sequencers must implement. DNA sequencers operate upon any
JCR-compliant repository.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong">DNA Analyses</emphasis>
+ are pluggable components that analyze the content and the relationships
between the content to generate reports or
+ to answer queries. DNA will include some standard analyzers, like
dependency analysis and similarity analysis, that
+ are commonly needed by many different solutions. DNA analyzers operate upon
any JCR-compliant repository.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong">DNA Views</emphasis>
+ are definitions of how types of information are to be presented in a user
interface to allow for creation, reading,
+ editing, and deletion of information. DNA view definitions consist of data
stored in a JCR repository, and as such
+ views can be easily added, changed or removed entirely by using the DNA Web
Application, requiring no programming.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong">DNA Federation</emphasis>
+ is an implementation of the JCR API that builds the content within the
repository by accessing and integrating
+ information from multiple sources. DNA Federation allows the integration of
external system, like other JCR
+ repositories, databases, applications, and services.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong">DNA Connectors</emphasis>
+ are used to communicate with these external sources of information. In the
federation engine, each source is able to
+ contribute node structure and node properties to any part of the federated
graph, although typically many connectors
+ will contribute most of their information to isolated subgraphs. The result
is that integration from a wide range of
+ systems can be integrated and accessed through the DNA Web Application, DNA
Publishing Server, and DNA WebDAV
+ Server. Connectors also may optionally participate in distributed
transactions by exposing an XAResource.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong">DNA Maven</emphasis>
+ is a classloader library compatible with Maven 2 project dependencies. This
allows the creation of Java ClassLoader
+ instances using Maven 2 style paths, and all dependencies are transitively
managed and included.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </sect1>
+ <sect1>
<title>Sequencers</title>
<para> The current JBoss DNA release contains a sequencing framework that is
designed to sequence data (typically files)
stored in a JCR repository to automatically extract meaningful and useful
information. This additional information is then
@@ -150,11 +280,11 @@
<itemizedlist>
<listitem>
<para>
- Image sequencer - A sequencer that processes the binary content of an image
file, extracts the metadata for the
- image, and then writes that image metadata to the repository. Gets the file
format, image resolution, number of bits
- per pixel and optionally number of images, comments and physical resolution
from JPEG, GIF, BMP, PCX, PNG, IFF, RAS,
- PBM, PGM, PPM and PSD files. (This sequencer may be improved in the future
to also extract EXIF metadata from JPEG
- files; see
+ <emphasis role="strong">Image sequencer</emphasis>
+ - A sequencer that processes the binary content of an image file, extracts
the metadata for the image, and then
+ writes that image metadata to the repository. Gets the file format, image
resolution, number of bits per pixel and
+ optionally number of images, comments and physical resolution from JPEG,
GIF, BMP, PCX, PNG, IFF, RAS, PBM, PGM, PPM
+ and PSD files. (This sequencer may be improved in the future to also
extract EXIF metadata from JPEG files; see
<ulink
url="http://jira.jboss.org/jira/browse/DNA-26">DNA-26</ul...
.)
</para>
@@ -167,94 +297,103 @@
<itemizedlist>
<listitem>
<para>
- XML Schema Document (XSD) Sequencer - Process XSD files and extract the
various elements, attributes, complex types,
- simple types, and groups. (See
+ <emphasis role="strong">XML Schema Document (XSD)
Sequencer</emphasis>
+ - Process XSD files and extract the various elements, attributes, complex
types, simple types, and groups. (See
<ulink
url="http://jira.jboss.org/jira/browse/DNA-32">DNA-32</ul...
)
</para>
</listitem>
<listitem>
<para>
- Web Service Definition Language (WSDL) Sequencer - Process WSDL files and
extract the services, bindings, ports,
- operations, parameters, and other information. (See
+ <emphasis role="strong">Web Service Definition Language
(WSDL) Sequencer</emphasis>
+ - Process WSDL files and extract the services, bindings, ports, operations,
parameters, and other information. (See
<ulink
url="http://jira.jboss.org/jira/browse/DNA-33">DNA-33</ul...
)
</para>
</listitem>
<listitem>
<para>
- Hibernate File Sequencer - Process Hibernate configuration (cfg.xml) and
mapping (hbm.xml) files to extract the
- configuration and mapping information. (See
+ <emphasis role="strong">Hibernate File
Sequencer</emphasis>
+ - Process Hibernate configuration (cfg.xml) and mapping (hbm.xml) files to
extract the configuration and mapping
+ information. (See
<ulink
url="http://jira.jboss.org/jira/browse/DNA-61">DNA-61</ul...
)
</para>
</listitem>
<listitem>
<para>
- XML Metadata Interchange (XMI) Sequencer - Process XMI documents that
contain UML models or models using another
- metamodel, extracting the model structure into the repository. (See
+ <emphasis role="strong">XML Metadata Interchange (XMI)
Sequencer</emphasis>
+ - Process XMI documents that contain UML models or models using another
metamodel, extracting the model structure
+ into the repository. (See
<ulink
url="http://jira.jboss.org/jira/browse/DNA-31">DNA-31</ul...
)
</para>
</listitem>
<listitem>
<para>
- ZIP Archive Sequencer - Process ZIP archive files to extract (explode) the
contents into the repository. (See
+ <emphasis role="strong">ZIP Archive
Sequencer</emphasis>
+ - Process ZIP archive files to extract (explode) the contents into the
repository. (See
<ulink
url="http://jira.jboss.org/jira/browse/DNA-63">DNA-63</ul...
)
</para>
</listitem>
<listitem>
<para>
- Java Archive (JAR) Sequencer - Process JAR files to extract (explode) the
contents into the classes and file
- resources. (See
+ <emphasis role="strong">Java Archive (JAR)
Sequencer</emphasis>
+ - Process JAR files to extract (explode) the contents into the classes and
file resources. (See
<ulink
url="http://jira.jboss.org/jira/browse/DNA-64">DNA-64</ul...
)
</para>
</listitem>
<listitem>
<para>
- Java Class File Sequencer - Process Java class files (bytecode) to extract
the class structure (including
- annotations) into the repository. (See
+ <emphasis role="strong">Java Class File
Sequencer</emphasis>
+ - Process Java class files (bytecode) to extract the class structure
(including annotations) into the repository.
+ (See
<ulink
url="http://jira.jboss.org/jira/browse/DNA-62">DNA-62</ul...
)
</para>
</listitem>
<listitem>
<para>
- Java Source File Sequencer - Process Java source files (bytecode) to
extract the class structure (including
- annotations) into the repository. (See
+ <emphasis role="strong">Java Source File
Sequencer</emphasis>
+ - Process Java source files (bytecode) to extract the class structure
(including annotations) into the repository.
+ (See
<ulink
url="http://jira.jboss.org/jira/browse/DNA-51">DNA-51</ul...
)
</para>
</listitem>
<listitem>
<para>
- PDF Sequencer - Process PDF files to extract the document metadata,
including table of contents. (See
+ <emphasis role="strong">PDF Sequencer</emphasis>
+ - Process PDF files to extract the document metadata, including table of
contents. (See
<ulink
url="http://jira.jboss.org/jira/browse/DNA-50">DNA-50</ul...
)
</para>
</listitem>
<listitem>
<para>
- Maven 2 POM Sequencer - Process Maven 2 Project Object Model (POM) files to
extract the project information,
- dependencies, plugins, and other content. (See
+ <emphasis role="strong">Maven 2 POM
Sequencer</emphasis>
+ - Process Maven 2 Project Object Model (POM) files to extract the project
information, dependencies, plugins, and
+ other content. (See
<ulink
url="http://jira.jboss.org/jira/browse/DNA-24">DNA-24</ul...
)
</para>
</listitem>
<listitem>
<para>
- Data Definition Language (DDL) Sequencer - Process various dialects of DDL,
including that from Oracle, SQL Server,
- MySQL, PostgreSQL, and others. May need to be split up into a different
sequencer for each dialect. (See
+ <emphasis role="strong">Data Definition Language (DDL)
Sequencer</emphasis>
+ - Process various dialects of DDL, including that from Oracle, SQL Server,
MySQL, PostgreSQL, and others. May need
+ to be split up into a different sequencer for each dialect. (See
<ulink
url="http://jira.jboss.org/jira/browse/DNA-26">DNA-26</ul...
)
</para>
</listitem>
<listitem>
<para>
- MP3 and MP4 Sequencer - Process MP3 and MP4 audio files to extract the name
of the song, artist, album, track
- number, and other metadata. (See
+ <emphasis role="strong">MP3 and MP4
Sequencer</emphasis>
+ - Process MP3 and MP4 audio files to extract the name of the song, artist,
album, track number, and other metadata.
+ (See
<ulink
url="http://jira.jboss.org/jira/browse/DNA-30">DNA-30</ul...
)
</para>
@@ -265,8 +404,8 @@
The
<link linkend="using_dna">examples</link>
in this book go into more detail about how sequencers are managed and used, and
-<link linkend="custom_sequencers">Chapter 5</link> goes into detail
about how to
- write custom sequencers.
+ <link linkend="custom_sequencers">Chapter 5</link>
+ goes into detail about how to write custom sequencers.
</para>
</sect1>
<sect1>
@@ -299,41 +438,63 @@
in those systems. Some ideas for connectors include:
<itemizedlist>
<listitem>
- <para>JCR Repository Connector - Connect to and interact with other
JCR repositories.</para>
+ <para>
+ <emphasis role="strong">JCR Repository
Connector</emphasis>
+ - Connect to and interact with other JCR repositories.
+ </para>
</listitem>
<listitem>
- <para>File System Connector - Expose the files and directories on a
file system through JCR.</para>
+ <para>
+ <emphasis role="strong">File System
Connector</emphasis>
+ - Expose the files and directories on a file system through JCR.
+ </para>
</listitem>
<listitem>
- <para>Maven 2 Repository Connector - Access and expose the contents
of a Maven 2 repository (either on the
- local file system or via HTTP) through JCR.</para>
+ <para>
+ <emphasis role="strong">Maven 2 Repository
Connector</emphasis>
+ - Access and expose the contents of a Maven 2 repository (either on the
local file system or via HTTP) through
+ JCR.
+ </para>
</listitem>
<listitem>
- <para>JDBC Metadata Connector - Connect to relational databases via
JDBC and expose their schema as content in a
- repository.</para>
+ <para>
+ <emphasis role="strong">JDBC Metadata
Connector</emphasis>
+ - Connect to relational databases via JDBC and expose their schema as
content in a repository.
+ </para>
</listitem>
<listitem>
- <para>UDDI Connector - Interact with UDDI registries to integrate
their content into a repository.</para>
+ <para>
+ <emphasis role="strong">UDDI Connector</emphasis>
+ - Interact with UDDI registries to integrate their content into a
repository.
+ </para>
</listitem>
<listitem>
<para>
- SVN Connector - Interact with Subversion software configuration
management (SCM) repositories to expose the
- managed resources through JCR. Consider using
+ <emphasis role="strong">SVN Connector</emphasis>
+ - Interact with Subversion software configuration management (SCM)
repositories to expose the managed resources
+ through JCR. Consider using
<ulink
url="http://svnkit.com/">SVNkit</ulink>
(dual license) library for API into Subversion.
</para>
</listitem>
<listitem>
- <para>CVS Connector - Interact with CVS software configuration
management (SCM) repositories, to expose the
- managed resources through JCR.</para>
+ <para>
+ <emphasis role="strong">CVS Connector</emphasis>
+ - Interact with CVS software configuration management (SCM) repositories,
to expose the managed resources through
+ JCR.
+ </para>
</listitem>
<listitem>
- <para>JDBC Storage Connector - Store and access information in a
relational database. Also useful for persisting
- information in the federated repository not stored
elsewhere.</para>
+ <para>
+ <emphasis role="strong">JDBC Storage
Connector</emphasis>
+ - Store and access information in a relational database. Also useful for
persisting information in the federated
+ repository not stored elsewhere.
+ </para>
</listitem>
<listitem>
<para>
- Distributed Database Connector - Store and access information in a
+ <emphasis role="strong">Distributed Database
Connector</emphasis>
+ - Store and access information in a
<ulink
url="http://www.hypertable.org/">Hypertable</ulink>
or
<ulink
url="http://hadoop.apache.org/hbase/">HBase</ulink>
@@ -535,7 +696,7 @@
<chapter id="future_directions">
<title>Future directions</title>
<para>What's next for JBoss DNA? Well, sequencers are just the beginning.
- Remember our <link linkend="jboss_dna">architecture</link>?
+ Remember our <link linkend="architecture">architecture</link>?
There are a lot of components on our roadmap, including federating
</para>