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

  1 karl  1.1 Pegasus - A Manageability Services Broker for the DMTF CIM/WBEM Standards
  2           
  3 mike  1.3 Author: Mike Brasher, Karl Schopmeyer
  4           
  5 karl  1.4 ------------------------------------------------------------------------------
  6           --
  7           
  8           $Log: readme.txt,v $
  9 karl  1.5 Revision 1.4  2001/01/26 20:20:36  karl
 10           Clean up Readme with MB comments
 11           
 12 karl  1.4 Revision 1.3  2001/01/22 15:09:29  mike
 13           Reworking indentation and breaking width of lines below 80 columns (not
 14           finished). Also
 15           inserted comments and suggestions following "MEB:" annotations.
 16 karl  1.1 
 17           
 18 karl  1.2 Revision 1.1  2001/01/15 04:26:04  karl
 19           added Readme
 20           
 21 karl  1.4 ------------------------------------------------------------------------------
 22           --
 23 karl  1.1 
 24           Tagline: Pegasus is an object manager for DMTF CIM objects written in C++
 25 karl  1.5          and supported by The Open Group
 26 karl  1.4 
 27 karl  1.5 Pegasus is an open-source object manager for DMTF CIM objects. It is written
 28           in C++ and includes the Object manager, a set of defined interfaces, and SDKs
 29           for both client, providers, and services extensions.  It is maintained
 30           consistent with the DMTF CIM and WBEM specifications except for any exceptions
 31           noted in the documentation.
 32 karl  1.1 
 33           This distribution represents a work in progress towards building a Pegasus
 34 mike  1.3 release. Pegasus is open source and is covered under the following license.
 35 karl  1.1 This version is incomplete and is directed towards evaluators and developers
 36           of the Pegasus Architecture.
 37           
 38           Pegasus is being developed and maintained under the auspices of The Open
 39           Group. Pegasus is maintained under the license defined in the doc directory
 40           (LICENSE) of this release.  This licensing is intended to support as wide a
 41           distribution as possible with minimal demands on the users.
 42           
 43           This distribution represnts a snapshot of the current work. Currently Pegasus
 44           is in phase 1 of a multiphase development project. This snapshot is primarily
 45           for developers and for evaluation of the project.
 46           
 47 mike  1.3 More information on this project, access to the CVS, and documentation on
 48           Pegasus are available from the OpenGroup WEB site.
 49 karl  1.1 
 50           There are separate files in the release for
 51           
 52           	History of releases - HISTORY
 53           	What's new for this release - WHATSNEW
 54           	What's Broken - BUGS
 55           
 56           In addition, the roadmap for Pegasus and further information on the project is
 57           available on The Opengroup Pegasus WEB Site.
 58           
 59           http://www.opengroup.org/MSB
 60           
 61           Availability of Pegasus
 62           =======================
 63           
 64           Pegasus is distributed as open source.  Today the distribution is limited
 65           because we want to reach a predefined level of development before making the
 66           project publically available. The move from limited to open distribution will
 67           be a decision of the Pegasus development team and The Open Group and should
 68           occur before March 2001.
 69           
 70 karl  1.1 To get on the distribution list for Pegasus today, send an email to
 71           
 72           m.kirk@opengroup.org
 73 mike  1.3 
 74 karl  1.1 or
 75 mike  1.3 
 76 karl  1.1 k.schopmeyer@opengroup.org
 77           
 78           Pegasus Major Components
 79           ========================
 80 mike  1.3 
 81 karl  1.1 The major components of Pegasus are:
 82           
 83 mike  1.3 Pegasus Server - WBEM/CIM Server with interfaces for providers and clients
 84 karl  1.1 
 85 karl  1.5 Pegasus Repositories - Today Pegasus provides a defined class repository
 86               interface and a simple file based class repository. It also includes
 87               an instance repository. Note that these repository were created for
 88               functionality, not efficieny. It is expected that they will be replaced
 89               with other implementations of the respository function as the need arrses.
 90 mike  1.3 
 91 karl  1.4 Pegasus Client SDK - Tools for building Pegasus clients based on the Pegasus
 92               C++ interfaces and using the WBEM HTTP/XML protocols or directly
 93 mike  1.3     interfacing with Pegasus.
 94           
 95 karl  1.4 Pegasus Test Clients - Simple test clients being developed as part of the
 96 mike  1.3     Pegasus development process
 97           
 98 karl  1.4 Pegasus HTML Test Client - To aid in testing we created a test client for
 99               Pegasus that uses a WEB server (ex. Apache) with a set of CGI modules and
100               HTML to allow the entry of Pegasus operations from a WEB browser as forms
101               and the recept of the response as WEB pages. This has proven useful as a
102 mike  1.3     test tool and can be used for a wide variety of demonstrations.
103 karl  1.1 
104 karl  1.5 Pegasus Provider SDK - Tools for build Pegasus clients based on the Pegasus
105               C++ interfaces.
106           
107           Pegasus Providers - A sampling of key providers to make the environment
108           complete as well as test providers and demonstration providers for the
109           Pegasus.
110 karl  1.1 
111           Pegasus Service Extensions -  Future (version 1.0)
112           
113 karl  1.5 Pegasus MOF Compiler - FA standalone compiler for MOF files that can be used
114           to install MOF into the Pegasus schema repository and also to check syntax
115 karl  1.1 
116           Pegasus Dependencies
117 mike  1.3 ====================
118 karl  1.1 
119           We have worked to minimize the dependence of Pegasus on other software
120           packages and tools. Currently Pegasus has the following dependencies
121           
122 karl  1.4 1. ACE_Wrappers communication package - The ACE Wrappers package is used for
123           communication and some low level functions within the MSB, the Pegasus client
124 mike  1.3 SDK, and the Pegasus Provider SDK.  ACE is available from the following site.
125 karl  1.1 
126 mike  1.3     http://ace.cs.wustl.edu/cvsweb/ace-cvs.cgi/ACE_wrappers/
127 karl  1.1 
128 mike  1.3 Currently we are using version 5.1 of ACE_Wrappers both in Linux and Windows.
129 karl  1.1 
130               http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ACE-5.1.tar.gz
131           
132 karl  1.5 COMMENTS: Pegasus only uses limited facilities from ACE. We actively
133           discourage the Pegasus team from using other functions of ACE.  We expect to
134           eliminate our dependence on ACE as the only TCP tool in the near future.
135           However, today we
136 karl  1.4 demand the installation of the complete ACE library. One of the action items
137           for the future is to provide a more limited ACE library and possibly even to
138 karl  1.5 provide an environment independent of ACE.
139 karl  1.1 
140           2. To simplify the building of Pegasus across multiple platforms we have
141 mike  1.3 standardized on a set of build tools including: GNUMAKE. We are using GNUAKE
142 karl  1.1 4.79.1 successfully both in Windows and Linux environments.
143           
144           GNUMAKE is available from
145           
146               http://www.gnu.org
147           
148           ATTN: I think we need to make our version available on the TOG site.
149           
150 karl  1.4 COMMENT: Unless other users of Pegasus demand it, we will NOT create any build
151           environment for Pegasus that does not require GNUMAKE (e.g., Visual C++). We
152           are open to other developers who want to contribute other build structures for
153 mike  1.3 particular environments.
154 karl  1.1 
155           
156           3. MU.EXE - To minimize the difference between Linux and Windows for GUNMAKE,
157 karl  1.4 we have created a utility called MU.exe.  This utility is required for Pegasus
158           make with Windows environment. It is provided as an alternative to requiring a
159           number of UNIX utilities (SH, RM, etc.) on the windows platform and
160           effectively provides the functions of these utilities that GNUMAKE needs.
161 karl  1.5 MU is not required on UNIX or LINUX platforms.
162 karl  1.4 
163           NOTE: The binary for MU.EXE is not distributed in the Pegasus bin directory.
164           You must build it separately.  MU source code is part of the distribution
165           in the directory src/utils/MU with its own make file.  You must compile MU
166           before you initiate the Pegausu make.
167 mike  1.3 
168 karl  1.4 NOTE: We will make a copy of the binary available on the MSB WEB site to
169           eliminate the requirement to build this utility.
170 mike  1.3 
171 karl  1.5 4. FLEX and BISON - These tools were used to develop the compiler, anybody
172           intending to recompile the compiler from scratch will be required to have
173           these tools.
174           
175           5. DOC++ - The Pegasus documentation is taken from a combination of text files
176           and the Pegasus header files themselves.  This documentation is formatted with
177           DOC++ and GAWK.  These tools are required if the documentation is to be
178           recreated but we expect that only the core team will be recreating
179           documentaiton.
180           
181 mike  1.3 
182 karl  1.1 The Pegasus Directory Structure
183           ===============================
184           
185 karl  1.4 Pegasus is distributed as a complete directory structure that should be
186 mike  1.3 installed either from one of the snapshots or from CVS.
187 karl  1.1 
188           This structure is generally as follows
189 mike  1.3 
190 karl  1.4 Pegasus                     Pegasus Root directory
191 karl  1.5 
192           
193               build                   Default destination for runtime if PEGASUS_HOME
194               			    is not specified.  Does not exist if PEGASUS_HOME
195               			    is specified
196           
197           
198               cgi                     Source for the Pegasus WEB Based Test client
199                   cgi-bin		    CGI Directories for WEB demonstration.
200                   		    This directory is normally empty but can
201                   		    be populated from the runtime with the make
202                   		    from cgi.
203                   htdocs		    HTML Pages for Pegasus WEB emonstration
204               doc                     Miscellaneous Pegasus Documents.
205 karl  1.4     	DevManual	    Source and build files for developes manual
206               mak                     General make files (used by other makes)
207 karl  1.1     src                     All Pegasus Source Files
208 karl  1.4         ACEExample         Test directrory with examples of the use of ACE
209                   Clients		    Source for various test clients and client SDK
210                       CGICLIENT       Pegasus test client that uses a WEB browser
211 karl  1.1         Pegasus
212 karl  1.4             Client          Pegasus Client API Tests
213 karl  1.1                 depends
214                           tests
215                       Common          Pegasus Common Functions (C++ source and headers
216                           tests       Test programs for the common functions
217                       Protocol        Pegasus Client HTTP/XML Protocol Modules
218                           depends
219 karl  1.4             Provider	    Pegasus Provider interface functions
220                       Repository      Pegasus Repository Interfaces and Simple
221 karl  1.5 		            Repository
222 karl  1.1                 tests       Tests for Repository Functions
223                       Server          Pegasus Server Modules
224 karl  1.5         Providers	    Pegasus test and required providers
225           
226 karl  1.1         Utils
227 karl  1.5 
228           Runtime Directories
229                $PEGASUS_HOME$	    Home directory for runtime.  All compiler, linker
230                                       documentation creation, etc. is put here.
231           	bin                 Destination for executable and DLL modules from
232           				    Pegasus build
233           	Manual		    HTML output of the Pegasus Manual
234           	lib		    Destination for Pegasus LIB modules
235           	obj		    Destination for object modules
236                   Repository	    This Directory containes the created repository
237           
238 karl  1.1 
239           In the near future we will add directories for:
240           
241               Service Extensions
242 karl  1.5     Servers - Today the server executable is built from /server/test.
243 karl  1.1 
244           Installation
245           ============
246           
247 karl  1.4 Pegasus today is provided only as a source distribution.  You download compile
248           and use it. Pegasus currently compiles and runs under both Linux and Windows
249           NT environments.
250           
251           The installation of Pegasus involves expanding the snapshot distribution
252           files, building the runtime, the test files and test clients, and building the
253           repository.
254           
255           NOTE: Since the compiler integration is not complete today, the class
256           repository is populated from the XML defintions for the complete CIM schema.
257           This process is included in the build process so that at the end of a complete
258           build, the class repository is completely populated from the CIM 2.4 release
259           schema.
260 karl  1.1 
261           
262           Building from a Distribution --- General
263           ========================================
264           
265           Pegasus is buildable and runnable on either Linux or WIndows Platforms today.
266 karl  1.5 It uses a common build system for the two platforms based on build files in
267           each directory, a recursive build strucutre to execute the multiple makes and
268 karl  1.1 GUNMAKE.
269           
270 karl  1.5 Generally we support the followingtargets in our make system:
271 karl  1.1 
272           
273 karl  1.5             C:\> make clean - Clean out all objects, libs, and executables
274                       C:\> make depend - Create the dependencies
275 karl  1.1             C:\> make
276 karl  1.5             C:\> make tests  - Execute all tests except client server tests
277                       C:\> make rebuild - Clean and rebuild including the respository
278                       C:\> make world
279 karl  1.1 
280 karl  1.4 The Pegasus Client server tests are executed separately from the above because
281           they require the initiation of separate process for the Pegasus server and
282           Pegasus client. These tests can be executed as follows:
283 karl  1.1 
284               ATTN: Add the procedure for Client/Server Test start here.
285           
286           
287 karl  1.4 For information on particular installation characteristics, tools, etc. for
288           each platform see
289 karl  1.1 the appropriate sections below:
290           
291           Generally the build commands are as follows:
292           
293 karl  1.4     1. There is a Makefile in the Pegasus root.   Simply executing make in the
294 karl  1.5     Pegasus root directory will make everything. Make rebuild will clean and
295               rebuild everything.
296 karl  1.1 
297 karl  1.4     2. In order to provide a working class repository for Pegasus until the
298               MOF compiler is integrated, There is a utility to load the CIM Schema from
299               XML into the repository. This executes the LoadRepository executable which
300               is defined in
301 karl  1.1 
302 karl  1.4     	pegasus/src/Pegasus/Repository/tests/LoadRepository
303 karl  1.1 
304 karl  1.4     with the binary in pegasus/bin. This program will load the CIM XML
305               repository definitions into the class repository.
306 karl  1.1 
307 karl  1.4     3. To test a fresh release, go to the pegasus root and type
308 karl  1.1 
309           		"make world".
310           
311           
312 karl  1.4     This will clean, build dependencies, build binaries, and then run all
313               tests except the Client/Server tests.
314 karl  1.1 
315 karl  1.4     4. To execute the basic test suite that is shipped with pegasus type
316 karl  1.1 
317           	   "make tests"
318           
319 karl  1.5     5. To run the integral unit code tests provided, simply type
320 karl  1.1 
321           	   "make tests"
322           
323 karl  1.4     Running "make -s tests" suppresses extraneous output such as the
324               enter/leave directory messages.
325 karl  1.1 
326 karl  1.4     6. "Make Clean" removes all object and library files from the structure.
327 karl  1.1 
328           Build Variables
329           ===============
330           
331 karl  1.5 The build system depends on the following environment variables build set.
332           These variables must be set as part of the installation of the Pegasus source
333           tree before you can compile or run Pegasus.
334 karl  1.1 
335 karl  1.4     PEGASUS_ACE_ROOT - required (points to ACE_wrappers directory). This must
336               be set before you initiate make
337 karl  1.1 
338 karl  1.4     PEGASUS_OS_TYPE - optional. The is currently set to windows.  If you build
339 karl  1.5     on any platform except windows you must change this before initiating
340               make.
341 karl  1.1 
342 karl  1.5     PEGASUS_ROOT - Root directory of the Pegasus tree.
343               PEGASUS_HOME - Home directory for all of the Pegasus runtime elements.
344               If this does not exist, $PEGASUS_ROOT$/build is assumed.
345 karl  1.4 
346            COMMENTS: In the future, we will probably automate this more.  However,
347            setting these variables today is manual.
348 karl  1.1 
349           
350           The MU Utility
351           ==============
352           
353 karl  1.4 In order to provide a consistent build structure across multiple platforms, we
354           developed a small utility to provide a consistent set of small utilities
355           across these platforms. The MU utilityis a simple utility that contains many
356           commands. For example:
357 karl  1.1 
358           
359               C:\> mu rm myfile.cpp yourfile.cpp
360           
361           
362           You may type "mu" to get a list of valid commands. Here are some
363           of them:
364           
365           
366 karl  1.2     rm, rmdirhier, mkdirhier, echo, touch, pwd, copy, move, compare depend
367 karl  1.1 
368           
369           The MU utility supports globing (expansion of wildcards) so
370           you can do things like this:
371           
372           
373               C:\> mu rm *.obj *.exe
374           
375 karl  1.4 MU is required to build under the Windows environment.MU is available as part
376           of the distribution of Pegasus.
377 karl  1.1 
378           Building Pegausu on Linux
379           =========================
380           
381 karl  1.5 1. 	Obtain, unpack and build the ACE_Wrappers package for Linux.
382           
383           2. 	Define an environment variable called ACE_ROOT  that points to the
384           	root of the ACE_WRAPPERS distribution. For example
385 karl  1.1 
386 karl  1.5 		IMPORT PEGASUS_ACE_ROOT=\local\ACE_Wrappers
387 karl  1.1 
388 karl  1.5 	ATTN: Mike.  what is a viable directory for Linux (what do you use)
389 karl  1.1 
390 karl  1.5 3. 	Define an environment variable PEGASUS_ROOT that points to the
391           	root of the Pegasus Distribution
392 karl  1.1 
393           
394 karl  1.5 4. 	Define the environment variable PEGASUS_HOME where you want the
395           	runtime elements (executables, objects, libraries, etc.) to go.
396           5. 	Unpack the ace distribution.
397 karl  1.1 
398           
399 karl  1.5 6. 	Append %PEGASUS_ROOT%/bin to your path
400 karl  1.1 
401 karl  1.5 7. 	From the %PEGASUS_ROOT% directory build using the make commands
402           	defined in the section on General Build.
403 karl  1.1 
404 karl  1.5 		make world
405           		make tests
406 karl  1.1 
407 karl  1.5 Building Pegasus on NT or Windows 2000 With Microsoft Visual C++
408           ================================================================
409 karl  1.1 
410           Today we build Pegasus on Windows NT using a set of make files contained
411           in the source distribution, the Microsoft compilers (tested so far with
412           versions 5 and 6) and the GNUMAKE make utility. The following is the basic
413           set up steps for the
414           
415           
416 karl  1.4 1.	Setup the environment variables and path for the Micrososft Visual C
417 karl  1.5 	compiler. Typically this can be done by running the VCVARS32.BAT file
418           	supplied with Microsoft Visual C++. (contained in the same directory
419           	as cl.exe).
420 karl  1.1 
421           2.	Define an environment variable called ACE_ROOT that points to the
422 karl  1.5 	root of the ACE_Wrappers distribution. For example:
423 karl  1.1 
424 karl  1.5     		C:\> set PEGASUS_ACE_ROOT=c:/ACE_wrappers
425 karl  1.1 
426 karl  1.5 	Now append %ACE_ROOT%/bin to the path like this:
427 karl  1.1 
428 karl  1.5     		C:\> set path=%path%;%PEGASUS_ACE_ROOT%/bin
429 karl  1.1 
430           3.	Define an environment variable called PEGASUS_ROOT that points to
431 karl  1.5 	the root of the Pegasus distribution. For example:
432 karl  1.1 
433 karl  1.5     		C:\> set PEGASUS_ROOT=c:/pegasus
434 karl  1.1 
435           
436 karl  1.5 4. 	Setup the PEGASUS_HOME environment variable
437           		set PEGASUS_HOME=c:/PegasusRun
438 karl  1.1 
439 karl  1.5 	Now append %PEGASUS_HOME%/bin to your path like this:
440 karl  1.1 
441 karl  1.5     		set path=%path%;%PEGASUS_HOME%/bin
442 karl  1.1 
443 karl  1.5 5.	Unpack and build the ACE_Wrappers distribution for windows.
444 karl  1.1 
445 karl  1.5 	As an example, we created a file called %ACE_ROOT%/ace/config.h
446           	containing the following:
447 karl  1.1 
448 karl  1.5     		#include "ace/config-win32.h"
449 karl  1.1 
450 karl  1.5 	and then opened this DSW file in MSVC++ IDE:
451 karl  1.1 
452 karl  1.5     		%ACE_ROOT%/ace/ace.dsw
453 karl  1.1 
454 karl  1.5 	From the build menu we picked "ace.dll". For me it built without
455           	complaint.
456 karl  1.1 
457 karl  1.5 	The ACE package can be built in several configurations:
458 karl  1.1 
459 karl  1.5 		ace.dll - The basic package without debugging
460           		aced.dll - debugging added to the basic package
461           		acemfc.dll - ACE with Microsoft MFC support
462           		acemfcd.dll - The ACE MFC version with debugging.
463 karl  1.1 
464 karl  1.5 	ace.dll is used for the server build  acemfc is used for the client
465           	builds.
466 karl  1.1 
467 karl  1.5 	NOTE: In the near future we will be building debugging options into
468           	Pegasus and at that time the aced and acemfcd libraries will also be
469           	required.
470 karl  1.1 
471 karl  1.5 	Each library can be built separately from Microsoft Visual C++.
472 karl  1.1 
473 karl  1.5 6. 	Unpack the Pegasus distribution.  On Windows systems, PKzip25 or
474           	WINZIP can be used. Be certain to use the option that expands the
475           	directory tree of the files. This expansion will create a directory
476           	called ./pegasus
477 karl  1.1 
478 karl  1.5 	If you are using pkzip25.exe do this:
479               		C:\> pkzip25 -extract -recurse -directories pegasus.zip
480 karl  1.1 
481 karl  1.5 	This will create a directory tree called ./pegasus under the
482           	current directory.
483 karl  1.1 
484           
485 karl  1.5 7.  	Change directory  to %PEGASUS_ROOT% and type "make world". See the
486           	general build section for the full set of make commands.
487 karl  1.1 
488 karl  1.5 	This builds Pegasus and all of its examples.
489           
490           7.  	To verify that it built okay, run the tests
491           
492           		make tests
493 karl  1.1 
494           Installing the Pegasus HTML Test Client
495           =======================================
496           
497 karl  1.4 This is a separate test tool that allows Pegasus requests to be initiated from
498           any WEB browser and that uses a WEB browser, CGI scritps and HTML pages for
499           the formating and connections. It requires a WEB server, etc.  The
500           instructions for setting up this environment are maintained in a separate
501           readme in the CGI directory.
502 karl  1.1 
503           Development with Pegasus and Pegasus Tools
504           ==========================================
505           
506           ATTN: This section needs to be completed.  It should reference the more
507           complete documentation
508           
509           ===================
510           Documentation
511           
512 karl  1.4 The documentation is currently in preperation. The preliminary documentation
513           is not provided with this snapshot but is avialable from the OpenGroup Pegasus
514           WEB pages. The current documentation is maintained both as a manual created
515 karl  1.5 under the tool DOC++ in the runtime subdirectory manual/html and as other
516           miscelaneous documentation in the doc directory.
517 karl  1.4 
518           Note that the Pegasus WEB site at The Open Group will be the source of most
519           documentation in the future and today is the source of most discussion and
520           design documentation.
521 karl  1.1 
522           Participate!
523           ============
524 karl  1.4 We are looking for people who want to join the Pegasus work group and
525           contribute to effort of getting this Pegasus off the ground.  Please send
526           email for details to k.schopmeyer@opengroup.org or m.kirk@opengroup.org or
527           m.brasher@opengroup.org
528 karl  1.5 
529           
530 karl  1.4 
531           
532           
533 karl  1.1 
534           
535           
536           
537           
538           
539           
540           
541           
542           
543           
544           

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2