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
|