1. Field of the Invention
The present invention relates generally to an improved data processing system, and in particular, to a computer implemented method for managing applications in a data processing environment. Still more particularly, the present invention relates to a computer implemented method, system, and computer usable program code for classification and policy management for software components.
2. Description of the Related Art
A software application may include many components. A software application is also known as an application and a component of an application is a subpart of the application. Metadata is the information that defines an application, a component or is associated with a component or an application.
Generally, an application can be thought of as implementing a process, and a component implementing a part of that process. The process and the process' sub-processes manifest themselves as functionality in an application and the application's components. In some cases, a component may be an entire application, and vice versa.
An application may be divided into components based on a variety of factors. For example, certain functionality of the application may be common across many applications. A software designer may create a component such that the component is reusable in another application when a need arises.
As another example, a certain functionality of an application may have be separate from and execute in a data processing system different from the other functionality of the application. Many applications have external facing components that may be accessible to anyone over a public data network, and internal facing components that may access business sensitive information over a business' own data network.
Furthermore, a component may implement only a partial functionality, and many components executing on many data processing systems across one or more data networks in a concerted manner may appear to be a unified application to a user. A software designer may implement a component as a standalone fully functional application, a reusable component that may need other components or data to operate, a component dedicated for use by only designated applications, or a shared component that any application with suitable privileges may use. Of course a component may take may other forms depending on the particular application and data processing environment.
A service is a type of application or component. A web service is a type of service. Generally, a service is a business process or sub-process encapsulated in a way that is substantially independent of an operating system, a data processing system, or a data processing environment. Services may be distributed across data processing systems and may communicate with each other and exchange data over data networks.
Generally, services, including web services, are created according to a common scheme, convention, protocol, schema, specification, methodology, or standard. Created in this manner, services can interact and collaborate predictably with other services. Service-oriented architecture (SOA) is a design methodology for designing, distributing, and using services created in this manner.
Software designers may combine or reuse services to create or modify applications. For example, a new business application may be created entirely or partly from existing services. Similarly, a new functionality may be added to an existing application by incorporating a service.
Applications may operate in a data processing environment under the guidance, control, permission or supervision of one or more policies applicable to that data processing environment. A policy is a rule for providing guidance, control, permission, supervision, or other similar features to users, applications, or components operating in a given data processing environment. For example, a business organization may have business policies describing the circumstances under which a user, application, or component may not access the business critical data of the organization. As another example, a policy may determine what information a particular component may have to present to be authenticated in a given data processing system.