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
|