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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2