(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.5

version 1.3, 2001/01/22 15:09:29 version 1.5, 2001/02/26 10:36:34
Line 2 
Line 2 
  
 Author: Mike Brasher, Karl Schopmeyer Author: Mike Brasher, Karl Schopmeyer
  
 --------------------------------------------------------------------------------  ------------------------------------------------------------------------------
   --
  
 $Log$ $Log$
   Revision 1.5  2001/02/26 10:36:34  karl
   Clean Up Text
   
   Revision 1.4  2001/01/26 20:20:36  karl
   Clean up Readme with MB comments
   
 Revision 1.3  2001/01/22 15:09:29  mike Revision 1.3  2001/01/22 15:09:29  mike
 Reworking indentation and breaking width of lines below 80 columns (not finished). Also  Reworking indentation and breaking width of lines below 80 columns (not
   finished). Also
 inserted comments and suggestions following "MEB:" annotations. inserted comments and suggestions following "MEB:" annotations.
  
  
 Revision 1.1  2001/01/15 04:26:04  karl Revision 1.1  2001/01/15 04:26:04  karl
 added Readme 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
  
 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 76 
Line 85 
  
 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 104 
     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
 ==================== ====================
Line 115 
Line 132 
  
     http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ACE-5.1.tar.gz     http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ACE-5.1.tar.gz
  
 COMMENTS: Pegasus only uses limited facilities from ACE.  However, today we  COMMENTS: Pegasus only uses limited facilities from ACE. We actively
   discourage the Pegasus team from using other functions of ACE.  We expect to
   eliminate our dependence on ACE as the only TCP tool in the near future.
   However, today we
 demand the installation of the complete ACE library. One of the action items 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 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  provide an environment independent of ACE.
 the users.  
  
 2. To simplify the building of Pegasus across multiple platforms we have 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 standardized on a set of build tools including: GNUMAKE. We are using GNUAKE
Line 138 
Line 157 
  
  
 3. 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.  The source for this is available  we have created a utility called MU.exe.  This utility is required for Pegasus
 with the distribution and the binary is distributed in the bin directory of  make with Windows environment. It is provided as an alternative to requiring a
 the the snapshots for now.  number of UNIX utilities (SH, RM, etc.) on the windows platform and
   effectively provides the functions of these utilities that GNUMAKE needs.
 [MEB: the binary for MU.EXE is not distributed in the bin directory; you  MU is not required on UNIX or LINUX platforms.
 have to build it at this time]  
   NOTE: The binary for MU.EXE is not distributed in the Pegasus bin directory.
 [MEB: MU.EXE is only needed on Windows]  You must build it separately.  MU source code is part of the distribution
   in the directory src/utils/MU with its own make file.  You must compile MU
 [STOPPED]  before you initiate the Pegausu make.
   
   NOTE: We will make a copy of the binary available on the MSB WEB site to
   eliminate the requirement to build this utility.
   
   4. 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.
   
   5. 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 190 
  
 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 today is provided only as a source distribution.  You download compile
 Pegasus currently compiles and runs under both Linux and Windows NT environments.  and use it. Pegasus currently compiles and runs under both Linux and Windows
   NT environments.
 The installation of Pegasus involves expanding the snapshot distribution 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 runtime, the test files and test clients, and building the
 NOTE: Since the compiler integration is not complete today, the class repository is populated  repository.
 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  NOTE: Since the compiler integration is not complete today, the class
 from the CIM 2.4 release schema.  repository is populated 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.
  
  
 Building from a Distribution --- General Building from a Distribution --- General
 ======================================== ========================================
  
 Pegasus is buildable and runnable on either Linux or WIndows Platforms today. Pegasus is buildable and runnable on either Linux or WIndows Platforms today.
 It uses a common build system for the two platforms based on build files and  It uses a common build system for the two platforms based on build files in
   each directory, a recursive build strucutre to execute the multiple makes and
 GUNMAKE. GUNMAKE.
  
 Generally we support four targets in our make system:  Generally we support the followingtargets in our make system:
  
  
             C:\> make clean              C:\> make clean - Clean out all objects, libs, and executables
             C:\> make depend              C:\> make depend - Create the dependencies
             C:\> make             C:\> make
             C:\> make tests              C:\> make tests  - Execute all tests except client server tests
               C:\> make rebuild - Clean and rebuild including the respository
 The Pegasus Client server tests are executed separately from the above because they require              C:\> make world
 the initiation of separate process for the Pegasus server and Pegasus client. These tests can  
 be executed as follows:  The Pegasus Client server tests are executed separately from the above because
   they require 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.     ATTN: Add the procedure for Client/Server Test start here.
  
  
 For information on particular installation characteristics, tools, etc. for each platform see  For information on particular installation characteristics, tools, etc. for
   each platform see
 the appropriate sections below: the appropriate sections below:
  
 Generally the build commands are as follows: Generally the build commands are as follows:
  
         1. There is a Makefile in the Pegasus root.   Simply executing make in the Pegasus      1. There is a Makefile in the Pegasus root.   Simply executing make in the
         root directory will make everything.      Pegasus root directory will make everything. Make rebuild will clean and
       rebuild everything.
         2. In order to provide a working class repository for Pegasus until the MOF compiler  
         is integrated, There is a utility to load the CIM Schema from XML into the repository.      2. In order to provide a working class repository for Pegasus until the
         This executes the LoadRepository executable which is defined in      MOF compiler 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                 pegasus/src/Pegasus/Repository/tests/LoadRepository
  
         with the binary in pegasus/bin. This program will load the CIM XML repository      with the binary in pegasus/bin. This program will load the CIM XML
         definitions into the class repository.      repository definitions into the class repository.
  
         3. To test a fresh release, go to the pegasus root and type         3. To test a fresh release, go to the pegasus root and type
  
Line 264 
Line 319 
  
            "make tests"            "make tests"
  
         5. To run the Client/Server tests provided, simply type      5. To run the integral unit code tests provided, simply type
  
            "make tests"            "make tests"
  
         Running "make -s tests" suppresses extraneous output such as the         Running "make -s tests" suppresses extraneous output such as the
         enter/leave directory messages.         enter/leave directory messages.
  
         6. "Make Clean" removes all object and library files from the      6. "Make Clean" removes all object and library files from the structure.
         structure.  
  
 Build Variables Build Variables
 =============== ===============
  
 The build system depends on the following environment variables  The build system depends on the following environment variables build set.
   These variables must be set as part of the installation of the Pegasus source
     PEGASUS_ACE_ROOT - required (points to ACE_wrappers directory). This must be set  tree before you can compile or run Pegasus.
     before you initiate make  
       PEGASUS_ACE_ROOT - required (points to ACE_wrappers directory). This must
       be set before you initiate make
   
       PEGASUS_OS_TYPE - optional. The is currently set to windows.  If you build
       on any platform except windows you must change this before initiating
       make.
   
       PEGASUS_ROOT - Root directory of the Pegasus tree.
       PEGASUS_HOME - Home directory for all of the Pegasus runtime elements.
       If this does not exist, $PEGASUS_ROOT$/build is assumed.
  
     PEGASUS_BUILD - optional (points to build directory; defaults to build   COMMENTS: In the future, we will probably automate this more.  However,
     directory under root of pegasus distribution). This must be set before you iniiate   setting these variables today is manual.
     make  
   
     PEGASUS_OS_TYPE - optional. The is currently set to windows.  If you build on Linux  
     you must change this before initiating make.  
   
  COMMENTS: In the future, we will probably automate this more.  However, setting these  
  variables today is manual.  
  
  
 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 375 
  
     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 Building Pegausu on Linux
 ========================= =========================
  
 1. Obtain, unpack and build the ACE_Wrappers package for 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  2.      Define an environment variable called ACE_ROOT  that points to the
 distribution. For example          root of the ACE_WRAPPERS distribution. For example
  
 IMPORT ACE_ROOT=\local\ACE_Wrappers                  IMPORT PEGASUS_ACE_ROOT=\local\ACE_Wrappers
  
 ATTN: Mike.  what is a viable directory for Linux (what do you use) ATTN: Mike.  what is a viable directory for Linux (what do you use)
  
 3. Define an environment variable PEGASUS_ROOT that points to the 3. Define an environment variable PEGASUS_ROOT that points to the
 root of the Pegasus Distribution root of the Pegasus Distribution
  
 4. Append %PEGASUS_ROOT%/bin to your path  
  
   4.      Define the environment variable PEGASUS_HOME where you want the
           runtime elements (executables, objects, libraries, etc.) to go.
 5. Unpack the ace distribution. 5. Unpack the ace distribution.
  
 ATTN: Unpack with what since ZIP.  
  
 5. Build using the make commands defined in the section on General Build.  6.      Append %PEGASUS_ROOT%/bin to your path
   
   7.      From the %PEGASUS_ROOT% directory build using the make commands
           defined in the section on General Build.
  
         make world         make world
         make tests         make tests
  
 Building Pegasus on NT or Windows 2000 With Visual C++  Building Pegasus on NT or Windows 2000 With Microsoft 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
Line 355 
Line 416 
 set up steps for the set up steps for the
  
  
 1.      Setup the environment variables and path for the Micrososft Visual C compiler.  1.      Setup the environment variables and path for the Micrososft Visual C
 Typically this can be done by running the VCVARS32.BAT file supplied with Microsoft Visual          compiler. Typically this can be done by running the VCVARS32.BAT file
 C++. (contained in the same directory as cl.exe).          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 2.      Define an environment variable called ACE_ROOT that points to the
 root of the ACE_Wrappers distribution. For example: root of the ACE_Wrappers distribution. For example:
Line 373 
Line 435 
  
     C:\> set PEGASUS_ROOT=c:/pegasus     C:\> set PEGASUS_ROOT=c:/pegasus
  
 Now append %PEGASUS_ROOT%/bin to your path like this:  
  
     set path=%path%;%PEGASUS_ROOT%/bin  4.      Setup the PEGASUS_HOME environment variable
                   set PEGASUS_HOME=c:/PegasusRun
   
           Now append %PEGASUS_HOME%/bin to your path like this:
  
 4.  Unpack and build the ACE_Wrappers distribution for windows.                  set path=%path%;%PEGASUS_HOME%/bin
   
   5.      Unpack and build the ACE_Wrappers distribution for windows.
  
 As an example, we created a file called %ACE_ROOT%/ace/config.h As an example, we created a file called %ACE_ROOT%/ace/config.h
 containing the following: containing the following:
Line 388 
Line 454 
  
     %ACE_ROOT%/ace/ace.dsw     %ACE_ROOT%/ace/ace.dsw
  
 From the build menu we picked "aced.dll". For me it built without complaint.          From the build menu we picked "ace.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          The ACE package can be built in several configurations:
  
 With the version 5 visual C, apparently they default to the names                  ace.dll - The basic package without debugging
                   aced.dll - debugging added to the basic package
                   acemfc.dll - ACE with Microsoft MFC support
                   acemfcd.dll - The ACE MFC version with debugging.
  
         ace.dll          ace.dll is used for the server build  acemfc is used for the client
         or          builds.
         aced.dll (debug verions  
  
 We will correct this in a future snapshot.          NOTE: In the near future we will be building debugging options into
           Pegasus and at that time the aced and acemfcd libraries will also be
           required.
  
           Each library can be built separately from Microsoft Visual C++.
  
 5. Unpack the Pegasus distribution.  On Windows systems, PKzip25 or WINZIP can be used.  6.      Unpack the Pegasus distribution.  On Windows systems, PKzip25 or
 Be certain to use the option that expands the directory tree of the files.  This expansionwill          WINZIP can be used. Be certain to use the option that expands the
 create a directory called ./pegasus          directory tree of the files. This expansion will create a directory
           called ./pegasus
  
 If you are using pkzip25.exe do this: If you are using pkzip25.exe do this:
     C:\> pkzip25 -extract -recurse -directories pegasus.zip     C:\> pkzip25 -extract -recurse -directories pegasus.zip
Line 414 
Line 484 
 This will create a directory tree called ./pegasus under the This will create a directory tree called ./pegasus under the
 current directory. current directory.
  
 ATTN: Define for Linux also  
  
 6.  Change directory  to %PEGASUS_ROOT% and type "make world". See the general build section  7.      Change directory  to %PEGASUS_ROOT% and type "make world". See the
 for the full set of make commands.          general build section for the full set of make commands.
  
 This builds Pegasus and all of its examples. This builds Pegasus and all of its examples.
  
Line 428 
Line 497 
 Installing the Pegasus HTML Test Client 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
 ========================================== ==========================================
Line 442 
Line 512 
 =================== ===================
 Documentation Documentation
  
 The documentation is currently in preperation. The preliminary documentation is not provided  The documentation is currently in preperation. The preliminary documentation
 with this snapshot but is avialable from the OpenGroup Pegasus WEB pages. The current  is not provided with this snapshot but is avialable from the OpenGroup Pegasus
 documentation is maintained both as a manual created under the tool DOC++ in the  WEB pages. The current documentation is maintained both as a manual created
 subdirectory manual/html and as other miscelaneous documentation in the doc directory.  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.  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  We are looking for people who want to join the Pegasus work group and
 next release off the ground.  Please send me email for details.  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.5

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2