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