Platform package defines a set of meta-model element whose purpose is to represent the runtime operating environments of existing software systems. Application code is not self-contained as it is determined not only by the selected programming languages, but also by the selected Runtime platform. Platform elements determine the execution context for the application. Platform package defines meta-model elements that represent common Runtime platform concerns:
Examples of Platform Parts include UNIX OS File System, UNIX OS process management system, Windows 2000, OS/390, Java (J2SE), Perl language Runtime support, IBM CICS TS, IBM MQSeries, Jakarta Struts, BEA Tuxedo, CORBA, HTTP, TCP/IP, Eclipse, EJB, JMS, Database middleware, Servlets.
The Platform package consists of the following 10 class diagrams:
The PlatformModel class diagram The PlatformModel follows the uniform pattern for extending KDM Framework followed by each KDM model. The classes and associations of the PlatformModel diagram are shown in See - PlatformModel Class Diagram..
Platform model defines one of the architectural views in support of the principle of separation of concerns in KDM models. PlatformModel provides a container for platform elements.
The AbstractPlatformElement is an abstract meta-model element which represents entities of the operating environments of software systems.
An instance of an AbstractPlatformElement represents either an instance of some runtime resource or some API call that manages some runtime resource. The implementation association links AbstractPlatformElement to the corresponding elements of some CodeModel. "Abstraction" action elements can be used to specify precise semantics of the PlatformElement.
The PlatformInheritances class diagram represents inheritances of the meta-modeling elements of the Platform package. The classes and associations of the PlatformInheritances diagram are shown in See - PlatformInheritances Class Diagram..
The PlatformResources class diagram defines the meta-model elements to represent platform resources. The classes and associations of the PlatformResources diagram are shown in See - PlatformResources Class Diagram..
The ResourceType is a meta-model element that represents a platform resource. The purpose of a platform is to simplify application development by closing the gap between the application domain and the facilities that are available to application programmers. The latter are referred to as platform resources. Examples of resource types include UNIX File, UNIX IO Stream, UNIX socket, UNIX Process, UNIX thread, AWT widget, CICS File, CICS transaction, UNIX semaphore, UNIX shared memory segment, OS/390 VSAM file, JDBC connection, HTTP session, HTTP request, UNIX memory block, CICS commarea, COBOL file.
KDM introduces Platform Resource as an explicit abstraction in order to separate the explicit parts that are written by application programmers from parts that are provided by the platform. The underlying implementation details may be quite complex, for example, marshaled call includes client stubs, skeletons, platform-managers. The type of the Platform Resource denotes the semantics of the resource.
Platform resources can be further subdivided into smaller groups of services (resource types). Platform resources are usually grouped into platform stacks. Platform resource is an element of the overall platform used by a particular system. Complete Platform is the entire collection of platform resources used by the segments of the system. Platform resource may be associated with logical packages for a particular programming language.
platformElement:AbstractPlatformElement[0..*] |
The set of platform elements which are owned by the given ResourceType. |
ResourceType may represent an individual runtime resource instance or a container for several such instances.
It is the implementer's responsibility to identify runtime resources used by the existing software system according to the semantics of the platform used by the existing system, resource configuration files and other appropriate sources of information.
Specific subclasses of ResourceType define specific categories of resources available to implementers. Other types of resources can be represented by an generic instance of ResourceType meta-model element with a stereotype.
NamingResource represents platform resources that provide registration and lookup services (e.g., registry). In the meta-model NamingResource is a subclass of ResourceType.
MarshalledResource represents platform resources that provide intercomponent communication via remote synchronous calls. For example, RPC, CORBA method call, Java remote method invocation. In the meta-model MarshalledResource is a subclass of ResourceType.
MessagingResource represents platform resources that provide intercomponent communication via asynchronous messages (e.g., IBM MQSeries messages).
FileResource represents platform resources that provide any non-database related storage. In the meta-model the FileResource class is a subclass of ResourceType. It also implements the DataInterface so that this class can be the endpoint of Data relations.
ExecutionResource represents dynamic Runtime elements (e.g., process or thread).
LockResource represents a synchronization resource common to multithreaded runtime environments.
StreamResource represents a simple input/output resource, for example UNIX-like stream.
DataManager represents a database management system. DataManager is associated with particular data elements that represent the data description of the data managed by the data manager.
The PlatformEvent class is a meta-model element representing various events and callbacks associated with runtime platforms. This class follows the KDM event pattern, common to Resource Layer packages.
PlatformAction class follow the pattern of a "resource action" class, specific to the Platform package. The nature of the action represented by a particular element is designated by its "kind" attribute. Descriptions of the common platform action kind are provided in Appendix 2. Resource Layer actions.
ExternalActor is a meta-model element that represents entities outside of the boundary of the software system being modeled. For example, external actor can be a user of the system. External actors interact with the software system.
In the meta-model ExternalActor is a PlatformElement. Semantics of ExternalActors is outside of the scope of KDM.
The PlatformRelations class diagram defines associations between ResourceTypes.
The classes and associations of the PlatformRelations diagram are shown in See - PlatformRelations Class Diagram..
The ProvisioningRelations class diagram defines meta-model elements that represent the physical elements of the Runtime platform that provide certain services and manage resources.
The classes and associations of the ProvisioningRelations diagram are shown in See - ProvisioningRelations Class Diagram..
Requires defines semantic relationship between a DeployedComponent and a AbstractPlatformElement.
The PlatformActions class diagram defines meta-model elements that represent specific actions which are the endpoints of certain Platform relationships. The elements of this diagram extend ActionElement from the KDM Action package.
The classes and associations of the PlatformActions diagram are shown in See - PlatformActions Class Diagram..
ManagesResource class follows the pattern of a "resource action relationship". It represents various types of accesses to platform resources that are not related to the flow of data to and from the resource. ManagesResource relationship is similar to Addresses relationship from Action Package. The nature of the operation on the resource is represented by the "kind" attribute of the PlatformAction that owns this relationship through the "abstracted" action container property.
ReadsResource class follows the pattern of a "resource action relationship". It represents various types of accesses to platform resources where there is a flow of data from the resource. ReadsResource relationship is similar to Reads relationship from Action Package. The nature of the operation on the resource is represented by the "kind" attribute of the PlatformAction that owns this relationship through the "abstracted" action container property.
WritesResource class follows the pattern of a "resource action relationship". It represents various types of accesses to platform resources where there is a flow of data to the resource. WritesResource relationship is similar to Writes relationship from Action Package. The nature of the operation on the resource is represented by the "kind" attribute of the PlatformAction that owns this relationship through the "abstracted" action container property.
DefinedBy is a meta-model element that represents association between a platform resource and the logical package that describes the interface to this resource. The CodeItem at the to-endpoint of this KDM relationship is usually an interface or a package.
DefinedBy is an optional relationship. It is the implementer's responsibility to correctly associate the platform resource with the corresponding logical definition of this resource (usually a Signature, an Interface, or a Package). The logical description of the package usually refers to some external implementation, as platform resources are usually described by some third-party packages, provided as part of the runtime platform of the application. Individual API calls corresponding to the given resource, should have the CompliesTo relations to the individual API descriptions the definition represented by the CodeItem at the to-endpoint of the DefinedBy relationship.
The Deployment class diagram defines meta-model elements that represent deployment elements and their relations. In particular, the elements of the Deployment diagram address physical structures and how logical components are mapped to these physical structures.
The classes and associations of the Deployment diagram are shown in See - Deployment Class Diagram..
The DeployedComponent represents a unit of deployment as defined by a particular platform. Major platform parts provide a packaging mechanism of deploying application functionality. Deployment component is a replaceable unit of an application. For example, DLL, shared library, COM, Eclipse plugin, Executable, Jar file, War file for Tomcat, SQL Stored procedure, CORBA module, EJB, JavaBean, Jakarta Struts Action, Jakarta Struts Form.
The DeployedSoftwareSystem is a meta-model element that represents an instance of a software system at deployment or at the initialization time. DeployedSoftwareSystem is a physical instance of some logical SoftwareSystem. DeployedSoftwareSystem is associated with a set of DeployedComponents, which correspond to the set of logical components of the logical SoftwareSystem. The logical view of KDM model describes one or more SoftwareSystems. Each SoftwareSystem involves one or more Components. Some components can be involved in more than one SoftwareSystem (allowing description of the so-called Software Product Lines). Each Component involves one or more model Modules. Again, each Module can be involved in more than one Component. Component is a unit of deployment. Each logical component can be deployed multiple times, each time represented by a unique DeploymentComponent element. DeployedSoftwareSystem is a counterpart of the corresponding logical SoftwareSystem.
The Machine is a meta-model element that represents the hardware node which hosts deployed components.
The DeployedResource is a meta-model element that represents a set of platform resource instances as they are deployed in a particular deployment configuration. DeployedResource is associated with a set of ResourceType elements. DeployedResource provides a unique physical context for a logical resource, as each logical resource can be associated with multiple DeployedResource.
The RuntimeResources class diagram defines meta-model elements that represent dynamic structures (instances of some logical entities and their relationships) that emerge at the so-called "run time" of the software system. For example, dynamic entities include processes and threads. Instances of processes and threads can be created dynamically and in many cases relations between the dynamically created instances of processes and threads are an essential part of the knowledge of existing systems. Another example of dynamic structures involves deployed components that are loaded dynamically.
The classes and associations of the RuntimeResources diagram are shown in See - RuntimeResources Class Diagram..
The RuntimeResource is a generic meta-model element that represents an entity that has its own execution thread (for example, process or thread). RuntimeResource is subclassed by Process and Thread. In the meta-model RuntimeResource is used as the endpoint of certain relationships.
The RuntimeActions class diagram defines meta-model elements that represent specific Runtime actions as the endpoints of certain Runtime relationships. The elements of this diagram extend ActionElement from the KDM Action package.
The classes and associations that make up the RuntimeActions diagram are shown in See - RuntimeActions Class Diagram..
The Loads class is a meta-model element that represents "dynamic loading relationship" between a LoadingService action endpoint and the DeployedComponent.
In the meta-model Loads is a subclass of a generic element RuntimeRelation.
The Spawns class is a meta-model element that represents "dynamic process creation" or "dynamic thread creation" relationship between a SpawningService action endpoint and the RunnableInterface (Process or Thread).
The ExtendedPlatformElements class diagram defines two "wildcard" generic elements for the code model as determined by the KDM model pattern: a generic platform entity and a generic platform relationship.
The classes and associations of the ExtendedPlatformElements diagram are shown in See - ExtendedPlatformElements Class Diagram..
The PlatformElement class is a generic meta-model element that can be used to define new "virtual" meta-model elements through the KDM light-weight extension mechanism.
A platform entity with under specified semantics. It is a concrete class that can be used as the base element of a new "virtual" meta-model entity types of the platform model. This is one of the KDM extension points which can integrate additional language-specific, application-specific or implementer-specific pieces of knowledge into the standard KDM representation.
The PlatformRelationship class is a generic meta-model element that can be used to define new "virtual" meta-model elements through the KDM light-weight extension mechanism.
A platform relationship with under specified semantics. It is a concrete class that can be used as the base element of a new "virtual" meta-model relationship types of the platform model. This is one of the KDM extension points which can integrate additional language-specific, application-specific or implementer-specific pieces of knowledge into the standard KDM representation.