This chapter provides an overview of Web-Based Enterprise Management (WBEM) and Solaris WBEM Services. These services make it easier for software developers to create management applications that run on Solaris, and make the Solaris operating environment easier for system administrators to manage.
Here is a list of the information in this chapter.
WBEM is an industry-wide initiative that includes standards for web-based management of systems, networks, and devices on multiple platforms. This standardization enables system administrators to manage desktops, devices, and networks.
At this time, WBEM is designed to be compatible with the Simple Network Management Protocol (SNMP).
WBEM encompasses the following standards:
Common Information Model (CIM) – Information model for describing managed resources.
Managed Object Format (MOF) – Language for defining CIM classes and instances.
eXtensible Markup Language (XML) – Markup language for describing managed resources on the web.
The Distributed Management Task Force (DMTF), a group that represents corporations in the computer and telecommunications industries, is leading the effort to develop management standards. The goal of the DMTF is to develop an integrated approach to managing networks across platforms and protocols, and consequently promote cost-effective products that interoperate as flawlessly as possible.
This section provides a brief introduction to basic CIM terms and concepts as they are used in the Solaris WBEM Services product. A complete glossary of CIM terms and concepts is provided at http://www.dmtf.org/education/cimtutorial/reference/glossary.php.
CIM is an object-oriented information model for describing managed resources such as disks, CPUs, and operating systems. A CIM object is a representation, or model, of a managed resource, such as a printer, disk drive, or CPU. CIM objects can be shared by any WBEM-enabled system, device, or application.
CIM objects with similar properties and purposes are represented as CIM classes. Properties are attributes that describe a unit of data for a class. An instance is a representation of a managed object that belongs to a particular class. Instances contain actual data. For example, Solaris_ComputerSystem is a CIM class that represents a computer that runs the Solaris operating environment. The Solaris software that runs on your system is an instance of the Solaris_OperatingSystem class. ResetCapability and InstallDate are examples of properties of the Solaris_ComputerSystem class.
CIM classes are grouped into meaningful collections called schemas. A schema is a group of classes with a single owner (an organization). A class must belong to only one schema. Schemas are used for administration and class naming. All class names must be unique within a particular schema. The schema name is the determining factor in differentiating classes and properties from others that may have the same name. The naming of schema, class, and property follow this syntax:
Schemaname_classname.propertyname
The Common Information Model categorizes information from general to specific. Specific information, such as a representation of the Solaris environment, extends the model. CIM consists of the following three layers of information:
Core Model – Subset of CIM not specific to any platform.
Common Model – Information model that visually depicts concepts, functionality, and representations of entities related to specific areas of network management, such as systems, devices, and applications.
Extensions – Information models that support the CIM Schema and represent a very specific platform, protocol, or corporate brand.
The Core Model provides the underlying, general assumptions of the managed environment. For example, specific, requested data must be contained in a location and distributed to requesting applications or users. These assumptions are conveyed as a set of classes and associations that conceptually form the basis of the managed environment. The Core Model is meant to introduce uniformity across schemas that represent specific aspects of the managed environment.
For application developers, the Core Model provides a set of classes, associations, and properties that can be used as a starting point to describe managed systems and determine how to extend the Common Model. The Core Model establishes a conceptual framework for modeling the rest of the managed environment.
The Core Model provides classes and associations to extend specific information about systems, applications, networks, devices, and other network features through the Common Model and extensions.
Areas of network management depicted in the Common Model are independent of a specific technology or implementation but provide the basis for the development of management applications. This model provides a set of base classes for extension into the area of five designated technology-specific schemas, that is, Systems, Devices, Applications, Networks, and Physical.
Extension schemas are built upon CIM to connect specific technologies to the model. By extending CIM, a specific operating environment such as Solaris can be made available to a greater number of users and administrators. Extension schemas provide classes for software developers to build applications that manage and administer the extended technology. The Solaris Schema is an extension of the CIM Schema.
Solaris WBEM Services software provides WBEM services in the Solaris operating environment, including secure access and manipulation of management data. The product includes a Solaris provider that enables management applications to access information about managed resources (devices and software) in the Solaris operating environment.
The CIM Object Manager accepts connections from management applications that use either the Remote Method Invocation (RMI) protocol or the XML/HTTP protocol, and provides the following services to connected clients:
Management services – Are in the form of a CIM Object Manager that checks the semantics and syntax of CIM data and distributes data between applications, the CIM Object Manager Repository, and managed resources.
Security services – Specify these services for WBEM through the Solaris Management Console User tool. These services are described in System Administration Guide: Security Services.
SunTM WBEM User Manager – Use this tool to establish an access control list (ACL) for a specific namespace on the WBEM server. Sun WBEM User Manager enables you to add and delete authorized users, set access privileges for authorized users, and manage user authentication and access to CIM objects on a WBEM-enabled system. ACL-based security is uniquely provided by Solaris WBEM Services.
Logging services – Consist of classes that developers can use to create applications that dynamically record and retrieve event data. Administrators use this data to track and determine the cause of events. Logging services are described in more detail in the Solaris WBEM SDK Developer's Guide.
XML services – Convert XML data into CIM classes, enabling XML/HTTP-based WBEM clients to communicate with the CIM Object Manager.
Solaris WBEM Services software consists of three software components: Application, Management, and Provider. These components interact with the operating system and hardware. The following figure shows the software components and how they interact.
Application layer – WBEM clients process and display data from managed resources. Solaris WBEM Services includes the following applications.
Sun WBEM User Manager and Solaris Management Console User tool – Applications that allow system administrators to add and delete authorized users and to set these users' access privileges to managed resources.
Solaris Management Console Log Viewer – An application that displays log files. A user can view details of a log record, including the name of the user who issued a logged command and the client computer on which a logged event occurred.
Managed Object Format (MOF) compiler – A program that parses a file containing MOF statements, converts the classes and instances defined in the file to Java classes, and then adds the Java classes to the CIM Object Manager Repository, a central storage area for management data.
MOF is a language for defining CIM classes and instances. MOF files are ASCII text files that use the MOF language to describe CIM objects. A CIM object is a representation, or model, of a managed resource, such as a printer, disk drive, or CPU. MOF files are located in /usr/sadm/mof.
Many sites store information about managed resources in MOF files. Because MOF can be converted to Java, applications that can run on any system with a Java virtual machine can interpret and exchange this information. You can also use the mofcomp command to compile MOF files at any time after installation. MOF is described on the DMTF web page at http://www.dmtf.org.
Management layer – Components at this layer provide services to connected WBEM clients.
Common Information Model (CIM) Object Manager – Software that manages CIM objects on a WBEM system. CIM objects are stored internally as Java classes. The CIM Object Manager transfers information between WBEM clients, the CIM Object Manager Repository, and managed resources.
CIM Object Manager Repository – Central storage area for CIM class and instance definitions.
Client and CIM application programming interfaces (APIs) – WBEM client applications use these Java interfaces to request operations, such as creating or viewing classes or instances of managed resources, from the CIM Object Manager.
Provider interfaces – Providers use these interfaces to transfer information about managed resources to the CIM Object Manager. The CIM Object Manager uses the provider interfaces to transfer information to locally installed providers.
Provider layer – Providers act as intermediaries between the CIM Object Manager and one or more managed resources. When the CIM Object Manager receives a request from a WBEM client for data that is not available from the CIM Object Manager Repository, it forwards the request to the appropriate provider.
Solaris providers – Provide the CIM Object Manager with instances of managed resources in the Solaris operating environment. Providers get and set information on managed devices. A native provider is a machine-specific program written to run on a managed device. For example, a provider that accesses data on a system running the Solaris operating environment probably includes C functions to query that system. The Java Native Interface is part of the JDKTM software. By writing programs using the Java Native Interface, you ensure that your code is portable across all platforms. The Java Native Interface enables Java code that runs within a Java virtual machine to operate with applications and libraries written in other languages, such as C, C++, and assembly.
Solaris Schema – A collection of classes that describes managed objects in the Solaris operating environment. The CIM Schema and Solaris Schema classes are stored in the CIM Object Manager Repository. The CIM Schema is a collection of class definitions used to represent managed objects that occur in every management environment.
The Solaris Schema is a collection of class definitions that extend the CIM Schema and represent managed objects in a typical Solaris operating environment. Users can also use the MOF compiler (mofcomp) to add CIM Schema, Solaris Schema, or other classes to the CIM Object Manager Repository.
Operating system layer – The Solaris providers enable management applications to access information about managed resources (devices and software) in the Solaris operating environment.
Hardware layer – A management client can access management data on any supported Solaris platform.
One or more schemas can be stored in directory-like structures called namespaces. A CIM namespace is a directory-like structure that can contain other namespaces, classes, instances, and qualifier types. The names of objects within a namespace must be unique.
In Solaris WBEM Services, when a WBEM client application connects to a particular namespace, all subsequent operations occur within that namespace. When connected to a namespace, the client can access the classes and instances in that namespace (if they exist) and in any namespaces contained in that namespace. For example, if you create a namespace called child in the root\cimv2 namespace, you could connect to root\cimv2 and access the classes and instances in the root\cimv2 and root\cimv2\child namespaces.
An application can connect to a namespace within a namespace. This is similar to changing to a subdirectory within a directory. Once the application connects to the new namespace, all subsequent operations occur within that namespace. If you open a new connection to root\cimv2\child, you can access any classes and instances in that namespace but cannot access the classes and instances in the parent namespace, root\cimv2.
The following namespaces are created by default during installation.
root – The top-level namespace that contains other namespaces.
root\cimv2 – Contains the default CIM classes and instances that represent objects on your system, such as, LogicalDisk and Netcard. This is the default namespace.
root\security – Contains the security classes used by the CIM Object Manager to represent access rights for users and namespaces.
root\snmp – Contains the classes for the SNMP Provider and the SNMP Adapter for WBEM.
root\system – Contains CIM Object Manager information and provider paths.
When a WBEM client application accesses CIM data, the WBEM system validates the user's login information on the current host. By default, a user is granted read access to the CIM Schema and the Solaris Schema. The CIM Schema describes managed objects on your system in a standard format that all WBEM-enabled systems and applications can interpret.
Providers are classes that communicate with managed objects to access data. Providers forward this information to the CIM Object Manager for integration and interpretation. When the CIM Object Manager receives a request from a management application for data that is not available from the CIM Object Manager Repository, it forwards the request to a provider.
The CIM Object Manager uses object provider APIs to communicate with providers. When an application requests dynamic data from the CIM Object Manager, the CIM Object Manager uses the provider interfaces to pass the request to the provider.
Providers perform the following functions in response to a request from the CIM Object Manager:
Map the native information format to CIM classes
Get information from a device
Pass the information to the CIM Object Manager in the form of CIM classes
Map the information from CIM classes to native device format
Get the required information from the CIM class
Pass the information to the device in native device format
A WBEM client and WBEM system can run on the same system or on different systems. Multiple WBEM clients can establish connections to the same WBEM system. For example, a WBEM system can serve four or five WBEM clients.
Solaris WBEM Services supports the Version 1.1 Specification for CIM Operations over HTTP. This specification uses XML to model CIM objects and messages. XML is a standard markup language for describing data on the Web. This standard extends XML markup to define CIM objects and operations. Because XML provides a standard way of describing data that can be sent across the Web, any WBEM client can access CIM data on any WBEM system that can parse XML data.
The Solaris WBEM Software Developer's Kit (SDK) contains the components required to write management applications that can communicate with any WBEM-enabled management device. Developers can also use this SDK to write providers, which are programs that communicate with managed objects to access data. All management applications developed using the Solaris WBEM SDK run in the Java environment.
A WBEM client application is a program that uses Solaris WBEM APIs to manipulate CIM objects. A client application typically uses the CIM API to construct an object (for example, a namespace, class, or instance) and then to initialize that object. The application then uses the client APIs to pass that object to the CIM Object Manager and to request a WBEM operation, such as operations that create a CIM namespace, class, or instance.
The Solaris WBEM SDK installs and runs in the Java environment. You can use the Solaris WBEM SDK as a standalone application or with Solaris WBEM Services.
The Solaris WBEM SDK is described in the Solaris WBEM SDK Developer's Guide.