<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">










<html>
  <head>
    <title>James Server - 
    Design Objectives</title>
    <style type="text/css" media="all">
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
    </style>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
          <meta name="author" content="
    James Project Web Team" />
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
      </head>
  <body class="composite">
    <div id="banner">
                  <a href="http://james.apache.org/index.html" id="bannerLeft">
    
                                            <img src="images/james-server-logo.gif" alt="" />
    
            </a>
                        <a href="http://www.apache.org/index.html" id="bannerRight">
    
                                            <img src="images/asf-logo-reduced.gif" alt="" />
    
            </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
          
  

  
    
  
  
            <div class="xleft">
        Last Published: 05/28/2009
                      </div>
            <div class="xright">      <a href="../../index.html">JAMES Project</a>
          |
          <a href="../../server/index.html">Server</a>
          |
          <a href="../../mailet/index.html">Mailets</a>
          |
          <a href="../../jspf/index.html">jSPF</a>
          |
          <a href="../../mime4j/index.html">Mime4J</a>
          |
          <a href="../../jsieve/index.html">JSieve</a>
          |
          <a href="../../postage/index.html">Postage</a>
          
  

  
    
  
  
  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
           
  

  
    
  
  
                   <h5>James Server</h5>
        <ul>
              
    <li class="none">
              <a href="../index.html">Overview</a>
        </li>
              
    <li class="none">
              <a href="../design_objectives.html">Objectives</a>
        </li>
              
          
              
      
              
        <li class="expanded">
              <a href="../FAQ.html">James FAQ</a>
                <ul>
                  
    <li class="none">
              <a href="../james_and_sendmail.html">James and Sendmail</a>
        </li>
              </ul>
        </li>
              
    <li class="none">
              <a href="http://wiki.apache.org/james">Wiki</a>
        </li>
              
    <li class="none">
              <a href="../rfclist.html">Useful RFCs</a>
        </li>
          </ul>
          <h5>Overview</h5>
        <ul>
              
    <li class="none">
              <a href="index.html">Introduction</a>
        </li>
              
    <li class="none">
              <a href="release-notes.html">Release Notes</a>
        </li>
              
    <li class="none">
              <a href="jira-report.html">Changes</a>
        </li>
          </ul>
          <h5>Concepts</h5>
        <ul>
              
    <li class="none">
              <a href="summary.html">Summary</a>
        </li>
              
    <li class="none">
              <a href="spoolmanager.html">SpoolManager</a>
        </li>
              
    <li class="none">
              <a href="repositories.html">Repositories</a>
        </li>
              
    <li class="none">
              <a href="mailet_api.html">The Mailet API</a>
        </li>
          </ul>
          <h5>How to...</h5>
        <ul>
              
    <li class="none">
              <a href="build_instructions.html">Build James</a>
        </li>
              
    <li class="none">
              <a href="installation_instructions.html">Install James</a>
        </li>
          </ul>
          <h5>Mailets</h5>
        <ul>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/index.html">Overview</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/api/index.html">API</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/base/index.html">Basic Toolkit</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/crypto/index.html">Crypto</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/standard/index.html">Sieve</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/maven-mailetdocs-plugin/index.html">MailetDocs</a>
        </li>
              
    <li class="none">
              <a href="james-server-mailets-function/mailet-report.html">Server</a>
        </li>
              
    <li class="none">
              <a href="http://james.apache.org/mailet/standard/index.html">Standard</a>
        </li>
          </ul>
          <h5>Configuration</h5>
        <ul>
              
    <li class="none">
              <a href="dns_configuration.html">DNS Server</a>
        </li>
              
    <li class="none">
              <a href="pop3_configuration.html">POP3 Server</a>
        </li>
              
    <li class="none">
              <a href="smtp_configuration.html">SMTP Server</a>
        </li>
              
    <li class="none">
              <a href="nntp_configuration.html">NNTP Server</a>
        </li>
              
    <li class="none">
              <a href="fetchmail_configuration.html">FetchMail</a>
        </li>
              
    <li class="none">
              <a href="remotemanager_configuration.html">RemoteManager</a>
        </li>
              
    <li class="none">
              <a href="spoolmanager_configuration.html">SpoolManager</a>
        </li>
              
    <li class="none">
              <a href="serverwide_configuration.html">Server-wide</a>
        </li>
              
    <li class="none">
              <a href="adding_users.html">Adding Users</a>
        </li>
              
    <li class="none">
              <a href="provided_matchers.html">Provided Matchers</a>
        </li>
              
    <li class="none">
              <a href="provided_mailets.html">Provided Mailets</a>
        </li>
          </ul>
          <h5>Common Configurations</h5>
        <ul>
              
    <li class="none">
              <a href="smtp_auth.html">Using SMTP AUTH</a>
        </li>
              
    <li class="none">
              <a href="using_database.html">Using a Database with James</a>
        </li>
              
    <li class="none">
              <a href="usingTLS.html">Using TLS/SSL</a>
        </li>
              
    <li class="none">
              <a href="mailing_lists.html">Creating Mailing Lists</a>
        </li>
          </ul>
          <h5>Customization</h5>
        <ul>
              
    <li class="none">
              <a href="custom_matcher.html">How to write a custom Matcher</a>
        </li>
              
    <li class="none">
              <a href="custom_mailet.html">How to write a custom Mailet</a>
        </li>
          </ul>
          <h5>Project Documentation</h5>
        <ul>
              
                
              
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
              
        <li class="collapsed">
              <a href="project-info.html">Project Information</a>
              </li>
              
                
              
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
              
        <li class="collapsed">
              <a href="project-reports.html">Project Reports</a>
              </li>
          </ul>
          <h5>Project</h5>
        <ul>
              
    <li class="none">
              <a href="http://issues.apache.org/jira/browse/JAMES">Bug Database</a>
        </li>
              
    <li class="none">
              <a href="http://svn.apache.org/viewvc/james/server/">Source Code</a>
        </li>
              
    <li class="none">
              <a href="../todo.html">TODO</a>
        </li>
          </ul>
          <h5>Downloads</h5>
        <ul>
              
    <li class="none">
              <a href="../../download.cgi">Stable releases</a>
        </li>
              
    <li class="none">
              <a href="../../downloadunstable.cgi">Unstable releases</a>
        </li>
              
    <li class="none">
              <a href="http://people.apache.org/builds/james/nightly/">Nightly builds</a>
        </li>
          </ul>
                                       <a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy">
            <img alt="Built by Maven" src="./images/logos/maven-feather.png"></img>
          </a>
                       
  

  
    
  
  
        </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        
  
  
    <a name="Design Objectives"></a><div class="section"><h2>Design Objectives</h2>
      
      <a name="features"></a><div class="section"><h3>features</h3>
        <p>These are some of the currently implemented features:</p>
        <p>
          <i>
            <b>Complete portability</b>
          </i>  Apache James is be a 100% pure Java application
       based on the Java 2 platform and the JavaMail 1.4 API.
  </p>
        <p>
          <i>
            <b>Protocol abstraction</b>
          </i>  Unlike other mail engines, protocols are seen only
       like &quot;communication languages&quot; ruling comunications between clients and
       the server. Apache James is not be tied to any particular protocol but
       follow an abstracted server design (like JavaMail did on the
       client side)</p>
        <p>
          <i>
            <b>Complete solution</b>
          </i>  the mail system is able to handle both mail
       transport and storage in a single server application. Apache James
       works alone without the need for any other server or solution.</p>
        <p>
          <i>
            <b>Mailet support</b>
          </i>  Apache James supports the Apache Mailet API. A Mailet
       is a discrete piece of mail-processing logic which is incorporated into
       a Mailet-compliant mail-server's processing. This easy-to-write,
       easy-to-use pattern allows developers to build powerful customized mail
       systems. Examples of the services a Mailet might provide include: a
       mail-to-fax or mail-to-phone transformer, a filter, a language translator, a mailing
       list manager, etc. Several Mailets are included in the JAMES
       distribution (see <a href="documentation.html">documentation</a>).</p>
        <p>
          <i>
            <b>Resource abstraction</b>
          </i>  Like protocols, resources are abstracted and,
       accessed through defined interfaces (JavaMail for transport, JDBC for
       spool storage or user accounts in RDBMS's, Apache Mailet API). The server is
       highly modular and reuse solutions from other projects.</p>
        <p>
          <i>
            <b>Secure and multi-threaded design</b>
          </i>  Based on the technology developed
       for the Apache JServ servlet engine, Apache James has a careful,
       security-oriented, full multi-threaded design, to allow performance,
       scalability and mission-critical use.</p>
        <p>Anything else you may want if you help us write it :-)</p>
      </div>
      <a name="standards compliance"></a><div class="section"><h3>standards compliance</h3>
        <p>It is the existence of published &quot;open&quot; standards which 
allows independant teams to develop interoperable software.
<br></br>James attempts to support a number of these standards most of which are 
IETF RFC's and in the areas covered by these standards the published standard 
is our requirements document.
<br></br>This sometimes leads to confusion where behaviour is not 
the subject of a relevant standard, or conflict where common 
(de-facto) behaviour is actually at odds with a supported standard.
<br></br>We believe that it is our responsibility to adhere to the published standard. 
If we allow our implementation to deviate it means that we are tacitly encouraging 
the situation whereby interoperability is no longer guarenteed by standards 
compliance alone, but also requires access to undocumented and possibly 
even commercially licenced technology. There is no easy route for a 
newcomer to aquire these secrets, and interoperabilty 
becomes something only available to the elite.
        </p>
        <p>The James policy for issues of non-compliance tries to tread the fine line
between a pragmatic acceptance of other people's misinterpretation of the
RFC's and an evangelical defence of open standards as the key to freedom of interoperation.
        </p>
        <p>
In practice this policy is that certain well argued of cases of
non-compliance which can be *safely* worked around, will be tolerated by
James.
</p>
        <p>
In cases (like jira issue JAMES-344 ) where variance from a published standard is
required it is desirable that this functionality is disabled in James by default,
it must be prominently and clearly documented that this causes James 
to violate the relevant standard, and should be enabled by explicit 
configuration, making its use a conscious decision of the user rather 
than an decision taken by the James team.
</p>
        <p>
In cases where the required behaviour is not within the scope of any standard which
James claims to support (such as behaviour which is a de-facto standard or
an <i>internet draft</i> RFC but not yet subject of a <i>standards track</i> RFC) it is
acceptable to implement the behaviour so long as it is adequately
documented (for instance by refrence to an <i>internet draft</i> or 
other public document) and users can be clear about what to expect from James.
</p>
      </div>
    </div>
  

      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">&#169;  
          2002-2009
    
          The Apache Software Foundation
          
  

  
    
  
  
  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
    </script>
    <script type="text/javascript">
      _uacct = "UA-1384591-1";
      urchinTracker();
    </script>
  </body>
</html>
