# Frameworx

Frameworx is an enterprise architecture framework geared towards communications service providers.
It is developed by the TM Forum.

## Structure

Frameworx consists of four frameworks:
* Application Framework (sometimes referred to as the Telecom Application Map (TAM))
* Business Process Framework (eTOM)
* Information Framework (sometimes referred to as the Shared Information/Data (SID) model)
* Integration Frameworks (which is developed in the TM Forum Integration Program (TIP))

### Information Framework

The Information Framework (formally Shared Information/Data Model or SID) is a unified reference data model providing a single set of terms for business objects in telecommunications. The objective is to enable people in different departments, companies or geographical locations to use the same terms to describe the same real world objects, practices and relationships. It is part of Frameworx.
The Information Framework, as the Frameworx information model, provides an information/data reference model and a common information/data vocabulary from a business as well as a systems perspective. The Information Framework uses Unified Modeling Language to formalize the expression of the needs of a particular stakeholder viewpoint.
The Information Framework provides the common language for communicating the concerns of the four major groups of constituents (stakeholders) represented by the Frameworx Viewpoints - Business, System, Implementation and Deployment, as defined in the Frameworx Lifecycle. Used in combination with the Business Process Framework (eTOM) business process and activity descriptions and the Telecom Application Map the Information Framework make it possible to bridge between the business and Information Technology groups within an organization by providing definitions that are understandable by the business, but are also rigorous enough to be used for software development.
The Information Framework model takes inspiration from a wide variety of industry sources, but its principal origins are the Alliance Common Information Architecture (ACIA) created by a team led by Bill Brook from AT&T and BT Group and the Directory Enabled Networks - next generation (DEN-ng) model created by John Strassner.
When initially released in 2000, the Information Framework model covered the business (BSS) arena well, and also the device management field well, but was insufficient in its ability to represent logical networks and capacity. These deficiencies are being addressed through revision of the model to include concepts such as topologies, but the history has resulted in poor utilisation of the model in certain telecom fields, such as inventory management.

## Principles

Frameworx is based around these key principles.

### Separation of Business Process from Component Implementation

When Operations Support Systems (OSSs) are linked together, the business processes they support become distributed across the IT estate. In effect the situation is reached where a process starts with application A, which processes some data and then knows that it must call application B, which also does some processing and then calls C, etc. The result of this is that it's extremely difficult to understand where any of these flows actually are (e.g. if the process flow is one intended to take a customer order, is it Application A or B or C that's currently handling that order?) and it's even more difficult to change the process owing to its distributed nature.
Frameworx proposes that the process is managed as part of the centralised infrastructure, using a workflow engine that is responsible for controlling the flow of the business process between the applications. Therefore, the workflow engine would initiate a process on application A, which would then return control to workflow engine, which would then call application B, and so on. In this way it's always possible to find out where an individual process flow is, since it is controlled by the central workflow engine, and process modifications can be made using the engine's process definition tools. Clearly some lower level process flows will be embedded in the individual applications, but this should be below the level of business-significant processing (i.e. below the level at which business policy and rules are implemented). The Frameworx certification methodologies help us deal with the scope of preferences that are not linearly distributed as an opening to improve the customer accepted undeniably appropriate method.

### Loosely Coupled Distributed System

"Loosely coupled" means that each application is relatively independent of the other applications in the overall system. Therefore, in a loosely coupled environment, one application can be altered without the alteration necessarily affecting others. Taken to extreme, this can sometimes be viewed as producing the ability to "plug and play" applications, where they are so independent that they can be changed without affecting the overall system behaviour. That extreme is considered an unlikely nirvana at the present time.
The "distributed system" is emphasising that Frameworx is not based on a Communication Service Provider (CSP) using a single monolithic application to manage all its activities, but is instead using a set of integrated and co-operating applications.

### Shared Information Model

Integrating OSSs means that data must be shared between the applications. For this to be effective, either each application must understand how every other application understands/interprets that part of the data that is shared, or there must be a common model of the shared data. To understand this, consider an order handling application which has gone through a process to enter a customer order and where it now needs to send out a bill using application B (a billing system). Application A will have a record of the customer address and it therefore needs to ensure that application B sends the bill to this address. Passing this data between the systems simply requires a common format for the address information – each system needs to expect the same number of address lines, with each line being the same length. That's fairly straightforward. But imagine the difficulty that would occur if the ordering application worked on products that consists of bundles of sub-products (e.g. a broadband access product made from a copper line, a modem, a set of filters and a broadband conversion), whereas the billing application only expected single product/order lines. Trying to convert hierarchical products into non-hierarchical ones without losing information would not be possible. A single information model for data that is shared between applications in this way provides a solution to this problem. The TMF solution to this is called the Shared Information/Data-Model (SID).

### Common communications infrastructure

Through the mid-1980s, computer-based OSSs were developed as stand-alone applications. However, during the early 1990s it became apparent that employing these as purely isolated applications was highly inefficient, since it led to a situation where, for example, orders would be taken on one system but the details would then need to be re-keyed into another in order to configure the relevant network equipment. Major efficiency gains were shown to be available from linking the standalone OSSs together, to allow such features as "Flow-through provisioning", where an order could be placed online and automatically result in equipment being provisioned, without any human intervention.
However, for large operators with many hundreds of separate OSSs, the proliferation of interfaces became a serious problem. Each OSS needed to "talk to" many others, leading to the number of interfaces increasing with the square of the number of OSSs.
Frameworx describes the use of a Common Communications Infrastructure (CCI). In this model, OSSs interface with the CCI rather than directly with each other. The CCI thus allows applications to work together using the CCI to link them together. In this way, each application only requires one interface (to the CCI) rather than many (to other applications). The complexity is therefore reduced to one of order n, rather than n$^2$.
The CCI may also provide other services, including security, data translation, etc.

### Contract defined interfaces

Given the description above of how applications interface to the CCI, it's clear that we need a way of documenting those interfaces, both in terms of the technology employed (e.g. is it Java/JMS or Web services/SOAP?) but also the functionality of the application, the data used, the pre- and post-conditions, etc. The Frameworx contract specification provides a means to document these interfaces, and these are therefore contract defined interfaces.
Frameworx contracts can be seen as extensions of Application Programming Interface (API) specifications.

## Deliverables
### Process model

The eTOM (enhanced Telecom Operations Map, pronounced ee-tom) is the Frameworx business process framework.

### Shared information model

The Frameworx Information is the Shared Information/Data Model (SID).

### Lifecycle model

The Frameworx lifecycle model is aimed at defining the use and deployment of Frameworx within an organisation, and provides a framework for using the SID, eTOM and the Frameworx architecture. The model is based on considerable earlier work, including Zachman Framework, Kernighan, Yourdon, and the Object Management Group's Model Driven Architecture. The Frameworx lifecycle divides systems development into 4 stages: requirements, system design, implementation and operation.

### Contract Specifications

As stated earlier, the Frameworx Contract is the fundamental unit of interoperability in a Frameworx system. Interoperability is important for each of the four views defined by the Frameworx Lifecycle. For example, the Contract is used to define the service to be delivered, as well as to specify information and code that implement the service. The Contract is also used to monitor, administer and maintain the service and ensure that any external obligations of the contract (e.g., from an SLA (Service Level Agreement)) are met and to define what measures to take if they are violated in some way.

### Telecom Application Map

The Applications Framework (formally Telecom Application Map (TAM)) is one of the primary Frameworx artifacts. It considers the role and the functionality of the various applications that deliver OSS (Operations Support System) and BSS (Business Support System) capability.
In doing so it enables procurement documents to be written with reference to the framework, thereby providing clear unambiguous statements of the functionality required of any given application, functional overlaps of existing applications to be identified, thereby facilitating rationalization and functional gaps to be identified.
The level of functional decomposition is such that these benefits can be realized but without being over prescriptive.
Within the TM Forum there is a strong definition of process and data. The Applications Framework provides a formalized way of grouping together function and data into recognised components, which would then be regarded as potentially procurable as either applications or services. An application or service (for example: web services) can be a relatively coarsely grained software that implements functions/processes and acts on or uses data. In daily life we see applications such as word processors or mail clients; in OSS terms we would regard an application as something such as a CRM component, a billing system or an inventory solution – although we also understand that these can be decomposed to some extent – for example a billing system will include a number of smaller applications, such as a rating engine.
An “application” is defined as a set of one or more software artifacts comprising well defined functions, data, business flows, rules and interfaces. This would include a Data Model, for data used to interface to and within an application, policies, for governing external and internal application resources, a Flow Model, for functionality with the application and contract specifications for externally visible interfaces to the functionality within the application
Applications are implementable as deployable packages and are procurable in the system market place.
The Applications Framework is neither a part of the Information Framework or the Business Process Framework (eTOM) definitions but links to both in an easily understandable way and also provides a mapping between them.