(file) Return to readme.txt CVS log (file) (dir) Up to [Pegasus] / pegasus / Attic

Diff for /pegasus/Attic/readme.txt between version 1.3 and 1.7

version 1.3, 2001/01/22 15:09:29 version 1.7, 2001/05/24 00:48:34
Line 2 
Line 2 
  
 Author: Mike Brasher, Karl Schopmeyer Author: Mike Brasher, Karl Schopmeyer
  
 --------------------------------------------------------------------------------  
   
 $Log$  
 Revision 1.3  2001/01/22 15:09:29  mike  
 Reworking indentation and breaking width of lines below 80 columns (not finished). Also  
 inserted comments and suggestions following "MEB:" annotations.  
   
   
 Revision 1.1  2001/01/15 04:26:04  karl  
 added Readme  
   
 --------------------------------------------------------------------------------  
   
 Tagline: Pegasus is an object manager for DMTF CIM objects written in C++ Tagline: Pegasus is an object manager for DMTF CIM objects written in C++
          and supported buy The Open Group           and supported by The Open Group
   
   Overview:
   =========
  
 Pegasus is an object manager for DMTF CIM objects. It is written in C++ and  Pegasus is an open-source object manager for DMTF CIM objects. It is written
 includes the Object manager, a set of defined interfaces, and SDKs for both  in C++ and includes the Object manager, a set of defined interfaces, and SDKs
 client, providers, and services extensions.  It is maintained consistent with  for both client, providers, and services extensions.  It is maintained
 the DMTF CIM and WBEM specifications except for any exceptions noted in the  consistent with the DMTF CIM and WBEM specifications except for any exceptions
 documentation.  noted in the documentation.
  
 This distribution represents a work in progress towards building a Pegasus This distribution represents a work in progress towards building a Pegasus
 release. Pegasus is open source and is covered under the following license. release. Pegasus is open source and is covered under the following license.
Line 52 
Line 42 
  
 http://www.opengroup.org/MSB http://www.opengroup.org/MSB
  
 Availability of Pegasus  Availability of Pegasus:
 =======================  ========================
  
 Pegasus is distributed as open source.  Today the distribution is limited Pegasus is distributed as open source.  Today the distribution is limited
 because we want to reach a predefined level of development before making the because we want to reach a predefined level of development before making the
Line 69 
Line 59 
  
 k.schopmeyer@opengroup.org k.schopmeyer@opengroup.org
  
 Pegasus Major Components  Pegasus Major Components:
 ========================  =========================
  
 The major components of Pegasus are: The major components of Pegasus are:
  
 Pegasus Server - WBEM/CIM Server with interfaces for providers and clients Pegasus Server - WBEM/CIM Server with interfaces for providers and clients
  
 Pegasus Repository - Today Pegasus provides a defined class repository  Pegasus Repositories - Today Pegasus provides a defined class repository
     interface and a simple file based class repository. Future will include      interface and a simple file based class repository. It also includes
     the object [MEB: instance?] repository      an instance repository. Note that these repository were created for
       functionality, not efficieny. It is expected that they will be replaced
       with other implementations of the respository function as the need arrses.
  
 Pegasus Client SDK - Tools for building Pegasus clients based on the Pegasus Pegasus Client SDK - Tools for building Pegasus clients based on the Pegasus
     C++ interfaces and using the WBEM HTTP/XML protocols or directly     C++ interfaces and using the WBEM HTTP/XML protocols or directly
Line 93 
Line 85 
     and the recept of the response as WEB pages. This has proven useful as a     and the recept of the response as WEB pages. This has proven useful as a
     test tool and can be used for a wide variety of demonstrations.     test tool and can be used for a wide variety of demonstrations.
  
 Pegasus Providers - Future (Version 1.0)  Pegasus Provider SDK - Tools for build Pegasus clients based on the Pegasus
       C++ interfaces.
   
   Pegasus Providers - A sampling of key providers to make the environment
   complete as well as test providers and demonstration providers for the
   Pegasus.
  
 Pegasus Service Extensions -  Future (version 1.0) Pegasus Service Extensions -  Future (version 1.0)
  
 Pegasus MOF Compiler - Future (Version 0.9)  Pegasus MOF Compiler - FA standalone compiler for MOF files that can be used
   to install MOF into the Pegasus schema repository and also to check syntax
  
 Pegasus Dependencies  Pegasus Dependencies:
 ====================  =====================
  
 We have worked to minimize the dependence of Pegasus on other software We have worked to minimize the dependence of Pegasus on other software
 packages and tools. Currently Pegasus has the following dependencies packages and tools. Currently Pegasus has the following dependencies
  
 1. ACE_Wrappers communication package - The ACE Wrappers package is used for  1.  GNUMAKE - To simplify the building of Pegasus across multiple platforms we
 communication and some low level functions within the MSB, the Pegasus client      have standardized on a set of build tools including: GNUMAKE. We are using
 SDK, and the Pegasus Provider SDK.  ACE is available from the following site.      GNUAKE 4.79.1 successfully both in Windows and Linux environments.
   
     http://ace.cs.wustl.edu/cvsweb/ace-cvs.cgi/ACE_wrappers/  
   
 Currently we are using version 5.1 of ACE_Wrappers both in Linux and Windows.  
   
     http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ACE-5.1.tar.gz  
   
 COMMENTS: Pegasus only uses limited facilities from ACE.  However, today we  
 demand the installation of the complete ACE library. One of the action items  
 for the future is to provide a more limited ACE library and possibly even to  
 provide an environment independent of ACE. This will depend on the demands of  
 the users.  
   
 2. To simplify the building of Pegasus across multiple platforms we have  
 standardized on a set of build tools including: GNUMAKE. We are using GNUAKE  
 4.79.1 successfully both in Windows and Linux environments.  
  
 GNUMAKE is available from GNUMAKE is available from
  
Line 131 
Line 113 
  
 ATTN: I think we need to make our version available on the TOG site. ATTN: I think we need to make our version available on the TOG site.
  
 COMMENT: Unless other users of Pegasus demand it, we will NOT create any build      COMMENT: Unless other users of Pegasus demand it, we will NOT create
 environment for Pegasus that does not require GNUMAKE (e.g., Visual C++). We      any build environment for Pegasus that does not require GNUMAKE (e.g.,
 are open to other developers who want to contribute other build structures for      Visual C++). We are open to other developers who want to contribute
 particular environments.      other build structures for particular environments.
   
   2.  MU.EXE - To minimize the difference between Linux and Windows for GUNMAKE,
 3. MU.EXE - To minimize the difference between Linux and Windows for GUNMAKE,      we have created a utility called MU.exe.  This utility is required for
 we have created a utility called MU.exe.  The source for this is available      Pegasus make with Windows environment. It is provided as an alternative to
 with the distribution and the binary is distributed in the bin directory of      requiring a number of UNIX utilities (SH, RM, etc.) on the windows platform
 the the snapshots for now.      and effectively provides the functions of these utilities that GNUMAKE
       needs. MU is not required on UNIX or LINUX platforms.
 [MEB: the binary for MU.EXE is not distributed in the bin directory; you  
 have to build it at this time]      NOTE: The binary for MU.EXE is not distributed in the Pegasus bin directory.
       You must build it separately.  MU source code is part of the distribution
 [MEB: MU.EXE is only needed on Windows]      in the directory src/utils/MU with its own make file.  You must compile MU
       before you initiate the Pegausu make.
 [STOPPED]  
       NOTE: We will make a copy of the binary available on the MSB WEB site to
       eliminate the requirement to build this utility.
   
   3.  FLEX and BISON - These tools were used to develop the compiler, anybody
       intending to recompile the compiler from scratch will be required to have
       these tools.
   
   4.  DOC++ - The Pegasus documentation is taken from a combination of text files
       and the Pegasus header files themselves.  This documentation is formatted
       with DOC++ and GAWK.  These tools are required if the documentation is to
       be recreated but we expect that only the core team will be recreating
       documentaiton.
  
 The Pegasus Directory Structure The Pegasus Directory Structure
 =============================== ===============================
Line 158 
Line 151 
  
 This structure is generally as follows This structure is generally as follows
  
 Pegasus                     Root directory  Pegasus                     Pegasus Root directory
     bin  
     build                   Destination for all intermediate files from build  
         bin                 Destination for executable and DLL modules from      build                   Default destination for runtime if PEGASUS_HOME
                             Pegasus build                              is not specified.  Does not exist if PEGASUS_HOME
         lib                              is specified
         obj  
     cgi-bin                 Source and make for the Pegasus WEB Based Test client software  
     doc                     Miscelaneous Pegasus Documents. Includes the DMTF XML for CIM 2.4      cgi                     Source for the Pegasus WEB Based Test client
     html                    HTML files for the Browser test client.          cgi-bin             CGI Directories for WEB demonstration.
     mak                     General make files (used by the root make and other makes)                              This directory is normally empty but can
     Repository              This Directory containes the created repository                              be populated from the runtime with the make
                               from cgi.
           htdocs              HTML Pages for Pegasus WEB emonstration
       doc                     Miscellaneous Pegasus Documents.
           DevManual           Source and build files for developes manual
       mak                     General make files (used by other makes)
     src                     All Pegasus Source Files     src                     All Pegasus Source Files
         ACEExamples         Test directrory with examples of the use of ACE (developers)          ACEExample         Test directrory with examples of the use of ACE
           Clients             Source for various test clients and client SDK
               CGICLIENT       Pegasus test client that uses a WEB browser
         Pegasus         Pegasus
             CGI             CGI files for the WEB test client              Client          Pegasus Client API Tests
                 CGIClient  
             Client          Pegasus Client SDK and Test client using the SDK  
                 depends                 depends
                 tests                 tests
             Common          Pegasus Common Functions (C++ source and headers             Common          Pegasus Common Functions (C++ source and headers
                 tests       Test programs for the common functions                 tests       Test programs for the common functions
             Protocol        Pegasus Client HTTP/XML Protocol Modules             Protocol        Pegasus Client HTTP/XML Protocol Modules
                 depends                 depends
             Repository      Pegasus Repository Interfaces and Simple Repository              Provider        Pegasus Provider interface functions
               Repository      Pegasus Repository Interfaces and Simple
                               Repository
                 tests       Tests for Repository Functions                 tests       Tests for Repository Functions
             Server          Pegasus Server Modules             Server          Pegasus Server Modules
                 depends          Providers           Pegasus test and required providers
                 tests  
  
         Utils         Utils
     manual                  Pegasus User/developer manual source modules  
         HTML                Output from the Pegasus Manual compilartion.  Runtime Directories
        $PEGASUS_HOME$         Home directory for runtime.  All compiler, linker
                               documentation creation, etc. is put here.
           bin                 Destination for executable and DLL modules from
                                       Pegasus build
           Manual              HTML output of the Pegasus Manual
           lib                 Destination for Pegasus LIB modules
           obj                 Destination for object modules
           Repository          This Directory containes the created repository
   
  
 In the near future we will add directories for: In the near future we will add directories for:
  
     Service Extensions     Service Extensions
     Providers      Servers - Today the server executable is built from /server/test.
  
   Installation:
   =============
  
 Installation  Pegasus today is provided only as a source distribution.  You download compile
 ============  and use it. Pegasus currently compiles and runs under Linux, AIX, HPUX,
   Windows NT, and Windows 2000.
  
 Pegasus today is provided only as a source distribution.  You download compile and use it.  The installation of Pegasus involves expanding the snapshot distribution
 Pegasus currently compiles and runs under both Linux and Windows NT environments.  files, building the runtime, the test files and test clients, and building the
   repository.
  
 The installation of Pegasus involves expanding the snapshot distribution files, building the  Building Pegasus:
 runtime, the test files and test clients, and building the repository.  =================
  
 NOTE: Since the compiler integration is not complete today, the class repository is populated  1.  Check that you have requisite programs (listed in Pegasus Dependencies).
 from the XML defintions for the complete CIM schema.  This process is included in the build  
 process so that at the end of a complete build, the class repository is completely populated  
 from the CIM 2.4 release schema.  
  
       These include GNU Make, MU.EXE, Flex, and Bison
  
 Building from a Distribution --- General      Be sure these are on your path.
 ========================================  
  
 Pegasus is buildable and runnable on either Linux or WIndows Platforms today.  2.  Define the following two environment variables:
 It uses a common build system for the two platforms based on build files and  
 GUNMAKE.  
  
 Generally we support four targets in our make system:      PEGASUS_HOME - to point to a directory to contain output binary files
       (e.g., set it to $HOME/pegasus_home).
  
       PEGASUS_PLATFORM - this must be set to a supported platform identifier.
       The following are supported:
  
             C:\> make clean          WIN32_IX86_MSVC
             C:\> make depend          LINUX_IX86_GNU
             C:\> make          AIX_RS_IBMCXX
             C:\> make tests          HPUX_PARISC_ACC
  
 The Pegasus Client server tests are executed separately from the above because they require      This identifier has the following form:
 the initiation of separate process for the Pegasus server and Pegasus client. These tests can  
 be executed as follows:  
  
     ATTN: Add the procedure for Client/Server Test start here.          <Operating-System>_<Architecture>_<Compiler>
  
       Note: if you plan on doing parallel builds, you might consider setting
       PEGASUS_HOME to something like this:
  
 For information on particular installation characteristics, tools, etc. for each platform see          $HOME/pegasus_home_LINUX_IX86_GNU
 the appropriate sections below:  
  
 Generally the build commands are as follows:      That way, the output of each build will be placed in its own directory.
  
         1. There is a Makefile in the Pegasus root.   Simply executing make in the Pegasus  3.  Now place $PEGASUS_HOME/bin on your path
         root directory will make everything.  
  
         2. In order to provide a working class repository for Pegasus until the MOF compiler      and
         is integrated, There is a utility to load the CIM Schema from XML into the repository.  
         This executes the LoadRepository executable which is defined in  
  
                 pegasus/src/Pegasus/Repository/tests/LoadRepository      Placd $PEGASUS_HOME/lib on your LD_LIBRARY_PATH (for Unix only).
  
         with the binary in pegasus/bin. This program will load the CIM XML repository  4.  Now change to the root of the Pegasus distrubution and type "make"
         definitions into the class repository.      (where make referes to GNU make).
  
         3. To test a fresh release, go to the pegasus root and type  5.  To test the build type "make tests".
  
                 "make world".  The following make targets are supported:
  
       <default> - Build everything.
       clean - Clean out all objects, libs, and executables.
       depend - Create the dependencies.
       tests  - Execute all tests (except client server tests).
       rebuild - clean, depend, <default>
       world - depend, <default>
  
         This will clean, build dependencies, build binaries, and then run all  The Pegasus Client server tests are executed separately from the above because
         tests except the Client/Server tests.  they require the initiation of separate process for the Pegasus server and
   Pegasus client. These tests can be executed as follows:
  
         4. To execute the basic test suite that is shipped with pegasus type      ATTN: Add the procedure for Client/Server Test start here.
   
            "make tests"  
  
         5. To run the Client/Server tests provided, simply type  For information on particular installation characteristics, tools, etc. for
   each platform see the appropriate sections below:
  
            "make tests"  Generally the build commands are as follows:
  
         Running "make -s tests" suppresses extraneous output such as the      1. There is a Makefile in the Pegasus root directory.   Simply executing
         enter/leave directory messages.      make in the Pegasus root directory will make everything. "Make rebuild"
       will clean and rebuild everything. The "make rebuild" will also populate
       the repository with the current CIM Schemas.
  
         6. "Make Clean" removes all object and library files from the      2. To test a fresh release, go to the pegasus root and type
         structure.  
  
 Build Variables                  "make world".
 ===============  
  
 The build system depends on the following environment variables  
  
     PEGASUS_ACE_ROOT - required (points to ACE_wrappers directory). This must be set      This will build dependencies, build binaries, and then run all
     before you initiate make      tests except the Client/Server tests.
  
     PEGASUS_BUILD - optional (points to build directory; defaults to build      3. To execute the basic test suite that is shipped with pegasus type
     directory under root of pegasus distribution). This must be set before you iniiate  
     make  
  
     PEGASUS_OS_TYPE - optional. The is currently set to windows.  If you build on Linux             "make tests". This also reintalls the repository.
     you must change this before initiating make.  
  
  COMMENTS: In the future, we will probably automate this more.  However, setting these      Running "make -s tests" suppresses extraneous output such as the
  variables today is manual.      enter/leave directory messages.
  
       4. "Make Clean" removes all object and library files from the structure.
  
 The MU Utility The MU Utility
 ============== ==============
  
 In order to provide a consistent build structure across multiple platforms, we developed a  In order to provide a consistent build structure across multiple platforms, we
 small utility to provide a consistent set of small utilities across these platforms. The MU  developed a small utility to provide a consistent set of small utilities
 utilityis a simple utility that contains many commands. For example:  across these platforms. The MU utilityis a simple utility that contains many
   commands. For example:
  
  
     C:\> mu rm myfile.cpp yourfile.cpp     C:\> mu rm myfile.cpp yourfile.cpp
Line 317 
Line 327 
  
     C:\> mu rm *.obj *.exe     C:\> mu rm *.obj *.exe
  
 MU is required to build under the Windows environment.MU is available as part of the  MU is required to build under the Windows environment.MU is available as part
 distribution of Pegasus.  of the distribution of Pegasus.
   
 Building Pegausu on Linux  
 =========================  
   
 1. Obtain, unpack and build the ACE_Wrappers package for Linux.  
  
 2. Define an environment variable called ACE_ROOT  that points to the root of the ACE_WRAPPERS  Notes about Building Pegasus on Linux:
 distribution. For example  ======================================
  
 IMPORT ACE_ROOT=\local\ACE_Wrappers  ATTN: put something here (but only what is not mentioned above).
  
 ATTN: Mike.  what is a viable directory for Linux (what do you use)  Building Pegasus on NT or Windows 2000 With Microsoft Visual C++
   ================================================================
 3. Define an environment variable PEGASUS_ROOT that points to the  
 root of the Pegasus Distribution  
   
 4. Append %PEGASUS_ROOT%/bin to your path  
   
 5. Unpack the ace distribution.  
   
 ATTN: Unpack with what since ZIP.  
   
 5. Build using the make commands defined in the section on General Build.  
   
         make world  
         make tests  
   
 Building Pegasus on NT or Windows 2000 With Visual C++  
 =======================================================  
  
 Today we build Pegasus on Windows NT using a set of make files contained Today we build Pegasus on Windows NT using a set of make files contained
 in the source distribution, the Microsoft compilers (tested so far with in the source distribution, the Microsoft compilers (tested so far with
 versions 5 and 6) and the GNUMAKE make utility. The following is the basic versions 5 and 6) and the GNUMAKE make utility. The following is the basic
 set up steps for the set up steps for the
  
   Setup the environment variables and path for the Micrososft Visual C
   compiler. Typically this can be done by running the VCVARS32.BAT file
   supplied with Microsoft Visual C++. (contained in the same directory
   as cl.exe).
  
 1.      Setup the environment variables and path for the Micrososft Visual C compiler.  Installing the Pegasus HTML Test Client:
 Typically this can be done by running the VCVARS32.BAT file supplied with Microsoft Visual  ========================================
 C++. (contained in the same directory as cl.exe).  
   
 2.      Define an environment variable called ACE_ROOT that points to the  
 root of the ACE_Wrappers distribution. For example:  
   
     C:\> set PEGASUS_ACE_ROOT=c:/ACE_wrappers  
   
 Now append %ACE_ROOT%/bin to the path like this:  
   
     C:\> set path=%path%;%PEGASUS_ACE_ROOT%/bin  
   
 3.      Define an environment variable called PEGASUS_ROOT that points to  
 the root of the Pegasus distribution. For example:  
   
     C:\> set PEGASUS_ROOT=c:/pegasus  
   
 Now append %PEGASUS_ROOT%/bin to your path like this:  
   
     set path=%path%;%PEGASUS_ROOT%/bin  
   
 4.  Unpack and build the ACE_Wrappers distribution for windows.  
   
 As an example, we created a file called %ACE_ROOT%/ace/config.h  
 containing the following:  
   
     #include "ace/config-win32.h"  
   
 and then opened this DSW file in MSVC++ IDE:  
   
     %ACE_ROOT%/ace/ace.dsw  
   
 From the build menu we picked "aced.dll". For me it built without complaint.  
   
 BUG: there is still one open problem that has not been resolved.  With  
 the Visucal C++ version 6 compiler, the ace libraries default to  
   
         acemfc.dll  
   
 With the version 5 visual C, apparently they default to the names  
   
         ace.dll  
         or  
         aced.dll (debug verions  
   
 We will correct this in a future snapshot.  
   
   
 5. Unpack the Pegasus distribution.  On Windows systems, PKzip25 or WINZIP can be used.  
 Be certain to use the option that expands the directory tree of the files.  This expansionwill  
 create a directory called ./pegasus  
   
 If you are using pkzip25.exe do this:  
     C:\> pkzip25 -extract -recurse -directories pegasus.zip  
   
 This will create a directory tree called ./pegasus under the  
 current directory.  
   
 ATTN: Define for Linux also  
   
 6.  Change directory  to %PEGASUS_ROOT% and type "make world". See the general build section  
 for the full set of make commands.  
   
 This builds Pegasus and all of its examples.  
   
 7.  To verify that it built okay, run the tests  
   
         make tests  
   
 Installing the Pegasus HTML Test Client  
 =======================================  
  
 This is a separate test tool that allows Pegasus requests to be initiated from any WEB browser  This is a separate test tool that allows Pegasus requests to be initiated from
 and that uses a WEB browser, CGI scritps and HTML pages for the formating and connections. It  any WEB browser and that uses a WEB browser, CGI scritps and HTML pages for
 requires a WEB server, etc.  The instructions for setting up this environment are maintained  the formating and connections. It requires a WEB server, etc.  The
 in a separate readme in the CGI directory.  instructions for setting up this environment are maintained in a separate
   readme in the CGI directory.
  
 Development with Pegasus and Pegasus Tools  Development with Pegasus and Pegasus Tools:
 ==========================================  ===========================================
  
 ATTN: This section needs to be completed.  It should reference the more ATTN: This section needs to be completed.  It should reference the more
 complete documentation complete documentation
  
 ===================  Documentation:
 Documentation  ==============
   
 The documentation is currently in preperation. The preliminary documentation is not provided  
 with this snapshot but is avialable from the OpenGroup Pegasus WEB pages. The current  
 documentation is maintained both as a manual created under the tool DOC++ in the  
 subdirectory manual/html and as other miscelaneous documentation in the doc directory.  
  
 Note that the Pegasus WEB site at The Open Group will be the source of most documentation in  The documentation is currently in preperation. The preliminary documentation
 the future and today is the source of most discussion and design documentation.  is not provided with this snapshot but is avialable from the OpenGroup Pegasus
   WEB pages. The current documentation is maintained both as a manual created
   under the tool DOC++ in the runtime subdirectory manual/html and as other
   miscelaneous documentation in the doc directory.
   
   Note that the Pegasus WEB site at The Open Group will be the source of most
   documentation in the future and today is the source of most discussion and
   design documentation.
  
 Participate! Participate!
 ============ ============
 We are looking for people who want to join the effort of getting this  
 next release off the ground.  Please send me email for details.  
   
   
   
   
   
   
   
   
   
   
   
  
   We are looking for people who want to join the Pegasus work group and
   contribute to effort of getting this Pegasus off the ground.  Please send
   email for details to k.schopmeyer@opengroup.org or m.kirk@opengroup.org or
   m.brasher@opengroup.org


Legend:
Removed from v.1.3  
changed lines
  Added in v.1.7

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2