version 1.1, 2001/01/15 04:26:04
|
version 1.4, 2001/01/26 20:20:36
|
|
|
Pegasus - A Manageability Services Broker for the DMTF CIM/WBEM Standards | Pegasus - A Manageability Services Broker for the DMTF CIM/WBEM Standards |
| |
|
|
Author: Mike Brasher, Karl Schopmeyer | Author: Mike Brasher, Karl Schopmeyer |
| |
HISTORY_BEGIN |
------------------------------------------------------------------------------ |
|
-- |
|
|
$Log$ | $Log$ |
|
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 |
|
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 | 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 but The Open Group |
and supported buy The Open Group |
|
|
HISTORY_END |
|
| |
|
Pegasus is an object manager for DMTF CIM objects. It is written in C++ and |
Pegasus is an object manager for DMTF CIM objects It is written in C++ and |
|
includes the Object manager, a set of defined interfaces, and SDKs for both | includes the Object manager, a set of defined interfaces, and SDKs for both |
client, providers, and services extensions. It is maintained consistent with | client, providers, and services extensions. It is maintained consistent with |
the DMTF CIM and WBEM specifications except for any exceptions noted in the | the DMTF CIM and WBEM specifications except for any exceptions noted in the |
documentation. | 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 licnese. |
release. Pegasus is open source and is covered under the following license. |
This version is incomplete and is directed towards evaluators and developers | This version is incomplete and is directed towards evaluators and developers |
of the Pegasus Architecture. | of the Pegasus Architecture. |
| |
|
|
is in phase 1 of a multiphase development project. This snapshot is primarily | is in phase 1 of a multiphase development project. This snapshot is primarily |
for developers and for evaluation of the project. | for developers and for evaluation of the project. |
| |
More information and on this project, access to the CVS, and documentation on |
More information on this project, access to the CVS, and documentation on |
Pegasus is available from the OpenGroup WEB site. |
Pegasus are available from the OpenGroup WEB site. |
| |
There are separate files in the release for | There are separate files in the release for |
| |
|
|
To get on the distribution list for Pegasus today, send an email to | To get on the distribution list for Pegasus today, send an email to |
| |
m.kirk@opengroup.org | m.kirk@opengroup.org |
|
|
or | or |
|
|
k.schopmeyer@opengroup.org | k.schopmeyer@opengroup.org |
| |
Pegasus Major Components | Pegasus Major Components |
======================== | ======================== |
The major components of Pegasus are: |
|
|
|
Pegasus Server - WBEM/CIM CIM_Server with interfaces for providers and Clients |
|
|
|
Pegasus Repository - Today Pegasus provides a defined class repository interface and a simple |
|
file based class repository. Future will include the object repository |
|
| |
Pegasus Client SDK - Tools for building Pegasus clients based on the Pegasus C++ interfaces |
The major components of Pegasus are: |
and using the WBEM HTTP/XML protocols or directly interfacing with Pegasus |
|
| |
Pegasus Test Clients - Simple test clients being developed as part of the Pegasus development |
Pegasus Server - WBEM/CIM Server with interfaces for providers and clients |
process |
|
| |
Pegasus HTML Test Client - To aid some testing we created a test client for Pegasus that uses |
Pegasus Repository - Today Pegasus provides a defined class repository |
a WEB server (ex. Apache) with a set of CGI modules and HTML to allow the entry of Pegasus |
interface and a simple file based class repository. Future will include |
operations from a WEB browser as forms and the recept of the response as WEB pages. This has |
the object [MEB: instance?] repository |
proven useful as a test tool and can be used for a wide variety of demonstrations. |
|
|
Pegasus Client SDK - Tools for building Pegasus clients based on the Pegasus |
|
C++ interfaces and using the WBEM HTTP/XML protocols or directly |
|
interfacing with Pegasus. |
|
|
|
Pegasus Test Clients - Simple test clients being developed as part of the |
|
Pegasus development process |
|
|
|
Pegasus HTML Test Client - To aid in testing we created a test client for |
|
Pegasus that uses a WEB server (ex. Apache) with a set of CGI modules and |
|
HTML to allow the entry of Pegasus operations from a WEB browser as forms |
|
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. |
| |
Pegasus Providers - Future (Version 1.0) | Pegasus Providers - Future (Version 1.0) |
| |
|
|
Pegasus MOF Compiler - Future (Version 0.9) | Pegasus MOF Compiler - Future (Version 0.9) |
| |
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 communication and |
1. ACE_Wrappers communication package - The ACE Wrappers package is used for |
some low level functions within the MSB, the Pegasus client SDK, and the Pegasus Provider SDK. |
communication and some low level functions within the MSB, the Pegasus client |
ACE is available from the following site. |
SDK, and the Pegasus Provider SDK. ACE is available from the following site. |
|
|
| |
http://ace.cs.wustl.edu/cvsweb/ace-cvs.cgi/ACE_wrappers/ | 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 |
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 | 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 |
COMMENTS: Pegasus only uses limited facilities from ACE. However, today we |
installation of the complete ACE library. One of the action items for the future is |
demand the installation of the complete ACE library. One of the action items |
to provide a more limited ACE library and possibly even to provide an environment |
for the future is to provide a more limited ACE library and possibly even to |
independent of ACE. This will depend on the demands of the users. |
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 | 2. To simplify the building of Pegasus across multiple platforms we have |
stnadardized 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 |
4.79.1 successfully both in Windows and Linux environments. | 4.79.1 successfully both in Windows and Linux environments. |
| |
GNUMAKE is available from | GNUMAKE is available from |
|
|
| |
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 environment |
COMMENT: Unless other users of Pegasus demand it, we will NOT create any build |
for Pegasus that does not require GNUMAKE (ex Visual C++). We are open to other developers who |
environment for Pegasus that does not require GNUMAKE (e.g., Visual C++). We |
want to contribute other build structures for particular environments. |
are open to other developers who want to contribute other build structures for |
|
particular environments. |
| |
| |
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. |
|
MU is not required on UNIX or LINUX platforms |
|
|
|
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 |
|
in the directory src/utils/MU with its own make file. You must compile MU |
|
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. |
|
|
| |
The Pegasus Directory Structure | The Pegasus Directory Structure |
=============================== | =============================== |
| |
Pegasus is distributed as a complete directory structure that should be installed either |
Pegasus is distributed as a complete directory structure that should be |
from one of the snapshots or from CVS. |
installed either from one of the snapshots or from CVS. |
| |
This structure is generally as follows | This structure is generally as follows |
Pegasus - Root directory |
|
bin |
Pegasus Pegasus Root directory |
build Destination for all intermediate files from build | build Destination for all intermediate files from build |
bin Destination for executable and DLL modules from Pegasus build |
bin Destination for executable and DLL modules from |
lib |
Pegasus build |
obj |
lib Destination for Pegasus LIB modules |
cgi-bin Source and make for the Pegasus WEB Based Test client software |
obj Destination for object modules |
doc Miscelaneous Pegasus Documents. Includes the DMTF XML for CIM 2.4 |
cgi-bin Source for the Pegasus WEB Based Test client |
|
doc Miscelaneous Pegasus Documents. |
|
DevManual Source and build files for developes manual |
html HTML files for the Browser test client. | html HTML files for the Browser test client. |
mak General make files (used by the root make and other makes) |
mak General make files (used by other makes) |
|
Repository This Directory containes the created repository |
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 Provider SDK and tes providers |
tests |
|
|
|
Utils | Utils |
manual Pegasus User/developer manual source modules |
html Output from the Pegasus Manual compilartion. |
HTML Output from the Pegasus Manual compilartion. |
|
| |
In the near future we will add directories for: | In the near future we will add directories for: |
| |
Service Extensions | Service Extensions |
Providers |
|
|
|
| |
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 |
|
|
C:\> make | C:\> make |
C:\> make tests | C:\> make tests |
| |
The Pegasus Client server tests are executed separately from the above because they require |
The Pegasus Client server tests are executed separately from the above because |
the initiation of separate process for the Pegasus server and Pegasus client. These tests can |
they require the initiation of separate process for the Pegasus server and |
be executed as follows: |
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. |
| |
2. In order to provide a working class repository for Pegasus until the MOF compiler |
2. In order to provide a working class repository for Pegasus until the |
is integrated, There is a utility to load the CIM Schema from XML into the repository. |
MOF compiler is integrated, There is a utility to load the CIM Schema from |
This executes the LoadRepository executable which is defined in |
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 |
| |
|
|
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 |
| |
PEGASUS_ACE_ROOT - required (points to ACE_wrappers directory). This must be set |
PEGASUS_ACE_ROOT - required (points to ACE_wrappers directory). This must |
before you initiate make |
be set before you initiate make |
| |
PEGASUS_BUILD - optional (points to build directory; defaults to build | PEGASUS_BUILD - optional (points to build directory; defaults to build |
directory under root of pegasus distribution). This must be set before you iniiate |
directory under root of pegasus distribution). This must be set before you |
|
iniiate |
make | make |
| |
PEGASUS_OS_TYPE - optional. The is currently set to windows. If you build on Linux |
PEGASUS_OS_TYPE - optional. The is currently set to windows. If you build |
you must change this before initiating make. |
on Linux you must change this before initiating make. |
| |
COMMENTS: In the future, we will probably automate this more. However, setting these |
PEGASUS_ROOT - Points to the root directory of the Pegasus tree. |
variables today is manual. |
|
|
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 |
|
|
of them: | of them: |
| |
| |
echo, rm, rmdirhier, mkdirhier, copy, pwd, depend |
rm, rmdirhier, mkdirhier, echo, touch, pwd, copy, move, compare depend |
| |
| |
The MU utility supports globing (expansion of wildcards) so | The MU utility supports globing (expansion of wildcards) so |
|
|
| |
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 root of |
distribution. For example |
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) |
| |
|
|
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 supplied with |
|
Microsoft Visual |
C++. (contained in the same directory as cl.exe). | 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 |
|
|
| |
%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 builds. |
or |
|
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. |
5. Unpack the Pegasus distribution. On Windows systems, PKzip25 or WINZIP can |
Be certain to use the option that expands the directory tree of the files. This expansionwill |
be used. Be certain to use the option that expands the directory tree of the |
create a directory called ./pegasus |
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 |
|
|
| |
ATTN: Define for Linux also | ATTN: Define for Linux also |
| |
6. Change directory to %PEGASUS_ROOT% and type "make world". See the general build section |
6. Change directory to %PEGASUS_ROOT% and type "make world". See the general |
for the full set of make commands. |
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. |
| |
|
|
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 |
========================================== | ========================================== |
|
|
=================== | =================== |
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 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 |
|
|
|
|
|
|
| |
| |
| |