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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2