[Subversion] / PEAK / README.txt  

Diff of /PEAK/README.txt

Parent Directory | Revision Log

version 957, Thu Apr 3 00:15:51 2003 UTC version 1496, Wed Nov 26 23:53:22 2003 UTC
Line 1 
Line 1 
 PEAK Release 0.5 alpha 1  PEAK Release 0.5 alpha 3
   
  Copyright (C) 1996-2003 by Phillip J. Eby and Tyler C. Sarna.   Copyright (C) 1996-2003 by Phillip J. Eby and Tyler C. Sarna.
  All rights reserved.  This software may be used under the same terms   All rights reserved.  This software may be used under the same terms
Line 41 
Line 41 
   
  Package Features   Package Features
   
     As of version 0.5a1, PEAK features include:      As of version 0.5a3, PEAK features include:
   
     * A component binding framework that makes it easy to parameterize      * A component binding framework that makes it easy to parameterize
       components and thus more easily combine and "wire" them together.        components and thus more easily combine and "wire" them together.
         Interfaces, adaptation, and "assembly events" (notification when
         components have been engaged as part of a "complete" application)
         are all available.
   
     * A comprehensive configuration framework that allows accessing      * A comprehensive configuration framework that allows accessing
       "utilities" and "configuration properties" in context.  Properties        "utilities" and "configuration properties" in context.  Properties
       and utilities can be loaded or computed on demand, supplied by rules,        and utilities can be loaded or computed on demand, supplied by rules,
       defined in configuration files or code, in a supplied or custom        defined in configuration files or code, in a supplied or custom
       format.  Properties and utilities are contextual and can be safely        format.  Properties and utilities are contextual and can be safely
       acquired from parent/context components automatically.  System-wide        acquired from parent/context components automatically.
       (per Python interpreter), application-wide (per running application  
       within an interpreter) and per-component configuration settings  
       are available.  
   
     * Naming system/framework that's midway between J2EE's JNDI and CORBA's      * Naming system/framework that's midway between J2EE's JNDI and CORBA's
       cosNaming in features, but much easier to use and extend than either        cosNaming in features, but much easier to use and extend than either
Line 70 
Line 70 
           a given object type and storage approach, you can create your own            a given object type and storage approach, you can create your own
           "DM" components.  You can think of a DM as an advanced form of            "DM" components.  You can think of a DM as an advanced form of
           Python "shelve", that supports references to other objects,            Python "shelve", that supports references to other objects,
           transactions, arbitrary back-end storages, and            transactions, arbitrary back-end storages, and caching.
   
         - "Stackable" data managers: one DM might serialize a set of objects          - "Stackable" data managers: one DM might serialize a set of objects
           to XML, which could then be stored in a database record by another            to XML, which could then be stored in a database record by another
Line 78 
Line 78 
           that writes to disk files!  Each DM only needs to know how to            that writes to disk files!  Each DM only needs to know how to
           manipulate objects offered by the next-level DM, not the details            manipulate objects offered by the next-level DM, not the details
           of the next DM's implementation, so all the DM's are potentially            of the next DM's implementation, so all the DM's are potentially
           replacable with alternate storage mechanisms.            replaceable with alternate storage mechanisms.
   
         - RDBMS and LDAP connection framework based on the Python DBAPI,          - RDBMS and LDAP connection framework based on the Python DBAPI,
           that handles data type conversions (via the configuration            that handles data type conversions (via the configuration
Line 87 
Line 87 
           by name or URL, and bound as default collaborators or utilities            by name or URL, and bound as default collaborators or utilities
           for access by other application components.            for access by other application components.
   
     * CASE/modelling tools: PEAK includes APIs to read and write object      * CASE/modelling tools: PEAK includes APIs to read object
       models created in the XML-based XMI format.  Many open-source and        models created in the XML-based XMI format.  Many open-source and
       commercial modelling tools support XMI, inlcuding Argo/Poseidon and        commercial modelling tools support XMI, inlcuding Argo/Poseidon and
       MagicDraw UML.  PEAK includes pre-built support for UML versions 1.3        MagicDraw UML.  PEAK includes pre-built support for UML versions 1.3
       through 1.5, CWM 1.1, and MOF 1.3.1, using XMI versions 1.0 through 1.2.        and 1.4, and MOF 1.3.1, using XMI versions 1.0 and 1.1. (UML 1.5,
       Also included, a MOF->Python code generator, which was used to generate        CWM 1.0, CWM 1.1, and XMI 1.2-2.0 are anticipated for version 0.6.)
       the UML and CWM support, and which you can use to generate support for        Also included is a MOF->Python code generator, which was used to generate
       other modelling languages based on the MOF.        the UML support, and which you can use to generate support for other
         modelling languages based on the MOF.
   
       For the specifications of XMI, MOF, CWM, and UML, visit:        For the specifications of XMI, MOF, CWM, and UML, visit:
       http://www.omg.org/technology/documents/modeling_spec_catalog.htm        http://www.omg.org/technology/documents/modeling_spec_catalog.htm
Line 102 
Line 103 
     * A domain modelling framework for creating "business object models"      * A domain modelling framework for creating "business object models"
       with unidirectional and bidirectional associations, generated        with unidirectional and bidirectional associations, generated
       getters/setters and validators for fields, etc., and all necessary        getters/setters and validators for fields, etc., and all necessary
       persistence support for use with the PEAK storage framework.        persistence support for use with the PEAK storage framework.  Domain
         types can also define string parsing and formatting syntax, so you can
         create domain-specific data languages or just string formats for data
         types (such as specialized date/time or currency types).
   
       The business object framework supplies structural metadata about        The business object framework supplies structural metadata about
       classes built with it, so you can query a class for its fields and        classes built with it, so you can query a class for its fields and
Line 112 
Line 116 
       from PEAK models (and vice versa) is possible (although        from PEAK models (and vice versa) is possible (although
       not yet implemented for anything but MOF->PEAK).        not yet implemented for anything but MOF->PEAK).
   
   
   
   
   
   
       * Application Runtime tools, including:
   
         - a "command objects" framework for creating command-line applications,
           including the ability to create "executable configuration files"
           or "configuration interpreters" that can load a configuration file
           and run an application instance constructed using the configuration
           data.  Supported formats include an .ini-like PEAK format, and
           arbitrary schemas defined using ZConfig.
   
         - a "periodic tasks" framework for executing tasks that perform "as
           needed", scheduling themselves in response to their available workloads
   
         - a CGI/FastCGI publishing framework that uses 'zope.publisher' to
           publish a PEAK component tree and its associated transaction service
   
         - an event-driven "reactor" framework that seamlessly integrates with
           Twisted, but can also be used without Twisted for applications that are
           mostly scheduling-oriented, or which use only third-party protocol
           implementations such as FAM, FastCGI, ReadyExec, etc.
   
         - a robust and flexible logging framework that can integrate with the
           PEP 282 logging module, or stand alone.  It's simpler than the PEP 282
           system for simple log configuration, and is configured on demand
           rather than "up front", and is thus more manageably configurable for
           large or complex applications consisting of components from diverse
           providers.
   
         - a "process supervisor" framework for multiprocess servers using
           long-running child processes (created via 'fork()') to take maximum
           advantage of multiprocessor machines for CPU-intensive services.
   
     * AOP and SOP: PEAK allows you to separate concerns as modules, then      * AOP and SOP: PEAK allows you to separate concerns as modules, then
       combine the modules via a "module inheritance" technique.  This        combine the modules via a "module inheritance" technique.  This
       lets you define a generated business object model as a        lets you define a generated business object model as a
       "structural" concern, and then combine it with a "behavioral"        "structural" concern, and then combine it with a "behavioral"
       concern.  This is as simple as writing classes that just contain        concern.  This is as simple as writing classes that contain only
       what you want to add, and then telling PEAK that your new module        what you want to add, and then telling PEAK that your new module
       "inherits" from the generated module.        "inherits" from the generated module.  This is similar to (but
         designed independently from) the "MixJuice" tool for AOP in Java.
   
   
  Known Issues and Risks of this Version   Known Issues and Risks of this Version
Line 128 
Line 169 
    in areas not covered by the test suites.  Also, many system interfaces     in areas not covered by the test suites.  Also, many system interfaces
    are still subject to change.     are still subject to change.
   
    PEAK includes early copies of Zope 3's 'Interface' and 'Persistence'     PEAK includes early copies of Zope X3's 'ZConfig' and 'persistence'
    packages, which have since changed names in their official releases,     packages, which have had - and may continue to have - significant
    and have had - and will continue to have - significant implementation     implementation changes.  We will be tracking Zope X3 periodically, but
    changes.  Complete interoperability with Zope 3 is therefore currently     can't guarantee compatibility with arbitrary (e.g. CVS) versions of
    at risk.  We are waiting until the pending refactoring of Zope 3's     Zope X3.
    interface package is complete before upgrading from 'Interface' to  
    'zope.interface'.  Also, the ZODB persistence package is undergoing  
    some changes that may make it less useful for PEAK, and we may be  
    forced to "fork" and/or create our own C-level persistence support.  
    This may be clearer once ZODB4 and/or Zope 3 reach their next release.  
   
    Documentation at present is limited, and scattered.  The principal     Documentation at present is limited, and scattered.  The principal
    documentation is an API reference generated from the code's lengthy     documentation is an API reference generated from the code's lengthy
Line 148 
Line 184 
    tutorial on using the component binding package.     tutorial on using the component binding package.
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
  Third-Party Software Included with PEAK   Third-Party Software Included with PEAK
   
        All third-party software included with PEAK are understood by PEAK's
        authors to be distributable under terms comparable to those PEAK is
        offered under.  However, it is up to you to understand any obligations
        those licenses may impose upon you.  For your reference, here are the
        third-party packages and where to find their license terms:
   
      The 'kjbuckets' module is Copyright Aaron Watters and contributors;       The 'kjbuckets' module is Copyright Aaron Watters and contributors;
      please see the 'src/kjbuckets/COPYRIGHT.txt' file for details of its       please see the 'src/kjbuckets/COPYRIGHT.txt' file for details of its
      license.       license.
   
      The 'Interface' and 'Persistence' packages are Copyright Zope Corporation       The 'datetime', 'persistence' and 'ZConfig' packages are Copyright Zope
      and contributors; please see the 'LICENSE.txt' files for details of their       Corporation and contributors; please see the 'LICENSE.txt' files in their
      licenses.       directories for details of their licenses.
   
        The 'fcgiapp' module is Copyright Digital Creations, LC (now Zope Corp.);
        see the 'fcgiappmodule.c' for details of its license.  In the same
        directory are distributed portions of the FastCGI Development Kit, which
        is Copyright Open Market, Inc.  See the 'LICENSE.TERMS' file in that
        directory for details of its license.
   
  Installation Instructions   Installation Instructions
   
     Please see the INSTALL.txt file.      Please see the INSTALL.txt file.
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   


Generate output suitable for use with a patch program
Legend:
Removed from v.957  
changed lines
  Added in v.1496

cvs-admin@eby-sarna.com

Powered by ViewCVS 1.0-dev

ViewCVS and CVS Help