1 karl 1.1.2.1 Title: Building static providers for OpenPegasus embedded systems
2 Date: 1 November 2007
3 Status: Draft
|
4 karl 1.1.2.2 Reference: pegasus PEP 309
|
5 karl 1.1.2.1
|
6 karl 1.1.2.2 Overview of the Static Provider Functionality
|
7 karl 1.1.2.1
|
8 karl 1.1.2.2 For embedded system implementations of OpenPegasus, the dynamic shared
9 library model for provider implementation sometimes does not work
10 (see PEP 305 for background). Therefore, a static model for
11 providers has been implemented whereby the providers become part
12 of the server image, directly linked into the server.
13
14 Note that this feature is based on the existing provider linking
15 mechanism for control providers in Pegasus but with cleaner
16 interfaces.
|
17 karl 1.1.2.1
18 Building Static Providers
19
|
20 karl 1.1.2.2 NOTE: There is an example of the building of providers in the
21 directory pegauss/vxworks.providers with two simple sample
22 providers.
23
24 Building providers is very similar to the standard provider build
25 except that only the libraries are build, not shared libraries.
26
27 Note that the interfaces are exactly the same between the static
28 providers and normal pegasus providers and that exactly the same
29 provider interface functionality is supported.
30
31 There is an example of building static providers in the directory
32
33 pegaus/vxworks/providers
|
34 karl 1.1.2.1
35 Installing Static Providers
|
36 karl 1.1.2.2
37 The installation/registration process for static providers is
38 completely different than for dynamic providers. Whereas dynamic
39 providers are installed with a registration process that uses
40 instances of provider classes to define the provider and its
41 capabilities, the static provider is installed as part of the
42 creation of the server image (linked) and registered as part of
43 the startup process for the OpenPegasus server.
44
45 Once a provider has been coded and compiled it is built into the
46 startup OpenPegasus provider registration by defining the provider
47 information in a table that is defined in the server startup code.
48
49 NOTE: For the moment, PEP 309 provides the definition of how to
50 build this table.
51
52 There is an example of this table defined in the file
53
54 pegasus/vxworks/cimserver/cimserver.cpp
55
56
57 karl 1.1.2.2
58
|