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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2