(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.1 Tagline: Pegasus is an object manager for DMTF CIM objects written in C++
  6 karl  1.5          and supported by The Open Group
  7 karl  1.4 
  8 mike  1.7 Overview:
  9           =========
 10           
 11 karl  1.5 Pegasus is an open-source object manager for DMTF CIM objects. It is written
 12           in C++ and includes the Object manager, a set of defined interfaces, and SDKs
 13           for both client, providers, and services extensions.  It is maintained
 14           consistent with the DMTF CIM and WBEM specifications except for any exceptions
 15           noted in the documentation.
 16 karl  1.1 
 17           This distribution represents a work in progress towards building a Pegasus
 18 mike  1.3 release. Pegasus is open source and is covered under the following license.
 19 karl  1.1 This version is incomplete and is directed towards evaluators and developers
 20           of the Pegasus Architecture.
 21           
 22           Pegasus is being developed and maintained under the auspices of The Open
 23           Group. Pegasus is maintained under the license defined in the doc directory
 24           (LICENSE) of this release.  This licensing is intended to support as wide a
 25           distribution as possible with minimal demands on the users.
 26           
 27           This distribution represnts a snapshot of the current work. Currently Pegasus
 28           is in phase 1 of a multiphase development project. This snapshot is primarily
 29           for developers and for evaluation of the project.
 30           
 31 mike  1.3 More information on this project, access to the CVS, and documentation on
 32           Pegasus are available from the OpenGroup WEB site.
 33 karl  1.1 
 34           There are separate files in the release for
 35           
 36           	History of releases - HISTORY
 37           	What's new for this release - WHATSNEW
 38           	What's Broken - BUGS
 39           
 40           In addition, the roadmap for Pegasus and further information on the project is
 41           available on The Opengroup Pegasus WEB Site.
 42           
 43           http://www.opengroup.org/MSB
 44           
 45 mike  1.7 Availability of Pegasus:
 46           ========================
 47 karl  1.1 
 48           Pegasus is distributed as open source.  Today the distribution is limited
 49           because we want to reach a predefined level of development before making the
 50           project publically available. The move from limited to open distribution will
 51           be a decision of the Pegasus development team and The Open Group and should
 52           occur before March 2001.
 53           
 54           To get on the distribution list for Pegasus today, send an email to
 55           
 56 mike  1.7     m.kirk@opengroup.org
 57 mike  1.3 
 58 mike  1.7     or
 59 mike  1.3 
 60 mike  1.7     k.schopmeyer@opengroup.org
 61 karl  1.1 
 62 mike  1.7 Pegasus Major Components:
 63           =========================
 64 mike  1.3 
 65 karl  1.1 The major components of Pegasus are:
 66           
 67 mike  1.3 Pegasus Server - WBEM/CIM Server with interfaces for providers and clients
 68 karl  1.1 
 69 karl  1.5 Pegasus Repositories - Today Pegasus provides a defined class repository
 70               interface and a simple file based class repository. It also includes
 71               an instance repository. Note that these repository were created for
 72               functionality, not efficieny. It is expected that they will be replaced
 73               with other implementations of the respository function as the need arrses.
 74 mike  1.3 
 75 karl  1.4 Pegasus Client SDK - Tools for building Pegasus clients based on the Pegasus
 76               C++ interfaces and using the WBEM HTTP/XML protocols or directly
 77 mike  1.3     interfacing with Pegasus.
 78           
 79 karl  1.4 Pegasus Test Clients - Simple test clients being developed as part of the
 80 mike  1.3     Pegasus development process
 81           
 82 karl  1.4 Pegasus HTML Test Client - To aid in testing we created a test client for
 83               Pegasus that uses a WEB server (ex. Apache) with a set of CGI modules and
 84               HTML to allow the entry of Pegasus operations from a WEB browser as forms
 85               and the recept of the response as WEB pages. This has proven useful as a
 86 mike  1.3     test tool and can be used for a wide variety of demonstrations.
 87 karl  1.1 
 88 karl  1.5 Pegasus Provider SDK - Tools for build Pegasus clients based on the Pegasus
 89               C++ interfaces.
 90           
 91           Pegasus Providers - A sampling of key providers to make the environment
 92           complete as well as test providers and demonstration providers for the
 93           Pegasus.
 94 karl  1.1 
 95           Pegasus Service Extensions -  Future (version 1.0)
 96           
 97 karl  1.5 Pegasus MOF Compiler - FA standalone compiler for MOF files that can be used
 98           to install MOF into the Pegasus schema repository and also to check syntax
 99 karl  1.1 
100 mike  1.7 Pegasus Dependencies:
101           =====================
102 karl  1.1 
103           We have worked to minimize the dependence of Pegasus on other software
104           packages and tools. Currently Pegasus has the following dependencies
105           
106 mike  1.7 1.  GNUMAKE - To simplify the building of Pegasus across multiple platforms we 
107               have standardized on a set of build tools including: GNUMAKE. We are using 
108               GNUAKE 4.79.1 successfully both in Windows and Linux environments.
109 karl  1.1 
110 mike  1.7     GNUMAKE is available from
111 karl  1.1 
112               http://www.gnu.org
113           
114 mike  1.7     ATTN: I think we need to make our version available on the TOG site.
115 karl  1.1 
116 mike  1.7     COMMENT: Unless other users of Pegasus demand it, we will NOT create 
117               any build environment for Pegasus that does not require GNUMAKE (e.g., 
118               Visual C++). We are open to other developers who want to contribute 
119               other build structures for particular environments.
120           
121           2.  MU.EXE - To minimize the difference between Linux and Windows for GUNMAKE,
122               we have created a utility called MU.exe.  This utility is required for 
123               Pegasus make with Windows environment. It is provided as an alternative to 
124               requiring a number of UNIX utilities (SH, RM, etc.) on the windows platform
125               and effectively provides the functions of these utilities that GNUMAKE 
126               needs. MU is not required on UNIX or LINUX platforms.
127           
128               NOTE: The binary for MU.EXE is not distributed in the Pegasus bin directory.
129               You must build it separately.  MU source code is part of the distribution
130               in the directory src/utils/MU with its own make file.  You must compile MU
131               before you initiate the Pegausu make.
132           
133               NOTE: We will make a copy of the binary available on the MSB WEB site to
134               eliminate the requirement to build this utility.
135           
136           3.  FLEX and BISON - These tools were used to develop the compiler, anybody
137 mike  1.7     intending to recompile the compiler from scratch will be required to have
138               these tools.
139           
140           4.  DOC++ - The Pegasus documentation is taken from a combination of text files
141               and the Pegasus header files themselves.  This documentation is formatted 
142               with DOC++ and GAWK.  These tools are required if the documentation is to 
143               be recreated but we expect that only the core team will be recreating 
144               documentaiton.
145 mike  1.3 
146 karl  1.1 The Pegasus Directory Structure
147           ===============================
148           
149 karl  1.4 Pegasus is distributed as a complete directory structure that should be
150 mike  1.3 installed either from one of the snapshots or from CVS.
151 karl  1.1 
152           This structure is generally as follows
153 mike  1.3 
154 karl  1.4 Pegasus                     Pegasus Root directory
155 karl  1.5 
156           
157               build                   Default destination for runtime if PEGASUS_HOME
158               			    is not specified.  Does not exist if PEGASUS_HOME
159               			    is specified
160           
161           
162               cgi                     Source for the Pegasus WEB Based Test client
163                   cgi-bin		    CGI Directories for WEB demonstration.
164                   		    This directory is normally empty but can
165                   		    be populated from the runtime with the make
166                   		    from cgi.
167                   htdocs		    HTML Pages for Pegasus WEB emonstration
168               doc                     Miscellaneous Pegasus Documents.
169 karl  1.4     	DevManual	    Source and build files for developes manual
170               mak                     General make files (used by other makes)
171 karl  1.1     src                     All Pegasus Source Files
172 karl  1.4         ACEExample         Test directrory with examples of the use of ACE
173                   Clients		    Source for various test clients and client SDK
174                       CGICLIENT       Pegasus test client that uses a WEB browser
175 karl  1.1         Pegasus
176 karl  1.4             Client          Pegasus Client API Tests
177 karl  1.1                 depends
178                           tests
179                       Common          Pegasus Common Functions (C++ source and headers
180                           tests       Test programs for the common functions
181                       Protocol        Pegasus Client HTTP/XML Protocol Modules
182                           depends
183 karl  1.4             Provider	    Pegasus Provider interface functions
184                       Repository      Pegasus Repository Interfaces and Simple
185 karl  1.5 		            Repository
186 karl  1.1                 tests       Tests for Repository Functions
187                       Server          Pegasus Server Modules
188 karl  1.5         Providers	    Pegasus test and required providers
189           
190 karl  1.1         Utils
191 karl  1.5 
192           Runtime Directories
193                $PEGASUS_HOME$	    Home directory for runtime.  All compiler, linker
194                                       documentation creation, etc. is put here.
195           	bin                 Destination for executable and DLL modules from
196           				    Pegasus build
197           	Manual		    HTML output of the Pegasus Manual
198           	lib		    Destination for Pegasus LIB modules
199           	obj		    Destination for object modules
200                   Repository	    This Directory containes the created repository
201           
202 karl  1.1 
203           In the near future we will add directories for:
204           
205               Service Extensions
206 karl  1.5     Servers - Today the server executable is built from /server/test.
207 karl  1.1 
208 mike  1.7 Installation:
209           =============
210 karl  1.1 
211 karl  1.4 Pegasus today is provided only as a source distribution.  You download compile
212 mike  1.7 and use it. Pegasus currently compiles and runs under Linux, AIX, HPUX,
213           Windows NT, and Windows 2000.
214 karl  1.4 
215           The installation of Pegasus involves expanding the snapshot distribution
216           files, building the runtime, the test files and test clients, and building the
217           repository.
218           
219 mike  1.7 Building Pegasus:
220           =================
221           
222           1.  Check that you have requisite programs (listed in Pegasus Dependencies).
223           
224               These include GNU Make, MU.EXE, Flex, and Bison
225           
226               Be sure these are on your path.
227           
228           2.  Define the following two environment variables:
229           
230               PEGASUS_HOME - to point to a directory to contain output binary files
231               (e.g., set it to $HOME/pegasus_home).
232           
233               PEGASUS_PLATFORM - this must be set to a supported platform identifier.
234               The following are supported:
235           
236           	WIN32_IX86_MSVC 
237           	LINUX_IX86_GNU 
238           	AIX_RS_IBMCXX 
239           	HPUX_PARISC_ACC
240 marek 1.10 	ZOS_ZSERIES_IBM
241 mike  1.7  
242                This identifier has the following form:
243            
244            	<Operating-System>_<Architecture>_<Compiler>
245            
246                Note: if you plan on doing parallel builds, you might consider setting
247                PEGASUS_HOME to something like this:
248            
249            	$HOME/pegasus_home_LINUX_IX86_GNU
250            
251                That way, the output of each build will be placed in its own directory.
252            
253            3.  Now place $PEGASUS_HOME/bin on your path
254            
255                and
256            
257                Placd $PEGASUS_HOME/lib on your LD_LIBRARY_PATH (for Unix only).
258            
259            4.  Now change to the root of the Pegasus distrubution and type "make"
260                (where make referes to GNU make).
261 karl  1.1  
262 mike  1.9  5.  Then create the repository, which is needed for some test cases -
263                "make repository"
264            
265            6.  To test the build type "make tests".
266 karl  1.1  
267 mike  1.7  The following make targets are supported:
268 karl  1.1  
269 mike  1.7      <default> - Build everything.
270                clean - Clean out all objects, libs, and executables.
271                depend - Create the dependencies.
272 mike  1.9      repository - Create the repository in $PEGASUS_HOME/repository
273 mike  1.7      tests  - Execute all tests (except client server tests).
274                rebuild - clean, depend, <default>
275                world - depend, <default>
276 karl  1.1  
277 karl  1.4  The Pegasus Client server tests are executed separately from the above because
278            they require the initiation of separate process for the Pegasus server and
279            Pegasus client. These tests can be executed as follows:
280 karl  1.1  
281                ATTN: Add the procedure for Client/Server Test start here.
282            
283 karl  1.4  For information on particular installation characteristics, tools, etc. for
284 karl  1.6  each platform see the appropriate sections below:
285 karl  1.1  
286            Generally the build commands are as follows:
287            
288 karl  1.6      1. There is a Makefile in the Pegasus root directory.   Simply executing
289                make in the Pegasus root directory will make everything. "Make rebuild"
290                will clean and rebuild everything. The "make rebuild" will also populate
291                the repository with the current CIM Schemas.
292 karl  1.1  
293 karl  1.6      2. To test a fresh release, go to the pegasus root and type
294 karl  1.1  
295            		"make world".
296            
297            
298 karl  1.6      This will build dependencies, build binaries, and then run all
299 karl  1.4      tests except the Client/Server tests.
300 karl  1.1  
301 karl  1.6      3. To execute the basic test suite that is shipped with pegasus type
302 karl  1.1  
303 karl  1.6  	   "make tests". This also reintalls the repository.
304 karl  1.1  
305 karl  1.4      Running "make -s tests" suppresses extraneous output such as the
306                enter/leave directory messages.
307 karl  1.1  
308 karl  1.6      4. "Make Clean" removes all object and library files from the structure.
309 karl  1.1  
310            The MU Utility
311            ==============
312            
313 karl  1.4  In order to provide a consistent build structure across multiple platforms, we
314            developed a small utility to provide a consistent set of small utilities
315            across these platforms. The MU utilityis a simple utility that contains many
316            commands. For example:
317 karl  1.1  
318            
319                C:\> mu rm myfile.cpp yourfile.cpp
320            
321            
322            You may type "mu" to get a list of valid commands. Here are some
323            of them:
324            
325            
326 karl  1.2      rm, rmdirhier, mkdirhier, echo, touch, pwd, copy, move, compare depend
327 karl  1.1  
328            
329            The MU utility supports globing (expansion of wildcards) so
330            you can do things like this:
331            
332            
333                C:\> mu rm *.obj *.exe
334            
335 karl  1.4  MU is required to build under the Windows environment.MU is available as part
336            of the distribution of Pegasus.
337 karl  1.1  
338 mike  1.7  Notes about Building Pegasus on Linux:
339            ======================================
340 karl  1.1  
341 mike  1.7  ATTN: put something here (but only what is not mentioned above).
342 karl  1.1  
343 karl  1.5  Building Pegasus on NT or Windows 2000 With Microsoft Visual C++
344            ================================================================
345 karl  1.1  
346            Today we build Pegasus on Windows NT using a set of make files contained
347            in the source distribution, the Microsoft compilers (tested so far with
348            versions 5 and 6) and the GNUMAKE make utility. The following is the basic
349            set up steps for the
350            
351 mike  1.7  Setup the environment variables and path for the Micrososft Visual C
352            compiler. Typically this can be done by running the VCVARS32.BAT file
353            supplied with Microsoft Visual C++. (contained in the same directory
354            as cl.exe).
355 karl  1.1  
356 mike  1.7  Installing the Pegasus HTML Test Client:
357            ========================================
358 karl  1.1  
359 karl  1.4  This is a separate test tool that allows Pegasus requests to be initiated from
360            any WEB browser and that uses a WEB browser, CGI scritps and HTML pages for
361            the formating and connections. It requires a WEB server, etc.  The
362            instructions for setting up this environment are maintained in a separate
363            readme in the CGI directory.
364 karl  1.1  
365 mike  1.7  Development with Pegasus and Pegasus Tools:
366            ===========================================
367 karl  1.1  
368            ATTN: This section needs to be completed.  It should reference the more
369            complete documentation
370            
371 mike  1.7  Documentation:
372            ==============
373 karl  1.1  
374 karl  1.4  The documentation is currently in preperation. The preliminary documentation
375            is not provided with this snapshot but is avialable from the OpenGroup Pegasus
376            WEB pages. The current documentation is maintained both as a manual created
377 karl  1.5  under the tool DOC++ in the runtime subdirectory manual/html and as other
378            miscelaneous documentation in the doc directory.
379 karl  1.4  
380            Note that the Pegasus WEB site at The Open Group will be the source of most
381            documentation in the future and today is the source of most discussion and
382            design documentation.
383 karl  1.1  
384            Participate!
385            ============
386 mike  1.7  
387 karl  1.4  We are looking for people who want to join the Pegasus work group and
388            contribute to effort of getting this Pegasus off the ground.  Please send
389            email for details to k.schopmeyer@opengroup.org or m.kirk@opengroup.org or
390            m.brasher@opengroup.org

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2